1 #define WRAP_NODE_FUNCTIONS(Type, prefix) \
2 bool prefix ## add(Type *self, void *dat, Comparator cmp, Transformer trans) \
4 Type ## Node **node = prefix ## nfd(self, dat, cmp); \
9 prefix ## nmk(self, node, trans ? trans(dat) : dat); \
13 void *prefix ## get(Type *self, void *key, Comparator cmp, Transformer trans) \
15 Type ## Node **node = prefix ## nfd(self, key, cmp); \
20 return trans ? trans((*node)->dat) : (*node)->dat; \
23 bool prefix ## del(Type *self, void *key, Comparator cmp, Callback call, void *arg, Transformer trans) \
25 Type ## Node **node = prefix ## nfd(self, key, cmp); \
31 call(trans ? trans((*node)->dat) : (*node)->dat, arg); \
33 prefix ## nrm(self, node); \