aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLouis Pilfold <louis@lpil.uk>2023-01-21 13:11:00 +0000
committerLouis Pilfold <louis@lpil.uk>2023-02-26 18:51:30 +0000
commitfc751bf5e410e7f6c3ff781da38089f4fc9d8be9 (patch)
tree89170154680f7d75a0a613306b101e91fd8f4777
parent608babd928782b1f50a01efd302fdc23f0de1428 (diff)
downloadgleam_stdlib-fc751bf5e410e7f6c3ff781da38089f4fc9d8be9.tar.gz
gleam_stdlib-fc751bf5e410e7f6c3ff781da38089f4fc9d8be9.zip
Remove result.guard
-rw-r--r--CHANGELOG.md2
-rw-r--r--src/gleam/result.gleam33
-rw-r--r--test/gleam/result_test.gleam14
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)
- }
-}