diff options
author | Kyle Gunger <kgunger12@gmail.com> | 2024-05-01 03:11:07 -0400 |
---|---|---|
committer | Kyle Gunger <kgunger12@gmail.com> | 2024-05-01 03:11:07 -0400 |
commit | feccf0adf3e6861b11a7768669a63c327f77ec10 (patch) | |
tree | 3aab13f202d0963ce74900dba8a508e68fe93614 /include/osm/utils.h | |
parent | 21938c4ed611cd0945d62502abdb74527a533e78 (diff) |
Vector code
Diffstat (limited to 'include/osm/utils.h')
-rw-r--r-- | include/osm/utils.h | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/include/osm/utils.h b/include/osm/utils.h new file mode 100644 index 0000000..5a53f41 --- /dev/null +++ b/include/osm/utils.h @@ -0,0 +1,52 @@ +#ifndef OSM_UTILS_H +#define OSM_UTILS_H + +// Vector utilities + +/** + * Vector represents a dynamic array + */ +typedef struct { + unsigned int count, size, elsz; + void *data; +} Vector; + +Vector vect_init(unsigned int elsz); + +/** + * Add an element to an arbitrary index in the vector + */ +void vect_add(Vector *vec, unsigned int index); + +/** + * Remove an element from an arbitrary index in the vector + */ +void vect_remove(Vector *vec, unsigned int index); + +/** + * Push an element to the end of the vector + */ +void vect_push(Vector *vec, void *el); + +/** + * Pop an element from the end of the vector + */ +void vect_pop(Vector *vec); + +/** + * Get an element from the vector + */ +void *vect_get(Vector *vec, unsigned int index); + +/** + * Set an element inside the vector + */ +void *vect_set(Vector *vec, unsigned int index, void *el); + +/** + * Remove all associated data from the vector + */ +void vect_end(Vector *vect); + + +#endif |