random_constructible/
rand_construct.rs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
crate::ix!();

pub trait RandConstruct {
    fn random() -> Self;
    fn uniform() -> Self;
    fn random_with_rng<R: Rng + ?Sized>(rng: &mut R) -> Self;
}

impl<E: RandConstructEnum> RandConstruct for E {

    fn random() -> Self {
        <Self as RandConstructEnum>::random_variant()
    }

    fn uniform() -> Self {
        <Self as RandConstructEnum>::uniform_variant()
    }

    fn random_with_rng<R: Rng + ?Sized>(rng: &mut R) -> Self {
        <Self as RandConstructEnum>::random_enum_value_with_rng(rng)
    }
}