]> git.lizzy.rs Git - dragonstd.git/blobdiff - bits/wrappers.h
Add transformer to del
[dragonstd.git] / bits / wrappers.h
index a2786791875e0c31a34dd664136b2d526330ddb4..59855193c487bfe1320f9f77e427e8b024b1db88 100644 (file)
                return trans ? trans((*node)->dat) : (*node)->dat; \
        } \
  \
-       bool prefix ## del(Type *self, void *key, Comparator cmp, Callback call, void *arg) \
+       bool prefix ## del(Type *self, void *key, Comparator cmp, Callback call, void *arg, Transformer trans) \
        { \
                Type ## Node **node = prefix ## nfd(self, key, cmp); \
  \
                if (!*node) \
                        return false; \
  \
-               if (call) \
-                       call((*node)->dat, arg); \
+               if (call) \
+                       call(trans ? trans((*node)->dat) : (*node)->dat, arg); \
  \
                prefix ## nrm(self, node); \
                return true; \