zng_app::timer

Struct TimerArgs

source
pub struct TimerArgs {
    pub timestamp: DInstant,
    pub deadline: Deadline,
    /* private fields */
}
Expand description

Arguments for an on_interval handler.

Note the timer can be stopped using the handlers unsubscribe, and once handlers stop the timer automatically.

The field values are about the specific call to handler that received the args, the methods on the other hand are connected with the timer by a weak reference and always show the up-to-date state of the timer. For synchronous handlers this does not matter, but for async handlers this means that the values can be different after each .await. This can be useful to for example, disable the timer until the async task finishes but it can also be surprising.

Fields§

§timestamp: DInstant

When the handler was called.

§deadline: Deadline

Expected deadline, is less-or-equal to the timestamp.

Implementations§

source§

impl TimerArgs

source

pub fn interval(&self) -> Duration

The timer interval. Enabled handlers are called every time this interval elapses.

source

pub fn set_interval(&self, new_interval: Duration)

Set the interval.

Note that this method does not awake the app, so if this is called from outside the app thread it will only apply on the next app update.

source

pub fn is_paused(&self) -> bool

If the timer is not ticking, but can be started again.

source

pub fn is_playing(&self) -> bool

If the timer is ticking.

source

pub fn pause(&self)

Disable the timer, this causes the timer to stop ticking until play is called.

source

pub fn play(&self, reset: bool)

Enable the timer, this causes it to start ticking again.

If reset is true the last timestamp is set to now.

source

pub fn count(&self) -> usize

Count incremented by one every time the timer elapses.

source

pub fn set_count(&self, count: usize)

Resets the count.

source

pub fn last_timestamp(&self) -> DInstant

The timestamp of the last update. This can be different from timestamp after the first .await in async handlers of if called from a different thread.

source

pub fn next_deadline(&self) -> Deadline

The next timer deadline.

This is last_timestamp plus interval.

source

pub fn is_stopped(&self) -> bool

If the timer was stopped while the handler was running after it started handling.

Note the timer can be stopped from the inside of the handler using the handlers unsubscribe, and once handlers stop the timer automatically.

Outside of the handler the TimerHandle can be used to stop the timer at any time, even from another thread.

Trait Implementations§

source§

impl Clone for TimerArgs

source§

fn clone(&self) -> TimerArgs

Returns a copy of the value. Read more
1.0.0 · source§

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

Performs copy-assignment from source. Read more

Auto Trait Implementations§

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, dst: *mut T)

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

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
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.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
source§

impl<T> StateValue for T
where T: Any + Send + Sync,