Advent of Code

Artifact [838e050968]
Login

Artifact [838e050968]

Artifact 838e050968a71056f805f6556cfd0704ee8bd34a5405e178119619d14ffbc5bf:


#ifndef AOCUTILS_H_INCLUDED
#define AOCUTILS_H_INCLUDED

struct TextGrid {
    unsigned rows, cols;
    char *data; // may have '\n' at end of rows
};

bool TGvalid(struct TextGrid *tg, unsigned row, unsigned col);
char *TGcharptr(struct TextGrid *tg, unsigned row, unsigned col);

size_t linearize2d(unsigned width, unsigned row, unsigned col); // TODO
size_t text2array(unsigned **dst, const char *txt);
size_t slurp(char **dst, const char *filename);
unsigned distance(unsigned a, unsigned b);
unsigned max3u(unsigned a, unsigned b, unsigned c);
unsigned min3u(unsigned a, unsigned b, unsigned c);

#endif