use super::value::{Cloneable, ValueBuilder};
use crate::any::{
BorrowedMutStatic, BorrowedStatic, OwnedStatic, TempBorrowedMutStatic, TempBorrowedStatic,
};
use crate::Builder;
use effectful::bound::{Dynamic, IsSync};
use effectful::environment::{DynBind, Environment};
macro_rules! value_builder {
[$($ty:ty),*] => {
$(impl<'ctx, M, E: Environment> crate::Build<'ctx, M, E> for $ty
where
ValueBuilder<$ty, Cloneable, E>: Builder<'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];