21 lines
611 B
C
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);
|