diff options
author | rsiddharth <s@ricketyspace.net> | 2020-01-28 20:21:58 -0500 |
---|---|---|
committer | rsiddharth <s@ricketyspace.net> | 2020-04-17 20:56:36 -0400 |
commit | 7b87d0d194f428ee1e9d32c5022c1ea9620a9f84 (patch) | |
tree | 59be9c939532be5a3010b07e2bd7044a96ff1fa0 /nserver/src/tstree.h | |
parent | 6df55dc3b463b9e9017abb0461c861a6890ec195 (diff) |
nserver: Add tstree.h
Diffstat (limited to 'nserver/src/tstree.h')
-rw-r--r-- | nserver/src/tstree.h | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/nserver/src/tstree.h b/nserver/src/tstree.h new file mode 100644 index 0000000..6defc39 --- /dev/null +++ b/nserver/src/tstree.h @@ -0,0 +1,30 @@ +#ifndef _TSTree_h +#define _TSTree_h + +#include <stdlib.h> +#include <darray.h> + +typedef struct TSTree { + char splitchar; + struct TSTree *low; + struct TSTree *equal; + struct TSTree *high; + void *value; +} TSTree; + +void *TSTree_search(TSTree *root, const char *key, size_t len); + +void *TSTree_search_prefix(TSTree *root, const char *key, size_t len); + +DArray *TSTree_collect(TSTree *root, const char *key, size_t len); + +typedef void (* TSTree_traverse_cb) (void *value, void *data); + +TSTree *TSTree_insert(TSTree *node, const char *key, size_t len, + void *value); + +void TSTree_traverse(TSTree *node, TSTree_traverse_cb cb, void *data); + +void TSTree_destroy(TSTree *root); + +#endif |