Skip to main content

Timers

Struct Timers 

Source
pub struct Timers { /* private fields */ }
Expand description

Registry/scheduler for tick-driven callbacks.

Call tick once per Event::Tick dispatch. Entries advance in registration order; multiple entries may fire in the same tick.

§no_std + alloc

Timers requires alloc (for Box<dyn FnMut> callbacks), consistent with the ANIM-00 Animations registry.

Implementations§

Source§

impl Timers

Source

pub fn new() -> Self

Create an empty timer registry.

Source

pub fn add( &mut self, period: u32, repeat: TimerRepeat, callback: Box<dyn FnMut(&TimerContext)>, ) -> TimerId

Register a repeating timer.

period is in ticks. The first fire occurs after period ticks. repeat controls how many times it fires before exhaustion. Returns an opaque TimerId for later control operations.

Source

pub fn add_once( &mut self, period: u32, callback: Box<dyn FnMut(&TimerContext)>, ) -> TimerId

Register a one-shot timer (convenience wrapper).

Equivalent to add(period, TimerRepeat::Remaining(1), callback) with auto_delete = true. The entry is automatically removed after the single fire. Used for delayed single actions (auto-close toast, delayed start, etc.) as specified by LPAR-06 §5.7.

Source

pub fn tick(&mut self)

Advance all non-paused timers by exactly one tick.

For each non-paused entry:

  • If ready is set, the entry fires immediately (countdown is not decremented — the next fire after a ready-fire is still period ticks from that point).
  • Otherwise, countdown is decremented. When it reaches zero, the entry fires.

Firing order within a single tick is registration order (deterministic).

After firing, countdown is reset to period. If the repeat is Remaining(n), it decrements to Remaining(n-1). When exhausted (Remaining(0) becomes 0 after decrement), the entry is auto-deleted (if auto_delete) or paused.

Source

pub fn pause(&mut self, id: TimerId)

Pause a timer, freezing its countdown.

A paused timer is not advanced by tick. Pause/resume does NOT reset the countdown; a timer paused mid-period resumes from where it left off. Mirrors lv_timer_pause.

Source

pub fn resume(&mut self, id: TimerId)

Resume a paused timer from its frozen countdown.

Mirrors lv_timer_resume.

Source

pub fn delete(&mut self, id: TimerId) -> bool

Remove a timer without firing a final callback.

Returns true if the id was registered, false if not found. Mirrors lv_timer_delete.

Source

pub fn set_ready(&mut self, id: TimerId)

Mark a timer as ready: it fires on the next tick call regardless of its remaining countdown, then the flag clears and the period-based countdown resumes. Mirrors lv_timer_ready.

Source

pub fn len(&self) -> usize

Returns the number of registered (not yet exhausted/deleted) timers.

Source

pub fn is_empty(&self) -> bool

Returns true when no timers are registered.

Trait Implementations§

Source§

impl Default for Timers

Source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

§

impl !RefUnwindSafe for Timers

§

impl !Send for Timers

§

impl !Sync for Timers

§

impl !UnwindSafe for Timers

§

impl Freeze for Timers

§

impl Unpin for Timers

§

impl UnsafeUnpin for Timers

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> Az for T

Source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
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<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

Source§

fn cast_from(src: Src) -> Dst

Casts the value.
Source§

impl<T> CheckedAs for T

Source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where Src: CheckedCast<Dst>,

Source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
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> OverflowingAs for T

Source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

Source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
Source§

impl<T> SaturatingAs for T

Source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where Src: SaturatingCast<Dst>,

Source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
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.
Source§

impl<T> UnwrappedAs for T

Source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

Source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
Source§

impl<T> WrappingAs for T

Source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where Src: WrappingCast<Dst>,

Source§

fn wrapping_cast_from(src: Src) -> Dst

Casts the value.