Compute exponential backoff: base * 2^(attempt-1), capped at MAX_BACKOFF.
(attempt: u32)
| 143 | |
| 144 | /// Compute exponential backoff: base * 2^(attempt-1), capped at MAX_BACKOFF. |
| 145 | fn compute_backoff(attempt: u32) -> Duration { |
| 146 | let multiplier = 1u64 << (attempt.saturating_sub(1).min(20)); |
| 147 | let delay = BASE_BACKOFF.saturating_mul(multiplier as u32); |
| 148 | delay.min(MAX_BACKOFF) |
| 149 | } |
| 150 | |
| 151 | #[cfg(test)] |
| 152 | mod tests { |
no outgoing calls