UniformSampler

Trait UniformSampler 

Source
pub trait UniformSampler: Sized {
    type X;

    // Required methods
    fn new<B1, B2>(low: B1, high: B2) -> Result<Self, UniformDistributionError>
       where B1: SampleBorrow<Self::X> + Sized,
             B2: SampleBorrow<Self::X> + Sized;
    fn new_inclusive<B1, B2>(
        low: B1,
        high: B2,
    ) -> Result<Self, UniformDistributionError>
       where B1: SampleBorrow<Self::X> + Sized,
             B2: SampleBorrow<Self::X> + Sized;
    fn sample<R: Rng + ?Sized>(&self, rng: &mut R) -> Self::X;

    // Provided methods
    fn sample_single<R: Rng + ?Sized, B1, B2>(
        low: B1,
        high: B2,
        rng: &mut R,
    ) -> Result<Self::X, UniformDistributionError>
       where B1: SampleBorrow<Self::X> + Sized,
             B2: SampleBorrow<Self::X> + Sized { ... }
    fn sample_single_inclusive<R: Rng + ?Sized, B1, B2>(
        low: B1,
        high: B2,
        rng: &mut R,
    ) -> Result<Self::X, UniformDistributionError>
       where B1: SampleBorrow<Self::X> + Sized,
             B2: SampleBorrow<Self::X> + Sized { ... }
}

Required Associated Types§

Source

type X

Required Methods§

Source

fn new<B1, B2>(low: B1, high: B2) -> Result<Self, UniformDistributionError>
where B1: SampleBorrow<Self::X> + Sized, B2: SampleBorrow<Self::X> + Sized,

Source

fn new_inclusive<B1, B2>( low: B1, high: B2, ) -> Result<Self, UniformDistributionError>
where B1: SampleBorrow<Self::X> + Sized, B2: SampleBorrow<Self::X> + Sized,

Source

fn sample<R: Rng + ?Sized>(&self, rng: &mut R) -> Self::X

Provided Methods§

Source

fn sample_single<R: Rng + ?Sized, B1, B2>( low: B1, high: B2, rng: &mut R, ) -> Result<Self::X, UniformDistributionError>
where B1: SampleBorrow<Self::X> + Sized, B2: SampleBorrow<Self::X> + Sized,

Source

fn sample_single_inclusive<R: Rng + ?Sized, B1, B2>( low: B1, high: B2, rng: &mut R, ) -> Result<Self::X, UniformDistributionError>
where B1: SampleBorrow<Self::X> + Sized, B2: SampleBorrow<Self::X> + Sized,

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl UniformSampler for UniformU32

Source§

type X = u32

Source§

impl<F> UniformSampler for UniformFloat<F>
where F: Float + RandFloat + Debug,

Source§

type X = F