From e3a119b910a3735de914e686fd4643c0064654bc Mon Sep 17 00:00:00 2001 From: Fabrice Date: Fri, 20 Mar 2026 19:00:37 +0100 Subject: move to impl --- cheesemap.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'cheesemap.c') diff --git a/cheesemap.c b/cheesemap.c index c443593..5e6c124 100644 --- a/cheesemap.c +++ b/cheesemap.c @@ -23,3 +23,21 @@ void cm_raw_drop(struct cheesemap_raw* map, uintptr_t entry_size, uint8_t* origin = cm_raw_origin(map, entry_size); fns->free(origin, fns->mem_usr); } + +void cm_new(struct cheesemap* map, uintptr_t entry_size, + uint8_t* mem_usr, cm_malloc_fn malloc, cm_free_fn free, + uint8_t* map_usr, cm_hash_fn hash, + cm_compare_fn compare) { + assert(map != NULL); + assert(malloc != NULL && free != NULL); + assert(hash != NULL && compare != NULL); + + struct cheesemap_fns fns = { + mem_usr, map_usr, // + malloc, free, // + hash, compare, // + }; + + *map = (struct cheesemap){entry_size, fns, cm_raw_new()}; +} + -- cgit v1.2.3