From: Ian Jackson Date: Sun, 21 Feb 2021 17:02:35 +0000 (+0000) Subject: ListPieces refactor prep for fallible: switch to if_chain! X-Git-Tag: otter-0.4.0~401 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=8b5dd54c7214e94dfd7d913a11082974ea03acfb;p=otter.git ListPieces refactor prep for fallible: switch to if_chain! NFC Signed-off-by: Ian Jackson --- diff --git a/daemon/cmdlistener.rs b/daemon/cmdlistener.rs index 19af73d5..1d6a8c0f 100644 --- a/daemon/cmdlistener.rs +++ b/daemon/cmdlistener.rs @@ -375,13 +375,12 @@ fn execute_game_insn<'cs, 'igr, 'ig: 'igr>( }, MGI::ListPieces => readonly(cs,ag,ig, &[TP::ViewNotSecret], |ig|{ - let pieces = ig.gs.pieces.iter().filter_map(|(piece,p)| { + let pieces = ig.gs.pieces.iter().filter_map(|(piece,p)| if_chain!{ let &PieceState { pos, face, .. } = p; - let pinfo = ig.ipieces.get(piece)?; + if let Some(pinfo) = ig.ipieces.get(piece); let desc_html = pinfo.describe_html_infallible(None, p); let itemname = pinfo.itemname().to_string(); let bbox = pinfo.bbox_approx(); - #[allow(irrefutable_let_patterns)] let visible = if ! piece_at_all_occluded(&ig.gs.occults, piece) { Some(MgmtGamePieceVisibleInfo { pos, face, desc_html, bbox @@ -389,10 +388,13 @@ fn execute_game_insn<'cs, 'igr, 'ig: 'igr>( } else { None }; - Some(MgmtGamePieceInfo { - piece, itemname, - visible - }) + then { + Some(MgmtGamePieceInfo { + piece, itemname, + visible + }) + } + else { None } }).collect(); Ok(MGR::Pieces(pieces)) })?,