Trait rand::distributions::uniform::UniformSampler   [−][src]
pub trait UniformSampler: Sized { type X; fn new(low: Self::X, high: Self::X) -> Self; fn new_inclusive(low: Self::X, high: Self::X) -> Self; fn sample<R: Rng + ?Sized>(&self, rng: &mut R) -> Self::X; fn sample_single<R: Rng + ?Sized>(
low: Self::X,
high: Self::X,
rng: &mut R
) -> Self::X { ... } }
Helper trait handling actual uniform sampling.
See the module documentation on how to implement Uniform range
sampling for a custom type.
Implementation of sample_single is optional, and is only useful when
the implementation can be faster than Self::new(low, high).sample(rng).
Associated Types
type X
The type sampled by this implementation.
Required Methods
fn new(low: Self::X, high: Self::X) -> Self
Construct self, with inclusive lower bound and exclusive upper bound
[low, high).
Usually users should not call this directly but instead use
Uniform::new, which asserts that low < high before calling this.
fn new_inclusive(low: Self::X, high: Self::X) -> Self
Construct self, with inclusive bounds [low, high].
Usually users should not call this directly but instead use
Uniform::new_inclusive, which asserts that low <= high before
calling this.
fn sample<R: Rng + ?Sized>(&self, rng: &mut R) -> Self::X
Sample a value.
Provided Methods
fn sample_single<R: Rng + ?Sized>(
    low: Self::X, 
    high: Self::X, 
    rng: &mut R
) -> Self::X
low: Self::X,
high: Self::X,
rng: &mut R
) -> Self::X
Sample a single value uniformly from a range with inclusive lower bound
and exclusive upper bound [low, high).
Usually users should not call this directly but instead use
Uniform::sample_single, which asserts that low < high before calling
this.
Via this method, implementations can provide a method optimized for
sampling only a single value from the specified range. The default
implementation simply calls UniformSampler::new then sample on the
result.
Implementors
- impl UniformSampler for UniformInt<i8> type X = i8;
- impl UniformSampler for UniformInt<i16> type X = i16;
- impl UniformSampler for UniformInt<i32> type X = i32;
- impl UniformSampler for UniformInt<i64> type X = i64;
- impl UniformSampler for UniformInt<i128> type X = i128;
- impl UniformSampler for UniformInt<isize> type X = isize;
- impl UniformSampler for UniformInt<u8> type X = u8;
- impl UniformSampler for UniformInt<u16> type X = u16;
- impl UniformSampler for UniformInt<u32> type X = u32;
- impl UniformSampler for UniformInt<u64> type X = u64;
- impl UniformSampler for UniformInt<usize> type X = usize;
- impl UniformSampler for UniformInt<u128> type X = u128;
- impl UniformSampler for UniformFloat<f32> type X = f32;
- impl UniformSampler for UniformFloat<f64> type X = f64;
- impl UniformSampler for UniformDuration type X = Duration;