fr_trie_key_t get_key,
fr_free_t free_data);
+/** Find data in a htrie
+ *
+ */
static inline CC_HINT(nonnull) void *fr_htrie_find(fr_htrie_t *ht, void const *data)
{
return ht->funcs.find(ht->store, data);
}
-static inline CC_HINT(nonnull) int fr_htrie_insert(fr_htrie_t *ht, void const *data)
+/** Insert data into a htrie
+ *
+ */
+static inline CC_HINT(nonnull) bool fr_htrie_insert(fr_htrie_t *ht, void const *data)
{
return ht->funcs.insert(ht->store, data);
}
-static inline CC_HINT(nonnull) int fr_htrie_delete(fr_htrie_t *ht, void const *data)
+/** Replace data in a htrie, freeing previous data if free_data cb was passed to fr_htrie_alloc
+ *
+ */
+static inline CC_HINT(nonnull) int fr_htrie_replace(fr_htrie_t *ht, void const *data)
{
- return ht->funcs.delete(ht->store, data);
+ return ht->funcs.replace(ht->store, data);
}
-static inline CC_HINT(nonnull) int fr_htrie_replace(fr_htrie_t *ht, void const *data)
+/** Remove data from a htrie without freeing it
+ *
+ */
+static inline CC_HINT(nonnull) int fr_htrie_remove(fr_htrie_t *ht, void const *data)
{
- return ht->funcs.replace(ht->store, data);
+ return ht->funcs.remove(ht->store, data);
+}
+
+/** Delete data from a htrie, freeing it if free_data cb was passed to fr_htrie_alloc
+ *
+ */
+static inline CC_HINT(nonnull) bool fr_htrie_delete(fr_htrie_t *ht, void const *data)
+{
+ return ht->funcs.delete(ht->store, data);
}
+/** Return the number of elements in the htrie
+ *
+ */
static inline CC_HINT(nonnull) int fr_htrie_num_elements(fr_htrie_t *ht)
{
return ht->funcs.num_elements(ht->store);