aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLouis Pilfold <louis@lpil.uk>2019-06-30 11:53:09 +0100
committerLouis Pilfold <louis@lpil.uk>2019-06-30 11:53:09 +0100
commit02fd6d96e60d1a578193744a7799178755e37fde (patch)
treea4fab0130b082798569d7fbfd5d115a7adb6d030
parent8c1557dd906e32ea65d26977c465d1f93a5026d6 (diff)
downloadgleam_stdlib-02fd6d96e60d1a578193744a7799178755e37fde.tar.gz
gleam_stdlib-02fd6d96e60d1a578193744a7799178755e37fde.zip
Relax result:map_error
-rw-r--r--CHANGELOG.md5
-rw-r--r--gen/src/gleam@result.erl4
-rw-r--r--gen/test/gleam@result_test.erl5
-rw-r--r--src/gleam/result.gleam2
-rw-r--r--test/gleam/result_test.gleam4
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() {