From 9abab9d53e2147fb633d8a15f59ccf9b7be98672 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Sun, 24 Apr 2022 16:40:29 +0100 Subject: [PATCH] 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 --- src/dice.rs | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) 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)] -- 2.30.2