29 lines
711 B
Rust
29 lines
711 B
Rust
//!
|
|
//! Implementation's internal macros
|
|
|
|
macro_rules! debug_fmt_fields {
|
|
($tyname:ident, $($($field:tt/*TODO ideally we would accept ident or tuple element here*/).+),*) => {
|
|
fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
|
|
f.debug_struct(stringify!($tyname))
|
|
$(
|
|
.field(stringify!($($field).+), &self.$($field).+)
|
|
)*
|
|
.finish()
|
|
}
|
|
}
|
|
}
|
|
|
|
macro_rules! clone_fields {
|
|
($($field:ident),*) => {
|
|
fn clone(&self) -> Self {
|
|
Self {
|
|
$($field: self.$field.clone(),)*
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
macro_rules! ignore_ident{
|
|
($id:ident, $($t:tt)*) => {$($t)*};
|
|
}
|