struct hashmap * hashmap_new(unsigned int size, unsigned int (*)(const void *) hash_fn, void (*)(void *) free_key_fn, void (*)(void *) free_data_fn, struct hashmap * void hashmap_del(struct hashmap * this, void int hashmap_put(struct hashmap * this, void * key, void * data, int int hashmap_is_empty(struct hashmap * this, int unsigned int hashmap_size(struct hashmap * this, unsigned int void * hashmap_get(struct hashmap * this, void * key, void * void hashmap_iterate(struct hashmap * this, void void * hashmap_next(struct hashmap * this, void * void * hashmap_remove(struct hashmap * this, const void * key, void *