1use serde::{Deserialize, Serialize};
2
3use crate::{
4 event::MEvent,
5 query::{QueryError, QueryResponse, WrappedQuery},
6 report::{ReportError, ReportResponse, WrappedReport},
7};
8
9#[derive(Debug, Clone, Serialize, Deserialize)]
10#[serde(tag = "event", content = "data")]
11pub enum MykoMessage<Commands> {
12 #[serde(rename = "ws:m:query")]
13 Query(WrappedQuery),
14 #[serde(rename = "ws:m:query-response")]
15 QueryResponse(QueryResponse),
16 #[serde(rename = "ws:m:report")]
17 Report(WrappedReport),
18 #[serde(rename = "ws:m:report-response")]
19 ReportResponse(ReportResponse),
20 #[serde(rename = "ws:m:report-error")]
21 ReportError(ReportError),
22 #[serde(rename = "ws:m:query-error")]
23 QueryError(QueryError),
24 #[serde(rename = "ws:m:event")]
25 Event(MEvent),
26 #[serde(rename = "ws:m:command")]
27 Command(Commands),
28}