From 550e96432fef0f12b80b0782efc7b3e8f0a5ef62 Mon Sep 17 00:00:00 2001 From: Maciej Hirsz <1096222+maciejhirsz@users.noreply.github.com> Date: Mon, 25 Nov 2019 15:06:37 +0100 Subject: [PATCH] fix: Average Time (#201) --- backend/src/util/num_stats.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/backend/src/util/num_stats.rs b/backend/src/util/num_stats.rs index d425585..6c80b46 100644 --- a/backend/src/util/num_stats.rs +++ b/backend/src/util/num_stats.rs @@ -1,4 +1,4 @@ -use num_traits::{Zero, NumOps, Bounded}; +use num_traits::{Zero, NumOps, Bounded, ops::saturating::Saturating}; use std::iter::Sum; use std::convert::TryFrom; @@ -10,7 +10,7 @@ pub struct NumStats { sum: T, } -impl> NumStats { +impl> NumStats { pub fn new(size: usize) -> Self { NumStats { stack: vec![T::zero(); size].into_boxed_slice(), @@ -22,7 +22,7 @@ impl> NumStats { pub fn push(&mut self, val: T) { let slot = &mut self.stack[self.index % self.stack.len()]; - self.sum = self.sum - *slot + val; + self.sum = (self.sum + val).saturating_sub(*slot); *slot = val;