diff options
author | Louis Pilfold <louis@lpil.uk> | 2019-03-17 15:35:19 +0000 |
---|---|---|
committer | Louis Pilfold <louis@lpil.uk> | 2019-03-17 15:35:19 +0000 |
commit | fbd570295cd40802127913d2b308916eefb14066 (patch) | |
tree | 5a018e14b69d7748459091c97afa9e1cd7972d1d /src/result.gleam | |
parent | 00ff9767dc61e698aac791b43704cfce1ab33600 (diff) | |
download | gleam_stdlib-fbd570295cd40802127913d2b308916eefb14066.tar.gz gleam_stdlib-fbd570295cd40802127913d2b308916eefb14066.zip |
Any decoders
Diffstat (limited to 'src/result.gleam')
-rw-r--r-- | src/result.gleam | 21 |
1 files changed, 10 insertions, 11 deletions
diff --git a/src/result.gleam b/src/result.gleam index 113925e..18503ec 100644 --- a/src/result.gleam +++ b/src/result.gleam @@ -2,11 +2,6 @@ import expect // Result represents the result of something that may succeed or fail. // `Ok` means it was successful, `Error` means it failed. -// -pub enum Result(error, value) = - | Ok(value) - | Error(error) -; pub fn is_ok(result) { case result { @@ -38,7 +33,7 @@ test is_error { pub fn map(result, fun) { case result { | Ok(x) -> Ok(fun(x)) - | Error(_) -> result + | Error(e) -> Error(e) } } @@ -47,6 +42,10 @@ test map { |> map(_, fn(x) { x + 1 }) |> expect:equal(_, Ok(2)) + Ok(1) + |> map(_, fn(_) { "2" }) + |> expect:equal(_, Ok("2")) + Error(1) |> map(_, fn(x) { x + 1 }) |> expect:equal(_, Error(1)) @@ -90,7 +89,7 @@ test flatten { |> expect:equal(_, Error(Error(1))) } -pub fn flat_map(result, fun) { +pub fn then(result, fun) { case result { | Ok(x) -> case fun(x) { @@ -101,17 +100,17 @@ pub fn flat_map(result, fun) { } } -test flat_map { +test then { Error(1) - |> flat_map(_, fn(x) { Ok(x + 1) }) + |> then(_, fn(x) { Ok(x + 1) }) |> expect:equal(_, Error(1)) Ok(1) - |> flat_map(_, fn(x) { Ok(x + 1) }) + |> then(_, fn(x) { Ok(x + 1) }) |> expect:equal(_, Ok(2)) Ok(1) - |> flat_map(_, fn(_) { Error(1) }) + |> then(_, fn(_) { Error(1) }) |> expect:equal(_, Error(1)) } |