1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
pub use linux_macros::{PodPub as Pod}; pub unsafe trait Pod: Copy { fn _assert_pod() { } } macro_rules! i { ($t: ty) => { unsafe impl Pod for $t { } }; } i!(u8); i!(i8); i!(u16); i!(i16); i!(u32); i!(i32); i!(u64); i!(i64); i!(usize); i!(isize); macro_rules! j { ($n:expr) => { unsafe impl <T: Pod> Pod for [T; $n] { } }; } j!(0); j!(1); j!(2); j!(3); j!(4); j!(5); j!(6); j!(7); j!(8); j!(9); j!(10); j!(11); j!(12); j!(13); j!(14); j!(15); j!(16); j!(17); j!(18); j!(19); j!(20); j!(21); j!(22); j!(23); j!(24); j!(25); j!(26); j!(27); j!(28); j!(29); j!(30); j!(31); j!(32); unsafe impl<T> Pod for *const T { } unsafe impl<T> Pod for *mut T { }