chiark / gitweb /
make_pieceid_visible
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 27 Jun 2020 12:29:47 +0000 (13:29 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 27 Jun 2020 12:29:53 +0000 (13:29 +0100)
src/bin/server.rs
src/gamestate.rs

index 119b6f0c02265e9e873adb31386a6ab90d96ce71..463dbad7247dbb16a00fec4759fe63bf6b209000 100644 (file)
@@ -75,9 +75,8 @@ fn session(form : Json<SessionForm>) -> Result<Template,RE> {
     let mut uses = vec![];
     let mut defs = vec![];
     for (gpid, pr) in &g.gs.pieces {
-      let id : slotmap::KeyData = gpid.into();
       let pri = PieceRenderInstructions {
-        id : VisiblePieceId { uncensored : id },
+        id : make_pieceid_visible(gpid),
         face : pr.face,
       };
       defs.push(format!(r##"<g id="{}">{}</g>"##,
index efb6f40f5bdcce7e1522b8d6012c4d8ed89ea653..8bbc926c46504cbf41b68070cf6511ec9244914d 100644 (file)
@@ -8,7 +8,13 @@ slotmap::new_key_type!{
 #[derive(Copy,Clone,Serialize,Deserialize)]
 #[serde(into="String")]
 #[serde(try_from="&str")]
-pub struct VisiblePieceId { pub uncensored : slotmap::KeyData }
+pub struct VisiblePieceId(pub slotmap::KeyData);
+
+pub fn make_pieceid_visible(p : PieceId) -> VisiblePieceId {
+  // xxx need to do censorship mapping here
+  let kd : slotmap::KeyData = p.into();
+  VisiblePieceId(kd)
+}
 
 #[derive(Debug)]
 pub struct PieceRenderInstructions {
@@ -20,7 +26,7 @@ pub type VisiblePieceIdSvgIds = &'static [&'static str];
 
 impl Display for VisiblePieceId {
   fn fmt(&self, f: &mut fmt::Formatter) -> Result<(), fmt::Error> {
-    let v = self.uncensored.as_ffi();
+    let v = self.0.as_ffi();
     write!(f, "{}.{}", v >> 32, v & 0xffffffff)
   }
 }
@@ -29,9 +35,7 @@ display_consequential_impls!{VisiblePieceId}
 impl TryFrom<&str> for VisiblePieceId {
   type Error = AE;
   #[throws(AE)]
-  fn try_from(s : &str) -> VisiblePieceId {
-    VisiblePieceId{ uncensored : slotkey_parse(s)? }
-  }
+  fn try_from(s : &str) -> VisiblePieceId { VisiblePieceId(slotkey_parse(s)?) }
 }
 
 impl PieceRenderInstructions {