aboutsummaryrefslogtreecommitdiff
path: root/src/types/map.h
blob: efa6d65efb381441ad1b9a41af1f2cdf744049d8 (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
30

#ifndef _MAP_H
#define _MAP_H

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

typedef struct {
    void* value;
    str* key;
    uint64_t hash;
    int used;
} 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