rand_functors/
random_variables.rs1use 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);