1use serde::{
2 Deserialize,
3 Serialize,
4};
5use serde_repr::{
6 Deserialize_repr,
7 Serialize_repr,
8};
9use serde_with::skip_serializing_none;
10
11pub mod codecs;
12
13#[repr(u8)]
14#[derive(Clone, Debug, Deserialize_repr, Serialize_repr)]
15pub enum WsIoPacketType {
16 Auth = 0,
17 Disconnect = 1,
18 Event = 2,
19 Init = 3,
20 Ready = 4,
21}
22
23#[skip_serializing_none]
24#[derive(Clone, Debug, Deserialize, Serialize)]
25pub struct WsIoPacket {
26 #[serde(rename = "d")]
27 pub data: Option<Vec<u8>>,
28
29 #[serde(rename = "k")]
30 pub key: Option<String>,
31
32 #[serde(rename = "t")]
33 pub r#type: WsIoPacketType,
34}