#[cfg(feature = "client")]
use serde::Deserialize;
use serde::Serialize;
use crate::{events::Event, responses::Response, reverse_requests::ReverseRequest};
#[cfg_attr(feature = "client", derive(Deserialize))]
#[derive(Serialize, Debug)]
#[serde(rename_all = "camelCase")]
pub struct BaseMessage {
pub seq: i64,
#[serde(flatten)]
pub message: Sendable,
}
#[cfg_attr(feature = "client", derive(Deserialize))]
#[derive(Serialize, Debug)]
#[serde(rename_all = "camelCase")]
#[serde(tag = "type")]
pub enum Sendable {
Response(Response),
Event(Event),
ReverseRequest(ReverseRequest),
}
#[cfg(test)]
mod tests;