pub async fn within<T, F>( label: &str, dur: Duration, fut: F, ) -> Result<T, AppError>where F: Future<Output = Result<T, AppError>>,