utilities/src/repr_c.rs

23 lines
503 B
Rust

#[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;
}