X-Git-Url: https://git.xandkar.net/?p=hope.git;a=blobdiff_plain;f=src%2Fhope_option.erl;h=ab6eab775af29f9d6cae2fccdd638cbb25200402;hp=c461d04d1b70d3bbd292e954aa21c55eb4921c5e;hb=2497062cedae903b4f8dd00b82da386b0e4f9b62;hpb=ed9905af6fa1dba6f89759d6dbfc970426122bde diff --git a/src/hope_option.erl b/src/hope_option.erl index c461d04..ab6eab7 100644 --- a/src/hope_option.erl +++ b/src/hope_option.erl @@ -9,6 +9,8 @@ [ put/2 , get/2 , map/2 + , iter/2 + , of_result/1 ]). @@ -35,3 +37,13 @@ get(none , Y) -> Y. t(B). map({some, X}, F) -> {some, F(X)}; map(none , _) -> none. + +-spec iter(t(A), fun((A) -> (ok))) -> + ok. +iter({some, X}, F) -> ok = F(X); +iter(none , _) -> ok. + +-spec of_result(hope_result:t(A, _B)) -> + t(A). +of_result({ok, X}) -> {some, X}; +of_result({error, _}) -> none.