use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize, Default)]
pub enum PruningStage {
#[default]
Idle,
Calibrating,
ComputingImportance,
Pruning,
FineTuning,
Evaluating,
Exporting,
Complete,
Failed,
}
impl PruningStage {
pub fn is_active(&self) -> bool {
matches!(
self,
PruningStage::Calibrating
| PruningStage::ComputingImportance
| PruningStage::Pruning
| PruningStage::FineTuning
| PruningStage::Evaluating
| PruningStage::Exporting
)
}
pub fn is_terminal(&self) -> bool {
matches!(self, PruningStage::Complete | PruningStage::Failed)
}
pub fn display_name(&self) -> &'static str {
match self {
PruningStage::Idle => "Idle",
PruningStage::Calibrating => "Calibrating",
PruningStage::ComputingImportance => "Computing Importance",
PruningStage::Pruning => "Pruning",
PruningStage::FineTuning => "Fine-Tuning",
PruningStage::Evaluating => "Evaluating",
PruningStage::Exporting => "Exporting",
PruningStage::Complete => "Complete",
PruningStage::Failed => "Failed",
}
}
}