diff options
Diffstat (limited to 'src/wire/update.rs')
-rw-r--r-- | src/wire/update.rs | 44 |
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, +} |