summaryrefslogtreecommitdiff
path: root/map.h
diff options
context:
space:
mode:
Diffstat (limited to 'map.h')
-rw-r--r--map.h43
1 files changed, 4 insertions, 39 deletions
diff --git a/map.h b/map.h
index 6519d0d..6267877 100644
--- a/map.h
+++ b/map.h
@@ -1,12 +1,7 @@
#ifndef __SAFEC_MAP_H
+#define __SAFEC_MAP_H
#include "types.h"
-
-size_t hash_bytes(const void* start, size_t size);
-
-typedef size_t (*hash_func_t)(const void* key);
-typedef bool (*eq_func_t)(const void* key1, const void* key2);
-typedef void (*map_foreach_func_t)(void* key, void* val, void* data);
-typedef void (*set_foreach_func_t)(void* key, void* data);
+#include "hash.h"
struct __map_entry {
void* key;
@@ -44,6 +39,8 @@ void* map_get_or_default(const map_t* map, const void* key, void* default_val);
void* map_compute_if_absent(map_t* map, void* key, void* default_val);
void map_put(map_t* map, void* key, void* val);
void* map_remove(map_t* map, const void* key);
+
+typedef void (*map_foreach_func_t)(void* key, void* val, void* data);
void map_foreach_readonly(
map_t* map,
map_foreach_func_t foreach_func,
@@ -53,36 +50,4 @@ void map_foreach_readwrite(
map_foreach_func_t foreach_func,
void* data);
-typedef struct {
- hash_func_t hash_func;
- eq_func_t eq_func;
- double load_limit;
-
- size_t size;
-
- size_t __num_buckets;
- void** __buckets;
-} set_t;
-
-void set_init(
- set_t* set,
- hash_func_t hash_func,
- eq_func_t eq_func,
- double load_limit);
-void set_init_capacity(
- set_t* set,
- hash_func_t hash_func,
- eq_func_t eq_func,
- double load_limit,
- size_t capacity);
-void set_destroy(set_t* set);
-
-bool set_contains(const set_t* set, const void* key);
-void* set_get(const set_t* set, const void* key);
-void* set_get_or_default(const set_t* set, const void* key, void* default_key);
-void* set_add(set_t* set, void* key);
-void set_put(set_t* set, void* key);
-void* set_remove(set_t* set, const void* key);
-void set_foreach(set_t* set, set_foreach_func_t foreach_func, void* data);
-
#endif