summaryrefslogtreecommitdiff
path: root/src/config.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/config.rs')
-rw-r--r--src/config.rs31
1 files changed, 31 insertions, 0 deletions
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 {