lib.asserts: assertion functions
lib.asserts.assertMsg
Type: assertMsg :: Bool -> String -> Bool
Throw if pred is false, else return pred. Intended to be used to augment asserts with helpful error messages.
-
pred
-
Predicate that needs to succeed, otherwise
msg
is thrown -
msg
-
Message to throw in case
pred
fails
Example
lib.asserts.assertMsg
usage example
assertMsg false "nope"
stderr> error: nope
assert assertMsg ("foo" == "bar") "foo is not bar, silly"; ""
stderr> error: foo is not bar, silly
Located at lib/asserts.nix:19 in <nixpkgs>
.
lib.asserts.assertOneOf
Type: assertOneOf :: String -> ComparableVal -> List ComparableVal -> Bool
Specialized assertMsg
for checking if val
is one of the elements
of the list xs
. Useful for checking enums.
-
name
-
The name of the variable the user entered
val
into, for inclusion in the error message -
val
-
The value of what the user provided, to be compared against the values in
xs
-
xs
-
The list of valid values
Example
lib.asserts.assertOneOf
usage example
let sslLibrary = "libressl";
in assertOneOf "sslLibrary" sslLibrary [ "openssl" "bearssl" ]
stderr> error: sslLibrary must be one of [
stderr> "openssl"
stderr> "bearssl"
stderr> ], but is: "libressl"
Located at lib/asserts.nix:40 in <nixpkgs>
.