aboutsummaryrefslogtreecommitdiff
path: root/HashTable.h
diff options
context:
space:
mode:
authorSyndamia <kamen@syndamia.com>2026-04-28 17:32:18 +0300
committerSyndamia <kamen@syndamia.com>2026-05-12 07:08:56 +0300
commite97bc661483173c23f26880ffef50d02955e73da (patch)
treec1a4eaa02fb075e09e0a679da08b5e145450125a /HashTable.h
parenta619dd631c367d60a06a28e81fec634c7d827308 (diff)
downloadfoollib-e97bc661483173c23f26880ffef50d02955e73da.tar
foollib-e97bc661483173c23f26880ffef50d02955e73da.tar.gz
foollib-e97bc661483173c23f26880ffef50d02955e73da.zip
feat: Implement hash table
Diffstat (limited to 'HashTable.h')
-rw-r--r--HashTable.h24
1 files changed, 24 insertions, 0 deletions
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 */