use super::value::{Cloneable, ValueBuilder};
use crate::Builder;
use effectful::environment::Environment;
macro_rules! value_builder {
[$($ty:ty),*] => {
$(impl<'lt, 'ctx, M, E: Environment> crate::Build<'lt, 'ctx, M, E> for $ty
where
ValueBuilder<$ty, Cloneable, E>: Builder<'lt, 'ctx, 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];