use envconfig::Envconfig; pub enum CuddleFetchPolicy { Always, Once, Never, } #[derive(Envconfig, Clone, Debug)] pub struct CuddleConfig { #[envconfig(from = "CUDDLE_FETCH_POLICY", default = "once")] fetch_policy: String, } impl CuddleConfig { pub fn from_env() -> anyhow::Result { CuddleConfig::init_from_env().map_err(|e| anyhow::Error::from(e)) } pub fn get_fetch_policy(&self) -> anyhow::Result { match self.fetch_policy.clone().to_lowercase().as_str() { "always" => Ok(CuddleFetchPolicy::Always), "once" => Ok(CuddleFetchPolicy::Once), "never" => Ok(CuddleFetchPolicy::Never), _ => Err(anyhow::anyhow!("could not parse fetch policy")), } } }