diff options
Diffstat (limited to 'advent-of-code/2023/lib/map.h')
| -rw-r--r-- | advent-of-code/2023/lib/map.h | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/advent-of-code/2023/lib/map.h b/advent-of-code/2023/lib/map.h new file mode 100644 index 0000000..c54048c --- /dev/null +++ b/advent-of-code/2023/lib/map.h @@ -0,0 +1,33 @@ +#ifndef MAP_H_ +#define MAP_H_ + +#include "rb_tree.h" + +typedef struct { + rb_node_t node; + void *key; + void *value; +} node_entry_t; +typedef int (*cmp_t)(void** a, void** b); + +void* new_map(cmp_t compare); +void map_set(void* self, void* key, void* value); +void* map_get(void* self, void* key); +void map_erase(void* self, void* key); + +void* map_begin(void *self); +void* map_next(void *self, void *iter); +void* map_iter_key(void* iter); +void* map_iter_value(void* iter); + +void* new_dict(); +void dict_set(void* self, const char *key, void* value); +void* dict_get(void* self, const char* key); +void dict_erase(void* self, const char* key); + +void* dict_begin(void *self); +void* dict_next(void *self, void *iter); +const char* dict_iter_key(void* iter); +void* dict_iter_value(void* iter); + +#endif |
