From b924fc2f66d46ee10aa3b800a6521d3940919f9f Mon Sep 17 00:00:00 2001 From: rsiddharth Date: Fri, 17 Apr 2020 21:02:35 -0400 Subject: nserver/ -> ./ --- src/tstree.h | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 src/tstree.h (limited to 'src/tstree.h') diff --git a/src/tstree.h b/src/tstree.h new file mode 100644 index 0000000..bd22e0d --- /dev/null +++ b/src/tstree.h @@ -0,0 +1,36 @@ +/* SPDX-License-Identifier: BSD-3-Clause */ +/* + * Copyright © 2010, Zed A. Shaw. + * Copyright © 2020 rsiddharth + */ + +#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