pub enum SamplerRng {
Thread(ThreadRng),
Seeded(Rc<RefCell<StdRng>>),
}Expand description
Defines the source of randomness used by the samplers in this module.
A ThreadRng can not be seeded explicitly, as it is a handle to a
thread-local generator that is seeded and periodically reseeded by the OS.
Hence, seeded samplers use a StdRng instead, which uses the same
algorithm (ChaCha with 12 rounds) as ThreadRng, but it’s never reseeded.
Cloning a SamplerRng returns a handle to the same generator for both variants,
i.e. a clone and its original draw from one shared stream of randomness.
Variants:
Variants§
Trait Implementations§
Source§impl Clone for SamplerRng
impl Clone for SamplerRng
Source§impl Debug for SamplerRng
impl Debug for SamplerRng
Source§impl Default for SamplerRng
impl Default for SamplerRng
Source§fn default() -> Self
fn default() -> Self
Returns a SamplerRng containing the ThreadRng of the current thread.
impl TryCryptoRng for SamplerRng
Source§impl TryRng for SamplerRng
impl TryRng for SamplerRng
Auto Trait Implementations§
impl !RefUnwindSafe for SamplerRng
impl !Send for SamplerRng
impl !Sync for SamplerRng
impl !UnwindSafe for SamplerRng
impl Freeze for SamplerRng
impl Unpin for SamplerRng
impl UnsafeUnpin for SamplerRng
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<R> CryptoRng for R
impl<R> RngCore for Rwhere
R: Rng,
Source§impl<R> RngExt for R
impl<R> RngExt for R
Source§fn random<T>(&mut self) -> Twhere
StandardUniform: Distribution<T>,
fn random<T>(&mut self) -> Twhere
StandardUniform: Distribution<T>,
Return a random value via the
StandardUniform distribution. Read moreSource§fn random_iter<T>(self) -> Iter<StandardUniform, Self, T> ⓘ
fn random_iter<T>(self) -> Iter<StandardUniform, Self, T> ⓘ
Source§fn random_range<T, R>(&mut self, range: R) -> Twhere
T: SampleUniform,
R: SampleRange<T>,
fn random_range<T, R>(&mut self, range: R) -> Twhere
T: SampleUniform,
R: SampleRange<T>,
Generate a random value in the given range. Read more
Source§fn random_bool(&mut self, p: f64) -> bool
fn random_bool(&mut self, p: f64) -> bool
Return a bool with a probability
p of being true. Read moreSource§fn random_ratio(&mut self, numerator: u32, denominator: u32) -> bool
fn random_ratio(&mut self, numerator: u32, denominator: u32) -> bool
Return a bool with a probability of
numerator/denominator of being
true. Read moreSource§fn sample<T, D>(&mut self, distr: D) -> Twhere
D: Distribution<T>,
fn sample<T, D>(&mut self, distr: D) -> Twhere
D: Distribution<T>,
Sample a new value, using the given distribution. Read more
Source§fn sample_iter<T, D>(self, distr: D) -> Iter<D, Self, T> ⓘwhere
D: Distribution<T>,
Self: Sized,
fn sample_iter<T, D>(self, distr: D) -> Iter<D, Self, T> ⓘwhere
D: Distribution<T>,
Self: Sized,
Create an iterator that generates values using the given distribution. Read more