aboutsummaryrefslogtreecommitdiff
path: root/collections/map/map.h
blob: b3ea4c536b8eddd53f04d0d4cedb4418c2928099 (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
31
32
#ifndef MAP_H
#define MAP_H

typedef struct map_root map;
typedef int (*cmp_func)(void*, void*);

/*constructors*/
map* map_new(cmp_func);

/*management*/
int map_size(map*);

/*data*/
int map_insert(map*, void*, void*);
void* map_remove(map*, void*);

void* map_first(map*);
void* map_last(map*);

void* map_set_val(map*, void*, void*);
void* map_index(map*, void*);

void map_swap(map*, void*, void*);

int map_check_key_ptr(map*, void*);
void* map_set_key(map*, void*);


/*memory*/
void map_clear(map*);
void map_free(map*);
#endif