pitchfork_cli/
daemon_status.rs

1#[derive(Debug, Clone, serde::Serialize, serde::Deserialize, strum::Display, strum::EnumIs)]
2#[strum(serialize_all = "snake_case")]
3#[serde(rename_all = "snake_case")]
4pub enum DaemonStatus {
5    Failed(String),
6    Waiting,
7    Running,
8    Stopping,
9    Errored(Option<i32>),
10    Stopped,
11}
12
13impl DaemonStatus {
14    pub fn style(&self) -> String {
15        let s = self.to_string();
16        match self {
17            DaemonStatus::Failed(_) => console::style(s).red().to_string(),
18            DaemonStatus::Waiting => console::style(s).yellow().to_string(),
19            DaemonStatus::Running => console::style(s).green().to_string(),
20            DaemonStatus::Stopping => console::style(s).yellow().to_string(),
21            DaemonStatus::Stopped => console::style(s).dim().to_string(),
22            DaemonStatus::Errored(_) => console::style(s).red().to_string(),
23        }
24    }
25}