pub mod callback; pub mod command; pub mod payload; pub mod telemetry_definition; pub mod telemetry_entry; use payload::{RequestMessagePayload, ResponseMessagePayload}; use serde::{Deserialize, Serialize}; use uuid::Uuid; #[derive(Debug, Clone, Serialize, Deserialize)] pub struct RequestMessage { pub uuid: Uuid, pub response: Option, #[serde(flatten)] pub payload: RequestMessagePayload, } #[derive(Debug, Clone, Serialize, Deserialize)] pub struct ResponseMessage { pub uuid: Uuid, pub response: Option, #[serde(flatten)] pub payload: ResponseMessagePayload, } pub trait ClientMessage: Into {} pub trait RequestResponse: Into { type Response: TryFrom; } pub trait RegisterCallback: Into { type Callback: TryFrom; type Response: Into; }