use std::ops::DerefMut;
use crate::metric::store::EventStoreClient;
#[derive(Clone, PartialEq, Debug)]
pub enum CheckpointingAction {
Delete(usize),
Save,
}
pub trait CheckpointingStrategy {
fn checkpointing(
&mut self,
epoch: usize,
collector: &EventStoreClient,
) -> Vec<CheckpointingAction>;
}
impl CheckpointingStrategy for Box<dyn CheckpointingStrategy> {
fn checkpointing(
&mut self,
epoch: usize,
collector: &EventStoreClient,
) -> Vec<CheckpointingAction> {
self.deref_mut().checkpointing(epoch, collector)
}
}