1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
use super::value::{Cloneable, ValueBuilder};
use crate::Builder;
use effectful::environment::Environment;

macro_rules! value_builder {
    [$($ty:ty),*] => {
        $(impl<'src, M, E: Environment> crate::Build<'src, M, E> for $ty
        where
            ValueBuilder<$ty, Cloneable, E>: Builder<'src, E, Value = Self>,
        {
            type Builder = ValueBuilder<$ty, Cloneable, E>;
        })*
    };
}

value_builder![u8, u16, u32, u64, u128, usize];
value_builder![i8, i16, i32, i64, i128, isize];
value_builder![f32, f64];
value_builder![char];
value_builder![bool];
value_builder![()];
value_builder![String];