Trait SeedableRng

Source
pub trait SeedableRng<Seed>: Rng {
    // Required methods
    fn reseed(&mut self, _: Seed);
    fn from_seed(seed: Seed) -> Self;
}
Expand description

A random number generator that can be explicitly seeded to produce the same stream of randomness multiple times.

Required Methods§

Source

fn reseed(&mut self, _: Seed)

Reseed an RNG with the given seed.

§Example
use rand::{Rng, SeedableRng, StdRng};

let seed: &[_] = &[1, 2, 3, 4];
let mut rng: StdRng = SeedableRng::from_seed(seed);
println!("{}", rng.gen::<f64>());
rng.reseed(&[5, 6, 7, 8]);
println!("{}", rng.gen::<f64>());
Source

fn from_seed(seed: Seed) -> Self

Create a new RNG with the given seed.

§Example
use rand::{Rng, SeedableRng, StdRng};

let seed: &[_] = &[1, 2, 3, 4];
let mut rng: StdRng = SeedableRng::from_seed(seed);
println!("{}", rng.gen::<f64>());

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl SeedableRng<[u32; 4]> for XorShiftRng

Source§

impl<'a> SeedableRng<&'a [u32]> for ChaChaRng

Source§

impl<'a> SeedableRng<&'a [u32]> for IsaacRng

Source§

impl<'a> SeedableRng<&'a [u64]> for Isaac64Rng

Source§

impl<'a> SeedableRng<&'a [usize]> for StdRng

Source§

impl<S, R, Rsdr> SeedableRng<(Rsdr, S)> for ReseedingRng<R, Rsdr>
where R: SeedableRng<S>, Rsdr: Reseeder<R> + Default,