45typedef int (*ArrayCompareFn)(
const void *elem1,
const void *elem2);
55typedef void (*ArrayMapFn)(
void *elem,
void *clientData);
62typedef int (*ArrayMapFn2)(
void *elem,
void *clientData);
71typedef void (*ArrayElementFreeFn)(
void *elem);
114DArray ArrayNew(
int elemSize,
int numElemsToAllocate,
115 ArrayElementFreeFn elemFreeFn);
130void ArrayFree(DArray array);
138int ArrayLength(
const DArray array);
155void *ArrayNth(DArray array,
int n);
167void ArrayAppend(DArray array,
const void *newElem);
177void ArrayInsertAt(DArray array,
const void *newElem,
int n);
186void ArrayInsertSorted(DArray array,
const void *newElem, ArrayCompareFn comparator);
198void ArrayDeleteAt(DArray array,
int n);
208void ArrayRemoveAt(DArray array,
int n);
221void ArrayReplaceAt(DArray array,
const void *newElem,
int n);
230void ArraySort(DArray array, ArrayCompareFn comparator);
254int ArraySearch(DArray array,
const void *key, ArrayCompareFn comparator,
255 int fromIndex,
int isSorted);
267void ArrayMap(DArray array, ArrayMapFn fn,
void *clientData);
274void ArrayMapBackwards(DArray array, ArrayMapFn fn,
void *clientData);
283void * ArrayMap2(DArray array, ArrayMapFn2 fn,
void *clientData);
289void * ArrayMapBackwards2(DArray array, ArrayMapFn2 fn,
void *clientData);
295void ArrayClear(DArray array);