summaryrefslogtreecommitdiff
path: root/src/room/messages.rs
diff options
context:
space:
mode:
authorTyler Murphy <tylerm@tylerm.dev>2023-06-12 23:47:43 -0400
committerTyler Murphy <tylerm@tylerm.dev>2023-06-12 23:47:43 -0400
commit0a06f163d1664bfd0ff938569223294edf9902f6 (patch)
treeac0dc03c010d3e5666b6a62249347ac434f76b44 /src/room/messages.rs
downloadtuxman-0a06f163d1664bfd0ff938569223294edf9902f6.tar.gz
tuxman-0a06f163d1664bfd0ff938569223294edf9902f6.tar.bz2
tuxman-0a06f163d1664bfd0ff938569223294edf9902f6.zip
initial
Diffstat (limited to 'src/room/messages.rs')
-rw-r--r--src/room/messages.rs69
1 files changed, 69 insertions, 0 deletions
diff --git a/src/room/messages.rs b/src/room/messages.rs
new file mode 100644
index 0000000..72958a6
--- /dev/null
+++ b/src/room/messages.rs
@@ -0,0 +1,69 @@
+use serde::{Serialize, Deserialize};
+use serde_json::Value;
+
+#[derive(Deserialize, Clone, Debug)]
+#[serde(tag = "type")]
+pub enum ClientMessage {
+ #[serde(rename = "frame")]
+ Frame {
+ frame: u64,
+ },
+ #[serde(rename = "input")]
+ Input {
+ data: Value,
+ frame: u64,
+ },
+ #[serde(rename = "requeststate")]
+ RequestState {
+ connection: Option<usize>,
+ frame: u64,
+ },
+ #[serde(rename = "state")]
+ State {
+ state: Value,
+ frame: u64,
+ },
+ #[serde(rename = "ping")]
+ Ping {
+ frame: u64,
+ },
+}
+
+#[derive(Serialize, Clone, Debug)]
+#[serde(tag = "type")]
+pub enum ServerMessage {
+ #[serde(rename = "framerequest")]
+ FrameRequest,
+ #[serde(rename = "connections")]
+ Connections {
+ connections: Vec<usize>,
+ added: Option<usize>,
+ removed: Option<usize>,
+ id: usize,
+ frame: u64,
+ },
+ #[serde(rename = "input")]
+ Input {
+ data: Value,
+ frame: u64,
+ connection: usize,
+ },
+ #[serde(rename = "requeststate")]
+ RequestState {
+ frame: u64,
+ },
+ #[serde(rename = "state")]
+ State {
+ state: Value,
+ frame: u64,
+ connection: Option<usize>,
+ },
+ #[serde(rename = "pong")]
+ Pong {
+ frame: u64,
+ },
+ #[serde(rename = "error")]
+ Error {
+ error: String,
+ },
+}