X-Git-Url: https://git.xandkar.net/?a=blobdiff_plain;ds=sidebyside;f=src%2Fhope_option.erl;h=2bd9e7b05180a436993afd3d54ff5e2d563565c2;hb=HEAD;hp=c645c5388d63e0472c8eba6ce58af7d8ec8753cf;hpb=0ed4baebe135edc50d24d3613c6ee971f75d8c98;p=hope.git diff --git a/src/hope_option.erl b/src/hope_option.erl index c645c53..2bd9e7b 100644 --- a/src/hope_option.erl +++ b/src/hope_option.erl @@ -19,6 +19,7 @@ , iter/2 , of_result/1 , of_undefined/1 + , to_undefined/1 , validate/2 ]). @@ -58,12 +59,12 @@ map({some, X}, F) -> {some, F(X)}; map(none , _) -> none. -spec iter(t(A), fun((A) -> (any()))) -> - ok. + {}. iter({some, X}, F) -> _ = F(X), - ok; + {}; iter(none, _) -> - ok. + {}. -spec pipe([fun((A) -> t(B))], A) -> t(B). @@ -85,6 +86,11 @@ of_result({error, _}) -> none. of_undefined(undefined) -> none; of_undefined(X) -> {some, X}. +-spec to_undefined(t(A)) -> + undefined | A. +to_undefined(none) -> undefined; +to_undefined({some, X}) -> X. + -spec validate(t(A), fun((A) -> boolean())) -> t(A). validate(none, _) ->