diff options
Diffstat (limited to 'src/bin/day_1.rs')
-rw-r--r-- | src/bin/day_1.rs | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/src/bin/day_1.rs b/src/bin/day_1.rs index b9a6c18..f40237d 100644 --- a/src/bin/day_1.rs +++ b/src/bin/day_1.rs @@ -2,6 +2,7 @@ use derive_more; use std::io; use std::io::prelude::*; use std::iter; +use std::process; use structopt::StructOpt; @@ -21,10 +22,19 @@ fn main() { let stdin = io::stdin(); let opt = Opt::from_args(); - let input = stdin - .lock() - .lines() - .map(|l| l.unwrap().parse::<Module>().unwrap()); + let input = stdin.lock().lines().map(|l| match l { + Ok(s) => match s.parse::<Module>() { + Ok(module) => module, + Err(e) => { + eprintln!("Invalid input \"{}\": {}", s, e); + process::exit(1); + } + }, + Err(e) => { + eprintln!("Error reading input: {}", e); + process::exit(1); + } + }); println!("{}", fuel_required(input, opt.include_fuel_weight)) } |