From 2016dceaa9cfc65ee80ee7e433331390f4263744 Mon Sep 17 00:00:00 2001 From: bigfoot547 Date: Mon, 12 Jan 2026 16:30:37 -0600 Subject: download jobs --- lib/include/vector.h | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 lib/include/vector.h (limited to 'lib/include/vector.h') diff --git a/lib/include/vector.h b/lib/include/vector.h new file mode 100644 index 0000000..02ed84e --- /dev/null +++ b/lib/include/vector.h @@ -0,0 +1,27 @@ +#ifndef VL_VECTOR_H_INCLUDED +#define VL_VECTOR_H_INCLUDED + +#include + +/* implements a vector type (array of same-sized values) */ + +typedef struct vl__vector_tag vl_vector; + +vl_vector *vl_vector_new(size_t sz); +vl_vector *vl_vector_new_ex(size_t sz, size_t init_cap); +void vl_vector_free(vl_vector *vec); + +/* will abort if realloc fails to shrink the allocation (should never happen) */ +void vl_vector_shrink_to_size(vl_vector *vec); + +#define vl_newvec(_t) vl_vector_new(sizeof(_t)) +#define vl_newvec_ex(_t, _ic) vl_vector_new_ex(sizeof(_t), _ic) + +int vl_vector_push(vl_vector *vec, void *data); +int vl_vector_push_vec(vl_vector *vec, void *data, size_t n); +int vl_vector_push_2d(vl_vector *vec, void **data, size_t n); + +size_t vl_vector_size(const vl_vector *vec); +void *vl_vector_values(const vl_vector *vec, size_t *psz); + +#endif -- cgit v1.2.3-70-g09d2