From 45de287d725f31b0e88199d1ff16541eedf38242 Mon Sep 17 00:00:00 2001 From: Lennart <18233294+lennart-k@users.noreply.github.com> Date: Sat, 2 Nov 2024 16:03:53 +0100 Subject: [PATCH] improvement to config --- crates/frontend/src/config.rs | 1 + src/config.rs | 19 ++++++++----------- 2 files changed, 9 insertions(+), 11 deletions(-) diff --git a/crates/frontend/src/config.rs b/crates/frontend/src/config.rs index 54147ae..3d13679 100644 --- a/crates/frontend/src/config.rs +++ b/crates/frontend/src/config.rs @@ -1,6 +1,7 @@ use serde::{Deserialize, Serialize}; #[derive(Deserialize, Serialize, Debug, Clone)] +#[serde(deny_unknown_fields)] pub struct FrontendConfig { #[serde(serialize_with = "hex::serde::serialize")] #[serde(deserialize_with = "hex::serde::deserialize")] diff --git a/src/config.rs b/src/config.rs index 1056c06..3edd299 100644 --- a/src/config.rs +++ b/src/config.rs @@ -2,53 +2,50 @@ use rustical_frontend::FrontendConfig; use rustical_store::auth::StaticUserStoreConfig; use serde::{Deserialize, Serialize}; -fn http_default_host() -> String { - "0.0.0.0".to_owned() -} -fn http_default_port() -> u16 { - 4000 -} - #[derive(Debug, Deserialize, Serialize)] +#[serde(deny_unknown_fields, default)] pub struct HttpConfig { - #[serde(default = "http_default_host")] pub host: String, - #[serde(default = "http_default_port")] pub port: u16, } impl Default for HttpConfig { fn default() -> Self { Self { - host: http_default_host(), - port: http_default_port(), + host: "0.0.0.0".to_owned(), + port: 4000, } } } #[derive(Debug, Deserialize, Serialize)] +#[serde(deny_unknown_fields)] pub struct SqliteDataStoreConfig { pub db_url: String, } #[derive(Debug, Deserialize, Serialize)] #[serde(tag = "backend", rename_all = "snake_case")] +#[serde(deny_unknown_fields)] pub enum DataStoreConfig { Sqlite(SqliteDataStoreConfig), } #[derive(Debug, Deserialize, Serialize)] #[serde(tag = "backend", rename_all = "snake_case")] +#[serde(deny_unknown_fields)] pub enum AuthConfig { Static(StaticUserStoreConfig), } #[derive(Debug, Deserialize, Serialize, Default)] +#[serde(deny_unknown_fields, default)] pub struct TracingConfig { pub opentelemetry: bool, } #[derive(Debug, Deserialize, Serialize)] +#[serde(deny_unknown_fields)] pub struct Config { pub data_store: DataStoreConfig, pub auth: AuthConfig,