aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLouis Pilfold <louis@lpil.uk>2020-01-13 22:27:32 +0000
committerLouis Pilfold <louis@lpil.uk>2020-01-13 22:39:29 +0000
commit709bec419cee078ca9770991606ccc484dd0f1c1 (patch)
tree975814833a24c9581d819d068d26ee7a015d421d
parentab2e2ddeae10d623f6a56cb2894414e3101b5556 (diff)
downloadgleam_stdlib-709bec419cee078ca9770991606ccc484dd0f1c1.tar.gz
gleam_stdlib-709bec419cee078ca9770991606ccc484dd0f1c1.zip
Type annotations for gleam/result
-rw-r--r--src/gleam/result.gleam23
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