1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
pub trait TY<A>{} macro_rules! ty_impls { ($($t:ty),+) => { $( impl TY<$t> for $t{} )+ }; } ty_impls!(u8,u16,u32,u64,u128,i8,i16,i32,i64,i128,f32,f64,String,bool,isize,usize); impl<A> TY<Vec<A>> for Vec<A> where A:TY<A>{} impl<'a,A> TY<&'a A> for &'a A where A:TY<A>{} impl<A> TY<*const A> for *const A where A:TY<A>{} impl<A> TY<*mut A> for *mut A where A:TY<A>{}