diff_priv/analysis/
publishing_delay_analyser.rs1use crate::data_manipulation::anonymizable::Anonymizable;
2use std::time::{Duration, SystemTime, UNIX_EPOCH};
3
4#[derive(Default)]
7pub struct PublishingDelayAnalyser {
8 count: i32,
9 sum_delays: Duration,
10}
11
12impl PublishingDelayAnalyser {
13 pub fn add_delay<A: Anonymizable>(&mut self, value: &A) {
14 self.count += 1;
15 self.sum_delays += SystemTime::now()
16 .duration_since(value.get_timestamp())
17 .unwrap()
18 }
19
20 pub fn calculate_average_delay(&self) -> Duration {
21 self.sum_delays.div_f64(self.count as f64)
22 }
23}