diff options
author | Louis Pilfold <louis@lpil.uk> | 2020-01-13 22:27:32 +0000 |
---|---|---|
committer | Louis Pilfold <louis@lpil.uk> | 2020-01-13 22:39:29 +0000 |
commit | 709bec419cee078ca9770991606ccc484dd0f1c1 (patch) | |
tree | 975814833a24c9581d819d068d26ee7a015d421d | |
parent | ab2e2ddeae10d623f6a56cb2894414e3101b5556 (diff) | |
download | gleam_stdlib-709bec419cee078ca9770991606ccc484dd0f1c1.tar.gz gleam_stdlib-709bec419cee078ca9770991606ccc484dd0f1c1.zip |
Type annotations for gleam/result
-rw-r--r-- | src/gleam/result.gleam | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/src/gleam/result.gleam b/src/gleam/result.gleam index dce270c..28b7d96 100644 --- a/src/gleam/result.gleam +++ b/src/gleam/result.gleam @@ -1,49 +1,58 @@ // Result represents the result of something that may succeed or fail. // `Ok` means it was successful, `Error` means it failed. -pub fn is_ok(result) { +pub fn is_ok(result: Result(a, e)) -> Bool { case result { Error(_) -> False Ok(_) -> True } } -pub fn is_error(result) { +pub fn is_error(result: Result(a, e)) -> Bool { case result { Ok(_) -> False Error(_) -> True } } -pub fn map(result, with fun) { +pub fn map( + over result: Result(a, e), + with fun: fn(a) -> b, +) -> Result(b, e) { case result { Ok(x) -> Ok(fun(x)) Error(e) -> Error(e) } } -pub fn map_error(result, with fun) { +pub fn map_error( + over result: Result(a, e), + with fun: fn(e) -> f, +) -> Result(a, f) { case result { Ok(x) -> Ok(x) Error(error) -> Error(fun(error)) } } -pub fn flatten(result) { +pub fn flatten(result: Result(Result(a, e), e)) -> Result(a, e) { case result { Ok(x) -> x Error(error) -> Error(error) } } -pub fn then(result, apply fun) { +pub fn then( + result: Result(a, e), + apply fun: fn(a) -> Result(b, e), +) -> Result(b, e) { case result { Ok(x) -> fun(x) Error(e) -> Error(e) } } -pub fn unwrap(result, or default) { +pub fn unwrap(result: Result(a, e), or default: a) -> a { case result { Ok(v) -> v Error(_) -> default |