aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorFuwn <[email protected]>2022-02-03 10:54:07 +0000
committerFuwn <[email protected]>2022-02-03 10:54:07 +0000
commit47b5504cfd0224bf82477549236a363b9e0dc8b5 (patch)
treefb962ac20d24bc822945bc4a02325b1ce079b46e /include
parentrevert(cmake): re-add `-Werror` (diff)
downloadviv-47b5504cfd0224bf82477549236a363b9e0dc8b5.tar.xz
viv-47b5504cfd0224bf82477549236a363b9e0dc8b5.zip
feat(dynamic_array): implement for future use
Diffstat (limited to 'include')
-rw-r--r--include/viv/dynamic_array.h34
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 */