From aab7fe08faf2aec394174b2ee9782988bfc7fa30 Mon Sep 17 00:00:00 2001 From: Kyle Gunger Date: Wed, 1 May 2024 03:59:46 -0400 Subject: Finish vector code --- include/osm/utils.h | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) (limited to 'include/osm') diff --git a/include/osm/utils.h b/include/osm/utils.h index 5a53f41..441cce2 100644 --- a/include/osm/utils.h +++ b/include/osm/utils.h @@ -1,6 +1,8 @@ #ifndef OSM_UTILS_H #define OSM_UTILS_H +#include + // Vector utilities /** @@ -11,27 +13,30 @@ typedef struct { void *data; } Vector; +/** + * Get an initialized vector struct + */ Vector vect_init(unsigned int elsz); /** * Add an element to an arbitrary index in the vector */ -void vect_add(Vector *vec, unsigned int index); +bool vect_add(Vector *vec, unsigned int index, void *el); /** * Remove an element from an arbitrary index in the vector */ -void vect_remove(Vector *vec, unsigned int index); +bool vect_remove(Vector *vec, unsigned int index); /** * Push an element to the end of the vector */ -void vect_push(Vector *vec, void *el); +bool vect_push(Vector *vec, void *el); /** * Pop an element from the end of the vector */ -void vect_pop(Vector *vec); +bool vect_pop(Vector *vec); /** * Get an element from the vector @@ -41,7 +46,12 @@ void *vect_get(Vector *vec, unsigned int index); /** * Set an element inside the vector */ -void *vect_set(Vector *vec, unsigned int index, void *el); +bool vect_set(Vector *vec, unsigned int index, void *el); + +/** + * Clear all data in a vector + */ +void vect_clear(Vector *vec); /** * Remove all associated data from the vector -- cgit v1.2.3