lenso-platform-runtime 0.1.17

use std::time::Duration;

#[derive(Debug, Clone)]
pub struct RetryPolicy {
    pub max_attempts: u32,
    pub initial_delay: Duration,
}

impl RetryPolicy {
    pub fn none() -> Self {
        Self {
            max_attempts: 1,
            initial_delay: Duration::ZERO,
        }
    }

    pub fn fixed(max_attempts: u32, initial_delay: Duration) -> Self {
        Self {
            max_attempts,
            initial_delay,
        }
    }
}

impl Default for RetryPolicy {
    fn default() -> Self {
        Self::fixed(3, Duration::from_secs(5))
    }
}