, iter/2
, of_result/1
, of_undefined/1
+ , to_undefined/1
, validate/2
]).
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, _) ->
%% Test cases
-export(
[ t_of_result/1
- , t_of_undefined/1
+ , t_undefined/1
, t_put/1
, t_get/1
, t_map/1
groups() ->
Tests =
[ t_of_result
- , t_of_undefined
+ , t_undefined
, t_put
, t_get
, t_map
none = hope_option:pipe(Steps, 2),
none = hope_option:pipe(Steps, 3).
-t_of_undefined(_Cfg) ->
- Foo = foo,
- Bar = bar,
- Baz = baz,
- {some, Foo} = hope_option:of_undefined(Foo),
- {some, Bar} = hope_option:of_undefined(Bar),
- {some, Baz} = hope_option:of_undefined(Baz),
- none = hope_option:of_undefined(undefined).
+t_undefined(_Cfg) ->
+ X = foo,
+ {some, X} = hope_option:of_undefined(X),
+ X = hope_option:to_undefined({some, X}),
+ none = hope_option:of_undefined(undefined),
+ undefined = hope_option:to_undefined(none).
t_validate(_Cfg) ->
IsFoo = fun (X) -> X =:= foo end,