rand_construct

Trait RandConstructEnum

Source
pub trait RandConstructEnum:
    Sized
    + Default
    + Eq
    + Hash
    + Copy {
    // Required methods
    fn default_weight(&self) -> f64;
    fn all_variants() -> Vec<Self>;
    fn create_default_probability_map() -> Arc<HashMap<Self, f64>>;

    // Provided methods
    fn random_variant() -> Self { ... }
    fn uniform_variant() -> Self { ... }
    fn random_with_env<P>() -> Self
       where P: RandConstructProbabilityMapProvider<Self> { ... }
    fn random_uniform_with_env<P>() -> Self
       where P: RandConstructProbabilityMapProvider<Self> { ... }
    fn sample_with_probabilities<RNG>(
        rng: &mut RNG,
        probs: &HashMap<Self, f64>,
    ) -> Self
       where RNG: Rng + ?Sized { ... }
    fn sample_from_provider<P, RNG>(rng: &mut RNG) -> Self
       where P: RandConstructProbabilityMapProvider<Self>,
             RNG: Rng + ?Sized { ... }
    fn sample_uniformly_from_provider<P, RNG>(rng: &mut RNG) -> Self
       where P: RandConstructProbabilityMapProvider<Self>,
             RNG: Rng + ?Sized { ... }
    fn random_with_rng<RNG>(rng: &mut RNG) -> Self
       where RNG: Rng + ?Sized { ... }
}

Required Methods§

Provided Methods§

Source

fn random_variant() -> Self

Source

fn uniform_variant() -> Self

Source

fn random_with_env<P>() -> Self

Source

fn random_uniform_with_env<P>() -> Self

Source

fn sample_with_probabilities<RNG>( rng: &mut RNG, probs: &HashMap<Self, f64>, ) -> Self
where RNG: Rng + ?Sized,

Source

fn sample_from_provider<P, RNG>(rng: &mut RNG) -> Self

Source

fn sample_uniformly_from_provider<P, RNG>(rng: &mut RNG) -> Self

Source

fn random_with_rng<RNG>(rng: &mut RNG) -> Self
where RNG: Rng + ?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§