Struct Periodic

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

Periodic async timer that fires at an interval.

Implements Stream for continuous events and Future for just the next event. The Stream implementation never yields None, so the stream never ends.

§Example

use std::time::Duration;
use local_runtime::time::Periodic;
use futures_lite::StreamExt;

let mut periodic = Periodic::periodic(Duration::from_secs(1));
loop {
    // Print to screen once every second
    periodic.next().await;
    println!("One second has passed");
}

Implementations§

Source§

impl Periodic

Source

pub fn periodic(period: Duration) -> Self

Timer that fires periodically

Source

pub fn periodic_at(start: Instant, period: Duration) -> Self

Timer that fires periodically, starting from a set point in time

Source

pub fn set_period(&mut self, period: Duration)

Change the period of the timer, effective after the next time it fires

Trait Implementations§

Source§

impl Stream for Periodic

Source§

type Item = Instant

Values yielded by the stream.
Source§

fn poll_next( self: Pin<&mut Self>, cx: &mut Context<'_>, ) -> Poll<Option<Self::Item>>

Attempt to pull out the next value of this stream, registering the current task for wakeup if the value is not yet available, and returning None if the stream is exhausted. Read more
Source§

fn size_hint(&self) -> (usize, Option<usize>)

Returns the bounds on the remaining length of the stream. 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.

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.