[][src]Struct hashed_permutation::HashedPermutation

pub struct HashedPermutation {
    pub seed: u32,
    pub length: u32,
}

The HashedPermutation struct stores the initial seed and length of the permutation vector. In other words, if you want to shuffle the numbers from 0..n, then length = n.

Because the shuffle is performed using bit arithmetic, the fields have to be 32 bit integers. Unfortunately, larger types are not supported at this time.

Fields

seed: u32

The random seed that dictates which permutation you want to use. The shuffle is deterministic, so using the same seed will yield the same permutation every time.

length: u32

The upper bound on the range of numbers to shuffle (from 0..length). This value must be greater zero, otherwise undefined behavior may occur.

Methods

impl HashedPermutation[src]

pub fn shuffle(&self, input: u32) -> PermutationResult<u32>[src]

Shuffle or permute a particular value.

This method uses the technique described in Kensler's paper to perform an in-place shuffle with no memory overhead.

Trait Implementations

impl Clone for HashedPermutation[src]

impl Debug for HashedPermutation[src]

Auto Trait Implementations

Blanket Implementations

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

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

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]