diff options
author | Al Dee <amyalicedee@gmail.com> | 2020-05-22 16:10:17 +0100 |
---|---|---|
committer | Louis Pilfold <louis@lpil.uk> | 2020-05-26 19:19:29 +0100 |
commit | b36e0548223dc733a16f431a0e33219b79ac445c (patch) | |
tree | 914ae1392aafebb45ba0fc0d84e34267903a971c /src | |
parent | ef9263252f6ea1b779d0dab6c04c86d8dc59e596 (diff) | |
download | gleam_stdlib-b36e0548223dc733a16f431a0e33219b79ac445c.tar.gz gleam_stdlib-b36e0548223dc733a16f431a0e33219b79ac445c.zip |
Add to_result and from_result to option module
Diffstat (limited to 'src')
-rw-r--r-- | src/gleam/option.gleam | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/src/gleam/option.gleam b/src/gleam/option.gleam index 30bc1e2..e5be4cc 100644 --- a/src/gleam/option.gleam +++ b/src/gleam/option.gleam @@ -36,3 +36,35 @@ pub fn is_some(option: Option(a)) -> Bool { pub fn is_none(option: Option(a)) -> Bool { option == None } + +/// Converts an Option type to a Result type +/// +/// ## Examples +/// +/// > to_result(Some(1), "some_error") +/// Ok(1) +/// > to_result(None, "some_error") +/// Error("some_error") +/// +pub fn to_result(option: Option(a), e) -> Result(a, e) { + case option { + Some(a) -> Ok(a) + _ -> Error(e) + } +} + +/// Converts a Result type to an Option type +/// +/// ## Examples +/// +/// > from_result(Ok(1)) +/// Some(1) +/// > from_result(Error"some_error")) +/// None +/// +pub fn from_result(result: Result(a, e)) -> Option(a) { + case result { + Ok(a) -> Some(a) + _ -> None + } +} |