Skip to main content

Gen

Struct Gen 

Source
pub struct Gen { /* private fields */ }
Expand description

Gen represents a PRNG.

It is the source of randomness from which QuickCheck will generate values. An instance of Gen is passed to every invocation of Arbitrary::arbitrary, which permits callers to use lower level RNG routines to generate values.

It is unspecified whether this is a secure RNG or not. Therefore, callers should assume it is insecure.

Implementations§

Source§

impl Gen

Source

pub fn new(size: usize) -> Gen

Returns a Gen with a random seed and the given size configuration.

The size parameter controls the size of random values generated. For example, it specifies the maximum length of a randomly generated vector, but is and should not be used to control the range of a randomly generated number. (Unless that number is used to control the size of a data structure.)

Source

pub fn from_size_and_seed(size: usize, seed: u64) -> Gen

Returns a Gen with the given seed and a default size configuration.

Two Gens created with the same seed will generate the same values. Though the values may vary between QuickCheck releases.

The size parameter controls the size of random values generated. For example, it specifies the maximum length of a randomly generated vector, but is and should not be used to control the range of a randomly generated number. (Unless that number is used to control the size of a data structure.)

Source

pub fn size(&self) -> usize

Returns the size configured with this generator.

Source

pub fn choose<'a, T>(&mut self, slice: &'a [T]) -> Option<&'a T>

Choose among the possible alternatives in the slice given. If the slice is empty, then None is returned. Otherwise, a non-None value is guaranteed to be returned.

Auto Trait Implementations§

§

impl Freeze for Gen

§

impl RefUnwindSafe for Gen

§

impl Send for Gen

§

impl Sync for Gen

§

impl Unpin for Gen

§

impl UnwindSafe for Gen

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> 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, 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.