diff options
author | dec05eba <dec05eba@protonmail.com> | 2020-01-24 09:11:53 +0100 |
---|---|---|
committer | dec05eba <dec05eba@protonmail.com> | 2020-01-24 09:11:53 +0100 |
commit | 1dd53ce54c2008e3a11a636a496853cf6f9a5d65 (patch) | |
tree | 73f8ff8d048c8b1e4c6cf7acfd3e229650d044d5 /include/std/hash_map.h | |
parent | 26f8fbc2c657ecffc874410691dd3fc83ba11131 (diff) |
Convert hash map to gc, implement more instructions and call command
Diffstat (limited to 'include/std/hash_map.h')
-rw-r--r-- | include/std/hash_map.h | 25 |
1 files changed, 0 insertions, 25 deletions
diff --git a/include/std/hash_map.h b/include/std/hash_map.h deleted file mode 100644 index b430d22..0000000 --- a/include/std/hash_map.h +++ /dev/null @@ -1,25 +0,0 @@ -#ifndef TSL_HASH_MAP_H -#define TSL_HASH_MAP_H - -#include "string_view.h" -#include <stdint.h> - -typedef uint64_t (*TslHashFunc)(const void *data, size_t size); - -/* TODO: Optimize small hash map by using the members of the struct instead of allocating on heap */ -typedef struct { - void *buckets_data; /* value=TslHashMapNode<void*>, data=|hash(uint64_t) + key_size(size_t) + key_data(...) data_size(size_t) + data_data(...)| */ - size_t buckets_size; - size_t buckets_capacity; -} TslHashMap; - -void tsl_hash_map_init(TslHashMap *self); -void tsl_hash_map_deinit(TslHashMap *self); - -int tsl_hash_map_insert(TslHashMap *self, const TslStringView *key, const void *data, size_t size, TslHashFunc hash_func); -/* Get a reference to the value by key @key, or NULL if it doesn't exist */ -void* tsl_hash_map_get(TslHashMap *self, const TslStringView *key, TslHashFunc hash_func); -/* Get a reference to the value by key @key, or insert a new value for the key with a size of @size */ -int tsl_hash_map_get_or_create(TslHashMap *self, const TslStringView *key, size_t size, TslHashFunc hash_func, void **output); - -#endif /* TSL_HASH_MAP_H */ |