Skip to main content

melodium_common/executive/
output.rs

1use super::{TransmissionValue, Value};
2use crate::executive::SendResult;
3use async_trait::async_trait;
4use core::fmt::Debug;
5
6pub trait Outputs: Debug + Send + Sync {
7    fn get(&mut self, output: &str) -> Box<dyn Output>;
8}
9
10#[async_trait]
11pub trait Output: Debug + Send + Sync {
12    async fn close(&self);
13
14    async fn send_many(&self, data: TransmissionValue) -> SendResult;
15    async fn send_one(&self, data: Value) -> SendResult;
16
17    async fn force_send(&self);
18}