]> git.lizzy.rs Git - dragonblocks_alpha.git/blob - src/array.h
Append .zip to ZIP files generated by release script
[dragonblocks_alpha.git] / src / array.h
1 #ifndef _ARRAY_H_
2 #define _ARRAY_H_
3
4 #define ARRAY_REALLOC_EXTRA 25
5
6 #include <stddef.h>
7 #include <stdbool.h>
8 #include "types.h"
9
10 typedef s8 (*ArrayComparator)(void *search, void *element);
11
12 typedef struct {
13         bool success;
14         size_t index;
15 } ArraySearchResult;
16
17 typedef struct
18 {
19         size_t membsiz;
20         size_t siz, cap;
21         void *ptr;
22         ArrayComparator cmp;
23 } Array;
24
25 Array array_create(size_t membsiz);
26 void array_insert(Array *array, void *elem, size_t idx);
27 void array_append(Array *array, void *elem);
28 ArraySearchResult array_search(Array *array, void *search);
29
30 #endif