Add dictionary get with validation.
[hope.git] / src / hope_kv_list.erl
index 7b25797..cb1c4a4 100644 (file)
@@ -13,8 +13,9 @@
 
 -export(
     [ empty/0
-    , get/2
-    , get/3
+    , get/2  % get option
+    , get/3  % get existing or default
+    , get/4  % get existing if valid, or default
     , set/3
     , update/3
     , pop/2
@@ -75,6 +76,13 @@ get(T, K, Default) ->
     Vopt = get(T, K),
     hope_option:get(Vopt, Default).
 
+-spec get(t(K, V), K, V, fun((V) -> boolean())) ->
+    V.
+get(T, K, Default, IsValid) ->
+    VOpt1 = get(T, K),
+    VOpt2 = hope_option:validate(VOpt1, IsValid),
+    hope_option:get(VOpt2, Default).
+
 -spec set(t(K, V), K, V) ->
     t(K, V).
 set(T, K, V) ->
This page took 0.018882 seconds and 4 git commands to generate.