From d61f038555dfb22c6ec48fb6550fe3be00050a56 Mon Sep 17 00:00:00 2001 From: adnanioricce Date: Sat, 28 Dec 2024 09:33:17 -0300 Subject: [PATCH] [Minigrep] - stopped panicking and adding results --- minigrep/src/main.rs | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/minigrep/src/main.rs b/minigrep/src/main.rs index 2b9cea1..fe5d707 100644 --- a/minigrep/src/main.rs +++ b/minigrep/src/main.rs @@ -1,22 +1,26 @@ use std::env; use std::fs; +use std::os::unix::process; struct Config { query: String, file_path: String, } impl Config { - fn new(args: &[String]) -> Config { + fn build(args: &[String]) -> Result { if args.len() < 3 { - panic!("not enough arguments"); + return Err("not enough arguments"); } let query = args[1].clone(); let file_path = args[2].clone(); - Config { query, file_path } + Ok(Config { query, file_path }) } } fn main() { let args: Vec = env::args().collect(); - let config = Config::new(&args); + let config = Config::build(&args).unwrap_or_else(|err| { + println!("problem parsing arguments: {err}"); + std::process::exit(1); + }); println!("Searching for {}", config.query); println!("In file {}", config.file_path);