embedded_counters/
delay.rs

1use std::fmt::Display;
2
3use embedded_hal::blocking::delay::*;
4
5use serde::Serialize;
6
7#[derive(Debug, Default, Serialize)]
8pub struct DelayCounter {
9    pub delays: u64,
10}
11
12impl DelayUs<u32> for DelayCounter {
13    fn delay_us(&mut self, delay: u32) {
14        self.delays += u64::from(delay);
15    }
16}
17
18impl DelayMs<u32> for DelayCounter {
19    fn delay_ms(&mut self, delay: u32) {
20        self.delays += u64::from(delay) * 1000u64;
21    }
22}
23
24impl Display for DelayCounter {
25    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
26        write!(f, "Delays: {}us", self.delays)
27    }
28}