use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
pub enum HubKind {
Main,
Subagent,
Advisor,
}
impl HubKind {
pub const fn as_str(self) -> &'static str {
match self {
HubKind::Main => "main",
HubKind::Subagent => "task",
HubKind::Advisor => "advisor",
}
}
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
pub enum HubStatus {
Running,
Idle,
Parked,
Aborted,
}
impl HubStatus {
pub const fn as_str(self) -> &'static str {
match self {
HubStatus::Running => "running",
HubStatus::Idle => "idle",
HubStatus::Parked => "parked",
HubStatus::Aborted => "aborted",
}
}
pub const fn sort_key(self) -> u8 {
match self {
HubStatus::Running => 0,
HubStatus::Idle => 1,
HubStatus::Parked => 2,
HubStatus::Aborted => 3,
}
}
}