embedded-counters 0.1.2

Performance counters for embedded driver benchmarking
Documentation
use std::fmt::Display;

use embedded_hal::blocking::delay::*;

use serde::Serialize;

#[derive(Debug, Default, Serialize)]
pub struct DelayCounter {
    pub delays: u64,
}

impl DelayUs<u32> for DelayCounter {
    fn delay_us(&mut self, delay: u32) {
        self.delays += u64::from(delay);
    }
}

impl DelayMs<u32> for DelayCounter {
    fn delay_ms(&mut self, delay: u32) {
        self.delays += u64::from(delay) * 1000u64;
    }
}

impl Display for DelayCounter {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        write!(f, "Delays: {}us", self.delays)
    }
}