assertEachOneOf
lib.asserts.assertEachOneOf
Docs pulled from | This Revision | about 1 hour ago
Specialized assertMsg
for checking if every one of vals
is one of the elements
of the list xs
. Useful for checking lists of supported attributes.
Inputs
name
-
The name of the variable the user entered
val
into, for inclusion in the error message vals
-
The list of values of what the user provided, to be compared against the values in
xs
xs
-
The list of valid values
Type
assertEachOneOf :: String -> List ComparableVal -> List ComparableVal -> Bool
Examples
lib.asserts.assertEachOneOf
usage example
let sslLibraries = [ "libressl" "bearssl" ];
in assertEachOneOf "sslLibraries" sslLibraries [ "openssl" "bearssl" ]
stderr> error: each element in sslLibraries must be one of [
stderr> "openssl"
stderr> "bearssl"
stderr> ], but is: [
stderr> "libressl"
stderr> "bearssl"
stderr> ]
Noogle detected
Implementation
The following is the current implementation of this function.
assertEachOneOf =
name: vals: xs:
assertMsg (lib.all (val: lib.elem val xs) vals)
"each element in ${name} must be one of ${lib.generators.toPretty { } xs}, but is: ${
lib.generators.toPretty { } vals
}";