timeout_trait/
fake_impls.rs

1use crate::{
2    fugit::{KilohertzU32, RateExtU32},
3    *,
4};
5
6#[derive(Clone)]
7pub struct FakeTickInstant {
8    elapsed: u64,
9}
10
11impl TickInstant for FakeTickInstant {
12    #[inline]
13    fn frequency() -> KilohertzU32 {
14        1.kHz()
15    }
16
17    #[inline]
18    fn now() -> Self {
19        Self { elapsed: 0 }
20    }
21
22    #[inline]
23    fn elapsed(&mut self) -> TickDuration<Self> {
24        self.elapsed = self.elapsed.wrapping_add(1);
25        TickDuration::from_ticks(self.elapsed)
26    }
27
28    #[inline]
29    fn move_forward(&mut self, dur: &TickDuration<Self>) {
30        self.elapsed = self.elapsed.saturating_sub(dur.as_ticks());
31    }
32}