From 9130e47b171c5182ffe6c14eb710fdcb73943de4 Mon Sep 17 00:00:00 2001 From: Katharina Fey Date: Sat, 13 Jul 2019 06:40:05 +0100 Subject: Adding initial support for HASH nodes This PR adds initial support for HASH data nodes in libbowl. This allows a performant key-value store lookup in a node tree. The hashing code implements the "murmur" hash, which has shown good performance over at [`libcuckoo`]. Currently there is no extended hashing strategy, which should definitely be changed. [`libcuckoo`]: https://github.com/qaul/libcuckoo (currently a collision will cause a recursive re-alloc) Some of the type-level hacks also begs the question if a PAIR data node might be warranted, even though it would break the simple design around bowl->data. --- utils.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'utils.h') diff --git a/utils.h b/utils.h index c7c2178..4fa7a90 100644 --- a/utils.h +++ b/utils.h @@ -13,7 +13,9 @@ err_t _array_search(void **, size_t, size_t *out, void *in); err_t _array_remove(void **, size_t idx, size_t len, void **out); +err_t _hash(char *str, size_t len, size_t *out); + #ifdef __cplusplus } #endif -#endif // _UTIL_H_ \ No newline at end of file +#endif // _UTIL_H_ -- cgit v1.2.3