logo
pub struct SipRng { /* private fields */ }
Expand description

A generator built using SipHash’s primitives.

SipRng is statistically high-quality, passing practrand tests to at least 4 TiB. It is also reasonably fast, though not quite competitive with the best non-cryptographic RNGs or optimised block RNGs such as ChaCha.

This implementation is fixed to use two “compression” rounds between output values (similar to SipHash 2-4). Construction via SipHasher::into_rng adds two extra rounds to maintain four rounds between final input consumption and the first output, however this first result is not identical to SipHash’s result.

Although this generator is heavily based on the design of SipHash, it has not been reviewed for cryptographic strength, and thus cannot be recommended for applications requiring this property.

Trait Implementations

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

Return the next random u32. Read more

Return the next random u64. Read more

Fill dest with random data. Read more

Fill dest entirely with random data. Read more

Seed type, which is restricted to types mutably-dereferencable as u8 arrays (we recommend [u8; N] for some N). Read more

Create a new PRNG using the given seed. Read more

Create a new PRNG using a u64 seed. Read more

Create a new PRNG seeded from another Rng. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

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

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.