Struct rand_core::block::BlockRng64

source ·
pub struct BlockRng64<R: BlockRngCore + ?Sized> {
    pub core: R,
    /* private fields */
}
Expand description

A wrapper type implementing RngCore for some type implementing BlockRngCore with u64 array buffer; i.e. this can be used to implement a full RNG from just a generate function.

This is similar to BlockRng, but specialized for algorithms that operate on u64 values.

No whole generated u64 values are thrown away and all values are consumed in-order. next_u64 simply takes the next available u64 value. next_u32 is however a bit special: half of a u64 is consumed, leaving the other half in the buffer. If the next function called is next_u32 then the other half is then consumed, however both next_u64 and fill_bytes discard the rest of any half-consumed u64s when called.

fill_bytes and try_fill_bytes consume a whole number of u64 values. If the requested length is not a multiple of 8, some bytes will be discarded.

Fields

core: R

The core part of the RNG, implementing the generate function.

Implementations

Create a new BlockRng from an existing RNG implementing BlockRngCore. Results will be generated on first use.

Get the index into the result buffer.

If this is equal to or larger than the size of the result buffer then the buffer is “empty” and generate() must be called to produce new results.

Reset the number of available results. This will force a new set of results to be generated on next use.

Generate a new set of results immediately, setting the index to the given value.

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
Deserialize this value from the given Serde deserializer. 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-dereferenceable 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
Available on crate feature getrandom only.
Creates a new instance of the RNG seeded via getrandom. Read more
Serialize this value into the given Serde serializer. 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 resulting type after obtaining ownership.
Creates owned data from borrowed data, usually by cloning. Read more
Uses borrowed data to replace owned data, usually by cloning. Read more
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.