use std::fmt;
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "snake_case")]
#[non_exhaustive]
pub enum RointeProduct {
Radiator,
Radiatorb,
Towel,
Acs,
Therm,
OvalTowel,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "snake_case")]
pub enum DeviceMode {
Manual,
Auto,
}
impl fmt::Display for DeviceMode {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self {
DeviceMode::Manual => write!(f, "manual"),
DeviceMode::Auto => write!(f, "auto"),
}
}
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "snake_case")]
pub enum DeviceStatus {
Comfort,
Eco,
Ice,
Off,
#[serde(rename = "none")]
NoStatus,
}
impl fmt::Display for DeviceStatus {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self {
DeviceStatus::Comfort => write!(f, "comfort"),
DeviceStatus::Eco => write!(f, "eco"),
DeviceStatus::Ice => write!(f, "ice"),
DeviceStatus::Off => write!(f, "off"),
DeviceStatus::NoStatus => write!(f, "none"),
}
}
}
#[derive(Debug, Clone, PartialEq)]
pub enum HvacMode {
Off,
Heat,
Auto,
}
impl fmt::Display for HvacMode {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self {
HvacMode::Off => write!(f, "off"),
HvacMode::Heat => write!(f, "heat"),
HvacMode::Auto => write!(f, "auto"),
}
}
}
#[derive(Debug, Clone, PartialEq)]
pub enum Preset {
Comfort,
Eco,
Ice,
}
impl fmt::Display for Preset {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self {
Preset::Comfort => write!(f, "comfort"),
Preset::Eco => write!(f, "eco"),
Preset::Ice => write!(f, "ice"),
}
}
}
#[derive(Debug, Clone, PartialEq)]
pub enum ScheduleMode {
Comfort,
Eco,
Off,
}
impl ScheduleMode {
pub fn from_char(c: char) -> Self {
match c {
'C' => ScheduleMode::Comfort,
'E' => ScheduleMode::Eco,
_ => ScheduleMode::Off,
}
}
}