new-engine/src/vec.h

21 lines
611 B
C

#pragma once
#include <stdlib.h>
typedef struct vector vector;
vector *vec_create(size_t element_size);
void vec_destroy(vector *vec);
// Checks and grows vector only if necessary
void vec_grow(vector *vec);
void vec_shrink_to_fit(vector *vec);
// Assumes data is the same size as the element size
// Which means you can only push one element at a time
void vec_push_back(vector *vec, void *data);
void vec_push_front(vector *vec, void *data);
void vec_push_index(vector *vec, void *data, uint index);
void* vec_get(vector *vec, uint index);
size_t vec_size(vector *vec);
size_t vec_capacity(vector *vec);