1pub unsafe trait AsByteSequence: Clone {}
2
3macro_rules! impl_trait {
4 ($($ty:ty)*) => {
5 $(
6 unsafe impl $crate::AsByteSequence for $ty {}
7 )*
8 };
9}
10
11impl_trait!(u8 i8 u16 i16 u32 i32 u64 i64 u128 i128 usize isize);
13impl_trait!(f32 f64);
14impl_trait!(());
17#[cfg(test)]
21mod tests {
22 use super::*;
23 fn check<T: AsByteSequence>(_val: T) {}
24
25 #[test]
26 fn check_trait_is_implemented() {
27 check(3 as u8);
28 check(3 as i32);
29 check(3 as usize);
30 check(0.0 as f32);
31 check(());
32 }
33}