diff options
author | Naïm Favier <n@monade.li> | 2022-03-19 20:39:52 +0100 |
---|---|---|
committer | Naïm Favier <n@monade.li> | 2022-03-19 20:40:40 +0100 |
commit | 7fae930a37a06fe08d4f85d6f41b04b37ed05cd0 (patch) | |
tree | 45e1d84459bbe953d560af11e5eecb690c916f55 | |
parent | 83e8ce412b4c7561b28acc924bd46a4bd08c2351 (diff) |
lib/trivial: add warnIfNot and throwIf
Negated versions of warnIf and throwIfNot.
-rw-r--r-- | lib/trivial.nix | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/lib/trivial.nix b/lib/trivial.nix index c68bac902e913..fd0c9aba4fff4 100644 --- a/lib/trivial.nix +++ b/lib/trivial.nix @@ -323,7 +323,14 @@ rec { Type: bool -> string -> a -> a */ - warnIf = cond: msg: if cond then warn msg else id; + warnIf = cond: msg: if cond then warn msg else x: x; + + /* + Like warnIf, but negated (warn if the first argument is `false`). + + Type: bool -> string -> a -> a + */ + warnIfNot = cond: msg: if cond then x: x else warn msg; /* Like the `assert b; e` expression, but with a custom error message and @@ -347,6 +354,13 @@ rec { */ throwIfNot = cond: msg: if cond then x: x else throw msg; + /* + Like throwIfNot, but negated (throw if the first argument is `true`). + + Type: bool -> string -> a -> a + */ + throwIf = cond: msg: if cond then throw msg else x: x; + /* Check if the elements in a list are valid values from a enum, returning the identity function, or throwing an error message otherwise. Example: |