pub(crate) async fn with_retries_gated<G, GFut, F, Fut, T, E, A>(
cfg: &RetryCfg,
gate: G,
op: F,
) -> GatedOutcome<T, E, A>Expand description
Like with_retries, but awaits gate() before every try; an abort returns
GatedOutcome::Aborted. Session loss or lease expiry stops target-side steps between tries,
never mid-call. Sleeps are not capped to a deadline: the gate checks execute_by before the next
try.