From fc772f4b6a872e2e7e60498bbe35b532280239a4 Mon Sep 17 00:00:00 2001 From: Alex Wellnitz Date: Sun, 18 Feb 2024 18:40:11 +0100 Subject: [PATCH] feat: add config loader to parse json configs --- src/config/loader.rs | 16 ++++++++++++++++ src/config/mod.rs | 1 + src/lib.rs | 1 + src/main.rs | 3 +++ src/types/config.rs | 6 ++++++ 5 files changed, 27 insertions(+) create mode 100644 src/config/loader.rs create mode 100644 src/config/mod.rs diff --git a/src/config/loader.rs b/src/config/loader.rs new file mode 100644 index 0000000..889fccd --- /dev/null +++ b/src/config/loader.rs @@ -0,0 +1,16 @@ +use crate::types::config::{self, Config}; + +pub fn load_config(config_path: &str) -> Config { + let settings: Config = config::Config::new(); + + match config::Config::load_from_file(config_path) { + Ok(config) => { + return config; + } + Err(e) => { + eprintln!("Error loading config file: {}", e); + } + } + + return settings; +} diff --git a/src/config/mod.rs b/src/config/mod.rs new file mode 100644 index 0000000..186dcf6 --- /dev/null +++ b/src/config/mod.rs @@ -0,0 +1 @@ +pub mod loader; diff --git a/src/lib.rs b/src/lib.rs index 61fc2fe..e21b5f8 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,4 +1,5 @@ pub mod cmd; +pub mod config; pub mod handlers; pub mod search; pub mod types; diff --git a/src/main.rs b/src/main.rs index 6263762..f5cc16c 100644 --- a/src/main.rs +++ b/src/main.rs @@ -13,13 +13,16 @@ use rustysearch::{ #[actix_web::main] async fn main() -> std::io::Result<()> { + // Get Command Line Arguments let args = Args::parse(); // Initialize logger env_logger::init_from_env(Env::default().default_filter_or("debug")); + // Initialize the search engine let search_engine = SearchEngine::new(1.5, 0.75); + // Wrap the search engine in a Mutex and then in an AppState let app_state = web::Data::new(AppStateWithSearchEngine { search_engine: Mutex::new(search_engine.clone()), }); diff --git a/src/types/config.rs b/src/types/config.rs index 5d92291..2fe71a7 100644 --- a/src/types/config.rs +++ b/src/types/config.rs @@ -1,3 +1,5 @@ +use std::fmt::Error; + use serde::{Deserialize, Serialize}; #[derive(Debug, Serialize, Deserialize)] @@ -13,4 +15,8 @@ impl Config { database_path: String::from("/tmp/rustysearch.db"), } } + + pub(crate) fn load_from_file(config_path: &str) -> Result { + unimplemented!(); + } }