46 typedef int (__cdecl *ArrayCompareFn)(
const void *elem1,
const void *elem2);
48 typedef int (*ArrayCompareFn)(
const void *elem1,
const void *elem2);
59typedef void (*ArrayMapFn)(
void *elem,
void *clientData);
66typedef int (*ArrayMapFn2)(
void *elem,
void *clientData);
75typedef void (*ArrayElementFreeFn)(
void *elem);
118DArray ArrayNew(
int elemSize,
int numElemsToAllocate,
119 ArrayElementFreeFn elemFreeFn);
134void ArrayFree(DArray array);
142int ArrayLength(
const DArray array);
159void *ArrayNth(DArray array,
int n);
171void ArrayAppend(DArray array,
const void *newElem);
181void ArrayInsertAt(DArray array,
const void *newElem,
int n);
190void ArrayInsertSorted(DArray array,
const void *newElem, ArrayCompareFn comparator);
202void ArrayDeleteAt(DArray array,
int n);
212void ArrayRemoveAt(DArray array,
int n);
225void ArrayReplaceAt(DArray array,
const void *newElem,
int n);
234void ArraySort(DArray array, ArrayCompareFn comparator);
258int ArraySearch(DArray array,
const void *key, ArrayCompareFn comparator,
259 int fromIndex,
int isSorted);
271void ArrayMap(DArray array, ArrayMapFn fn,
void *clientData);
278void ArrayMapBackwards(DArray array, ArrayMapFn fn,
void *clientData);
287void * ArrayMap2(DArray array, ArrayMapFn2 fn,
void *clientData);
293void * ArrayMapBackwards2(DArray array, ArrayMapFn2 fn,
void *clientData);
299void ArrayClear(DArray array);
305void *ArrayGetDataPtr(DArray array);
311void ArraySetDataPtr(DArray array,
void *ptr,
int count,
int capacity);