prowl_queue/
options.rs

1use derive_getters::Getters;
2use derive_new::new;
3use tokio::time::Duration;
4
5/// Options for the queue to know how to operate.
6#[derive(Debug, Getters)]
7pub struct ProwlQueueOptions {
8    retry_method: RetryMethod,
9}
10
11/// Wrapper of the different retry methods
12#[derive(Debug)]
13pub enum RetryMethod {
14    Linear(LinearRetry),
15}
16
17/// Your most generic type of retry. Retry every X until Y retries.
18#[derive(new, Debug, Getters)]
19pub struct LinearRetry {
20    backoff: Duration,
21    max_retries: Option<usize>,
22}
23
24impl ProwlQueueOptions {
25    pub fn new(retry_method: RetryMethod) -> Self {
26        Self { retry_method }
27    }
28}