pub struct OsRng;
Expand description

A random number generator that retrieves randomness 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

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Returns the “default value” for a type. Read more
Return the next random u32. Read more
Return the next random u64. Read more
Fill dest with random data. Read more
Fill dest entirely with random data. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more
Try cloning a object and return an Err in case of failure.
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more
Upcast to an RngCore trait object.

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Instruments this type with the current Span, returning an Instrumented wrapper. Read more

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Return a random value supporting the Standard distribution. Read more
Generate a random value in the given range. Read more
Sample a new value, using the given distribution. Read more
Create an iterator that generates values using the given distribution. Read more
Fill any type implementing Fill with random data Read more
Fill any type implementing Fill with random data Read more
Return a bool with a probability p of being true. Read more
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
The resulting type after obtaining ownership.
Creates owned data from borrowed data, usually by cloning. Read more
Uses borrowed data to replace owned data, usually by cloning. Read more
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.
Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more