1 //! 2 //! Implementation's internal macros 3 4 macro_rules! debug_fmt_fields { 5 ($tyname:ident, $($($field:tt/*TODO ideally we would accept ident or tuple element here*/).+),*) => { 6 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { 7 f.debug_struct(stringify!($tyname)) 8 $( 9 .field(stringify!($($field).+), &self.$($field).+) 10 )* 11 .finish() 12 } 13 } 14 } 15 16 macro_rules! clone_fields { 17 ($($field:ident),*) => { 18 #[inline] // TODO is this sensible? 19 fn clone(&self) -> Self { 20 Self { 21 $($field: self.$field.clone(),)* 22 } 23 } 24 } 25 } 26 27 macro_rules! ignore_ident{ 28 ($id:ident, $($t:tt)*) => {$($t)*}; 29 } 30