Struct rand::rngs::OsRng [−][src]
A random number generator that retrieves randomness from from the operating system.
This is a zero-sized struct. It can be freely constructed with OsRng
.
The implementation is provided by the getrandom crate. Refer to getrandom documentation for details.
This struct is only available when specifying the crate feature getrandom
or std
. When using the rand
lib, it is also available as rand::rngs::OsRng
.
Blocking and error handling
It is possible that when used during early boot the first call to OsRng
will block until the system’s RNG is initialised. It is also possible
(though highly unlikely) for OsRng
to fail on some platforms, most
likely due to system mis-configuration.
After the first successful call, it is highly unlikely that failures or significant delays will occur (although performance should be expected to be much slower than a user-space PRNG).
Usage example
use rand_core::{RngCore, OsRng}; let mut key = [0u8; 16]; OsRng.fill_bytes(&mut key); let random_u64 = OsRng.next_u64();
Trait Implementations
impl Clone for OsRng
[src]
impl Copy for OsRng
[src]
impl CryptoRng for OsRng
[src]
impl Debug for OsRng
[src]
impl Default for OsRng
[src]
impl RngCore for OsRng
[src]
Auto Trait Implementations
impl RefUnwindSafe for OsRng
impl Send for OsRng
impl Sync for OsRng
impl Unpin for OsRng
impl UnwindSafe for OsRng
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &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<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>,
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,
fn sample<T, D: Distribution<T>>(&mut self, distr: D) -> T
[src]
fn sample_iter<T, D>(self, distr: D) -> DistIter<D, Self, T>ⓘ where
D: Distribution<T>,
Self: Sized,
[src]
D: Distribution<T>,
Self: Sized,
fn fill<T: AsByteSliceMut + ?Sized>(&mut self, dest: &mut T)
[src]
fn try_fill<T: AsByteSliceMut + ?Sized>(
&mut self,
dest: &mut T
) -> Result<(), Error>
[src]
&mut self,
dest: &mut T
) -> Result<(), Error>
fn gen_bool(&mut self, p: f64) -> bool
[src]
fn gen_ratio(&mut self, numerator: u32, denominator: u32) -> bool
[src]
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn clone_into(&self, target: &mut T)
[src]
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.
pub 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.
pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
[src]
V: MultiLane<T>,