pub struct MaxTimerKey { /* private fields */ }
Expand description
Timer key for a Max timer
Used by the timer_max!
macro and the timer_max_*
methods in
Core
. It can be used to delete a timer or change its expiry
time. It is plain Copy
data, 8 bytes long. Note that the key
should only be used on this same Stakker instance. If it is
used on another then it might cause a panic.
A “max” timer sets a timer at the first-provided timeout time, then just records the largest of the timeout values provided until that original timer expires, at which point it sets a new timer. So this naturally absorbs a lot of changes without having to delete any timers. A typical use might be to take some action in a gap in activity, for example to do an expensive background check in a gap in the user’s typing into a UI field. To implement this, the timer expiry time might be set to ‘now’ + 300ms by each keypress, for example:
fn handle_keypress(&mut self, cx: CX![], ...) {
:::
timer_max!(&mut self.timer,
cx.now() + Duration::from_millis(300),
[cx], check_focus_field());
}
Trait Implementations§
Source§impl Clone for MaxTimerKey
impl Clone for MaxTimerKey
Source§fn clone(&self) -> MaxTimerKey
fn clone(&self) -> MaxTimerKey
1.0.0 · Source§const fn clone_from(&mut self, source: &Self)
const fn clone_from(&mut self, source: &Self)
source
. Read more