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