Struct stakker::MaxTimerKey
source · 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§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for MaxTimerKey
impl Debug for MaxTimerKey
source§impl Default for MaxTimerKey
impl Default for MaxTimerKey
source§fn default() -> MaxTimerKey
fn default() -> MaxTimerKey
source§impl PartialEq<MaxTimerKey> for MaxTimerKey
impl PartialEq<MaxTimerKey> for MaxTimerKey
source§fn eq(&self, other: &MaxTimerKey) -> bool
fn eq(&self, other: &MaxTimerKey) -> bool
self
and other
values to be equal, and is used
by ==
.