use crate::VisitCounters;
#[derive(Default, Debug)]
pub struct Stats {
pub count: f32,
pub duration_avg: f32,
pub duration_max: f32,
pub duration_min: f32,
pub score_avg: f32,
pub score_max: f32,
pub score_min: f32,
}
impl Stats {
pub fn add(&mut self, counters: VisitCounters) {
self.count += 1.0;
let score = counters.score as f32;
let duration = counters.duration.as_secs_f32();
self.duration_avg += (duration - self.duration_avg) / self.count;
self.duration_max = f32::max(duration, self.duration_max);
self.duration_min = f32::min(duration, self.duration_min);
self.score_avg += (score - self.score_avg) / self.count;
self.score_max = f32::max(score, self.score_max);
self.score_min = f32::min(score, self.score_min);
}
}