From e2e2f2238f5743340718ed049999dba5f4e4b4f7 Mon Sep 17 00:00:00 2001 From: Keuin Date: Mon, 28 Mar 2022 20:55:19 +0800 Subject: Make some fields in config file optional. Especially, if log_file is not specified, will not write logs to file. --- src/config.rs | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) (limited to 'src/config.rs') diff --git a/src/config.rs b/src/config.rs index c7549ef..1300e9a 100644 --- a/src/config.rs +++ b/src/config.rs @@ -4,15 +4,46 @@ use std::io::Read; use serde_derive::Deserialize; use tracing::error; +pub const DEFAULT_LOG_LEVEL: &str = "DEBUG"; + #[derive(Deserialize)] pub struct Config { pub bot_token: String, + #[serde(default = "Config::default_log_file")] pub log_file: String, + #[serde(default = "Config::default_db_file")] pub db_file: String, + #[serde(default = "Config::default_listen")] pub listen: String, + #[serde(default = "Config::default_log_level")] pub log_level: String, + #[serde(default = "Config::default_max_body_size")] + pub max_body_size: u64, +} + +impl Config { + fn default_log_level() -> String { + String::from(DEFAULT_LOG_LEVEL) + } + + fn default_log_file() -> String { + String::new() // empty string means not logging to file + } + + fn default_max_body_size() -> u64 { + 1024 * 16 + } + + fn default_listen() -> String { + String::from("localhost:8080") + } + + fn default_db_file() -> String { + String::from("kimikuri.db") + } } + impl Config { // Read config file. Panic if any error occurs. pub fn from_file(file_path: &str) -> Config { -- cgit v1.2.3