| #include <stdarg.h> |
| #include <stdbool.h> |
| #include <stdint.h> |
| #include <stdlib.h> |
| |
| typedef const char *Str; |
| |
| typedef struct { |
| uintptr_t num_buckets; |
| uintptr_t capacity; |
| uint8_t *occupied; |
| Str *keys; |
| char *vals; |
| } HashTable_Str__c_char__false; |
| |
| typedef HashTable_Str__c_char__false MySet; |
| |
| typedef void (*SetCallback)(Str key); |
| |
| typedef struct { |
| uintptr_t num_buckets; |
| uintptr_t capacity; |
| uint8_t *occupied; |
| Str *keys; |
| uint64_t *vals; |
| } HashTable_Str__u64__true; |
| |
| typedef void (*MapCallback)(Str key, uint64_t val); |
| |
| #ifdef __cplusplus |
| extern "C" { |
| #endif // __cplusplus |
| |
| MySet *new_set(void); |
| |
| void set_for_each(const MySet *set, SetCallback callback); |
| |
| HashTable_Str__u64__true *new_map(void); |
| |
| void map_for_each(const HashTable_Str__u64__true *map, MapCallback callback); |
| |
| #ifdef __cplusplus |
| } // extern "C" |
| #endif // __cplusplus |