mirror of
https://github.com/pret/pokerevo.git
synced 2026-09-30 15:26:59 -04:00
41 lines
1.1 KiB
C
41 lines
1.1 KiB
C
#ifndef POKEREVO_DARRAY_H
|
|
#define POKEREVO_DARRAY_H
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
typedef s32 (*CompareFunction)(const void *, const void *);
|
|
typedef BOOL (*MapFunction)(const void *, s32);
|
|
typedef void (*DtorFunction)(void *);
|
|
|
|
typedef struct DArray {
|
|
s32 size;
|
|
s32 capacity;
|
|
u32 elemSz;
|
|
s32 growAmount;
|
|
DtorFunction elemDtor;
|
|
char *buf;
|
|
} DArray;
|
|
|
|
DArray *ArrayNew(u32 elemSz, s32 initialCap, DtorFunction dtor);
|
|
void ArrayFree(DArray *d);
|
|
s32 ArrayLength(DArray *d);
|
|
void *ArrayNth(DArray *d, s32 n);
|
|
void ArrayAppend(DArray *d, void *elem);
|
|
void ArrayInsertSorted(DArray *d, void *elem, CompareFunction compar);
|
|
void ArrayRemoveAt(DArray *d, s32 n);
|
|
void ArrayDeleteAt(DArray *d, s32 n);
|
|
void ArrayReplaceAt(DArray *d, void *elem, s32 n);
|
|
void ArraySort(DArray *d, CompareFunction compar);
|
|
s32 ArraySearch(DArray *d, void *elem, CompareFunction cmp, s32 start, s32 doBinarySearch);
|
|
void ArrayMapBackwards(DArray *d, MapFunction map, s32 p3);
|
|
void *ArrayMapBackwards2(DArray *d, MapFunction map, s32 p3);
|
|
void ArrayClear(DArray *d);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif //POKEREVO_DARRAY_H
|