lib/trivial: add warnIfNot and throwIf

Negated versions of warnIf and throwIfNot.
This commit is contained in:
Naïm Favier 2022-03-19 20:39:52 +01:00
parent 83e8ce412b
commit 7fae930a37
No known key found for this signature in database
GPG Key ID: 49B07322580B7EE2

View File

@ -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: