#ifndef _HASHTABLE #define _HASHTABLE #include "Types.h" #include "MemoryManager.h" typedef void* HashTable; HashTable H_new(MemoryManager *mm, usize size); Result H_free(HashTable* ht); Result H_freevals(HashTable* ht); Result H_freeat(HashTable ht, const char *key); usize H_size(HashTable ht); usize H_count(HashTable ht); Result H_insert(HashTable ht, const char *key, void *value); Result H_insertstr(HashTable ht, const char *key, const char *value); Result H_inserti(HashTable ht, const char *key, int value); Result H_insertf(HashTable ht, const char *key, double value); void* H_get(HashTable ht, const char* key); char* H_getstr(HashTable ht, const char* key); int* H_geti(HashTable ht, const char* key); double* H_getf(HashTable ht, const char* key); #endif /* _HASHTABLE */