mirror of
https://github.com/krgamestudios/Toy.git
synced 2026-04-15 23:04:08 +10:00
30 lines
811 B
C
30 lines
811 B
C
#pragma once
|
|
|
|
#include "common.h"
|
|
|
|
#include "literal.h"
|
|
|
|
//TODO: benchmark this
|
|
#define DICTIONARY_MAX_LOAD 0.75
|
|
|
|
typedef struct _entry {
|
|
Literal key;
|
|
Literal value;
|
|
} _entry;
|
|
|
|
typedef struct LiteralDictionary {
|
|
_entry* entries;
|
|
int capacity;
|
|
int count;
|
|
int contains; //count + tombstones, for internal use
|
|
} LiteralDictionary;
|
|
|
|
TOY_API void initLiteralDictionary(LiteralDictionary* dictionary);
|
|
TOY_API void freeLiteralDictionary(LiteralDictionary* dictionary);
|
|
|
|
TOY_API void setLiteralDictionary(LiteralDictionary* dictionary, Literal key, Literal value);
|
|
TOY_API Literal getLiteralDictionary(LiteralDictionary* dictionary, Literal key);
|
|
TOY_API void removeLiteralDictionary(LiteralDictionary* dictionary, Literal key);
|
|
|
|
TOY_API bool existsLiteralDictionary(LiteralDictionary* dictionary, Literal key);
|