File: hashmap.ih

package info (click to toggle)
yodl 4.04.00-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 4,720 kB
  • sloc: ansic: 7,803; perl: 683; cpp: 570; sh: 411; xml: 190; makefile: 164
file content (25 lines) | stat: -rw-r--r-- 707 bytes parent folder | download | duplicates (9)
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
#include "hashmap.h"

#include <stdio.h>
#include <string.h>

#include "../new/new.h"
#include "../message/message.h"

typedef enum
{
    FREE    = 0,
    ACTIVE  = 1,
    REMOVED = ~0
}
HashmapValue;

#define asHashmapValue(x)   ((x) == (void *)FREE    ?   FREE    :   \
                             (x) == (void *)REMOVED ?   REMOVED :   \
                                                        ACTIVE)
                                                        
void hm_expand(HashMap *symtab);
void hm_reshuffle(HashMap *symtab);
size_t hm_find(size_t *idx, HashItem **map, size_t size, char const *key);
size_t hm_find_idx(HashMap *map, char const *key, SymbolType type);
size_t hm_pjw(char const *key);