#[allow(unused)] #[cfg(test)] mod tests { use serde::Deserialize; #[derive(Debug, Deserialize)] struct Trade { pub time: i64, pub price: f64, pub amount: f64, } #[test] fn serde_deserialize_json_example() { assert!(matches!( serde_json::from_str::(r#"{"time":1527811201900505632,"price":7492.279785,"amount":0.048495,"exch":"bits","server_time":0,"side":null}"#), Ok(Trade { time: 1527811201900505632, price: 7492.279785, amount: 0.048495 }) )); } #[test] fn serde_deserialize_csv_example() { let csv = "time,amount,exch,price,server_time,side\n\ 1527811201900505632,0.048495,bits,7492.279785,0,"; let mut csv_reader = csv::Reader::from_reader(csv.as_bytes()); let headers = csv_reader .headers() .expect("parsing row headers failed") .clone(); let mut row = csv::StringRecord::new(); assert!(matches!( csv_reader.read_record(&mut row), Ok(true) )); assert!(matches!( row.deserialize(Some(&headers)), Ok(Trade { time: 1527811201900505632, price: 7492.279785, amount: 0.048495 }) )); assert!(matches!( csv_reader.read_record(&mut row), Ok(false) )); } }