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

## ----eval = FALSE-------------------------------------------------------------
# flexstanr::use_flexstanr()

## -----------------------------------------------------------------------------
opts <- stan_options(chains = 2, iter = 500, seed = 1)
str(opts)

## -----------------------------------------------------------------------------
# `parallel_chains` is a cmdstanr word; the rstan backend rejects it.
try(stan_options(backend = "rstan", parallel_chains = 4))

## ----eval = FALSE-------------------------------------------------------------
# # `"coverage"` is resolved from your package's stanmodels (rstan) or
# # inst/stan/coverage.stan (cmdstanr).
# fit <- fit_model(
#   "coverage",
#   dat_stan  = data_list,
#   init      = init_list,
#   stan_opts = opts
# )

## ----eval = FALSE-------------------------------------------------------------
# # posterior draws as an iterations x chains x parameters array
# draws <- backend_draws_array(fit)
# 
# # named parameters, matching rstan::extract()'s shape
# post <- backend_extract(fit, pars = c("beta", "sigma"))
# 
# # guard against the degenerate "no draws" case before using a fit
# stopifnot(backend_has_draws(fit))

## -----------------------------------------------------------------------------
backend_has_draws(list())

## ----eval = FALSE-------------------------------------------------------------
# opts <- stan_options(backend = "cmdstanr", parallel_chains = 4, iter_warmup = 500)

