backoff_config/
backoff.rs1use backon::*;
2use std::time::Duration;
3
4#[derive(Debug)]
5pub enum Backoff {
7 Constant(ConstantBackoff),
9
10 Exponential(ExponentialBackoff),
12
13 Fibonacci(FibonacciBackoff),
15
16 NoBackoff,
18}
19
20impl Iterator for Backoff {
21 type Item = Duration;
22
23 fn next(&mut self) -> Option<Self::Item> {
24 match self {
25 Backoff::Constant(c) => c.next(),
26 Backoff::Exponential(e) => e.next(),
27 Backoff::Fibonacci(f) => f.next(),
28 Backoff::NoBackoff => None,
29 }
30 }
31}