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);