pub async fn retry_external<R, F, WorkFn>( metrics: &RetryMetrics, work_fn: WorkFn, ) -> Rwhere F: Future<Output = Result<R, ExternalError>>, WorkFn: FnMut() -> F,