Mercurial
comparison dowa/dowa.h @ 20:0a9e67c7039a
[Seobeo] Chaning Function naming to be easily readable.
| author | June Park <parkjune1995@gmail.com> |
|---|---|
| date | Mon, 06 Oct 2025 10:13:41 -0700 |
| parents | fa2b8af609d9 |
| children | 09def63429b9 |
comparison
equal
deleted
inserted
replaced
| 19:875bb6e10db7 | 20:0a9e67c7039a |
|---|---|
| 33 char *buffer; | 33 char *buffer; |
| 34 size_t offset; | 34 size_t offset; |
| 35 size_t capacity; | 35 size_t capacity; |
| 36 } Dowa_Arena, *Dowa_PArena; | 36 } Dowa_Arena, *Dowa_PArena; |
| 37 | 37 |
| 38 extern Dowa_PArena Dowa_Arena_Create(size_t capacity); | 38 extern Dowa_PArena Dowa_Arena_Create(size_t capacity); |
| 39 extern void *Dowa_Arena_Allocate(Dowa_PArena p_arena, size_t size); | 39 extern void *Dowa_Arena_Allocate(Dowa_PArena p_arena, size_t size); |
| 40 extern void Dowa_Arena_Free(Dowa_PArena p_arena); | 40 extern void Dowa_Arena_Destory(Dowa_PArena p_arena); |
| 41 | 41 |
| 42 // --- HashMap --- // | 42 // --- HashMap --- // |
| 43 typedef enum { | 43 typedef enum { |
| 44 DOWA_HASH_MAP_TYPE_BUFFER, | 44 DOWA_HASH_MAP_TYPE_BUFFER, |
| 45 DOWA_HASH_MAP_TYPE_STRING, | 45 DOWA_HASH_MAP_TYPE_STRING, |
| 56 | 56 |
| 57 typedef struct { | 57 typedef struct { |
| 58 Dowa_PHashEntry *entries; | 58 Dowa_PHashEntry *entries; |
| 59 size_t capacity; | 59 size_t capacity; |
| 60 uint32 current_capacity; | 60 uint32 current_capacity; |
| 61 Dowa_PArena p_arena; | |
| 61 } Dowa_HashMap, *Dowa_PHashMap; | 62 } Dowa_HashMap, *Dowa_PHashMap; |
| 62 | 63 |
| 63 extern Dowa_PHashMap Dowa_HashMap_Create(size_t capacity); | 64 extern Dowa_PHashMap Dowa_HashMap_Create(size_t capacity); |
| 64 extern void Dowa_HashMap_Free(Dowa_PHashMap p_hash_map); | 65 extern Dowa_PHashMap Dowa_HashMap_Create(size_t capacity, Dowa_PArena p_arena); |
| 65 extern int32 Dowa_HashMap_GetPosition(Dowa_PHashMap p_hash_map, char *key); | 66 extern void Dowa_HashMap_Destory(Dowa_PHashMap p_hash_map); |
| 66 extern void *Dowa_HashMap_Get(Dowa_PHashMap p_hash_map, char *key); | 67 extern int32 Dowa_HashMap_Get_Position(Dowa_PHashMap p_hash_map, char *key); |
| 67 extern void Dowa_HashMap_PushValue(Dowa_PHashMap p_hash_map, char *key, void *value, size_t value_size); | 68 extern void *Dowa_HashMap_Get(Dowa_PHashMap p_hash_map, char *key); |
| 68 extern int32 Dowa_HashMap_PushValueWithTypeNoCopy(Dowa_PHashMap p_hash_map, char *key, void *value, size_t value_size, Dowa_HashMap_ValueType type); | 69 extern void Dowa_HashMap_Push_Value(Dowa_PHashMap p_hash_map, char *key, void *value, size_t value_size); |
| 69 extern int32 Dowa_HashMap_PushValueWithType(Dowa_PHashMap p_hash_map, char *key, void *value, size_t value_size, Dowa_HashMap_ValueType type); | 70 extern int32 Dowa_HashMap_Push_Value_With_Type_NoCopy(Dowa_PHashMap p_hash_map, char *key, void *value, size_t value_size, Dowa_HashMap_ValueType type); |
| 70 extern void Dowa_HashMap_PopKey(Dowa_PHashMap p_hash_map, char *key); | 71 extern int32 Dowa_HashMap_Push_Value_With_Type(Dowa_PHashMap p_hash_map, char *key, void *value, size_t value_size, Dowa_HashMap_ValueType type); |
| 72 extern void Dowa_HashMap_Pop_Key(Dowa_PHashMap p_hash_map, char *key); | |
| 71 | 73 |
| 72 // --- Maybe Useful --- // | 74 // --- Maybe Useful --- // |
| 73 extern void Dowa_HashMap_Print(Dowa_PHashMap map); | 75 extern void Dowa_HashMap_Print(Dowa_PHashMap map); |
| 74 // 0 for success, -1 for failure. Get all files in the folder into key and vlaues. | 76 // 0 for success, -1 for failure. Get all files in the folder into key and vlaues. |
| 75 extern int Dowa_HashMap_Cache_Folder(Dowa_PHashMap map, const char *folder_path); | 77 extern int Dowa_HashMap_Cache_Folder(Dowa_PHashMap map, const char *folder_path); |