Skip to contents

Checks if all arguments are of the same type.

Usage

assert_same_type(
  ...,
  .message = c("Arguments {.arg {arg_names}} must be the same type.", i =
    paste("Argument types are", paste0("{.arg ", arg_names, "} {.cls ", types, "}",
    collapse = ", "))),
  .class = "assert_same_type",
  .call = parent.frame()
)

Arguments

...

Arguments to be checked

.message

character vector passed to cli_abort(message) when assertion fails.

.class

character vector passed to cli_abort(class) when assertion fails.

.call

environment passed to cli_abort(call) when assertion fails.

Value

The function throws an error if not all arguments are of the same type.

Examples

example_fun <- function(true_value, false_value, missing_value) {
  assert_same_type(true_value, false_value, missing_value)
}

example_fun(
  true_value = "Y",
  false_value = "N",
  missing_value = NA_character_
)

try(example_fun(
  true_value = 1,
  false_value = 0,
  missing_value = "missing"
))
#> Error in example_fun(true_value = 1, false_value = 0, missing_value = "missing") : 
#>   Arguments `true_value`, `false_value`, and `missing_value` must be the
#> same type.
#>  Argument types are `true_value` <double>, `false_value` <double>,
#>   `missing_value` <character>