use rand::Rng;
pub trait GewekeModel: GewekeResampleData + GewekeSummarize {
fn geweke_from_prior(settings: &Self::Settings, rng: &mut impl Rng)
-> Self;
fn geweke_step(&mut self, settings: &Self::Settings, rng: &mut impl Rng);
}
pub trait GewekeResampleData {
type Settings;
fn geweke_resample_data(
&mut self,
s: Option<&Self::Settings>,
rng: &mut impl Rng,
);
}
pub trait GewekeSummarize: GewekeResampleData {
type Summary;
fn geweke_summarize(&self, settings: &Self::Settings) -> Self::Summary;
}