ref: 45c83a4e90ff4d5306efe905ea60cce44d435ac0
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);