31#define ASSOC_ARRAY_MAX_SIZE (SSIZE_MAX / sizeof(void *)) 
   37typedef struct _AssocArray
 
   63        const struct _AssocArray *
array;
 
 
 
  168#define assoc_array_pair_key(p) p->array->keys[p->offset] 
  179#define assoc_array_pair_value(p) p->array->values[p->offset] 
  240#define assoc_array_iter_key(iter) iter.array->keys[iter.offset] 
  251#define assoc_array_iter_value(iter) iter.array->values[iter.offset] 
void assoc_array_iter_init(const AssocArray *array, AssocArrayIter *iter)
AssocArrayInsertResult
result of assoc_array_set() method.
@ ASSOCARRAY_INSERT_RESULT_NEW
@ ASSOCARRAY_INSERT_RESULT_REPLACED
@ ASSOCARRAY_INSERT_RESULT_FAILED
void assoc_array_init(AssocArray *array, CompareFunc compare_keys, FreeFunc free_key, FreeFunc free_value)
void assoc_array_pair_set_value(AssocArrayPair *pair, void *value)
void * assoc_array_iter_get_value(const AssocArrayIter *iter)
AssocArray * assoc_array_new(CompareFunc compare_keys, FreeFunc free_key, FreeFunc free_value)
void * assoc_array_iter_get_key(const AssocArrayIter *iter)
AssocArrayPair * assoc_array_lookup(AssocArray *array, const void *key)
void * assoc_array_pair_get_value(const AssocArrayPair *pair)
bool assoc_array_iter_next(AssocArrayIter *iter)
void assoc_array_remove(AssocArray *array, const void *key)
bool assoc_array_key_exists(const AssocArray *array, const void *key)
void assoc_array_clear(AssocArray *array)
size_t assoc_array_size(const AssocArray *array)
void assoc_array_free(AssocArray *array)
struct _AssocArrayPair AssocArrayIter
size_t assoc_array_count(const AssocArray *array)
AssocArrayInsertResult assoc_array_set(AssocArray *array, void *key, void *value, bool overwrite_key)
void assoc_array_destroy(AssocArray *array)
struct _AssocArrayPair AssocArrayPair
void * assoc_array_pair_get_key(const AssocArrayPair *pair)
const struct _AssocArray * array
Array containing associations between keys and values.
int32_t(* CompareFunc)(const void *a, const void *b)
void(* FreeFunc)(void *p)