28 lines
522 B
C
28 lines
522 B
C
#ifndef _HASHMAP_H
|
|
#define _HASHMAP_H
|
|
|
|
#include <stddef.h>
|
|
|
|
#define BUCKET_ENTRIES 20
|
|
#define HASHMAP_BUCKETS 2048
|
|
|
|
typedef struct Entry {
|
|
char *key;
|
|
void *data;
|
|
size_t data_size;
|
|
} Entry;
|
|
|
|
typedef struct Bucket {
|
|
size_t n_entries;
|
|
Entry entries[BUCKET_ENTRIES];
|
|
} Bucket;
|
|
|
|
typedef struct HashMap {
|
|
Bucket buckets[HASHMAP_BUCKETS];
|
|
} HashMap;
|
|
|
|
void init_map(HashMap *map);
|
|
void *get(HashMap *map, char *key);
|
|
Entry *set(HashMap *map, char *key, void *data, size_t data_size);
|
|
|
|
#endif // _HASHMAP_H
|