diff --git a/src-tauri/src/utils/config.rs b/src-tauri/src/utils/config.rs index 7b7a357855c1e95856c71ec496ddcda79e60eff8..38c03e073bf5712fe4f2fc93e0c4bb4264a8cd8e 100644 --- a/src-tauri/src/utils/config.rs +++ b/src-tauri/src/utils/config.rs @@ -4,8 +4,20 @@ use std::{fs, path::PathBuf}; /// read data from yaml as struct T pub fn read_yaml<T: DeserializeOwned + Default>(path: PathBuf) -> T { - let yaml_str = fs::read_to_string(path).unwrap_or("".into()); - serde_yaml::from_str::<T>(&yaml_str).unwrap_or(T::default()) + if !path.exists() { + log::error!("file not found \"{}\"", path.display()); + return T::default(); + } + + let yaml_str = fs::read_to_string(&path).unwrap_or("".into()); + + match serde_yaml::from_str::<T>(&yaml_str) { + Ok(val) => val, + Err(_) => { + log::error!("failed to read yaml file \"{}\"", path.display()); + T::default() + } + } } /// save the data to the file