[−][src]Struct rand_os::OsRng
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.
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_os::rand_core::RngCore; use rand_os::OsRng; let mut key = [0u8; 16]; OsRng.fill_bytes(&mut key); let random_u64 = OsRng.next_u64();
Methods
impl OsRng
[src]
pub fn new() -> Result<OsRng, Error>
[src]
replace OsRng::new().unwrap() with just OsRng
Create a new OsRng
.
Trait Implementations
impl Debug for OsRng
[src]
impl Copy for OsRng
[src]
impl Clone for OsRng
[src]
fn clone(&self) -> OsRng
[src]
fn clone_from(&mut self, source: &Self)
1.0.0[src]
Performs copy-assignment from source
. Read more
impl Default for OsRng
[src]
impl CryptoRng for OsRng
[src]
impl RngCore for OsRng
[src]
Auto Trait Implementations
impl Unpin for OsRng
impl Sync for OsRng
impl Send for OsRng
impl UnwindSafe for OsRng
impl RefUnwindSafe for OsRng
Blanket Implementations
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> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> From<T> for T
[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<T> ToOwned for T where
T: Clone,
[src]
T: Clone,