#[macro_export] macro_rules! impl_reprc { ( $(#[$meta: meta])* $v:vis struct $struct_name:ident { $( $(#[$field_meta:meta])* $vm:vis $member:ident : $t:ty, )+ } ) => { #[repr(C)] #[derive(Clone, DeriveReprC)] $(#[$meta])* $v struct $struct_name { $( $( #[$field_meta] )* $vm $member: $t, )+ } }; } pub unsafe trait ReprC { fn is_repr_c(&self) -> bool; }