X-Git-Url: https://pd.if.org/git/?p=nbds;a=blobdiff_plain;f=include%2Fmap.h;h=42a5a1d2e8c2ebf1d2d196dc14506259e9aa466c;hp=71d0ddee0b90e9c45547fb3576a1c58cb32736b3;hb=11572afcaf218cfcbb8e9747f22739f75252c4f4;hpb=f1098084dd54496a61f9a254541190df77edd166 diff --git a/include/map.h b/include/map.h index 71d0dde..42a5a1d 100644 --- a/include/map.h +++ b/include/map.h @@ -1,19 +1,17 @@ #ifndef MAP_H #define MAP_H +#include "datatype.h" + typedef struct map map_t; typedef const struct map_impl *map_type_t; -typedef int (*cmp_fun_t) (void *, void *); -typedef void * (*clone_fun_t) (void *); -typedef uint32_t (*hash_fun_t) (void *); - extern map_type_t MAP_TYPE_HASHTABLE; extern map_type_t MAP_TYPE_SKIPLIST; extern map_type_t MAP_TYPE_LIST; -map_t * map_alloc (map_type_t map_type, cmp_fun_t cmp_fun, hash_fun_t hash_fun, clone_fun_t clone_fun); +map_t * map_alloc (map_type_t map_type, const datatype_t *key_type); uint64_t map_get (map_t *map, void *key); uint64_t map_set (map_t *map, void *key, uint64_t new_val); uint64_t map_add (map_t *map, void *key, uint64_t new_val);