appletheia_application/outbox/
outbox_poll_backoff_multiplier.rs1use super::OutboxPollBackoffMultiplierError;
2
3#[derive(Copy, Clone, Debug, PartialEq)]
4pub struct OutboxPollBackoffMultiplier(f64);
5
6impl OutboxPollBackoffMultiplier {
7 pub fn new() -> Self {
8 Self(1.0)
9 }
10
11 pub fn value(&self) -> f64 {
12 self.0
13 }
14}
15
16impl Default for OutboxPollBackoffMultiplier {
17 fn default() -> Self {
18 Self::new()
19 }
20}
21
22impl TryFrom<f64> for OutboxPollBackoffMultiplier {
23 type Error = OutboxPollBackoffMultiplierError;
24
25 fn try_from(value: f64) -> Result<Self, Self::Error> {
26 if !value.is_finite() || value < 1.0 {
27 return Err(OutboxPollBackoffMultiplierError::Invalid(value));
28 }
29 Ok(OutboxPollBackoffMultiplier(value))
30 }
31}