Struct tokio::util::rand::FastRand

source ·
pub(crate) struct FastRand {
    one: u32,
    two: u32,
}
Expand description

Fast random number generate.

Implement xorshift64+: 2 32-bit xorshift sequences added together. Shift triplet [17,7,16] was calculated as indicated in Marsaglia’s Xorshift paper: https://www.jstatsoft.org/article/view/v008i14/xorshift.pdf This generator passes the SmallCrush suite, part of TestU01 framework: http://simul.iro.umontreal.ca/testu01/tu01.html

Fields§

§one: u32§two: u32

Implementations§

source§

impl FastRand

source

pub(crate) fn replace_seed(&mut self, seed: RngSeed) -> RngSeed

Replaces the state of the random number generator with the provided seed, returning the seed that represents the previous state of the random number generator.

The random number generator will become equivalent to one created with the same seed.

source§

impl FastRand

source

pub(crate) fn new() -> FastRand

Initialize a new fast random number generator using the default source of entropy.

source

pub(crate) fn from_seed(seed: RngSeed) -> FastRand

Initializes a new, thread-local, fast random number generator.

source

pub(crate) fn fastrand_n(&mut self, n: u32) -> u32

source

fn fastrand(&mut self) -> u32

Trait Implementations§

source§

impl Clone for FastRand

source§

fn clone(&self) -> FastRand

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for FastRand

source§

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

Formats the value using the given formatter. Read more
source§

impl Copy for FastRand

Auto Trait Implementations§

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> CloneToUninit for T
where T: Clone,

source§

unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. 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> ToOwned for T
where T: Clone,

source§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

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

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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.