#ifndef MAPS_MAP_H
#define MAPS_MAP_H
#include <stdbool.h>
typedef struct Map* Map;
Map MapCreate(void* (*cpy)(void*), void (*fre)(void*));
void MapDestroy(Map m);
bool MapAdd(Map m, const char* key, void* val);
void MapRemove(Map m, const char* key);
void* MapRetrieve(Map m, const char* key);
int MapSize(Map m);
const char* MapIterator(Map m, int index);
#endif //MAPS_MAP_H