use serde::{Deserialize, Serialize};
use std::fmt;
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize, Default)]
pub enum NodeStatus {
Success,
Failure,
#[default]
Running,
}
impl NodeStatus {
pub fn is_complete(&self) -> bool {
matches!(self, NodeStatus::Success | NodeStatus::Failure)
}
pub fn is_success(&self) -> bool {
matches!(self, NodeStatus::Success)
}
pub fn is_failure(&self) -> bool {
matches!(self, NodeStatus::Failure)
}
pub fn is_running(&self) -> bool {
matches!(self, NodeStatus::Running)
}
}
impl fmt::Display for NodeStatus {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self {
NodeStatus::Success => write!(f, "Success"),
NodeStatus::Failure => write!(f, "Failure"),
NodeStatus::Running => write!(f, "Running"),
}
}
}