mirror of
https://github.com/Ed94/metadesk.git
synced 2026-06-14 08:12:22 -07:00
36 lines
886 B
C
36 lines
886 B
C
/////////////////////////////////////////////
|
|
//~ NOTE(mal): MD_Map. Same as MD_NodeTable except it stores void * values
|
|
typedef enum MD_MapCollisionRule
|
|
{
|
|
MD_MapCollisionRule_Chain,
|
|
MD_MapCollisionRule_Overwrite,
|
|
}
|
|
MD_MapCollisionRule;
|
|
|
|
typedef struct MD_MapSlot MD_MapSlot;
|
|
struct MD_MapSlot
|
|
{
|
|
MD_MapSlot *next;
|
|
MD_u64 hash;
|
|
void *value;
|
|
};
|
|
|
|
typedef struct MD_Map MD_Map;
|
|
struct MD_Map
|
|
{
|
|
MD_u64 table_size;
|
|
MD_MapSlot **table;
|
|
};
|
|
|
|
/////////////////////////////////////////////
|
|
//~ NOTE(mal): Helpers
|
|
typedef MD_Map MD_StringMap;
|
|
typedef MD_Map MD_PtrMap;
|
|
|
|
// NOTE(mal): MD_NodeTable interface
|
|
typedef MD_Map MD_NodeTable;
|
|
typedef MD_MapSlot MD_NodeTableSlot;
|
|
typedef MD_MapCollisionRule MD_NodeTableCollisionRule;
|
|
#define MD_NodeTableCollisionRule_Chain MD_MapCollisionRule_Chain
|
|
#define MD_NodeTableCollisionRule_Overwrite MD_MapCollisionRule_Overwrite
|