use std::time::Duration;
use crate::actor::{Actor, ExitReason};
use crate::actor::Backup;
#[derive(Debug)]
pub enum SuperVisionAction {
Exit,
Restart,
RestartDelayed(Duration)
}
pub trait SupervisionStrategy<S: Send + Clone> {
fn apply(&mut self, exit_reason: ExitReason, backup: &Backup<S>, actor: &mut Actor<S>) -> SuperVisionAction;
}