32#define HASHTABLE_AUTO_RESIZE 0 
   38typedef struct _HashTable
 
 
  206#define hashtable_pair_key(p) p->bucket->key 
  217#define hashtable_pair_value(p) p->bucket->data 
  270#define hashtable_iter_key(iter) iter.liter->key 
  281#define hashtable_iter_value(iter) iter.liter->data 
bool(* EqualFunc)(const void *a, const void *b)
void(* FreeFunc)(void *p)
uint32_t(* HashFunc)(const void *ptr)
void hashtable_clear(HashTable *table)
void * hashtable_pair_get_key(const HashTablePair *pair)
void * hashtable_pair_get_value(const HashTablePair *pair)
void hashtable_iter_init(const HashTable *table, HashTableIter *iter)
void * hashtable_iter_get_value(const HashTableIter *iter)
size_t hashtable_count(const HashTable *table)
void * hashtable_iter_get_key(const HashTableIter *iter)
HashTable * hashtable_new(size_t size, HashFunc hash_func, EqualFunc compare_keys, FreeFunc free_key, FreeFunc free_value)
bool hashtable_key_exists(const HashTable *table, const void *key)
void hashtable_remove(HashTable *table, const void *key)
void hashtable_pair_set_value(HashTablePair *pair, void *value)
bool hashtable_iter_next(HashTableIter *iter)
void hashtable_init(HashTable *table, size_t size, HashFunc hash_func, EqualFunc compare_keys, FreeFunc free_key, FreeFunc free_value)
void hashtable_free(HashTable *table)
HashTableInsertResult
result of hashtable_set() method.
@ HASHTABLE_INSERT_RESULT_NEW
@ HASHTABLE_INSERT_RESULT_REPLACED
@ HASHTABLE_INSERT_RESULT_FAILED
struct _HashTablePair HashTablePair
void hashtable_destroy(HashTable *table)
HashTableInsertResult hashtable_set(HashTable *table, void *key, void *value, bool overwrite_key)
HashTablePair * hashtable_lookup(HashTable *table, const void *key)
Table containing lists of buckets to create associations between keys and values.
Structure to iterate over the elements of a HashTable.
Singly-linked list implementation storing keys & values.
Allocate memory blocks of same sizes.
Allocate groups of equal-sized chunks of memory.