From 7c1564f7b53d7bb19783d4d505a998f28626cdb2 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Fri, 19 Mar 2021 01:18:29 +0000 Subject: [PATCH] clock: Prevent both users being the same Signed-off-by: Ian Jackson --- src/clock.rs | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/clock.rs b/src/clock.rs index 228dd351..d5caa241 100644 --- a/src/clock.rs +++ b/src/clock.rs @@ -73,6 +73,11 @@ impl From for u8 { fn from(user: User) -> u8 { user.0 as u8 } } +impl std::ops::Not for User { + type Output = User; + fn not(self) -> User { User(! self.0) } +} + // ==================== state ==================== #[derive(Debug,Clone,Serialize,Deserialize)] @@ -425,6 +430,10 @@ impl PieceTrait for Clock { if let Some(_gpl) = gs.players.get(state.users[user].player) { throw!(OE::BadPieceStateForOperation); } + if state.users[! user].player == player { + // todo: some more useful per-player message + throw!(OE::BadPieceStateForOperation); + } state.users[user].player = player; }, "unclaim-x" | "unclaim-y" => { -- 2.30.2