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}