use std::time::Duration;
#[derive(Debug, Clone, Copy, Default, PartialEq, Eq)]
pub enum TriggerPolicy {
#[default]
EveryNode,
BarrierOnly,
Manual,
OnMutation,
}
#[derive(Debug, Clone, Default, PartialEq, Eq)]
pub enum RetentionPolicy {
#[default]
KeepAll,
KeepLatest(usize),
TimeBased(Duration),
}
impl RetentionPolicy {
pub fn prune_keep(&self) -> Option<usize> {
match self {
RetentionPolicy::KeepAll => None,
RetentionPolicy::KeepLatest(n) => Some(*n),
RetentionPolicy::TimeBased(_) => None, }
}
}
#[allow(deprecated)]
#[deprecated(
since = "0.5.0",
note = "Use TriggerPolicy instead. EveryNode → TriggerPolicy::EveryNode, \
BarrierOnly → TriggerPolicy::BarrierOnly, Manual → TriggerPolicy::Manual"
)]
#[derive(Debug, Clone, Copy, Default, PartialEq, Eq)]
pub enum CheckpointPolicy {
#[default]
EveryNode,
BarrierOnly,
Manual,
}
#[allow(deprecated)]
impl From<CheckpointPolicy> for TriggerPolicy {
fn from(policy: CheckpointPolicy) -> Self {
match policy {
CheckpointPolicy::EveryNode => TriggerPolicy::EveryNode,
CheckpointPolicy::BarrierOnly => TriggerPolicy::BarrierOnly,
CheckpointPolicy::Manual => TriggerPolicy::Manual,
}
}
}