tetratto_core/model/
socket.rs1use serde::{Serialize, Deserialize, de::DeserializeOwned};
2
3#[derive(Serialize, Deserialize, PartialEq, Eq)]
4pub enum CrudMessageType {
5 Create,
6 Delete,
7}
8
9#[derive(Serialize, Deserialize, PartialEq, Eq)]
10pub enum PacketType {
11 Ping,
13 Text,
15 Crud(CrudMessageType),
17 Key,
19}
20
21#[derive(Serialize, Deserialize, PartialEq, Eq)]
22pub enum SocketMethod {
23 Headers,
25 Message,
27 Delete,
29 Forward(PacketType),
31 Misc(PacketType),
33 Packet(PacketType),
35}
36
37#[derive(Serialize, Deserialize)]
38pub struct SocketMessage {
39 pub method: SocketMethod,
40 pub data: String,
41}
42
43impl SocketMessage {
44 pub fn data<T: DeserializeOwned>(&self) -> T {
45 serde_json::from_str(&self.data).unwrap()
46 }
47}
48
49#[derive(Serialize, Deserialize, PartialEq, Eq)]
51pub struct TextMessage {
52 pub text: String,
53}