pub struct StepRng { /* private fields */ }
Expand description
A mock generator yielding very predictable output
This generates an arithmetic sequence (i.e. adds a constant each step)
over a u64
number, using wrapping arithmetic. If the increment is 0
the generator yields a constant.
Other integer types (64-bit and smaller) are produced via cast from u64
.
Other types are produced via their implementation of Rng
or
Distribution
.
Output values may not be intuitive and may change in future releases but
are considered
portable.
(bool
output is true when bit 1u64 << 31
is set.)
Example
use rand::Rng;
use rand::rngs::mock::StepRng;
let mut my_rng = StepRng::new(2, 1);
let sample: [u64; 3] = my_rng.gen();
assert_eq!(sample, [2, 3, 4]);
Implementations§
Trait Implementations§
source§impl<'de> Deserialize<'de> for StepRng
impl<'de> Deserialize<'de> for StepRng
source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where __D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
source§impl PartialEq<StepRng> for StepRng
impl PartialEq<StepRng> for StepRng
source§impl RngCore for StepRng
impl RngCore for StepRng
source§fn fill_bytes(&mut self, dest: &mut [u8])
fn fill_bytes(&mut self, dest: &mut [u8])
Fill
dest
with random data. Read moresource§fn try_fill_bytes(&mut self, dest: &mut [u8]) -> Result<(), Error>
fn try_fill_bytes(&mut self, dest: &mut [u8]) -> Result<(), Error>
Fill
dest
entirely with random data. Read moresource§fn read_adapter(&mut self) -> RngReadAdapter<'_, Self>where
Self: Sized,
fn read_adapter(&mut self) -> RngReadAdapter<'_, Self>where Self: Sized,
Convert an
RngCore
to a RngReadAdapter
.impl Eq for StepRng
impl StructuralEq for StepRng
impl StructuralPartialEq for StepRng
Auto Trait Implementations§
impl RefUnwindSafe for StepRng
impl Send for StepRng
impl Sync for StepRng
impl Unpin for StepRng
impl UnwindSafe for StepRng
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
source§impl<R> Rng for Rwhere
R: RngCore + ?Sized,
impl<R> Rng for Rwhere R: RngCore + ?Sized,
source§fn gen<T>(&mut self) -> Twhere
Standard: Distribution<T>,
fn gen<T>(&mut self) -> Twhere Standard: Distribution<T>,
source§fn gen_range<T, R>(&mut self, range: R) -> Twhere
T: SampleUniform,
R: SampleRange<T>,
fn gen_range<T, R>(&mut self, range: R) -> Twhere T: SampleUniform, R: SampleRange<T>,
Generate a random value in the given range. Read more
source§fn gen_iter<T>(self) -> DistIter<Standard, Self, T> ⓘwhere
Self: Sized,
Standard: Distribution<T>,
fn gen_iter<T>(self) -> DistIter<Standard, Self, T> ⓘwhere Self: Sized, Standard: Distribution<T>,
Generate values via an iterator Read more
source§fn sample<T, D: Distribution<T>>(&mut self, distr: D) -> T
fn sample<T, D: Distribution<T>>(&mut self, distr: D) -> T
Sample a new value, using the given distribution. Read more
source§fn sample_iter<T, D>(self, distr: D) -> DistIter<D, Self, T> ⓘwhere
D: Distribution<T>,
Self: Sized,
fn sample_iter<T, D>(self, distr: D) -> DistIter<D, Self, T> ⓘwhere D: Distribution<T>, Self: Sized,
Create an iterator that generates values using the given distribution. Read more
source§fn gen_bool(&mut self, p: f64) -> bool
fn gen_bool(&mut self, p: f64) -> bool
Return a bool with a probability
p
of being true. Read moresource§fn gen_ratio(&mut self, numerator: u32, denominator: u32) -> bool
fn gen_ratio(&mut self, numerator: u32, denominator: u32) -> bool
Return a bool with a probability of
numerator/denominator
of being
true. I.e. gen_ratio(2, 3)
has chance of 2 in 3, or about 67%, of
returning true. If numerator == denominator
, then the returned value
is guaranteed to be true
. If numerator == 0
, then the returned
value is guaranteed to be false
. Read more