From 9b43c34b9b51d953bd4363df576a6f93e9596700 Mon Sep 17 00:00:00 2001 From: Fabrice Date: Sun, 22 Mar 2026 21:10:59 +0100 Subject: implementing dempo --- README | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 README (limited to 'README') diff --git a/README b/README new file mode 100644 index 0000000..a00fff5 --- /dev/null +++ b/README @@ -0,0 +1,42 @@ +Cheesemap +==== + +Cheesemap is a swiss-table like HashMap implementation in C. It's designed to be fast but also easy to understand and improve. +The HashMap might be a little memory efficient especially right after resizes and doesn't yet provide a shrink method. The HashMap +is not yet production tested but fully working. + +* Example +``` +#include "cheesemap.h" +#include +#include +#include + +struct user_info { + const char* country; + int age; + int zip; +}; + +uint64_t hash(const uint8_t* key) { + const char* name = (const char*)key; + uint64_t count; + while(*name) { + count++; + name++; + } + + return count; +} + +bool compare(const uint8_t* key1, const uint8_t* key2) { + const char* name1 = (const char*)key1; + const char* name2 = (const char*)key2; + return strcmp(name1, name2); +} + +int main() { + struct cheesemap map; + cm_new(&map, sizeof(const char*), _Alignof(const char*), sizeof(struct user_info), _Alignof(struct user_info), NULL +} +``` -- cgit v1.2.3