timeout_trait/
fake_impls.rs1use 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}