Struct LiveTimer

Source
pub struct LiveTimer {
    pub name: Ustr,
    pub interval_ns: NonZeroU64,
    pub start_time_ns: UnixNanos,
    pub stop_time_ns: Option<UnixNanos>,
    /* private fields */
}
Expand description

A live timer for use with a LiveClock.

LiveTimer triggers events at specified intervals in a real-time environment, using Tokio’s async runtime to handle scheduling and execution.

Fields§

§name: Ustr

The name of the timer.

§interval_ns: NonZeroU64

The start time of the timer in UNIX nanoseconds.

§start_time_ns: UnixNanos

The start time of the timer in UNIX nanoseconds.

§stop_time_ns: Option<UnixNanos>

The optional stop time of the timer in UNIX nanoseconds.

Implementations§

Source§

impl LiveTimer

Source

pub fn new( name: Ustr, interval_ns: NonZeroU64, start_time_ns: UnixNanos, stop_time_ns: Option<UnixNanos>, callback: TimeEventCallback, heap: Arc<Mutex<BinaryHeap<TimeEvent>>>, ) -> Self

Creates a new LiveTimer instance.

§Panics

This function panics if name is not a valid string.

Source

pub fn next_time_ns(&self) -> UnixNanos

Returns the next time in UNIX nanoseconds when the timer will fire.

Provides the scheduled time for the next event based on the current state of the timer.

Source

pub fn is_expired(&self) -> bool

Returns whether the timer is expired.

An expired timer will not trigger any further events. A timer that has not been started is not expired.

Source

pub fn start(&mut self)

Starts the timer.

Time events will begin triggering at the specified intervals. The generated events are handled by the provided callback function.

Source

pub fn cancel(&mut self)

Cancels the timer.

The timer will not generate a final event.

Trait Implementations§

Source§

impl Debug for LiveTimer

Source§

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

Formats the value using the given formatter. 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> 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, 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<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

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
§

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