Files
telemetry_visualization/api/src/messages/mod.rs
2025-12-30 14:19:41 -05:00

37 lines
941 B
Rust

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<Uuid>,
#[serde(flatten)]
pub payload: RequestMessagePayload,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ResponseMessage {
pub uuid: Uuid,
pub response: Option<Uuid>,
#[serde(flatten)]
pub payload: ResponseMessagePayload,
}
pub trait ClientMessage: Into<RequestMessagePayload> {}
pub trait RequestResponse: Into<RequestMessagePayload> {
type Response: TryFrom<ResponseMessagePayload>;
}
pub trait RegisterCallback: Into<RequestMessagePayload> {
type Callback: TryFrom<ResponseMessagePayload>;
type Response: Into<RequestMessagePayload>;
}