summaryrefslogtreecommitdiff
path: root/src/libdatastruct/bigkv_search.c
diff options
context:
space:
mode:
authorLaurent Bercot <ska-skaware@skarnet.org>2019-10-25 09:27:56 +0000
committerLaurent Bercot <ska-skaware@skarnet.org>2019-10-25 09:27:56 +0000
commit9945737a8f0612b8980d9da3db3e6a4ab8a247f4 (patch)
tree7d5ceaeb38f652f6162a1341cadb83cf1089260d /src/libdatastruct/bigkv_search.c
parent03866d3569baa6c9a75a02749a2cbda47785b031 (diff)
downloadskalibs-9945737a8f0612b8980d9da3db3e6a4ab8a247f4.tar.xz
Add bigkv
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 ;
+}