resymo_agent/command/
mod.rs

1pub mod exec;
2
3use async_trait::async_trait;
4use homeassistant_agent::model::Discovery;
5use std::borrow::Cow;
6use std::future::Future;
7use std::pin::Pin;
8
9pub type CallbackFn = dyn FnOnce(Result<(), ()>) -> Pin<Box<dyn Future<Output = ()> + Send>> + Send;
10
11#[async_trait(?Send)]
12pub trait Command: Send + Sync {
13    async fn start(&self, payload: Cow<'_, str>, callback: Box<CallbackFn>);
14
15    fn describe_ha(&self) -> Option<Discovery> {
16        None
17    }
18}