diff options
-rw-r--r-- | src/main.rs | 29 |
1 files changed, 13 insertions, 16 deletions
diff --git a/src/main.rs b/src/main.rs index d21e67a..9599522 100644 --- a/src/main.rs +++ b/src/main.rs @@ -3,42 +3,39 @@ use clap::Parser; use std::time::Instant; fn main() { + if let Err(err) = run() { + eprintln!("ERROR: {}", err); + std::process::exit(1); + } +} + +fn run() -> Result<(), std::io::Error> { let args = Args::parse(); println!("linear"); let started = Instant::now(); - if let Err(e) = linear::checksums(&args.filenames) { - eprintln!("ERROR: {e}"); - std::process::exit(1); - } + linear::checksums(&args.filenames)?; println!("{} ms", started.elapsed().as_millis()); println!(); println!("linear iterator"); let started = Instant::now(); - if let Err(e) = lineariter::checksums(&args.filenames) { - eprintln!("ERROR: {e}"); - std::process::exit(1); - } + lineariter::checksums(&args.filenames)?; println!("{} ms", started.elapsed().as_millis()); println!(); println!("rayon"); let started = Instant::now(); - if let Err(e) = rayon::checksums(&args.filenames) { - eprintln!("ERROR: {e}"); - std::process::exit(1); - } + rayon::checksums(&args.filenames)?; println!("{} ms", started.elapsed().as_millis()); println!(); println!("threads"); let started = Instant::now(); - if let Err(e) = threads::checksums(&args.filenames) { - eprintln!("ERROR: {e}"); - std::process::exit(1); - } + threads::checksums(&args.filenames)?; println!("{} ms", started.elapsed().as_millis()); + + Ok(()) } mod linear { |