use std::collections::HashMap;
use std::fmt::Debug;
use std::hash::Hash;
use strum::IntoEnumIterator;
pub fn get_env<E: IntoEnumIterator + Debug + PartialEq + Eq + Hash + AsRef<str>>(
) -> HashMap<E, String> {
let mut env: HashMap<E, String> = HashMap::new();
let mut errors: HashMap<E, String> = HashMap::new();
dotenvy::dotenv().ok();
for item in E::iter() {
let val = std::env::var(item.as_ref());
match val {
Ok(val) => {
env.insert(item, val);
}
Err(e) => {
errors.insert(item, e.to_string());
}
}
}
if !errors.is_empty() {
eprintln!("Env parse errors: {errors:?}");
}
env
}