#[macro_export] macro_rules! components { ($($a:ty: $e:expr),*) => { { let mut hm: HashMap> = HashMap::new(); $( hm.insert(TypeId::of::<$a>(), Box::new($e)); )* hm } }; }