pub trait Lifecycle { fn start<'async_trait>( self: Arc<Self> ) -> Pin<Box<dyn Future<Output = Stop> + Send + 'async_trait>> where Self: 'async_trait; }