use nv_core::Duration;
#[derive(Debug, Clone)]
pub struct RestartPolicy {
pub max_restarts: u32,
pub restart_window: Duration,
pub restart_delay: Duration,
pub restart_on: RestartTrigger,
}
impl Default for RestartPolicy {
fn default() -> Self {
Self {
max_restarts: 5,
restart_window: Duration::from_secs(300),
restart_delay: Duration::from_secs(2),
restart_on: RestartTrigger::SourceOrStagePanic,
}
}
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum RestartTrigger {
SourceFailure,
SourceOrStagePanic,
Never,
}