use serde::{Deserialize, Serialize};
pub const DEFAULT_PORT: u16 = 7878;
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
#[serde(rename_all = "snake_case")]
pub enum Phase {
Work,
ShortBreak,
LongBreak,
}
impl Phase {
pub fn label(self) -> &'static str {
match self {
Phase::Work => "FOCUS",
Phase::ShortBreak => "SHORT BREAK",
Phase::LongBreak => "LONG BREAK",
}
}
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[serde(tag = "type", rename_all = "snake_case")]
pub enum ClientMsg {
Hello { name: String },
Toggle,
Reset,
Skip,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct Snapshot {
pub phase: Phase,
pub remaining_ms: u64,
pub running: bool,
pub round: u32,
pub rounds: u32,
pub users: Vec<String>,
pub last_action: Option<String>,
}