summaryrefslogtreecommitdiff
path: root/src/array.h
diff options
context:
space:
mode:
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