diff options
Diffstat (limited to 'gen/result.erl')
-rw-r--r-- | gen/result.erl | 116 |
1 files changed, 0 insertions, 116 deletions
diff --git a/gen/result.erl b/gen/result.erl deleted file mode 100644 index e793c6b..0000000 --- a/gen/result.erl +++ /dev/null @@ -1,116 +0,0 @@ --module(result). --compile(no_auto_import). --include_lib("eunit/include/eunit.hrl"). - --export([is_ok/1, is_error/1, map/2, map_error/2, flatten/1, then/2, unwrap/2]). - -is_ok(Result) -> - case Result of - {error, _} -> - false; - - {ok, _} -> - true - end. - --ifdef(TEST). -is_ok_test() -> - expect:true(is_ok({ok, 1})), - expect:false(is_ok({error, 1})). --endif. - -is_error(Result) -> - case Result of - {ok, _} -> - false; - - {error, _} -> - true - end. - --ifdef(TEST). -is_error_test() -> - expect:false(is_error({ok, 1})), - expect:true(is_error({error, 1})). --endif. - -map(Result, Fun) -> - case Result of - {ok, X} -> - {ok, Fun(X)}; - - {error, E} -> - {error, E} - end. - --ifdef(TEST). -map_test() -> - expect:equal(map({ok, 1}, fun(X) -> X + 1 end), {ok, 2}), - expect:equal(map({ok, 1}, fun(_) -> <<"2">> end), {ok, <<"2">>}), - expect:equal(map({error, 1}, fun(X) -> X + 1 end), {error, 1}). --endif. - -map_error(Result, Fun) -> - case Result of - {ok, _} -> - Result; - - {error, Error} -> - {error, Fun(Error)} - end. - --ifdef(TEST). -map_error_test() -> - expect:equal(map_error({ok, 1}, fun(X) -> X + 1 end), {ok, 1}), - expect:equal(map_error({error, 1}, fun(X) -> X + 1 end), {error, 2}). --endif. - -flatten(Result) -> - case Result of - {ok, X} -> - X; - - {error, Error} -> - {error, Error} - end. - --ifdef(TEST). -flatten_test() -> - expect:equal(flatten({ok, {ok, 1}}), {ok, 1}), - expect:equal(flatten({ok, {error, 1}}), {error, 1}), - expect:equal(flatten({error, 1}), {error, 1}), - expect:equal(flatten({error, {error, 1}}), {error, {error, 1}}). --endif. - -then(Result, Fun) -> - case Result of - {ok, X} -> - Fun(X); - - {error, E} -> - {error, E} - end. - --ifdef(TEST). -then_test() -> - expect:equal(then({error, 1}, fun(X) -> {ok, X + 1} end), {error, 1}), - expect:equal(then({ok, 1}, fun(X) -> {ok, X + 1} end), {ok, 2}), - expect:equal(then({ok, 1}, fun(_) -> {ok, <<"type change">>} end), - {ok, <<"type change">>}), - expect:equal(then({ok, 1}, fun(_) -> {error, 1} end), {error, 1}). --endif. - -unwrap(Result, Default) -> - case Result of - {ok, V} -> - V; - - {error, _} -> - Default - end. - --ifdef(TEST). -unwrap_test() -> - expect:equal(unwrap({ok, 1}, 50), 1), - expect:equal(unwrap({error, <<"nope">>}, 50), 50). --endif. |