utilities/src/repr_c.rs

24 lines
503 B
Rust
Raw Normal View History

2023-02-20 09:14:23 +00:00
#[macro_export]
macro_rules! impl_reprc {
(
$(#[$meta: meta])*
$v:vis struct $struct_name:ident {
2024-05-13 12:42:55 +00:00
$( $(#[$field_meta:meta])* $vm:vis $member:ident : $t:ty, )+
2023-02-20 09:14:23 +00:00
}
) => {
#[repr(C)]
#[derive(Clone, DeriveReprC)]
$(#[$meta])*
$v struct $struct_name {
$(
$( #[$field_meta] )*
2024-05-13 12:42:55 +00:00
$vm $member: $t,
2023-02-20 09:14:23 +00:00
)+
}
};
}
pub unsafe trait ReprC {
fn is_repr_c(&self) -> bool;
}