#pragma once #include #include #define min(a, b) ((a < b) ? a : b) #define max(a, b) ((a > b) ? a : b) typedef unsigned int uint; template struct array { T* data; size_t len; size_t cap; inline T& operator[](int i) { return data[i]; } }; template void append(array& a, T el); template T pop(array& a); template void resize(array& a, size_t new_cap); template void clear(array& a); bool read_file(array* out, const char* filepath); array split_str(const char *s, char delimiter); array split_str(const char *s);