Advertisement
Guest User

Untitled

a guest
Apr 19th, 2019
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.85 KB | None | 0 0
  1. extern crate csv;
  2. use std::collections::HashMap;
  3. #[macro_use]
  4. extern crate serde_derive;
  5.  
  6. #[derive(Debug, Deserialize)]
  7. struct Row {
  8. field1: String,
  9. field2: String,
  10. #[serde(flatten)]
  11. field3: HashMap<String, String>,
  12. }
  13.  
  14. fn test(str: String) {
  15. let mut reader = csv::ReaderBuilder::new()
  16. .flexible(true)
  17. .from_reader(str.as_bytes());
  18.  
  19. for row in reader.deserialize() {
  20. if let Ok(row) = row {
  21. let row: Row = row;
  22. println!("{:?}", row);
  23. }
  24. }
  25. }
  26. fn main() {
  27. let csv_data = "
  28. field1,field2,field3
  29. xx,yy,one,two,three
  30. zz,ww,
  31. aa,bb
  32. cc,dd,foo,bar,ban
  33. ";
  34. println!("With full header");
  35. test(csv_data.to_string());
  36.  
  37. let csv_alt_data = "
  38. field1,field2
  39. xx,yy,one,two,three
  40. zz,ww,
  41. aa,bb
  42. cc,dd,foo,bar,ban
  43. ";
  44. println!("With incomplet header");
  45. test(csv_alt_data.to_string());
  46. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement