Checks if the argument is a list of expressions.
Usage
assert_expr_list(
arg,
required_elements = NULL,
named = FALSE,
optional = FALSE,
arg_name = rlang::caller_arg(arg),
message = NULL,
class = "assert_expr_list",
call = parent.frame()
)Arguments
- arg
A function argument to be checked
- Default value
none
- required_elements
A
charactervector of names that must be present inarg- Default value
NULL
- named
If set to
TRUE, an error is issued if not all elements of the list are named.- Default value
FALSE
- optional
Is the checked argument optional? If set to
FALSEandargisNULLthen an error is thrown.- Default value
FALSE
- arg_name
string indicating the label/symbol of the object being checked.
- Default value
rlang::caller_arg(arg)
- message
string passed to
cli::cli_abort(message). WhenNULL, default messaging is used (see examples for default messages)."{arg_name}"can be used in messaging.- Default value
NULL
- class
Subclass of the condition.
- call
The execution environment of a currently running function, e.g.
call = caller_env(). The corresponding function call is retrieved and mentioned in error messages as the source of the error.You only need to supply
callwhen throwing a condition from a helper function which wouldn't be relevant to mention in the message.Can also be
NULLor a defused function call to respectively not display any call or hard-code a code to display.For more information about error calls, see Including function calls in error messages.
Value
The function throws an error if arg is not a list of expressions.
Otherwise, the input it returned invisibly.
See also
Checks for valid input and returns warning or errors messages:
assert_atomic_vector(),
assert_character_scalar(),
assert_character_vector(),
assert_data_frame(),
assert_date_vector(),
assert_expr(),
assert_filter_cond(),
assert_function(),
assert_integer_scalar(),
assert_list_element(),
assert_list_of(),
assert_logical_scalar(),
assert_named(),
assert_numeric_vector(),
assert_one_to_one(),
assert_param_does_not_exist(),
assert_s3_class(),
assert_same_type(),
assert_symbol(),
assert_unit(),
assert_vars(),
assert_varval_list()
Examples
library(rlang)
example_fun <- function(vars) {
assert_expr_list(vars)
}
example_fun(exprs(DTHDOM = "AE", DTHSEQ = AESEQ))
try(example_fun(exprs("AE", DTSEQ = AESEQ, !!list("a"), !!list("a"))))
#> Error in example_fun(exprs("AE", DTSEQ = AESEQ, !!list("a"), !!list("a"))) :
#> All elements of `vars` must be an expression.
#> ℹ `vars[[3]]` = `list("a")` is of type <list>, and `vars[[4]]` = `list("a")` is
#> of type <list>
