diff options
-rw-r--r-- | CHANGELOG.md | 2 | ||||
-rw-r--r-- | src/gleam/result.gleam | 33 | ||||
-rw-r--r-- | test/gleam/result_test.gleam | 14 |
3 files changed, 1 insertions, 48 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index ca97c1d..b445d45 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,7 @@ ## Unreleased -- Updated for Gleam v0.27.0. +- The `bool` module gains the `guard` function. - Fixed a bug where `io.print`, `io.print_error`, and `io.print_debug` would use `console.log` and add `"\n"` to the output when running on Deno. - Fixed a bug where `int.floor_divide` would return the wrong result in certain diff --git a/src/gleam/result.gleam b/src/gleam/result.gleam index fef8169..e64e96a 100644 --- a/src/gleam/result.gleam +++ b/src/gleam/result.gleam @@ -411,36 +411,3 @@ pub fn replace_error(result: Result(a, e1), error: e2) -> Result(a, e2) { pub fn values(results: List(Result(a, e))) -> List(a) { list.filter_map(results, fn(r) { r }) } - -/// Run a callback function if the given bool is `True`, otherwise return a -/// default error value. -/// -/// This function is suitable for `use` expressions. -/// -/// ## Examples -/// -/// ```gleam -/// > let name = "Kamaka" -/// > use <- guard(name != "", or: "Missing name") -/// > Ok("Hello, " <> name) -/// Ok("Hello, Kamaka") -/// ``` -/// -/// ```gleam -/// > let name = "" -/// > use <- guard(name != "", or: "Missing name") -/// > Ok("Hello, " <> name) -/// Error("Missing name") -/// ``` -/// -/// -pub fn guard( - requirement: Bool, - or error: e, - then consequence: fn() -> Result(a, e), -) -> Result(a, e) { - case requirement { - True -> consequence() - False -> Error(error) - } -} diff --git a/test/gleam/result_test.gleam b/test/gleam/result_test.gleam index dc50dd8..9075977 100644 --- a/test/gleam/result_test.gleam +++ b/test/gleam/result_test.gleam @@ -205,17 +205,3 @@ pub fn values_test() { result.values([Ok(1), Error(""), Ok(3)]) |> should.equal([1, 3]) } - -pub fn guard_test() { - assert Ok(1) = { - let x = 1 - use <- result.guard(True, or: "nope") - Ok(x) - } - - assert Error("nope") = { - let x = 1 - use <- result.guard(False, or: "nope") - Ok(x) - } -} |