1#[cfg(feature = "client")]
2use serde::Deserialize;
3use serde::Serialize;
4
5use crate::{events::Event, responses::Response, reverse_requests::ReverseRequest};
6
7#[cfg_attr(feature = "client", derive(Deserialize))]
11#[derive(Serialize, Debug)]
12#[serde(rename_all = "camelCase")]
13pub struct BaseMessage {
14 pub seq: i64,
17 #[serde(flatten)]
18 pub message: Sendable,
19}
20
21#[cfg_attr(feature = "client", derive(Deserialize))]
22#[derive(Serialize, Debug)]
23#[serde(rename_all = "camelCase")]
24#[serde(tag = "type")]
25pub enum Sendable {
26 Response(Response),
27 Event(Event),
28 ReverseRequest(ReverseRequest),
29}
30
31#[cfg(test)]
32mod tests;