1#ifndef ARC_STD_HASHTABLE_H_
2#define ARC_STD_HASHTABLE_H_
int8_t(* ARC_Hashtable_KeyCompare)(void *key1, size_t *key1size, void *key2, size_t *key2size)
key comparison function ptr
void ARC_Hashtable_Destroy(ARC_Hashtable *htable, ARC_HashtableNode_DestroyExternal external, void *userdata)
destroys ARC_Hashtable type
void(* ARC_HashtableNode_DestroyExternal)(ARC_HashtableNode *node, void *userdata)
callback to allow memory freeing of nodes
void ARC_Hashtable_Get(ARC_Hashtable *htable, void *key, size_t keysize, void **data)
gets value from hashtable by key
void ARC_Hashtable_Create(ARC_Hashtable **htable, uint32_t bucketsize, ARC_Hashtable_Hash hash, ARC_Hashtable_KeyCompare compare)
cteates ARC_Hashtable type
struct ARC_Hashtable ARC_Hashtable
the arc hashtable data type
void ARC_Hashtable_Remove(ARC_Hashtable *htable, void *key, size_t keysize, ARC_HashtableNode_DestroyExternal external, void *userdata)
removes value from hashtable
void ARC_Hashtable_Add(ARC_Hashtable *htable, void *key, size_t keysize, void *data)
adds value to hastable
void(* ARC_Hashtable_Hash)(void *key, size_t *keysize, uint32_t *hashval)
a hashing function ptr