appletheia_application/outbox/
outbox_polling_options.rs1use super::{
2 OutboxPollBackoffMultiplier, OutboxPollInterval, OutboxPollJitterRatio,
3 OutboxPollingOptionsError,
4};
5
6#[derive(Clone, Debug, PartialEq)]
7pub struct OutboxPollingOptions {
8 pub base: OutboxPollInterval,
9 pub max: OutboxPollInterval,
10 pub multiplier: OutboxPollBackoffMultiplier,
11 pub jitter: OutboxPollJitterRatio,
12}
13
14impl OutboxPollingOptions {
15 pub fn new(
16 base: OutboxPollInterval,
17 max: OutboxPollInterval,
18 multiplier: OutboxPollBackoffMultiplier,
19 jitter: OutboxPollJitterRatio,
20 ) -> Result<Self, OutboxPollingOptionsError> {
21 if base.value() > max.value() {
22 return Err(OutboxPollingOptionsError::BaseGreaterThanMax { base, max });
23 }
24
25 Ok(Self {
26 base,
27 max,
28 multiplier,
29 jitter,
30 })
31 }
32}