From 9342760d82ec4feb2a221fec52eef6a21c03ae3a Mon Sep 17 00:00:00 2001 From: Simon Gardling Date: Tue, 29 Apr 2025 18:20:53 -0400 Subject: [PATCH] simplify populate_self_from_children --- src/logic/mvs.rs | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/src/logic/mvs.rs b/src/logic/mvs.rs index f0ab44d..5e03c7c 100644 --- a/src/logic/mvs.rs +++ b/src/logic/mvs.rs @@ -57,18 +57,14 @@ impl MoveValueStats { } pub fn populate_self_from_children(&mut self, others: &[Self]) { - self.wins = others - .iter() - .map(|x| x.wins + (x.state == Some(MVSGameState::Win)) as u16) - .sum::(); - self.losses = others - .iter() - .map(|x| x.losses + (x.state == Some(MVSGameState::Loss)) as u16) - .sum::(); - self.ties = others - .iter() - .map(|x| x.ties + (x.state == Some(MVSGameState::Tie)) as u16) - .sum::(); + (self.wins, self.losses, self.ties) = + others.iter().fold((0, 0, 0), |(wins, losses, ties), x| { + ( + wins + x.wins + (x.state == Some(MVSGameState::Win)) as u16, + losses + x.losses + (x.state == Some(MVSGameState::Loss)) as u16, + ties + x.ties + (x.state == Some(MVSGameState::Tie)) as u16, + ) + }); } }