1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
#[macro_use] extern crate easy_csv_derive; extern crate csv; pub trait EasyCSV<T> { fn parse_csv<R: std::io::Read>(reader : &mut csv::Reader<R>) -> Vec<T>; } #[test] fn test() { #[derive(Debug,EasyCSV,PartialEq)] struct Record { a: u32, b: i32 } let mut rdr = csv::Reader::from_file("./test_input/test.csv").unwrap(); let res = Record::parse_csv(&mut rdr); assert_eq!(res, vec![Record{a:2, b:-3}]); }