chiark / gitweb /
Refactor to make some things into GPiece methods
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Mon, 15 Mar 2021 18:43:58 +0000 (18:43 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Mon, 15 Mar 2021 18:43:58 +0000 (18:43 +0000)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
daemon/api.rs
src/hidden.rs

index c6939bb39ce26e787f91fa00281ab150bf84f7ff..2ec54f895586c9b3684a8d49a4fb283fecd1d5dd 100644 (file)
@@ -446,7 +446,7 @@ api_route!{
       ioccults, &gs.occults, player, gpl, piece, gpc, ipc,
       if gpc.pinned { "pinned" } else { "unpinned" },
     )?;
-    forbid_piece_involved_in_occultation(&gpc)?;
+    gpc.forbid_involved_in_occultation()?;
     gpc.pinned = self.0;
     let update = PieceUpdateOp::Modify(());
     (WhatResponseToClientOp::Predictable,
index c94f3337eb6ce24d0547112c49faf0244291b0c9..792acef032b2abef3730cd101c9f458443514f46 100644 (file)
@@ -228,15 +228,16 @@ impl GPiece {
       None => Some(ShowUnocculted(())),
     }
   }
-}
 
-pub fn piece_involved_in_occultation(gpc: &GPiece) -> bool {
-  gpc.occult.passive.is_some() ||
-  gpc.occult.active.is_some()
-}
-#[throws(OE)]
-pub fn forbid_piece_involved_in_occultation(gpc: &GPiece) {
-  if piece_involved_in_occultation(&gpc) { throw!(OE::Occultation) }
+  pub fn involved_in_occultation(&self) -> bool {
+    self.occult.passive.is_some() ||
+    self.occult.active.is_some()
+  }
+
+  #[throws(OE)]
+  pub fn forbid_involved_in_occultation(&self) {
+    if self.involved_in_occultation() { throw!(OE::Occultation) }
+  }
 }
 
 pub fn vpiece_decode(