entrenar/prune/pipeline/
stage.rs1use serde::{Deserialize, Serialize};
6
7#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize, Default)]
9pub enum PruningStage {
10 #[default]
12 Idle,
13 Calibrating,
15 ComputingImportance,
17 Pruning,
19 FineTuning,
21 Evaluating,
23 Exporting,
25 Complete,
27 Failed,
29}
30
31impl PruningStage {
32 pub fn is_active(&self) -> bool {
34 matches!(
35 self,
36 PruningStage::Calibrating
37 | PruningStage::ComputingImportance
38 | PruningStage::Pruning
39 | PruningStage::FineTuning
40 | PruningStage::Evaluating
41 | PruningStage::Exporting
42 )
43 }
44
45 pub fn is_terminal(&self) -> bool {
47 matches!(self, PruningStage::Complete | PruningStage::Failed)
48 }
49
50 pub fn display_name(&self) -> &'static str {
52 match self {
53 PruningStage::Idle => "Idle",
54 PruningStage::Calibrating => "Calibrating",
55 PruningStage::ComputingImportance => "Computing Importance",
56 PruningStage::Pruning => "Pruning",
57 PruningStage::FineTuning => "Fine-Tuning",
58 PruningStage::Evaluating => "Evaluating",
59 PruningStage::Exporting => "Exporting",
60 PruningStage::Complete => "Complete",
61 PruningStage::Failed => "Failed",
62 }
63 }
64}