aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAl Dee <amyalicedee@gmail.com>2020-05-22 16:10:17 +0100
committerLouis Pilfold <louis@lpil.uk>2020-05-26 19:19:29 +0100
commitb36e0548223dc733a16f431a0e33219b79ac445c (patch)
tree914ae1392aafebb45ba0fc0d84e34267903a971c /src
parentef9263252f6ea1b779d0dab6c04c86d8dc59e596 (diff)
downloadgleam_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.gleam32
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
+ }
+}