pub async fn timeout<F>( duration: Duration, future: F ) -> Result<F::Output, TimeoutError>where F: Future + Send,