aboutsummaryrefslogtreecommitdiff
path: root/src/wire/update.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/wire/update.rs')
-rw-r--r--src/wire/update.rs44
1 files changed, 44 insertions, 0 deletions
diff --git a/src/wire/update.rs b/src/wire/update.rs
new file mode 100644
index 000000000000..27f2d0ddded3
--- /dev/null
+++ b/src/wire/update.rs
@@ -0,0 +1,44 @@
+//! Update to the game state
+
+use super::UserId;
+use serde::{Deserialize, Serialize};
+
+/// An update provided by the game server
+#[derive(Serialize, Deserialize)]
+pub enum Update {
+ /// Update made to a node
+ Node(NodeUpdate),
+ /// Update made to a link
+ Link(LinkUpdate),
+ /// Update made to a packet
+ Packet(PacketUpdate),
+ /// Update made to the user set
+ User(UserUpdate),
+ /// An error occured, can be non-fatal
+ Error(UpdateError),
+}
+
+/// Update made to a node
+#[derive(Serialize, Deserialize)]
+pub enum NodeUpdate {}
+
+/// Update made to a link
+#[derive(Serialize, Deserialize)]
+pub enum LinkUpdate {}
+
+/// Update made to a packet
+#[derive(Serialize, Deserialize)]
+pub enum PacketUpdate {}
+
+/// Update made to the user set
+#[derive(Serialize, Deserialize)]
+pub enum UserUpdate {
+ UserLeft(UserId),
+}
+
+/// An error occured, can be non-fatal
+#[derive(Serialize, Deserialize)]
+pub enum UpdateError {
+ /// You are the last user in the match
+ LastUser,
+}