summaryrefslogtreecommitdiff
path: root/src/libdatastruct/bigkv_search.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/libdatastruct/bigkv_search.c')
-rw-r--r--src/libdatastruct/bigkv_search.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/libdatastruct/bigkv_search.c b/src/libdatastruct/bigkv_search.c
new file mode 100644
index 0000000..bb91e3a
--- /dev/null
+++ b/src/libdatastruct/bigkv_search.c
@@ -0,0 +1,12 @@
+/* ISC license. */
+
+#include <skalibs/genalloc.h>
+#include <skalibs/avltree.h>
+#include <skalibs/bigkv.h>
+
+char const *bigkv_search (bigkv_t const *b, char const *k)
+{
+ uint32_t i ;
+ if (!avltree_search(&b->map, k, &i)) return 0 ;
+ return b->storage.s + genalloc_s(bigkv_node_t, &b->nodes)[i].v ;
+}