diff options
| author | Syndamia <kamen@syndamia.com> | 2026-04-28 17:32:18 +0300 |
|---|---|---|
| committer | Syndamia <kamen@syndamia.com> | 2026-05-12 07:08:56 +0300 |
| commit | e97bc661483173c23f26880ffef50d02955e73da (patch) | |
| tree | c1a4eaa02fb075e09e0a679da08b5e145450125a /HashTable.h | |
| parent | a619dd631c367d60a06a28e81fec634c7d827308 (diff) | |
| download | foollib-e97bc661483173c23f26880ffef50d02955e73da.tar foollib-e97bc661483173c23f26880ffef50d02955e73da.tar.gz foollib-e97bc661483173c23f26880ffef50d02955e73da.zip | |
feat: Implement hash table
Diffstat (limited to 'HashTable.h')
| -rw-r--r-- | HashTable.h | 24 |
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 */ |
