diff --git a/bin/src/config.rs b/bin/src/config.rs index 354cf66..fd0c49c 100644 --- a/bin/src/config.rs +++ b/bin/src/config.rs @@ -2,17 +2,9 @@ use crate::error::RayhunterError; use serde::Deserialize; -#[derive(Deserialize)] -struct ConfigFile { - qmdl_store_path: Option, - port: Option, - debug_mode: Option, - ui_level: Option, - enable_dummy_analyzer: Option, - colorblind_mode: Option, -} - #[derive(Debug)] +#[derive(Deserialize)] +#[serde(default)] pub struct Config { pub qmdl_store_path: String, pub port: u16, @@ -36,18 +28,11 @@ impl Default for Config { } pub fn parse_config

(path: P) -> Result where P: AsRef { - let mut config = Config::default(); if let Ok(config_file) = std::fs::read_to_string(&path) { - let parsed_config: ConfigFile = toml::from_str(&config_file) - .map_err(RayhunterError::ConfigFileParsingError)?; - parsed_config.qmdl_store_path.map(|v| config.qmdl_store_path = v); - parsed_config.port.map(|v| config.port = v); - parsed_config.debug_mode.map(|v| config.debug_mode = v); - parsed_config.ui_level.map(|v| config.ui_level = v); - parsed_config.enable_dummy_analyzer.map(|v| config.enable_dummy_analyzer = v); - parsed_config.colorblind_mode.map(|v| config.colorblind_mode = v); + Ok(toml::from_str(&config_file).map_err(RayhunterError::ConfigFileParsingError)?) + } else { + Ok(Config::default()) } - Ok(config) } pub struct Args {