From: Ian Jackson Date: Wed, 17 Feb 2021 00:09:52 +0000 (+0000) Subject: hidden: recalculate: prep, move return construction X-Git-Tag: otter-0.4.0~435 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=5edf405c358f6fb491f1000bb54d7c10c8629f17;p=otter.git hidden: recalculate: prep, move return construction Signed-off-by: Ian Jackson --- diff --git a/src/hidden.rs b/src/hidden.rs index 209b5be2..4c78c59a 100644 --- a/src/hidden.rs +++ b/src/hidden.rs @@ -223,7 +223,7 @@ fn recalculate_occultation_general< -> PieceUpdate { // fallible part - let (update, occids): (_, OldNew>) = { + let (puos, log, occids): (_, _, OldNew>) = { let nopiece = || internal_logic_error("piece vanished"); let ipc = ipieces.get(piece).ok_or_else(nopiece)?; let gpc = gs.pieces.get(piece).ok_or_else(nopiece)?; @@ -341,15 +341,9 @@ fn recalculate_occultation_general< }, }; - let update = PieceUpdate { - wrc: WRC::Unpredictable, - ops: PieceUpdateOps::PerPlayer(puos), - log, - }; - let occids = occulteds.map(|h| h.as_ref().map(|h| h.occid)); - (update, occids) + (puos, log, occids) }; // point of no return @@ -368,7 +362,11 @@ fn recalculate_occultation_general< gs.pieces.byid_mut(piece).unwrap().occult.passive = *occids.new(); })(); // <- no ?, infallible commitment - update + PieceUpdate { + wrc: WRC::Unpredictable, + ops: PieceUpdateOps::PerPlayer(puos), + log, + } } #[throws(InternalError)]