7#if !defined(TETENGO_TRIE_TRIE_H)
8#define TETENGO_TRIE_TRIE_H
14#if defined(__cplusplus)
18#if !defined(DOCUMENTATION)
19#if !defined(TYPEDEF_TETENGO_TRIE_STORAGE_T)
20#define TYPEDEF_TETENGO_TRIE_STORAGE_T
21typedef struct tetengo_trie_storage_tag tetengo_trie_storage_t;
23#if !defined(TYPEDEF_TETENGO_TRIE_TRIE_T)
24#define TYPEDEF_TETENGO_TRIE_TRIE_T
25typedef struct tetengo_trie_trie_tag tetengo_trie_trie_t;
27#if !defined(TYPEDEF_TETENGO_TRIE_TRIEITERATOR_T)
28#define TYPEDEF_TETENGO_TRIE_TRIEITERATOR_T
29typedef struct tetengo_trie_trieIterator_tag tetengo_trie_trieIterator_t;
95 size_t element_value_size,
97 void* p_adding_observer_context,
99 void* p_done_observer_context,
100 size_t double_array_density_factor);
197#if defined(__cplusplus)
An element type.
Definition trie.h:38
const void * p_value
Definition trie.h:43
const char * key
Definition trie.h:40
void tetengo_trie_trie_nullAddingObserver(const char *, void *)
A null adding observer.
void(* tetengo_trie_trie_addingObserver_t)(const char *serialized_key, void *p_context)
An observer type called when a key is adding.
Definition trie.h:52
tetengo_trie_trie_t * tetengo_trie_trie_create(const tetengo_trie_trieElement_t *p_elements, size_t element_count, size_t element_value_size, tetengo_trie_trie_addingObserver_t adding_observer, void *p_adding_observer_context, tetengo_trie_trie_doneObserver_t done_observer, void *p_done_observer_context, size_t double_array_density_factor)
Creates a trie.
const tetengo_trie_storage_t * tetengo_trie_trie_getStorage(const tetengo_trie_trie_t *p_trie)
Returns the pointer to the storage.
void tetengo_trie_trie_nullDoneObserver(void *)
A null done observer.
void tetengo_trie_trie_destroy(const tetengo_trie_trie_t *p_trie)
Destroys a trie.
bool tetengo_trie_trie_empty(const tetengo_trie_trie_t *p_trie)
Returns true when the trie is empty.
size_t tetengo_trie_trie_size(const tetengo_trie_trie_t *p_trie)
Returns the size of the trie.
void tetengo_trie_trie_destroyIterator(const tetengo_trie_trieIterator_t *p_iterator)
Destroys an iterator.
bool tetengo_trie_trie_contains(const tetengo_trie_trie_t *p_trie, const char *key)
Returns true when the trie contains the given key.
size_t tetengo_trie_trie_defaultDoubleArrayDensityFactor(void)
Returns the default double array density factor.
tetengo_trie_trieIterator_t * tetengo_trie_trie_createIterator(const tetengo_trie_trie_t *p_trie)
Creates an iterator.
tetengo_trie_trie_t * tetengo_trie_trie_createWithStorage(tetengo_trie_storage_t *p_storage)
Creates a trie.
struct tetengo_trie_trieElement_tag tetengo_trie_trieElement_t
An element type.
void(* tetengo_trie_trie_doneObserver_t)(void *p_context)
An observer type called when the building is done.
Definition trie.h:64
const void * tetengo_trie_trie_find(const tetengo_trie_trie_t *p_trie, const char *key)
Finds the value object correspoinding the given key.
const tetengo_trie_trie_t * tetengo_trie_trie_subtrie(const tetengo_trie_trie_t *p_trie, const char *key_prefix)
Creates a subtrie.