From: Ian Jackson Date: Sat, 27 Jun 2020 12:29:47 +0000 (+0100) Subject: make_pieceid_visible X-Git-Tag: otter-0.2.0~1532 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=b4c71caf21f84aa7d165c4f619107e89966fd453;p=otter.git make_pieceid_visible --- diff --git a/src/bin/server.rs b/src/bin/server.rs index 119b6f0c..463dbad7 100644 --- a/src/bin/server.rs +++ b/src/bin/server.rs @@ -75,9 +75,8 @@ fn session(form : Json) -> Result { 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##"{}"##, diff --git a/src/gamestate.rs b/src/gamestate.rs index efb6f40f..8bbc926c 100644 --- a/src/gamestate.rs +++ b/src/gamestate.rs @@ -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 {