chiark / gitweb /
Refactor PieceOccult to provide active_occ
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Thu, 25 Mar 2021 10:56:11 +0000 (10:56 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Thu, 25 Mar 2021 11:02:58 +0000 (11:02 +0000)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Cargo.toml
daemon/Cargo.toml
src/hidden.rs
wasm/Cargo.toml

index 23e944f52a21d9b4a320a0cca518b1f3d70aab9d..11f43de98aaf6568ce65e80a10b89835ce3d62f3 100644 (file)
@@ -82,4 +82,4 @@ version="0.3.0"
 authors=["Ian Jackson <ijackson@chiark.greenend.org.uk>"]
 
 [workspace]
-members=["wasm", "daemon", "wdriver", "apitest"]
+members=["wasm", "daemon", "wdriver", "apitest"]
\ No newline at end of file
index 9f359ff3e63f453f3554aed85f9895124e3e6d79..5f242365cd513c2b3eec645211597603c22dc5ed 100644 (file)
@@ -38,4 +38,4 @@ edition="2018"
 license="AGPL-3.0-or-later"
 name="otter-daemon"
 version="0.0.1"
-authors=["Ian Jackson <ijackson@chiark.greenend.org.uk>"]
+authors=["Ian Jackson <ijackson@chiark.greenend.org.uk>"]
\ No newline at end of file
index e66643a9b6bb6fcec64f221b9ab53e567dd85881..5c41bbf6b85d40e990bc01c3c2ffbded5596a45c 100644 (file)
@@ -87,27 +87,31 @@ impl PieceOccult {
   pub fn is_active(&self) -> bool { self.active.is_some() }
 
   #[throws(IE)]
-  pub fn active_views<'r>(&'r self, goccults: &'r GameOccults)
-                          -> Option<&'r OccultationViews> {
+  fn active_occ<'r>(&'r self, goccults: &'r GameOccults)
+                    -> Option<&'r Occultation> {
     if let Some(occid) = self.active {
       let occ = goccults.occults.get(occid).ok_or_else(
         || internal_error_bydebug(&self))?;
-      Some(&occ.views)
+      Some(occ)
     } else {
       None
     }
   }
 
+  #[throws(IE)]
+  pub fn active_views<'r>(&'r self, goccults: &'r GameOccults)
+                          -> Option<&'r OccultationViews> {
+    self.active_occ(goccults)?.map(
+      |occ| &occ.views
+    )
+  }
+
   #[throws(IE)]
   pub fn active_total_ppieces(&self, goccults: &GameOccults)
                               -> Option<NotchNumber> {
-    if let Some(occid) = self.active {
-      let occ = goccults.occults.get(occid).ok_or_else(
-        || internal_error_bydebug(&self))?;
-      Some(occ.notches.len())
-    } else {
-      None
-    }
+    self.active_occ(goccults)?.map(
+      |occ| occ.notches.len()
+    )
   }
 
   pub fn passive_occid(&self) -> Option<OccId> { Some(self.passive?.occid) }
index 1bff9257a3c0d3e1561f52ded0fc2aaef87ebb2d..a05e3475f7d9730dbe5434f5e0200c7d53bc8517 100644 (file)
@@ -1,14 +1,14 @@
 
+[build-dependencies]
+wasm-bindgen-cli="0.2"
+
 [dependencies]
 console_error_panic_hook="0.1"
 fehler="1"
 js-sys="0.3"
+wasm-bindgen="0.2"
 wee_alloc="0.4"
 
-wasm-bindgen = "0.2"
-[build-dependencies]
-wasm-bindgen-cli = "0.2"
-
 [dependencies.otter-base]
 path="../base"
 
@@ -22,4 +22,4 @@ edition="2018"
 license="AGPL-3.0-or-later"
 name="otter-wasm"
 version="0.0.1"
-authors=["Ian Jackson <ijackson@chiark.greenend.org.uk>"]
+authors=["Ian Jackson <ijackson@chiark.greenend.org.uk>"]
\ No newline at end of file