pub struct RNG<R: PicoRandRNG = WyRand, T = u64> { /* private fields */ }
Expand description
An abstraction over a PRNG with a specific seed.
Implementations§
source§impl<R: PicoRandRNG, T> RNG<R, T>where
<R as PicoRandRNG>::Output: TryInto<T>,
impl<R: PicoRandRNG, T> RNG<R, T>where
<R as PicoRandRNG>::Output: TryInto<T>,
sourcepub fn new(seed: R::Input) -> Self
pub fn new(seed: R::Input) -> Self
Create a new RNG
instance using a specific PRNG and a specific seed.
sourcepub fn generate_range(&mut self, min: usize, max: usize) -> Twhere
<R as PicoRandRNG>::Output: Into<u128>,
T: Default + TryFrom<u128>,
pub fn generate_range(&mut self, min: usize, max: usize) -> Twhere
<R as PicoRandRNG>::Output: Into<u128>,
T: Default + TryFrom<u128>,
Generate a number in the specified range.
Example
use picorand::{WyRand, RNG};
let mut rng = RNG::<WyRand, u8>::new(0xDEADBEEF);
let generated = rng.generate_range(0xC0, 0xDE);
assert!(generated >= 0xC0 || generated < 0xDE);