rvar_sample <- function(x, size, replace = FALSE, prob = NULL) {
x_draws <- posterior::draws_of(x)
draws <- sample.int(dim(x_draws)[1], size, replace, prob)
index_args <- c(
list(x_draws),
list(draws),
dim(x_draws)[-1] |> as.list() |> lapply(seq_len)
)
do.call(`[`, index_args) |> posterior::rvar()
}