diff options
author | Peter Saxton <peterhsaxton@gmail.com> | 2020-12-02 16:46:43 +0000 |
---|---|---|
committer | Louis Pilfold <louis@lpil.uk> | 2020-12-02 17:28:03 +0000 |
commit | 2f656a81c81a35d7d63bc67e9e0828b25fcca895 (patch) | |
tree | 04204cdbd856fd40920c364c6f008388090a9725 /src | |
parent | 719eccd9ab38a35e79580f684b9ebde85222eef8 (diff) | |
download | gleam_stdlib-2f656a81c81a35d7d63bc67e9e0828b25fcca895.tar.gz gleam_stdlib-2f656a81c81a35d7d63bc67e9e0828b25fcca895.zip |
add lazy unwrap
Diffstat (limited to 'src')
-rw-r--r-- | src/gleam/result.gleam | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/gleam/result.gleam b/src/gleam/result.gleam index 76ee0e1..c381cae 100644 --- a/src/gleam/result.gleam +++ b/src/gleam/result.gleam @@ -165,6 +165,24 @@ pub fn unwrap(result: Result(a, e), or default: a) -> a { } } +/// Extract the Ok value from a result, evaluating the default function if the result +/// is an Error. +/// +/// ## Examples +/// +/// > unwrap(Ok(1), fn() { 0 }) +/// 1 +/// +/// > unwrap(Error(""), fn() { 0 }) +/// 0 +/// +pub fn lazy_unwrap(result: Result(a, e), or default: fn() -> a) -> a { + case result { + Ok(v) -> v + Error(_) -> default() + } +} + /// Transforms any error into Error(Nil) /// /// ## Examples |