#[macro_export]macro_rules!printc{()=>{$println!()};($val:expr$(,)?)=>{// Use of `match` here is intentional because it affects the lifetimes
// of temporaries - https://stackoverflow.com/a/48732525/1063961
match$val{
tmp =>{println!("{} = {:#?}",stringify!($val),&tmp);
tmp
}}};($($val:expr),+$(,)?)=>{($($crate::printc!($val)),+)}}