hashmapp.
This commit is contained in:
commit
e34fc0ca7f
5 changed files with 161 additions and 0 deletions
28
hashmap.h
Normal file
28
hashmap.h
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
#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
|
||||
Loading…
Add table
Add a link
Reference in a new issue