summaryrefslogtreecommitdiff
path: root/src/lib/mdb.h
blob: bd4554b244ba2be4deb67f3a895e04505e6e3418 (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
#ifndef MDB_H
#define MDB_H

#define TABLEN 1024

typedef struct {
  char *key;
  int flag;
  union {
    char *str;
    double num;
    unsigned int boolean : 1;
  } value;
} tabidx_t;

typedef struct {
  int len;
  tabidx_t tab[TABLEN];
} tablist_t;

// Table operations
int *getkeys(tablist_t *list, int id);
tabidx_t getkey(tablist_t *list, int id, char *key);
int setkey(tablist_t **list, int id, char *pair);
int delkey(tablist_t *list, int id, char *key);

// file operations
tablist_t *readdb(char *filename);
void writedb(char *filename, tablist_t *list);

#endif