Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- extern crate csv;
- use std::collections::HashMap;
- #[macro_use]
- extern crate serde_derive;
- #[derive(Debug, Deserialize)]
- struct Row {
- field1: String,
- field2: String,
- #[serde(flatten)]
- field3: HashMap<String, String>,
- }
- fn test(str: String) {
- let mut reader = csv::ReaderBuilder::new()
- .flexible(true)
- .from_reader(str.as_bytes());
- for row in reader.deserialize() {
- if let Ok(row) = row {
- let row: Row = row;
- println!("{:?}", row);
- }
- }
- }
- fn main() {
- let csv_data = "
- field1,field2,field3
- xx,yy,one,two,three
- zz,ww,
- aa,bb
- cc,dd,foo,bar,ban
- ";
- println!("With full header");
- test(csv_data.to_string());
- let csv_alt_data = "
- field1,field2
- xx,yy,one,two,three
- zz,ww,
- aa,bb
- cc,dd,foo,bar,ban
- ";
- println!("With incomplet header");
- test(csv_alt_data.to_string());
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement