From 7b87d0d194f428ee1e9d32c5022c1ea9620a9f84 Mon Sep 17 00:00:00 2001 From: rsiddharth Date: Tue, 28 Jan 2020 20:21:58 -0500 Subject: nserver: Add tstree.h --- nserver/src/tstree.h | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 nserver/src/tstree.h (limited to 'nserver/src/tstree.h') 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 +#include + +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 -- cgit v1.2.3