aboutsummaryrefslogtreecommitdiff
path: root/games/rstnode/rst-core/src/wire/game/update.rs
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--games/rstnode/rst-core/src/wire/game/update.rs (renamed from games/rstnode/rst-core/src/wire/update.rs)19
1 files changed, 11 insertions, 8 deletions
diff --git a/games/rstnode/rst-core/src/wire/update.rs b/games/rstnode/rst-core/src/wire/game/update.rs
index a1b47ff07e50..44a2e646bd34 100644
--- a/games/rstnode/rst-core/src/wire/update.rs
+++ b/games/rstnode/rst-core/src/wire/game/update.rs
@@ -1,11 +1,13 @@
//! Update to the game state
-use super::UserId;
-use crate::data::{NodeId, PacketId, Player, Upgrade};
+use crate::{
+ data::{NodeId, PacketId, Player, Upgrade},
+ wire::UserId,
+};
use serde::{Deserialize, Serialize};
/// An update provided by the game server
-#[derive(Serialize, Deserialize)]
+#[derive(Clone, Serialize, Deserialize)]
pub enum Update {
/// Update made to a node
Node(NodeUpdate),
@@ -20,7 +22,7 @@ pub enum Update {
}
/// Update made to a node
-#[derive(Serialize, Deserialize)]
+#[derive(Clone, Serialize, Deserialize)]
pub enum NodeUpdate {
/// The node owner changed
Owner(Player),
@@ -35,7 +37,7 @@ pub enum NodeUpdate {
}
/// Update made to a link
-#[derive(Serialize, Deserialize)]
+#[derive(Clone, Serialize, Deserialize)]
pub enum LinkUpdate {
/// Take a packet from a node's buffer
TakePacket(PacketId),
@@ -44,20 +46,21 @@ pub enum LinkUpdate {
}
/// Update made to a packet
-#[derive(Serialize, Deserialize)]
+#[derive(Clone, Serialize, Deserialize)]
pub enum PacketUpdate {
/// Advance a packet along one step along the link
Increment(PacketId),
}
/// Update made to the user set
-#[derive(Serialize, Deserialize)]
+#[derive(Clone, Serialize, Deserialize)]
pub enum UserUpdate {
UserLeft(UserId),
+ UserPaused(UserId),
}
/// An error occured, can be non-fatal
-#[derive(Serialize, Deserialize)]
+#[derive(Clone, Serialize, Deserialize)]
pub enum UpdateError {
/// You are the last user in the match
LastUser,