From: Ian Jackson Date: Thu, 25 Mar 2021 10:56:11 +0000 (+0000) Subject: Refactor PieceOccult to provide active_occ X-Git-Tag: otter-0.5.0~428 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=b7531cb83ac3e07dce896847883ed9afea0ddf80;p=otter.git Refactor PieceOccult to provide active_occ Signed-off-by: Ian Jackson --- diff --git a/Cargo.toml b/Cargo.toml index 23e944f5..11f43de9 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -82,4 +82,4 @@ version="0.3.0" authors=["Ian Jackson "] [workspace] -members=["wasm", "daemon", "wdriver", "apitest"] +members=["wasm", "daemon", "wdriver", "apitest"] \ No newline at end of file diff --git a/daemon/Cargo.toml b/daemon/Cargo.toml index 9f359ff3..5f242365 100644 --- a/daemon/Cargo.toml +++ b/daemon/Cargo.toml @@ -38,4 +38,4 @@ edition="2018" license="AGPL-3.0-or-later" name="otter-daemon" version="0.0.1" -authors=["Ian Jackson "] +authors=["Ian Jackson "] \ No newline at end of file diff --git a/src/hidden.rs b/src/hidden.rs index e66643a9..5c41bbf6 100644 --- a/src/hidden.rs +++ b/src/hidden.rs @@ -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 { - 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 { Some(self.passive?.occid) } diff --git a/wasm/Cargo.toml b/wasm/Cargo.toml index 1bff9257..a05e3475 100644 --- a/wasm/Cargo.toml +++ b/wasm/Cargo.toml @@ -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 "] +authors=["Ian Jackson "] \ No newline at end of file