rand_functors/
random_variables.rs

1use crate::RandomVariable;
2
3impl RandomVariable for bool {
4    #[inline]
5    fn sample_space() -> impl Iterator<Item = Self> {
6        [false, true].into_iter()
7    }
8}
9
10macro_rules! impl_random_variable_for_int {
11    ($t:ty) => {
12        impl RandomVariable for $t {
13            #[inline]
14            fn sample_space() -> impl Iterator<Item = Self> {
15                Self::MIN..=Self::MAX
16            }
17        }
18    };
19}
20
21impl_random_variable_for_int!(u8);
22impl_random_variable_for_int!(u16);
23impl_random_variable_for_int!(u32);
24impl_random_variable_for_int!(u64);
25impl_random_variable_for_int!(u128);
26
27impl_random_variable_for_int!(i8);
28impl_random_variable_for_int!(i16);
29impl_random_variable_for_int!(i32);
30impl_random_variable_for_int!(i64);
31impl_random_variable_for_int!(i128);