use log::error; use std::env; use std::fmt::Display; use std::str::FromStr; pub fn parse_env(variable: &str) -> Option where T: FromStr, ::Err: Display, { env::var(variable) .map_err(|error| error!("{error}: {variable}")) .ok() .and_then(|raw| { raw.parse::() .map_err(|error| error!("{error}: {raw}")) .ok() }) }