chiark / gitweb /
hidden: Provide active_views, more useful
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Wed, 24 Mar 2021 18:40:51 +0000 (18:40 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Wed, 24 Mar 2021 18:40:51 +0000 (18:40 +0000)
This is not dangerous because we only give out non-mut reference.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
src/hidden.rs

index f136d55b6226971157b2bc5e1d69aae3365f17b0..0d31a972203e5b575e11c6386c4a861460d2bda2 100644 (file)
@@ -51,14 +51,14 @@ pub struct Occultation {
 
 #[derive(Clone,Debug,Serialize,Deserialize)]
 pub struct OccultationViews {
-  views: Vec<OccultView>,
-  #[serde(default)] defview: OccultationKind,
+  pub views: Vec<OccultView>,
+  #[serde(default)] pub defview: OccultationKind,
 }
 
 #[derive(Clone,Debug,Serialize,Deserialize)]
 pub struct OccultView {
-  #[serde(default)] occult: OccultationKind,
-  players: Vec<PlayerId>,
+  #[serde(default)] pub occult: OccultationKind,
+  pub players: Vec<PlayerId>,
 }
 
 #[derive(Clone,Copy,Debug,Serialize,Deserialize)]
@@ -83,12 +83,12 @@ impl PieceOccult {
   pub fn is_active(&self) -> bool { self.active.is_some() }
 
   #[throws(IE)]
-  pub fn active_nondefault_views(&self, goccults: &GameOccults)
-                                 -> Option<usize> {
+  pub fn active_views<'r>(&'r self, goccults: &'r GameOccults)
+                          -> Option<&'r OccultationViews> {
     if let Some(occid) = self.active {
       let occ = goccults.occults.get(occid).ok_or_else(
         || internal_error_bydebug(&self))?;
-      Some(occ.views.views.len())
+      Some(&occ.views)
     } else {
       None
     }