ioc
pub trait Service: Any + Sized { type Key: Key = String; fn key() -> &'static Self::Key; }
type Key: Key = String
fn key() -> &'static Self::Key