#[cfg(feature = "wyrand")]
pub mod wyrand;
#[cfg(feature = "wyrand")]
pub use wyrand::WyRand;
#[cfg(feature = "pcg64")]
pub mod pcg64;
#[cfg(feature = "pcg64")]
pub use pcg64::Pcg64;
#[cfg(feature = "chacha")]
pub mod chacha;
#[cfg(feature = "chacha")]
pub use chacha::ChaCha;
use crate::gen::RandomGen;
pub trait RNG: Clone {
type Output: AsRef<[u8]>;
fn rand(&mut self) -> Self::Output;
fn rand_with_seed(seed: &[u8]) -> Self::Output;
fn generate<R: RandomGen<Self>>(&mut self) -> R {
R::generate(self)
}
fn reseed(&mut self, new_seed: &[u8]);
}