use std::collections::HashMap; #[derive(Debug)] pub struct Colors { pub inner: HashMap, } impl Default for Colors { fn default() -> Self { let def = vec![ ("grey", "#9999a1"), ("dark_grey", "#333333"), ("beige", "#fdf0d5"), ("light_grey", "#eeeeee"), ("yellow", "#fdca40"), ("orange", "#f79824"), ("green", "#29bf12"), ("dark_red", "#780000"), ("red", "#c1121f"), ("blue", "#669bbc"), ("dark_blue", "#003049"), ]; let inner: HashMap<_, _> = def .into_iter() .map(|(k, v)| (k.to_string(), v.to_string())) .collect(); Self { inner } } } impl Colors { pub fn get(&self, key: &str) -> String { self.inner.get(key).cloned().unwrap_or_else(|| "#669bbc".to_string()) } }