franklin 0.1.4

A utility for generating images through evolution.
Documentation
use rand::{
    distributions::{uniform::SampleUniform, Uniform},
    prelude::{Distribution, StdRng},
    SeedableRng,
};

#[derive(Debug)]
pub struct Random {
    rng: StdRng,
}

impl Random {
    #[must_use]
    pub fn get_random<T>(&mut self, min: T, max: T) -> T
    where
        T: SampleUniform,
    {
        Uniform::new(min, max).sample(&mut self.rng)
    }

    pub fn get_rng(&mut self) -> &mut StdRng {
        &mut self.rng
    }
}

impl Default for Random {
    #[must_use]
    fn default() -> Self {
        Self {
            rng: rand::rngs::StdRng::from_entropy(),
        }
    }
}