How to use serde with CSV

Add the csv crate with serde derive features to automatically parse and serialize CSV files into Rust structs.

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(())
}