enum_prepare <- function(..., .ptype = NULL, .mask = rlang::as_data_mask(list())) {
quos <- rlang::quos(...)
len <- length(quos)
vals <- vector(mode = "list", length = len)
keys <- rlang::names2(quos)
for (i in seq_len(len)) {
quo <- quos[[i]]
key <- keys[[i]]
if (key == "" && rlang::quo_is_symbol(quo)) {
val <- key <- as.character(rlang::get_expr(quo))
} else if (rlang::quo_is_missing(quo)) {
val <- key
} else {
val <- rlang::eval_tidy(quo, .mask)
}
if (!is.null(val)) {
vals[[i]] <- val
}
keys[[i]] <- key
if (key != "") {
.mask[[key]] <- val
}
}
assert_vals_not_null(vals, keys)
assert_vals_scalars(vals, keys)
assert_keys_not_empty(keys)
named <- rlang::set_names(vals, keys)
vals <- unname(vctrs::vec_c(!!!named, .ptype = .ptype))
list(vals = vals, keys = keys)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.