aboutsummaryrefslogtreecommitdiff
path: root/src/types/map.h
blob: cb8fed2e3161d96829e592bc18c2a58d93d1ba3c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29

#ifndef _MAP_H
#define _MAP_H

#include <stdint.h>
#include "str.h"
#include "parray.h"

typedef struct {
    void* value;
    str* key;
    uint64_t hash;
} melem_t;

typedef struct {
    melem_t* M;
    int len;
    int mod;
} map_t;

map_t* map_init();
void map_set(map_t*, char*, void*);
void* map_get(map_t* , char*);
int map_geti(map_t* , char*);
void map_remove(map_t* p, char* key, enum free_type free);
void map_clear(map_t*, enum free_type);
void map_lclear(map_t*);

#endif //_MAP_H