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
#[macro_export] macro_rules! mac { ( $(#[$attrs:meta])* pub struct $ident:ident { $( $(#[$pin:ident])? $field_vis:vis $field:ident: $field_ty:ty ),+ $(,)? } ) => { $(#[$attrs])* pub struct $ident { $( $field_vis $field: $field_ty ),+ } const _: () = { #[deny(unaligned_references)] fn __f(this: &$ident) { $( let _ = &this.$field; )+ } }; }; }