diff options
| author | Carson Fleming <[email protected]> | 2026-02-14 02:53:37 -0500 |
|---|---|---|
| committer | Carson Fleming <[email protected]> | 2026-02-14 02:53:37 -0500 |
| commit | 9ef0abf7ab5266f6b58c0e55bbe9dd9038bc7f6e (patch) | |
| tree | 54abfa548d7aae56c1ace1a72bce8581570b5fd2 /map.h | |
| parent | 1a08245d480b8a18fcbc80efd8602cdb90d6ed5e (diff) | |
| download | safec-9ef0abf7ab5266f6b58c0e55bbe9dd9038bc7f6e.tar.gz | |
more like dangerousc.org atp
Diffstat (limited to 'map.h')
| -rw-r--r-- | map.h | 43 |
1 files changed, 4 insertions, 39 deletions
@@ -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 |
