pub struct VirtualTimer<'a, A: Alarm<'a>> { /* private fields */ }
Expand description
An object to multiplex multiple “virtual” timers over a single underlying alarm. A
VirtualTimer
is a node in a linked list of timers that share the same underlying alarm.
Implementations§
Source§impl<'a, A: Alarm<'a>> VirtualTimer<'a, A>
impl<'a, A: Alarm<'a>> VirtualTimer<'a, A>
Trait Implementations§
Source§impl<'a, A: Alarm<'a>> AlarmClient for VirtualTimer<'a, A>
impl<'a, A: Alarm<'a>> AlarmClient for VirtualTimer<'a, A>
Source§impl<'a, A: Alarm<'a>> ListNode<'a, VirtualTimer<'a, A>> for VirtualTimer<'a, A>
impl<'a, A: Alarm<'a>> ListNode<'a, VirtualTimer<'a, A>> for VirtualTimer<'a, A>
fn next(&self) -> &'a ListLink<'_, VirtualTimer<'a, A>>
Source§impl<'a, A: Alarm<'a>> Time for VirtualTimer<'a, A>
impl<'a, A: Alarm<'a>> Time for VirtualTimer<'a, A>
Source§impl<'a, A: Alarm<'a>> Timer<'a> for VirtualTimer<'a, A>
impl<'a, A: Alarm<'a>> Timer<'a> for VirtualTimer<'a, A>
Source§fn set_timer_client(&self, client: &'a dyn TimerClient)
fn set_timer_client(&self, client: &'a dyn TimerClient)
Specify the callback to invoke when the timer interval expires.
If there was a previously installed callback this call replaces it.
Source§fn cancel(&self) -> Result<(), ErrorCode>
fn cancel(&self) -> Result<(), ErrorCode>
Cancel the current timer, if any. Value
Result<(), ErrorCode>
values are: Read moreSource§fn is_oneshot(&self) -> bool
fn is_oneshot(&self) -> bool
Return if the last requested timer is a one-shot timer.
Source§fn is_repeating(&self) -> bool
fn is_repeating(&self) -> bool
Return if the last requested timer is a repeating timer.
Source§fn is_enabled(&self) -> bool
fn is_enabled(&self) -> bool
Returns whether there is currently a timer enabled and so a callback
will be expected in the future. If
is_enabled
returns false then
the implementation MUST NOT invoke a callback until a call to oneshot
or repeating
restarts the timer.Source§fn oneshot(&self, interval: Self::Ticks) -> Self::Ticks
fn oneshot(&self, interval: Self::Ticks) -> Self::Ticks
Start a one-shot timer that will invoke the callback at least
interval
ticks in the future. If there is a timer currently pending,
calling this cancels that previous timer. After a callback is invoked
for a one shot timer, the timer MUST NOT invoke the callback again
unless a new timer is started (either with repeating or one shot).
Returns the actual interval for the timer that was registered.
This MUST NOT be smaller than interval
but MAY be larger.Source§fn repeating(&self, interval: Self::Ticks) -> Self::Ticks
fn repeating(&self, interval: Self::Ticks) -> Self::Ticks
Start a repeating timer that will invoke the callback every
interval
ticks in the future. If there is a timer currently
pending, calling this cancels that previous timer.
Returns the actual interval for the timer that was registered.
This MUST NOT be smaller than interval
but MAY be larger.Source§fn time_remaining(&self) -> Option<Self::Ticks>
fn time_remaining(&self) -> Option<Self::Ticks>
Return how many ticks are remaining until the next callback,
or None if the timer is disabled. This call is useful because
there may be non-negligible delays between when a timer was
requested and it was actually scheduled. Therefore, since a
timer’s start might be delayed slightly, the time remaining
might be slightly higher than one would expect if one
calculated it right before the call to start the timer.
Auto Trait Implementations§
impl<'a, A> !Freeze for VirtualTimer<'a, A>
impl<'a, A> !RefUnwindSafe for VirtualTimer<'a, A>
impl<'a, A> !Send for VirtualTimer<'a, A>
impl<'a, A> !Sync for VirtualTimer<'a, A>
impl<'a, A> Unpin for VirtualTimer<'a, A>
impl<'a, A> !UnwindSafe for VirtualTimer<'a, A>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> ConvertTicks<<T as Time>::Ticks> for T
impl<T> ConvertTicks<<T as Time>::Ticks> for T
Source§fn ticks_from_seconds(&self, s: u32) -> <T as Time>::Ticks
fn ticks_from_seconds(&self, s: u32) -> <T as Time>::Ticks
Returns the number of ticks in the provided number of seconds,
rounding down any fractions. If the value overflows Ticks it
returns
Ticks::max_value()
.Source§fn ticks_from_ms(&self, ms: u32) -> <T as Time>::Ticks
fn ticks_from_ms(&self, ms: u32) -> <T as Time>::Ticks
Returns the number of ticks in the provided number of milliseconds,
rounding down any fractions. If the value overflows Ticks it
returns
Ticks::max_value()
.Source§fn ticks_from_us(&self, us: u32) -> <T as Time>::Ticks
fn ticks_from_us(&self, us: u32) -> <T as Time>::Ticks
Returns the number of ticks in the provided number of microseconds,
rounding down any fractions. If the value overflows Ticks it
returns
Ticks::max_value()
.Source§fn ticks_to_seconds(&self, tick: <T as Time>::Ticks) -> u32
fn ticks_to_seconds(&self, tick: <T as Time>::Ticks) -> u32
Returns the number of seconds in the provided number of ticks,
rounding down any fractions. If the value overflows u32,
u32::MAX
is returned,