pub async fn timeout<F>( duration: Duration, future: F, ) -> Result<F::Output, Expired>where F: IntoFuture,