Base protocol

This commit is contained in:
2025-09-13 10:35:54 +02:00
parent b143295eda
commit 0919ec30d3
5 changed files with 116 additions and 22 deletions
+40
View File
@@ -0,0 +1,40 @@
use serde::{Deserialize, Serialize};
use tungstenite::Bytes;
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(tag = "type", content = "params", rename_all = "snake_case")]
pub enum FromClient {
SendMessage(String),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(tag = "type", content = "params", rename_all = "snake_case")]
pub enum FromServer {}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(tag = "type", content = "params", rename_all = "snake_case")]
pub enum ToClient {
Message(data::Message),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(tag = "type", content = "params", rename_all = "snake_case")]
pub enum ToServer {}
/// WebSocket for client messages
#[derive(Debug, Clone)]
pub enum WsMessage<T: Serialize + for<'de> Deserialize<'de>> {
FromClient(T),
Binary(Bytes),
String(String),
}
pub mod data {
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct Message {
pub from: String,
pub contents: String,
}
}