mirror of
https://github.com/krgamestudios/Toy.git
synced 2026-04-16 07:14:07 +10:00
Basically, all Toy varaibles, functions, etc. are prepended with "Toy_", and macros are prepended with "TOY_". This is to reduce namespace pollution, which was an issue pointed out to be - blame @GyroVorbis. I've also bumped the minor version number - theoretically I should bump the major number, but I'm not quite ready for 1.0 yet.
30 lines
944 B
C
30 lines
944 B
C
#pragma once
|
|
|
|
#include "toy_common.h"
|
|
|
|
#include "toy_literal.h"
|
|
|
|
//TODO: benchmark this
|
|
#define TOY_DICTIONARY_MAX_LOAD 0.75
|
|
|
|
typedef struct Toy_private_entry {
|
|
Toy_Literal key;
|
|
Toy_Literal value;
|
|
} Toy_private_entry;
|
|
|
|
typedef struct Toy_LiteralDictionary {
|
|
Toy_private_entry* entries;
|
|
int capacity;
|
|
int count;
|
|
int contains; //count + tombstones, for internal use
|
|
} Toy_LiteralDictionary;
|
|
|
|
TOY_API void Toy_initLiteralDictionary(Toy_LiteralDictionary* dictionary);
|
|
TOY_API void Toy_freeLiteralDictionary(Toy_LiteralDictionary* dictionary);
|
|
|
|
TOY_API void Toy_setLiteralDictionary(Toy_LiteralDictionary* dictionary, Toy_Literal key, Toy_Literal value);
|
|
TOY_API Toy_Literal Toy_getLiteralDictionary(Toy_LiteralDictionary* dictionary, Toy_Literal key);
|
|
TOY_API void Toy_removeLiteralDictionary(Toy_LiteralDictionary* dictionary, Toy_Literal key);
|
|
|
|
TOY_API bool Toy_existsLiteralDictionary(Toy_LiteralDictionary* dictionary, Toy_Literal key);
|