This repository has been archived on 2022-07-24. You can view files and clone it, but cannot push or open issues or pull requests.
itconfig/itconfig/src/utils.rs

34 lines
838 B
Rust

use crate::{EnvError, EnvString, FromEnvString, ToEnvString};
pub(crate) fn parse_env_variable<T>(env_name: &str, env_str: EnvString) -> Result<T, EnvError>
where
T: FromEnvString,
{
FromEnvString::from_env_string(&env_str)
.map_err(|_| EnvError::FailedToParse(env_name.to_string()))
}
pub(crate) fn make_panic<T>(e: EnvError) -> T {
panic!("{}", e)
}
pub(crate) fn join(env_strings: &[EnvString], sep: &str) -> String {
env_strings
.iter()
.enumerate()
.fold(String::new(), |mut res, (i, item)| {
if i > 0 {
res.push_str(sep);
}
res.push_str(&item);
res
})
}
pub(crate) fn vec_to_env_strings<T>(values: Vec<T>) -> Vec<EnvString>
where
T: ToEnvString,
{
values.into_iter().map(EnvString::from).collect()
}