]> git.lizzy.rs Git - dragonstd.git/blobdiff - map.h
Add transformer to del
[dragonstd.git] / map.h
diff --git a/map.h b/map.h
index 08d3fd08ab3d56c2b69c89571aa4313335ff204e..3733b9bd31292a7d3630bb66f94a0508b2c862c8 100644 (file)
--- a/map.h
+++ b/map.h
@@ -11,7 +11,7 @@
 
 #include <stdbool.h>       // for bool
 #include <pthread.h>       // for pthread_rwlock_t
-#include "bits/callback.h" // for Transformer, Comparator, Iterator
+#include "bits/callback.h" // for Transformer, Comparator, Callback
 #include "tree.h"          // for Tree
 
 typedef struct {
@@ -38,7 +38,7 @@ void map_dst(Map *map);
        Make sure to cancel the map before destroying it, to avoid memory leaks.
 */
 
-void map_cnl(Map *map, Iterator iter, void *arg, Transformer trans, TreeTraversionOrder order);
+void map_cnl(Map *map, Callback iter, void *arg, Transformer trans, TreeTraversionOrder order);
 /*
        [Thread Safe]
        Cancels and clears the map.
@@ -52,13 +52,13 @@ void map_cnl(Map *map, Iterator iter, void *arg, Transformer trans, TreeTraversi
        If no callback is given, the traversion order is irrelevant.
 */
 
-void *map_add(Map *map, void *dat, Comparator cmp, Transformer trans);
+bool map_add(Map *map, void *dat, Comparator cmp, Transformer trans);
 /*
        [Thread Safe]
        Add an element to the map.
 
-       If an equal element is already in the tree, return it and don't add anything.
-       Otherwise, return added element.
+       If an equal element is already in the map, don't add anything.
+       Return whether an element has been added.
 */
 
 void *map_get(Map *map, void *key, Comparator cmp, Transformer trans);
@@ -67,13 +67,14 @@ void *map_get(Map *map, void *key, Comparator cmp, Transformer trans);
        Get an element from the map, or return NULL if none found.
 */
 
-void *map_del(Map *map, void *key, Comparator cmp, Transformer trans);
+bool map_del(Map *map, void *key, Comparator cmp, Callback call, void *arg, Transformer trans);
 /*
        [Thread Safe]
-       Delete an element from the map and return it, or NULL if none found.
+       Delete an element from the map if it is found.
+       Return whether an element has been deleted.
 */
 
-void map_trv(Map *map, Iterator iter, void *arg, Transformer trans, TreeTraversionOrder order);
+void map_trv(Map *map, Callback iter, void *arg, Transformer trans, TreeTraversionOrder order);
 /*
        [Thread Safe]
        Traverse the map.