aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/gleam/result.gleam14
-rw-r--r--test/gleam/result_test.gleam14
2 files changed, 28 insertions, 0 deletions
diff --git a/src/gleam/result.gleam b/src/gleam/result.gleam
index 7dd2076..7861827 100644
--- a/src/gleam/result.gleam
+++ b/src/gleam/result.gleam
@@ -184,3 +184,17 @@ pub fn unwrap(result: Result(a, e), or default: a) -> a {
pub fn none() -> Option(a) {
Error(Nil)
}
+
+/// Transforms any error into Error(Nil)
+///
+/// ## Examples
+///
+/// > nil_error(Error(1))
+/// Error(Nil)
+///
+/// > nil_error(Ok(1))
+/// Ok(1)
+///
+pub fn nil_error(result: Result(a, e)) -> Result(a, Nil) {
+ map_error(result, fn(_) { Nil })
+}
diff --git a/test/gleam/result_test.gleam b/test/gleam/result_test.gleam
index 7eb55c4..2fa9298 100644
--- a/test/gleam/result_test.gleam
+++ b/test/gleam/result_test.gleam
@@ -86,3 +86,17 @@ pub fn unwrap_test() {
|> result.unwrap(50)
|> should.equal(50)
}
+
+pub fn nil_error_test() {
+ Error("error_string")
+ |> result.nil_error
+ |> should.equal(Error(Nil))
+
+ Error(123)
+ |> result.nil_error
+ |> should.equal(Error(Nil))
+
+ Ok(1)
+ |> result.nil_error
+ |> should.equal(Ok(1))
+}