summaryrefslogtreecommitdiff
path: root/src/array.h
diff options
context:
space:
mode:
authorAldrik Ramaekers <aldrikboy@gmail.com>2024-03-03 14:29:17 +0100
committerAldrik Ramaekers <aldrikboy@gmail.com>2024-03-03 14:29:17 +0100
commita3685d46c883c96e122b12bfebc6975705962e07 (patch)
treecddf8e88aee97ffe791ebaf5a5243d2346d8450d /src/array.h
v2 initial commit
Diffstat (limited to 'src/array.h')
-rw-r--r--src/array.h29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/array.h b/src/array.h
new file mode 100644
index 0000000..f00c220
--- /dev/null
+++ b/src/array.h
@@ -0,0 +1,29 @@
+#ifndef INCLUDE_ARRAY
+#define INCLUDE_ARRAY
+
+#define ASSERT(e_) {if(!(e_)){*(int*)0=0;}}
+
+#include "mutex.h"
+
+typedef struct t_array
+{
+ int length;
+ int reserved_length;
+ int entry_size;
+ int reserve_jump;
+ void *data;
+ mutex mutex;
+} array;
+
+array array_create(int entry_size);
+int array_push(array *array, void *data);
+int array_push_size(array *array, void *data, int data_size);
+void array_remove_at(array *array, int at);
+void array_remove(array *array, void *ptr);
+void array_remove_by(array *array, void *data);
+void *array_at(array *array, int at);
+void array_destroy(array *array);
+void array_reserve(array *array, int reserve_count);
+array array_copy(array *array);
+
+#endif \ No newline at end of file