23 lines
503 B
Rust
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;
|
|
}
|