[−][src]Struct hashed_permutation::HashedPermutation
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]
fn clone(&self) -> HashedPermutation
[src]
fn clone_from(&mut self, source: &Self)
1.0.0[src]
impl Debug for HashedPermutation
[src]
Auto Trait Implementations
impl Unpin for HashedPermutation
impl Sync for HashedPermutation
impl Send for HashedPermutation
impl UnwindSafe for HashedPermutation
impl RefUnwindSafe for HashedPermutation
Blanket Implementations
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T
[src]
fn clone_into(&self, target: &mut T)
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> From<T> for T
[src]
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>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,