use core::ops::Deref;
use serde::Serialize;
use crate::{homeassistant::Component, Error, Topic};
#[derive(Serialize)]
#[serde(rename_all = "snake_case")]
#[allow(missing_docs)]
pub enum ButtonClass {
Identify,
Restart,
Update,
}
#[derive(Serialize)]
pub struct Button {
pub device_class: Option<ButtonClass>,
}
impl Component for Button {
type State = ();
fn platform() -> &'static str {
"button"
}
async fn publish_state<T: Deref<Target = str>>(
&self,
_topic: &Topic<T>,
_state: Self::State,
) -> Result<(), Error> {
Err(Error::Invalid)
}
}