pub(crate) async fn retry_pull_operation<F, Fut, T>( progress: &PullProgress, operation: F, ) -> Result<T>where F: FnMut() -> Fut, Fut: Future<Output = Result<T>>,