96#define SOPC_Array_Append(array, val) SOPC_Array_Append_Values((array), &(val), 1)
119#define SOPC_Array_Get(array, ty, index) (*((ty*) SOPC_Array_Get_Ptr((array), (index))))
bool SOPC_Array_Append_Values(SOPC_Array *array, const void *data, size_t n_elements)
Appends several values contiguous in memory to an array.
void SOPC_Array_Delete(SOPC_Array *array)
Deletes an array.
SOPC_Array_Free_Func * SOPC_Array_Get_Free_Func(SOPC_Array *array)
Returns the function used to clear the elements of an array on deletion.
struct _SOPC_Array SOPC_Array
Definition sopc_array.h:31
int SOPC_Array_Compare_Func(const void *a, const void *b)
Type of functions used to compare items when sorting an array.
Definition sopc_array.h:52
void SOPC_Array_Sort(SOPC_Array *array, SOPC_Array_Compare_Func *compare_func)
Sorts the elements in an array.
void * SOPC_Array_Get_Ptr(const SOPC_Array *array, size_t index)
Gets a pointer to a value in an array by its index.
SOPC_Array * SOPC_Array_Copy(const SOPC_Array *array)
Makes a copy of an array.
size_t SOPC_Array_Size(const SOPC_Array *array)
Gets the number of elements in an array.
void SOPC_Array_Free_Func(void *data)
Type of functions used to free array values.
Definition sopc_array.h:40
void * SOPC_Array_Into_Raw(SOPC_Array *array)
Converts a SOPC_Array into a raw C array.
SOPC_Array * SOPC_Array_Create(size_t element_size, size_t initial_capacity, SOPC_Array_Free_Func *free_func)
Creates a new array with a given capacity.
void SOPC_Array_Set_Free_Func(SOPC_Array *array, SOPC_Array_Free_Func *func)
Sets the function used to clear the array elements when it is deleted.