Struct rand_core::OsRng[][src]

pub struct OsRng;
Expand description

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]

fn clone(&self) -> OsRng[src]

Returns a copy of the value. Read more

fn clone_from(&mut self, source: &Self)1.0.0[src]

Performs copy-assignment from source. Read more

impl Debug for OsRng[src]

fn fmt(&self, f: &mut Formatter<'_>) -> Result[src]

Formats the value using the given formatter. Read more

impl Default for OsRng[src]

fn default() -> OsRng[src]

Returns the “default value” for a type. Read more

impl RngCore for OsRng[src]

fn next_u32(&mut self) -> u32[src]

Return the next random u32. Read more

fn next_u64(&mut self) -> u64[src]

Return the next random u64. Read more

fn fill_bytes(&mut self, dest: &mut [u8])[src]

Fill dest with random data. Read more

fn try_fill_bytes(&mut self, dest: &mut [u8]) -> Result<(), Error>[src]

Fill dest entirely with random data. Read more

impl Copy for OsRng[src]

impl CryptoRng 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

pub fn type_id(&self) -> TypeId[src]

Gets the TypeId of self. Read more

impl<T> Borrow<T> for T where
    T: ?Sized

pub fn borrow(&self) -> &T[src]

Immutably borrows from an owned value. Read more

impl<T> BorrowMut<T> for T where
    T: ?Sized

pub fn borrow_mut(&mut self) -> &mut T[src]

Mutably borrows from an owned value. Read more

impl<T> From<T> for T[src]

pub fn from(t: T) -> T[src]

Performs the conversion.

impl<T, U> Into<U> for T where
    U: From<T>, 

pub fn into(self) -> U[src]

Performs the conversion.

impl<T> ToOwned for T where
    T: Clone

type Owned = T

The resulting type after obtaining ownership.

pub fn to_owned(&self) -> T[src]

Creates owned data from borrowed data, usually by cloning. Read more

pub fn clone_into(&self, target: &mut T)[src]

🔬 This is a nightly-only experimental API. (toowned_clone_into)

recently added

Uses borrowed data to replace owned data, usually by cloning. Read more

impl<T, U> TryFrom<U> for T where
    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]

Performs the conversion.

impl<T, U> TryInto<U> for T where
    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]

Performs the conversion.