random_constructible/
rand_construct.rs

1crate::ix!();
2
3pub trait RandConstruct {
4    fn random() -> Self;
5    fn uniform() -> Self;
6    fn random_with_rng<R: Rng + ?Sized>(rng: &mut R) -> Self;
7}
8
9impl<E: RandConstructEnum> RandConstruct for E {
10
11    fn random() -> Self {
12        <Self as RandConstructEnum>::random_variant()
13    }
14
15    fn uniform() -> Self {
16        <Self as RandConstructEnum>::uniform_variant()
17    }
18
19    fn random_with_rng<R: Rng + ?Sized>(rng: &mut R) -> Self {
20        <Self as RandConstructEnum>::random_enum_value_with_rng(rng)
21    }
22}