1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
pub struct Pulse {
pulse: u64,
counter: u64,
}
impl Pulse {
#[inline]
pub fn new(pulse: u64) -> Self {
Self { pulse, counter: 0 }
}
#[inline]
pub fn tick(&mut self) -> bool {
let ret = self.is_pulse();
self.counter += 1;
ret
}
#[inline]
pub fn is_pulse(&self) -> bool {
self.counter % self.pulse == 0
}
}
