// pub trait Services {
// fn services() -> ServiceList {BTreeMap::new()}
// }
// pub type ServiceList = BTreeMap<TypeId, Box<dyn for<'a> FnOnce(&'a mut hardware::Context) -> Pin<Box<dyn Future<Output = Box<dyn Service>> + 'a>>>>;
//Lives on the active thread, Services can talk to each other through the runtime ctx which lives
//on the active thread.