wiwi::clock_timer

Struct ClockTimer

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

An interval tracking clock. Takes a start time, an end time or a run duration, and an interval. Calls to tick will return only if the current time is at or past the time of the next interval, waiting so that it is before returning. It yields timing information when returning. If this falls behind time for some reason, the ticks will be yielded with the time information at when it was supposed to yield, until catching up.

Implementations§

Source§

impl ClockTimer

Source

pub fn builder() -> Builder

Gets a ClockTimer builder

Source

pub async fn tick(&mut self) -> Option<Tick>

Runs the next tick and returns timing information for it, if this interval is not finished already.

Source

pub async fn run_to_end<F, Fu>(self, f: F)
where F: FnMut(Tick) -> Fu, Fu: Future<Output = ()>,

Convenience function, equivalent to running a while let Some(tick) loop. When awaited on, the closure provided will be called every tick. This consumes self and runs it to completion.

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

Source§

fn encode<E>(self) -> <E as Encoding>::EncodeOutput
where T: Encodable<E>, E: Encoding,

Source§

fn decode<E>(self) -> <E as Encoding>::DecodeOutput
where T: Decodable<E>, E: Encoding,

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, 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.