Add the csv crate to your dependencies and use serde derive macros to automatically parse and serialize CSV data into Rust structs.
[dependencies]
serde = { version = "1.0", features = ["derive"] }
csv = "1.3"
use serde::{Deserialize, Serialize};
#[derive(Debug, Deserialize, Serialize)]
struct Record {
name: String,
age: u32,
}
fn main() -> Result<(), Box<dyn std::error::Error>> {
let mut reader = csv::Reader::from_path("data.csv")?;
for result in reader.deserialize() {
let record: Record = result?;
println!("{:?}", record);
}
Ok(())
}