1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
use serde::{Deserialize, Serialize}; #[derive(Deserialize, Serialize, Debug, Clone, Default)] pub struct Avg { counter: u64, sum: f64, } impl Avg { pub fn new() -> Self { Self::default() } pub fn add(&mut self, value: f64) { self.counter += 1; self.sum += value; } pub fn value(&self) -> f64 { if self.counter == 0 { 0.0 } else { self.sum / self.counter as f64 } } }