diff options
author | Louis Pilfold <louis@lpil.uk> | 2019-06-30 11:53:09 +0100 |
---|---|---|
committer | Louis Pilfold <louis@lpil.uk> | 2019-06-30 11:53:09 +0100 |
commit | 02fd6d96e60d1a578193744a7799178755e37fde (patch) | |
tree | a4fab0130b082798569d7fbfd5d115a7adb6d030 | |
parent | 8c1557dd906e32ea65d26977c465d1f93a5026d6 (diff) | |
download | gleam_stdlib-02fd6d96e60d1a578193744a7799178755e37fde.tar.gz gleam_stdlib-02fd6d96e60d1a578193744a7799178755e37fde.zip |
Relax result:map_error
-rw-r--r-- | CHANGELOG.md | 5 | ||||
-rw-r--r-- | gen/src/gleam@result.erl | 4 | ||||
-rw-r--r-- | gen/test/gleam@result_test.erl | 5 | ||||
-rw-r--r-- | src/gleam/result.gleam | 2 | ||||
-rw-r--r-- | test/gleam/result_test.gleam | 4 |
5 files changed, 13 insertions, 7 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index 401e4c0..85b4081 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,11 @@ ## Unreleased +- `result:map_error` has been relaxed to allow mapping to a different error + type. + +## v0.3.0 - 2019-06-25 + - The `map_dict` module gains a `fold` function. - All modules moved under the `std` namespace. - The `http` module has been split out into the `gleam_http` package. diff --git a/gen/src/gleam@result.erl b/gen/src/gleam@result.erl index 77c5a57..3aeae12 100644 --- a/gen/src/gleam@result.erl +++ b/gen/src/gleam@result.erl @@ -32,8 +32,8 @@ map(Result, Fun) -> map_error(Result, Fun) -> case Result of - {ok, _} -> - Result; + {ok, X} -> + {ok, X}; {error, Error} -> {error, Fun(Error)} diff --git a/gen/test/gleam@result_test.erl b/gen/test/gleam@result_test.erl index e246694..baf030f 100644 --- a/gen/test/gleam@result_test.erl +++ b/gen/test/gleam@result_test.erl @@ -21,8 +21,9 @@ map_test() -> map_error_test() -> gleam@expect:equal(gleam@result:map_error({ok, 1}, fun(X) -> X + 1 end), {ok, 1}), - gleam@expect:equal(gleam@result:map_error({error, 1}, fun(X) -> X + 1 end), - {error, 2}). + gleam@expect:equal(gleam@result:map_error({error, 1}, + fun(X) -> {<<"ok">>, X + 1} end), + {error, {<<"ok">>, 2}}). flatten_test() -> gleam@expect:equal(gleam@result:flatten({ok, {ok, 1}}), {ok, 1}), diff --git a/src/gleam/result.gleam b/src/gleam/result.gleam index 133d9d5..d62b2d5 100644 --- a/src/gleam/result.gleam +++ b/src/gleam/result.gleam @@ -24,7 +24,7 @@ pub fn map(result, fun) { pub fn map_error(result, fun) { case result { - | Ok(_) -> result + | Ok(x) -> Ok(x) | Error(error) -> Error(fun(error)) } } diff --git a/test/gleam/result_test.gleam b/test/gleam/result_test.gleam index 3f08014..1eb241f 100644 --- a/test/gleam/result_test.gleam +++ b/test/gleam/result_test.gleam @@ -37,8 +37,8 @@ pub fn map_error_test() { |> expect:equal(_, Ok(1)) Error(1) - |> result:map_error(_, fn(x) { x + 1 }) - |> expect:equal(_, Error(2)) + |> result:map_error(_, fn(x) { {"ok", x + 1} }) + |> expect:equal(_, Error({"ok", 2})) } pub fn flatten_test() { |