19 lines
376 B
C
19 lines
376 B
C
#pragma once
|
|
|
|
#include <stddef.h>
|
|
|
|
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);
|
|
vector_t *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 = vec_push(vec, (uint64_t)val)
|