R/vec-cast-term.R

Defines functions vec_cast.term.term_rcrd vec_cast.term.character vec_cast.term.term vec_cast.term.default

#' @export
vctrs::vec_cast

#' @export
vec_cast.term.default <- function(x, to, ...) {
  vec_default_cast(x, to)
}

#' @export
vec_cast.term.term <- function(x, to, ...) x

#' @export
vec_cast.term.character <- function(x, to, ...) new_term(x)

#' @export
vec_cast.term.term_rcrd <- function(x, to, ...) {
  if(!length(x)) return(new_term())
  chr <- paste0(
    field(x, "par"),
    "[",
    purrr::map_chr(field(x, "dim"), paste, collapse = ","),
    "]"
  )
  chr[is.na(field(x, "par"))] <- NA_character_
  chr <- new_term(chr)
  normalize_terms(chr)
}

Try the term package in your browser

Any scripts or data that you put into this service are public.

term documentation built on Sept. 29, 2022, 5:14 p.m.