## ----setup, include = FALSE----------------------------------------------
knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>"
)

## ----base-ignore-case, error=TRUE----------------------------------------
base::match.arg("Y", c("yes", "no"))

## ----strex-ignore-case, error=TRUE---------------------------------------
strex::match_arg("Y", c("yes", "no"))
strex::match_arg("Y", c("yes", "no"), ignore_case = TRUE)

## ----no-matches, error=TRUE----------------------------------------------
choices <- c("Apples", "Pears", "Bananas", "Oranges", "Avocados", "Apricots")
match.arg("Q", choices)
strex::match_arg("Q", choices)

## ----multiple-matches, error=TRUE----------------------------------------
match.arg("A", choices)
strex::match_arg("A", choices)

## ----arg-too-long, error=TRUE--------------------------------------------
match.arg(c("A", "a"), choices)
strex::match_arg(c("A", "a"), choices)

## ----choices-duplicate, error=TRUE---------------------------------------
choices <- c(choices, "Pears")
match.arg("P", choices)
strex::match_arg("P", choices)

## ----NULL-choices--------------------------------------------------------
myword <- function(w = c("abacus", "baseball", "candy")) {
  w <- strex::match_arg(w)
  w
}
myword()
myword("b")
myword("c")

## ----NULL-choices-errors, error=TRUE-------------------------------------
myword <- function(w = c("abacus", "baseball", "candy")) {
  w <- strex::match_arg(identity(w))
  w
}
myword("b")
myword <- function(w = c("abacus", "baseball", "candy")) {
  w <- strex::match_arg(as.character(w))
  w
}
myword("b")

