1 #![allow(dead_code)]
2 use std::{error::Error, io, process};
3
4 use serde::Deserialize;
5
6 #[derive(Debug, Deserialize)]
7 #[serde(rename_all = "PascalCase")]
8 struct Record {
9 latitude: f64,
10 longitude: f64,
11 population: Option<u64>,
12 city: String,
13 state: String,
14 }
15
run() -> Result<(), Box<dyn Error>>16 fn run() -> Result<(), Box<dyn Error>> {
17 let mut rdr = csv::Reader::from_reader(io::stdin());
18 for result in rdr.deserialize() {
19 let record: Record = result?;
20 println!("{:?}", record);
21 }
22 Ok(())
23 }
24
main()25 fn main() {
26 if let Err(err) = run() {
27 println!("{}", err);
28 process::exit(1);
29 }
30 }
31