diff options
author | Ahmad Sattar <thehabbos007@gmail.com> | 2020-06-18 19:04:03 +0200 |
---|---|---|
committer | Louis Pilfold <louis@lpil.uk> | 2020-06-18 21:55:52 +0100 |
commit | eb0224d3f26c4fd90894bac5fb346c2aa3533efe (patch) | |
tree | b254db7c49fe937f1c90f5169f263b7c72d5e2d7 /src | |
parent | 7198eab42221bd99a0aa82795688aecc27533bc1 (diff) | |
download | gleam_stdlib-eb0224d3f26c4fd90894bac5fb346c2aa3533efe.tar.gz gleam_stdlib-eb0224d3f26c4fd90894bac5fb346c2aa3533efe.zip |
Result or function
Diffstat (limited to 'src')
-rw-r--r-- | src/gleam/result.gleam | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/gleam/result.gleam b/src/gleam/result.gleam index b686939..88f933a 100644 --- a/src/gleam/result.gleam +++ b/src/gleam/result.gleam @@ -176,3 +176,26 @@ pub fn unwrap(result: Result(a, e), or default: a) -> a { pub fn nil_error(result: Result(a, e)) -> Result(a, Nil) { map_error(result, fn(_) { Nil }) } + +/// Return the first value if it is Ok, otherwise return the second value. +/// +/// ## Examples +/// +/// > or(Ok(1), Ok(2)) +/// Ok(1) +/// +/// > or(Ok(1), Error("Error 2")) +/// Ok(1) +/// +/// > or(Error("Error 1"), Ok(2)) +/// Ok(2) +/// +/// > or(Error("Error 1"), Error("Error 2")) +/// Error("Error 2") +/// +pub fn or(first: Result(a, e), second: Result(a, e)) -> Result(a, e) { + case first { + Ok(_) -> first + Error(_) -> second + } +} |