mirror of
https://github.com/pezkuwichain/pezkuwi-telemetry.git
synced 2026-05-31 10:31:06 +00:00
fix: Average Time (#201)
This commit is contained in:
@@ -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<T> {
|
||||
sum: T,
|
||||
}
|
||||
|
||||
impl<T: NumOps + Zero + Bounded + Copy + Sum + TryFrom<usize>> NumStats<T> {
|
||||
impl<T: Saturating + NumOps + Zero + Bounded + Copy + Sum + TryFrom<usize>> NumStats<T> {
|
||||
pub fn new(size: usize) -> Self {
|
||||
NumStats {
|
||||
stack: vec![T::zero(); size].into_boxed_slice(),
|
||||
@@ -22,7 +22,7 @@ impl<T: NumOps + Zero + Bounded + Copy + Sum + TryFrom<usize>> NumStats<T> {
|
||||
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;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user