[−][src]Struct rand::os::OsRng
A random number generator that retrieves randomness straight from the operating system. Platform sources:
- Unix-like systems (Linux, Android, Mac OSX): read directly from
/dev/urandom
, or fromgetrandom(2)
system call if available. - OpenBSD: calls
getentropy(2)
- FreeBSD: uses the
kern.arandom
sysctl(2)
mib - Windows: calls
RtlGenRandom
, exported fromadvapi32.dll
asSystemFunction036
. - iOS: calls SecRandomCopyBytes as /dev/(u)random is sandboxed.
- PNaCl: calls into the
nacl-irt-random-0.1
IRT interface.
This usually does not block. On some systems (e.g. FreeBSD, OpenBSD, Max OS X, and modern Linux) this may block very early in the init process, if the CSPRNG has not been seeded yet.[1]
[1] See https://www.python.org/dev/peps/pep-0524/ for a more in-depth discussion.
Implementations
impl OsRng
[src]
Trait Implementations
impl Debug for OsRng
[src]
impl Rng for OsRng
[src]
fn next_u32(&mut self) -> u32
[src]
fn next_u64(&mut self) -> u64
[src]
fn fill_bytes(&mut self, v: &mut [u8])
[src]
fn next_f32(&mut self) -> f32
[src]
fn next_f64(&mut self) -> f64
[src]
fn gen<T>(&mut self) -> T where
T: Rand,
[src]
T: Rand,
fn gen_iter<T>(&'a mut self) -> Generator<'a, T, Self>ⓘ where
T: Rand,
[src]
T: Rand,
fn gen_range<T>(&mut self, low: T, high: T) -> T where
T: SampleRange + PartialOrd<T>,
[src]
T: SampleRange + PartialOrd<T>,
fn gen_weighted_bool(&mut self, n: u32) -> bool
[src]
fn gen_ascii_chars(&'a mut self) -> AsciiGenerator<'a, Self>ⓘNotable traits for AsciiGenerator<'a, R>
impl<'a, R> Iterator for AsciiGenerator<'a, R> where
R: Rng, type Item = char;
[src]
Notable traits for AsciiGenerator<'a, R>
impl<'a, R> Iterator for AsciiGenerator<'a, R> where
R: Rng, type Item = char;
fn choose<T>(&mut self, values: &'a [T]) -> Option<&'a T>
[src]
fn choose_mut<T>(&mut self, values: &'a mut [T]) -> Option<&'a mut T>
[src]
fn shuffle<T>(&mut self, values: &mut [T])
[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,
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<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>,