From a3ef08d64982a73d858c2de4007cfe2bd4b95df8 Mon Sep 17 00:00:00 2001 From: Blinningjr <nicke.l@telia.com> Date: Mon, 11 Jan 2021 14:50:31 +0100 Subject: [PATCH] Implemented better filepath error message --- srp_analysis/src/file_handler.rs | 11 +++++++---- srp_analysis/src/main.rs | 8 +++++++- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/srp_analysis/src/file_handler.rs b/srp_analysis/src/file_handler.rs index cff1460..81d6b46 100644 --- a/srp_analysis/src/file_handler.rs +++ b/srp_analysis/src/file_handler.rs @@ -16,17 +16,20 @@ pub fn write_to_file(contents: String, file: PathBuf) -> std::io::Result<()> { /* * Load the tasks from a json file `file`. */ -pub fn load_tasks(file: PathBuf) -> Tasks { +pub fn load_tasks(file: PathBuf) -> Result<Tasks, String> { let mut serialized = String::new(); - read_from_file(&mut serialized, file); - return serde_json::from_str(&serialized).unwrap(); + match read_from_file(&mut serialized, &file) { + Ok(_) => (), + Err(_) => return Err(format!("Error: Invalid filepath {:?}", file)), + }; + return Ok(serde_json::from_str(&serialized).unwrap()); } /* * Read string from file `file` and store it in `contents`. */ -pub fn read_from_file(contents: &mut String, file: PathBuf) -> std::io::Result<()> { +pub fn read_from_file(contents: &mut String, file: &PathBuf) -> std::io::Result<()> { let mut file = File::open(file)?; file.read_to_string(contents)?; Ok(()) diff --git a/srp_analysis/src/main.rs b/srp_analysis/src/main.rs index a92198d..3b25fcc 100644 --- a/srp_analysis/src/main.rs +++ b/srp_analysis/src/main.rs @@ -38,7 +38,13 @@ fn main() { //println!("{:?}", opt); let tasks: Tasks = match opt.in_file { - Some(file) => load_tasks(file), + Some(file) => match load_tasks(file) { + Ok(ts) => ts, + Err(err) => { + println!("{}", err); + return; + }, + }, None => create_tasks(), }; -- GitLab