diff options
| author | Fuwn <[email protected]> | 2022-02-03 10:54:07 +0000 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2022-02-03 10:54:07 +0000 |
| commit | 47b5504cfd0224bf82477549236a363b9e0dc8b5 (patch) | |
| tree | fb962ac20d24bc822945bc4a02325b1ce079b46e /include | |
| parent | revert(cmake): re-add `-Werror` (diff) | |
| download | viv-47b5504cfd0224bf82477549236a363b9e0dc8b5.tar.xz viv-47b5504cfd0224bf82477549236a363b9e0dc8b5.zip | |
feat(dynamic_array): implement for future use
Diffstat (limited to 'include')
| -rw-r--r-- | include/viv/dynamic_array.h | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/include/viv/dynamic_array.h b/include/viv/dynamic_array.h new file mode 100644 index 0000000..40deac6 --- /dev/null +++ b/include/viv/dynamic_array.h @@ -0,0 +1,34 @@ +/* http://www.martinbroadhurst.com/dynamic-array-in-c.html */ + +#ifndef VIV_DYNAMIC_ARRAY_H +#define VIV_DYNAMIC_ARRAY_H + +#pragma once + +typedef struct { + void **buffer; + unsigned int size; + unsigned int count; +} VIV_DYNAMIC_ARRAY_dynamic_array; + +typedef void (*VIV_DYNAMIC_ARRAY_for_function)(void *); + +VIV_DYNAMIC_ARRAY_dynamic_array *VIV_DYNAMIC_ARRAY_create(unsigned int); +void VIV_DYNAMIC_ARRAY_empty(VIV_DYNAMIC_ARRAY_dynamic_array *); +void VIV_DYNAMIC_ARRAY_delete(VIV_DYNAMIC_ARRAY_dynamic_array *); +void VIV_DYNAMIC_ARRAY_add_tail(VIV_DYNAMIC_ARRAY_dynamic_array *, void *); +void VIV_DYNAMIC_ARRAY_add_head(VIV_DYNAMIC_ARRAY_dynamic_array *, void *); +void *VIV_DYNAMIC_ARRAY_remove_tail(VIV_DYNAMIC_ARRAY_dynamic_array *); +void *VIV_DYNAMIC_ARRAY_remove_head(VIV_DYNAMIC_ARRAY_dynamic_array *); +void VIV_DYNAMIC_ARRAY_insert(VIV_DYNAMIC_ARRAY_dynamic_array *, unsigned int, void *); +void *VIV_DYNAMIC_ARRAY_remove(VIV_DYNAMIC_ARRAY_dynamic_array *, unsigned int); +void *VIV_DYNAMIC_ARRAY_get(const VIV_DYNAMIC_ARRAY_dynamic_array *, unsigned int); +void *VIV_DYNAMIC_ARRAY_set(VIV_DYNAMIC_ARRAY_dynamic_array *, unsigned int, void *); +void VIV_DYNAMIC_ARRAY_for_each( + const VIV_DYNAMIC_ARRAY_dynamic_array *, + VIV_DYNAMIC_ARRAY_for_function +); +unsigned int VIV_DYNAMIC_ARRAY_get_count(const VIV_DYNAMIC_ARRAY_dynamic_array *); +void VIV_DYNAMIC_ARRAY_set_size(VIV_DYNAMIC_ARRAY_dynamic_array *, unsigned int); + +#endif /* VIV_DYNAMIC_ARRAY_H */ |