use cribler::{Suite, WordSource};
#[derive(Clone, Copy)]
struct Tiny64(u64);
impl<'a> From<Tiny64> for WordSource<'a> {
fn from(mut rng: Tiny64) -> Self {
WordSource::new("Tiny64", 64, move || {
rng.0 = rng.0.wrapping_mul(6364136223846793005).wrapping_add(1);
rng.0
})
}
}
fn main() -> anyhow::Result<()> {
let results = Suite::new(1)
.from_urng32::<urng::Xorshift32>()?
.from_urng32::<urng::Pcg32>()?
.from_urng32::<urng::SplitMix32>()?
.from_rand::<rand_sfc::Sfc32>()?
.from_custom(Tiny64(1))?
.run()?;
for r in &results {
println!("{}", serde_json::to_string_pretty(&r)?);
}
Ok(())
}