use chrono_tz::Tz; #[cfg(feature="clap")] use clap::Args; use serde::{Deserialize, Serialize}; use tokio::sync::OnceCell; use crate::Error; #[derive(Clone, Debug, Deserialize, PartialEq, Serialize)] pub struct GlobalConfig { pub time_zone: Option, } impl TryFrom for GlobalConfig{ type Error = Error; fn try_from(p: PartialGlobalConfig) -> Result { Ok(GlobalConfig{ time_zone: p.time_zone, }) } } #[derive(Clone, Debug, Default, Deserialize, PartialEq, Serialize)] #[cfg_attr(feature="clap", derive(Args))] pub struct PartialGlobalConfig { #[cfg_attr(feature="clap", arg(short, long))] pub time_zone: Option, } pub static GLOBAL_CONFIG: OnceCell = OnceCell::const_new();