From e97bc661483173c23f26880ffef50d02955e73da Mon Sep 17 00:00:00 2001 From: Syndamia Date: Tue, 28 Apr 2026 17:32:18 +0300 Subject: feat: Implement hash table --- HashTable.h | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 HashTable.h (limited to 'HashTable.h') diff --git a/HashTable.h b/HashTable.h new file mode 100644 index 0000000..d32f890 --- /dev/null +++ b/HashTable.h @@ -0,0 +1,24 @@ +#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 */ -- cgit v1.2.3