[−][src]Struct rand::rngs::ThreadRng  
The type returned by [thread_rng], essentially just a reference to the
PRNG in thread-local memory.
ThreadRng uses the same PRNG as StdRng for security and performance.
As hinted by the name, the generator is thread-local. ThreadRng is a
handle to this generator and thus supports Copy, but not Send or Sync.
Unlike StdRng, ThreadRng uses the  ReseedingRng wrapper to reseed
the PRNG from fresh entropy every 64 kiB of random data.
[OsRng] is used to provide seed data.
Note that the reseeding is done as an extra precaution against side-channel attacks and mis-use (e.g. if somehow weak entropy were supplied initially). The PRNG algorithms used are assumed to be secure.
Trait Implementations
impl Copy for ThreadRng[src]
impl Default for ThreadRng[src]
impl Clone for ThreadRng[src]
fn clone(&self) -> ThreadRng[src]
fn clone_from(&mut self, source: &Self)1.0.0[src]
Performs copy-assignment from source. Read more
impl Debug for ThreadRng[src]
impl RngCore for ThreadRng[src]
fn next_u32(&mut self) -> u32[src]
fn next_u64(&mut self) -> u64[src]
fn fill_bytes(&mut self, dest: &mut [u8])[src]
fn try_fill_bytes(&mut self, dest: &mut [u8]) -> Result<(), Error>[src]
impl CryptoRng for ThreadRng[src]
Auto Trait Implementations
impl Unpin for ThreadRng
impl !Sync for ThreadRng
impl !Send for ThreadRng
impl UnwindSafe for ThreadRng
impl RefUnwindSafe for ThreadRng
Blanket Implementations
impl<R> Rng for R where
    R: RngCore + ?Sized, [src]
R: RngCore + ?Sized,
fn gen<T>(&mut self) -> T where
    Standard: Distribution<T>, [src]
Standard: Distribution<T>,
Return a random value supporting the [Standard] distribution. Read more
fn gen_range<T: SampleUniform, B1, B2>(&mut self, low: B1, high: B2) -> T where
    B1: SampleBorrow<T> + Sized,
    B2: SampleBorrow<T> + Sized, [src]
B1: SampleBorrow<T> + Sized,
B2: SampleBorrow<T> + Sized,
Generate a random value in the range [low, high), i.e. inclusive of low and exclusive of high. Read more
fn sample<T, D: Distribution<T>>(&mut self, distr: D) -> T[src]
Sample a new value, using the given distribution. Read more
ⓘImportant traits for DistIter<D, R, T>fn sample_iter<T, D>(self, distr: D) -> DistIter<D, Self, T> where
    D: Distribution<T>,
    Self: Sized, [src]
D: Distribution<T>,
Self: Sized,
Create an iterator that generates values using the given distribution. Read more
fn fill<T: AsByteSliceMut + ?Sized>(&mut self, dest: &mut T)[src]
Fill dest entirely with random bytes (uniform value distribution), where dest is any type supporting [AsByteSliceMut], namely slices and arrays over primitive integer types (i8, i16, u32, etc.). Read more
fn try_fill<T: AsByteSliceMut + ?Sized>(
    &mut self, 
    dest: &mut T
) -> Result<(), Error>[src]
&mut self,
dest: &mut T
) -> Result<(), Error>
Fill dest entirely with random bytes (uniform value distribution), where dest is any type supporting [AsByteSliceMut], namely slices and arrays over primitive integer types (i8, i16, u32, etc.). Read more
fn gen_bool(&mut self, p: f64) -> bool[src]
Return a bool with a probability p of being true. Read more
fn gen_ratio(&mut self, numerator: u32, denominator: u32) -> bool[src]
Return a bool with a probability of numerator/denominator of being true. I.e. gen_ratio(2, 3) has chance of 2 in 3, or about 67%, of returning true. If numerator == denominator, then the returned value is guaranteed to be true. If numerator == 0, then the returned value is guaranteed to be false. Read more
impl<T> ToOwned for T where
    T: Clone, [src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T[src]
fn clone_into(&self, target: &mut T)[src]
impl<T> From<T> for T[src]
impl<T, U> Into<U> for T where
    U: From<T>, [src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
    U: Into<T>, [src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]
impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, [src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>[src]
impl<T> Borrow<T> for T where
    T: ?Sized, [src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
    T: ?Sized, [src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T[src]
impl<T> Any for T where
    T: 'static + ?Sized, [src]
T: 'static + ?Sized,
impl<V, T> VZip<V> for T where
    V: MultiLane<T>, [src]
V: MultiLane<T>,