retry_backoff/backoffs/
impl_backoff_rs.rs1use core::time::Duration;
2
3pub use backoff_rs::{Exponential as Backoff, ExponentialBackoffBuilder};
4
5use crate::retry_backoff::RetryBackoff;
6
7impl RetryBackoff for Backoff {
9 fn delay(&self, attempts: usize) -> Duration {
10 self.duration(attempts.saturating_sub(1))
11 }
12
13 fn name(&self) -> &str {
14 "CrateBackoffRs"
15 }
16}
17
18#[cfg(test)]
19mod tests {
20 use super::*;
21
22 #[test]
23 fn test_impl_retry_backoff() {
24 let backoff = ExponentialBackoffBuilder::default()
26 .jitter(Duration::default())
27 .max(Duration::from_secs(5))
28 .build();
29
30 assert_eq!(RetryBackoff::delay(&backoff, 1), Duration::from_millis(500));
31 assert_eq!(RetryBackoff::name(&backoff), "CrateBackoffRs");
32 }
33}