aboutsummaryrefslogtreecommitdiff
path: root/analyzer/utils/structures/hashmap.h
diff options
context:
space:
mode:
authorMosder <xmosder12@gmail.com>2026-07-14 11:08:32 +0200
committerMosder <xmosder12@gmail.com>2026-07-14 11:08:32 +0200
commit106e1f7a579a66c46cb68356f585917fe7883310 (patch)
tree1688e24eaa60f852a9a44d69690ed66569c06af8 /analyzer/utils/structures/hashmap.h
parentdf568228d1a125f909cb25790255c0719f8ec7b1 (diff)
refactor: generalized Makefile by adding CC and CFLAGS variables. Changed from realtive to absolute paths for includes
Diffstat (limited to 'analyzer/utils/structures/hashmap.h')
-rw-r--r--analyzer/utils/structures/hashmap.h77
1 files changed, 0 insertions, 77 deletions
diff --git a/analyzer/utils/structures/hashmap.h b/analyzer/utils/structures/hashmap.h
deleted file mode 100644
index 4f8e24a..0000000
--- a/analyzer/utils/structures/hashmap.h
+++ /dev/null
@@ -1,77 +0,0 @@
-// utils/structures/hashmap.h
-// a simple implementation of hashmap using linked list
-
-#include <stddef.h>
-
-#define HASHMAP_TABLE_SIZE 128
-
-typedef struct HashMapNode {
- void *key;
- void *value;
- struct HashMapNode *next;
-} HashMapNode;
-
-typedef struct {
- HashMapNode *table[HASHMAP_TABLE_SIZE];
- size_t key_size;
- size_t value_size;
- size_t (*hash)(void *key);
- int (*compare)(void *key1, void *key2);
- void (*key_cleanup)(void *key);
- void (*value_cleanup)(void *value);
-} HashMap;
-
-// create a new hash map
-// params:
-// - key_size - size of the key type
-// - value_size - size of the value type
-// - hash - function for hashing keys
-// params:
-// - key - pointer to the key to hash
-// returns:
-// hash of the key (size_t in [0; HASHMAP_TABLE_SIZE))
-// - compare - function for comparing keys
-// params:
-// - key1 - pointer to the first of the keys to compare
-// - key2 - pointer to the second of the keys to compare
-// returns:
-// truthy if the keys are identical, falsy if they are different
-// - key_cleanup - function for cleaning up any internal allocations inside node->key (not the key itself)
-// if it has no heap allocations, this should be NULL
-// params:
-// - key - pointer to the key to cleanup
-// - value_cleanup - function for cleaning up any internal allocations inside node->value (not the value itself)
-// if it has no heap allocations, this should be NULL
-// params:
-// - value - pointer to the value to cleanup
-// returns:
-// pointer to the new hash map
-extern HashMap *hashmap_new(
- size_t key_size, size_t value_size, size_t (*hash)(void *key), int (*compare)(void *key1, void *key2), void (*key_cleanup)(void *key),
- void (*value_cleanup)(void *value)
-);
-
-// create/update an entry in a hash map
-// params:
-// - map - hash map to insert to
-// - key - pointer to the key
-// - value - pointer to the value
-extern void hashmap_put(HashMap *map, void *key, void *value);
-
-// get the value of given key from a hash map
-// params:
-// - map - hash map to get from
-// - key - pointer to the key of the value to get
-// returns:
-// pointer to the value of specified key or NULL if it doesn't exist
-extern void *hashmap_get(HashMap *map, void *key);
-
-// delete an entry from a hash map
-// params:
-// - map - hash map to delete from
-// - key - pointer to the key of the entry to delete
-extern void hashmap_delete(HashMap *map, void *key);
-
-// free the hash map
-// - map - hash map to free
-extern void hashmap_free(HashMap *map);