diff options
-rw-r--r-- | src/gleam/result.gleam | 14 | ||||
-rw-r--r-- | test/gleam/result_test.gleam | 14 |
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)) +} |