diff options
author | Louis Pilfold <louis@lpil.uk> | 2023-01-21 13:11:00 +0000 |
---|---|---|
committer | Louis Pilfold <louis@lpil.uk> | 2023-02-26 18:51:30 +0000 |
commit | fc751bf5e410e7f6c3ff781da38089f4fc9d8be9 (patch) | |
tree | 89170154680f7d75a0a613306b101e91fd8f4777 | |
parent | 608babd928782b1f50a01efd302fdc23f0de1428 (diff) | |
download | gleam_stdlib-fc751bf5e410e7f6c3ff781da38089f4fc9d8be9.tar.gz gleam_stdlib-fc751bf5e410e7f6c3ff781da38089f4fc9d8be9.zip |
Remove result.guard
-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) - } -} |