rust excel
#[derive(Debug)] enum Cell { s(String), i(i64), f(f64) } type Col = Vec<Cell>; trait ColumnFactory { fn build(self) -> Cell; } impl ColumnFactory for &str { fn build(self) -> Cell { return Cell::s(self.to_string()); } } impl ColumnFactory for i64 { fn build(self) -> Cell { return Cell::i(self); } } impl ColumnFactory for f64 { fn build(self) -> Cell { return Cell::f(self); } } macro_rules! cols { () => ( vec![] ); ($($x:expr),*) => ( vec![$(ColumnFactory::build($x),)*] ); } fn main(){ let col: Col = cols!["hello world", 2, 3.4]; println!("{:?}", col); }