Skip to main content

TimerCommand

Enum TimerCommand 

Source
pub enum TimerCommand<T> {
    Set {
        id: T,
        duration: Duration,
    },
    Kill {
        id: T,
    },
}
Expand description

A command to set or kill a timer.

Timer commands are part of the Response returned by state machine transitions. The runtime is responsible for translating these into actual platform timer operations.

§Set vs Kill

VariantWhen to use
SetStart a new timer or reset an existing one (e.g., restart the debounce window on every incoming event)
KillCancel a pending timer that is no longer needed (e.g., a key was released before the chord window closed)

Set with an ID that already has an active timer resets that timer — it does not create a second concurrent timer for the same ID. Kill for an ID with no active timer is a silent no-op.

Variants§

§

Set

Start (or restart) a timer with the given ID and duration.

If a timer with the same ID is already active, it is reset to the new duration. Use this to implement “restart the window on every new event” patterns such as debounce or inactivity timeouts.

Fields

§id: T

Timer identifier.

§duration: Duration

Duration after which TimedStateMachine::on_timeout should be called.

§

Kill

Stop an active timer.

If no timer with this ID is active, this is a no-op. Use this when a subsequent event makes the pending timeout irrelevant (e.g., the other chord key was released, so the window is moot).

Fields

§id: T

Timer identifier to stop.

Trait Implementations§

Source§

impl<T: Clone> Clone for TimerCommand<T>

Source§

fn clone(&self) -> TimerCommand<T>

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<T: Debug> Debug for TimerCommand<T>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<T: Hash> Hash for TimerCommand<T>

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl<T: PartialEq> PartialEq for TimerCommand<T>

Source§

fn eq(&self, other: &TimerCommand<T>) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl<T: Copy> Copy for TimerCommand<T>

Source§

impl<T: Eq> Eq for TimerCommand<T>

Source§

impl<T> StructuralPartialEq for TimerCommand<T>

Auto Trait Implementations§

§

impl<T> Freeze for TimerCommand<T>
where T: Freeze,

§

impl<T> RefUnwindSafe for TimerCommand<T>
where T: RefUnwindSafe,

§

impl<T> Send for TimerCommand<T>
where T: Send,

§

impl<T> Sync for TimerCommand<T>
where T: Sync,

§

impl<T> Unpin for TimerCommand<T>
where T: Unpin,

§

impl<T> UnsafeUnpin for TimerCommand<T>
where T: UnsafeUnpin,

§

impl<T> UnwindSafe for TimerCommand<T>
where T: UnwindSafe,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.