Struct Rng

Source
pub struct Rng { /* private fields */ }
Expand description

Recommended engine. Currently Xorshift128+.

Implementations§

Source§

impl Rng

Source

pub fn iter<T: 'static>( &mut self, rand: fn(&mut Self) -> T, ) -> impl '_ + Iterator<Item = T>

A helper function to turn random number generation into an iterator.

Example:

use tiny_rng::{Rng, Rand};

let mut rng = Rng::from_seed(0);
for x in rng.iter(Rand::rand_u32).take(10) {
    println!("0x{:08x}", x);
}

Trait Implementations§

Source§

impl Rand for Rng

Source§

fn from_seed(seed: u64) -> Self

To obtain reproducible results. If feature std is enabled, from_time() may be used instead, to use system time as microseconds as a seed. Apply from_seed(random_seed()) to establish a faster local RNG from a global seed RNG.
Source§

fn rand_u64(&mut self) -> u64

A sample from the uniform distribution on 0..=u64::MAX.
Source§

fn rand_u32(&mut self) -> u32

A sample from the uniform distribution on 0..=u32::MAX.
Source§

fn rand_u8(&mut self) -> u8

A sample from the uniform distribution on 0..=u8::MAX.
Source§

fn rand_u16(&mut self) -> u16

A sample from the uniform distribution on 0..=u16::MAX.
Source§

fn rand_usize(&mut self) -> usize

A sample from the uniform distribution on 0..=usize::MAX.
Source§

fn rand_bounded_u32(&mut self, m: u32) -> u32

A sample from the uniform distribution on 0..m.
Source§

fn rand_bounded_u64(&mut self, m: u64) -> u64

A sample from the uniform distribution on 0..m.
Source§

fn rand_bounded_usize(&mut self, m: usize) -> usize

A sample from the uniform distribution on 0..m.
Source§

fn rand_range_u32(&mut self, a: u32, b: u32) -> u32

A sample from the uniform distribution on a..b.
Source§

fn rand_range_u64(&mut self, a: u64, b: u64) -> u64

A sample from the uniform distribution on a..b.
Source§

fn rand_range_i32(&mut self, a: i32, b: i32) -> i32

A sample from the uniform distribution on a..b.
Source§

fn rand_range_i64(&mut self, a: i64, b: i64) -> i64

A sample from the uniform distribution on a..b.
Source§

fn rand_f32(&mut self) -> f32

A sample from the uniform distribution on the interval [0, 1).
⚠️ WARNING: Achieving uniform distribution of floats is complex and requires analysis yet to be accomplished.
Source§

fn rand_f64(&mut self) -> f64

A sample from the uniform distribution on the interval [0, 1).
⚠️ WARNING: Achieving uniform distribution of floats is complex and requires analysis yet to be accomplished.
Source§

fn choice<'a, T>(&mut self, a: &'a [T]) -> &'a T

A sample from the uniform distribution on the non-empty slice.
Source§

fn shuffle<T>(&mut self, a: &mut [T])

Shuffle an array randomly. The method is called Fisher–Yates shuffle and has linear time complexity.
Source§

fn fill(&mut self, a: &mut [u8])

Fill a buffer with random bytes.

Auto Trait Implementations§

§

impl Freeze for Rng

§

impl RefUnwindSafe for Rng

§

impl Send for Rng

§

impl Sync for Rng

§

impl Unpin for Rng

§

impl UnwindSafe for Rng

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

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

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

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

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

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

Source§

fn into(self) -> U

Calls U::from(self).

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

Source§

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

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.