ref: a04b62338356b4d2b39e13624afad0f204bd43f4
dir: /hash.h/
typedef union Hkey Hkey; union Hkey { void *p; int v; }; typedef struct Hmap Hmap; struct Hmap { int nbs; int nsz; int len; int cap; uchar *nodes; }; typedef struct Hnode Hnode; struct Hnode { int filled; int next; void *key; }; enum{ Tagsize = sizeof(Hnode), }; Hmap* hmapalloc(int nbuckets, int size); int hmapget(Hmap *h, char *key, void *dst); int hmaprepl(Hmap **h, char *key, void *new, void *old, int freekeys); int hmapupd(Hmap **h, char *key, void *new); int hmapdel(Hmap *h, char *key, void *dst, int freekey); char* hmapkey(Hmap *h, char *key); void hmapreset(Hmap *h, int freekeys);