use std::fmt::Debug;
pub(crate) mod fixed;
pub(crate) mod random;
pub use random::RandomDataSource;
pub trait DataSource: Debug {
type Seed: Clone;
fn initialize(seed: Self::Seed) -> Self;
fn reinitialize(&mut self) -> Self::Seed;
fn next_u64(&mut self) -> u64;
}