142#define TOMMY_TRIE_BIT 32
151#define TOMMY_TRIE_TREE_MAX (64 / sizeof(void*))
157#define TOMMY_TRIE_BLOCK_SIZE (TOMMY_TRIE_TREE_MAX * sizeof(void*))
162#define TOMMY_TRIE_TREE_BIT TOMMY_ILOG2(TOMMY_TRIE_TREE_MAX)
167#define TOMMY_TRIE_BUCKET_BIT ((TOMMY_TRIE_BIT % TOMMY_TRIE_TREE_BIT) + TOMMY_TRIE_TREE_BIT)
173#define TOMMY_TRIE_BUCKET_MAX (1 << TOMMY_TRIE_BUCKET_BIT)
Allocator of fixed size blocks.
Definition: tommyalloc.h:51
Data structure node.
Definition: tommytypes.h:211
void * data
Pointer to the object containing the node.
Definition: tommytypes.h:228
Trie container type.
Definition: tommytrie.h:185
tommy_allocator * alloc
Allocator for internal nodes.
Definition: tommytrie.h:189
tommy_size_t count
Number of elements.
Definition: tommytrie.h:187
tommy_trie_node * bucket[TOMMY_TRIE_BUCKET_MAX]
First tree level.
Definition: tommytrie.h:186
tommy_size_t node_count
Number of nodes.
Definition: tommytrie.h:188
Allocator of fixed size blocks.
TOMMY_API void * tommy_trie_remove(tommy_trie *trie, tommy_key_t key)
Searches and removes the first element with the specified key.
struct tommy_trie_struct tommy_trie
Trie container type.
TOMMY_API void tommy_trie_init(tommy_trie *trie, tommy_allocator *alloc)
Initializes the trie.
TOMMY_API tommy_size_t tommy_trie_memory_usage(tommy_trie *trie)
Gets the size of allocated memory.
TOMMY_API void tommy_trie_insert(tommy_trie *trie, tommy_trie_node *node, void *data, tommy_key_t key)
Inserts an element in the trie.
tommy_node tommy_trie_node
Trie node.
Definition: tommytrie.h:179
void * tommy_trie_search(tommy_trie *trie, tommy_key_t key)
Searches an element in the trie.
Definition: tommytrie.h:238
TOMMY_API void * tommy_trie_remove_existing(tommy_trie *trie, tommy_trie_node *node)
Removes an element from the trie.
tommy_size_t tommy_trie_count(tommy_trie *trie)
Gets the number of elements.
Definition: tommytrie.h:258
TOMMY_API tommy_trie_node * tommy_trie_bucket(tommy_trie *trie, tommy_key_t key)
Gets the bucket of the specified key.
uint64_t tommy_size_t
Generic size_t type.
Definition: tommytypes.h:60
tommy_size_t tommy_key_t
Type used in indexed data structures to store the key of an object.
Definition: tommytypes.h:188