async fn retry_loop<G, GFut, F, Fut, T, E, A>(
cfg: &RetryCfg,
deadline: Option<Instant>,
gate: G,
op: F,
) -> GatedOutcome<T, E, A>Expand description
The shared retry loop: gate before each try, then op, sleeping between transient failures.