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