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