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 29 30 31 32 33
#[macro_export] macro_rules! column { ($a:expr) => {{ $crate::table::Column { name: $a.to_string(), short_name: Some($a.to_string()), data_property: Some($a.to_string()), } }}; ($a:expr, $b:expr) => {{ $crate::table::Column { name: $b.to_string(), short_name: Some($b.to_string()), data_property: Some($a.to_string()), } }}; ($a:expr, $b:expr, $c:expr) => { $crate::table::Column { name: $b.to_string(), short_name: Some($c.to_string()), data_property: Some($a.to_string()), } }; } #[macro_export] macro_rules! columns { ( $( ( $($args:expr),* ) )+ ) => { vec![$( $crate::column![$($args),*] ),+]; }; }