From: Ian Jackson Date: Sun, 24 Apr 2022 15:40:29 +0000 (+0100) Subject: dice: Refactor describe_html to prep for desc X-Git-Tag: otter-1.1.0~462 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=9abab9d53e2147fb633d8a15f59ccf9b7be98672;p=otter.git dice: Refactor describe_html to prep for desc Break out showing so that we don't have combinatorical description formats. Signed-off-by: Ian Jackson --- diff --git a/src/dice.rs b/src/dice.rs index 76fb300a..9f9dd61c 100644 --- a/src/dice.rs +++ b/src/dice.rs @@ -326,16 +326,19 @@ impl PieceTrait for Die { #[throws(IE)] fn describe_html(&self, gpc: &GPiece, _: &GameOccults) -> Html { let nfaces = self.nfaces(); - let label = &self.labels[gpc.face]; - let idesc = || self.image.describe_html(gpc.face); - let ldesc = || Html::from_txt(label); - if label == "" { - hformat!("a d{} (now showing {})", nfaces, idesc()?) - } else if self.labels.iter().filter(|&l| l == label).count() == 1 { - hformat!("a d{} (now showing {})", nfaces, ldesc()) - } else { - hformat!("a d{} (now showing {}, {})", nfaces, idesc()?, ldesc()) - } + let showing = { + let label = &self.labels[gpc.face]; + let idesc = || self.image.describe_html(gpc.face); + let ldesc = || Html::from_txt(label); + if label == "" { + hformat!("now showing {}", idesc()?) + } else if self.labels.iter().filter(|&l| l == label).count() == 1 { + hformat!("now showing {}", ldesc()) + } else { + hformat!("now showing {}, {}", idesc()?, ldesc()) + } + }; + hformat!("a d{} ({})", nfaces, showing) } #[throws(ApiPieceOpError)]