#pragma once #include typedef struct { size_t size; size_t cap; uint64_t *data; } vector_t; vector_t *make_vector(size_t size); uint64_t vec_at(const vector_t *vec, size_t idx); void vec_push(vector_t *vec, uint64_t val); #define VEC_AT(type, vec, idx) ((type *)vec_at((vec), (idx))) #define VEC_PUSH(vec, val) vec_push(vec, (uint64_t)val)