use log::LevelFilter;
use serde::{Deserialize, Serialize};
use wheel_rs::serde::log_filter_serde;
#[derive(Debug, Serialize, Deserialize, Clone)]
#[serde(rename_all = "kebab-case")]
pub struct DbSettings {
#[serde(default = "url_default")]
pub url: String,
#[serde(default = "log_level_default", with = "log_filter_serde")]
pub log_level: Option<LevelFilter>,
}
impl Default for DbSettings {
fn default() -> Self {
db_default()
}
}
fn url_default() -> String {
"".to_string()
}
fn log_level_default() -> Option<LevelFilter> {
Some(LevelFilter::Trace)
}
fn db_default() -> DbSettings {
DbSettings {
url: url_default(),
log_level: log_level_default(),
}
}