aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/libft_ht.h1
-rw-r--r--src/ht/ft_htiter.c17
2 files changed, 18 insertions, 0 deletions
diff --git a/include/libft_ht.h b/include/libft_ht.h
index 5a764b6..ea6cb3f 100644
--- a/include/libft_ht.h
+++ b/include/libft_ht.h
@@ -45,6 +45,7 @@ void ft_htdelone(t_ftht *ht, char *key,
void (*del)(t_ftht_content*));
void ft_htdelone_key(t_ftht *ht, char *key);
t_ftht_content *ft_htcontent_new(char *key, void *value);
+void ft_htiter(t_ftht *ht, void (*f)(t_ftht_content*));
/*
** internals
diff --git a/src/ht/ft_htiter.c b/src/ht/ft_htiter.c
new file mode 100644
index 0000000..5473412
--- /dev/null
+++ b/src/ht/ft_htiter.c
@@ -0,0 +1,17 @@
+#include "libft_ht.h"
+
+/*
+** Iterate function `f` over every pair in `ht`.
+*/
+
+void ft_htiter(t_ftht *ht, void (*f)(t_ftht_content*))
+{
+ size_t i;
+
+ i = 0;
+ while (i < ht->size)
+ {
+ ft_lstiter(ht->entries[i], (void (*)(void*))f);
+ i++;
+ }
+}