pub struct Ticker { /* private fields */ }
Expand description

Asynchronous stream that yields every Duration, indefinitely.

This stream will tick at uniform intervals, even if blocking work is performed between ticks.

For instance, consider the following code fragment.

use embassy_time::{Duration, Timer};

#[embassy_executor::task]
async fn ticker_example_0() {
    loop {
        foo();
        Timer::after(Duration::from_secs(1)).await;
    }
}

This fragment will not call foo every second. Instead, it will call it every second + the time it took to previously call foo.

Example using ticker, which will consistently call foo once a second.

use embassy_time::{Duration, Ticker};
use futures::StreamExt;

#[embassy_executor::task]
async fn ticker_example_1() {
    let mut ticker = Ticker::every(Duration::from_secs(1));
    loop {
        foo();
        ticker.next().await;
    }
}

Implementations

Creates a new ticker that ticks at the specified duration interval.

Trait Implementations

Values yielded by the stream.
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
Returns the bounds on the remaining length of the stream. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Creates a future that resolves to the next item in the stream. Read more
Converts this stream into a future of (next_item, tail_of_stream). If the stream terminates, then the next item is None. Read more
Maps this stream’s items to a different type, returning a new stream of the resulting type. Read more
Creates a stream which gives the current iteration count as well as the next value. Read more
Filters the values produced by this stream according to the provided asynchronous predicate. Read more
Filters the values produced by this stream while simultaneously mapping them to a different type according to the provided asynchronous closure. Read more
Computes from this stream’s items new items of a different type using an asynchronous closure. Read more
Transforms a stream into a collection, returning a future representing the result of that computation. Read more
Converts a stream of pairs into a future, which resolves to pair of containers. Read more
Concatenate all items of a stream into a single extendable destination, returning a future representing the end result. Read more
Drives the stream to completion, counting the number of items. Read more
Repeats a stream endlessly. Read more
Execute an accumulating asynchronous computation over a stream, collecting all the values into one final result. Read more
Execute predicate over asynchronous stream, and return true if any element in stream satisfied a predicate. Read more
Execute predicate over asynchronous stream, and return true if all element in stream satisfied a predicate. Read more
Flattens a stream of streams into just one continuous stream. Read more
Maps a stream like StreamExt::map but flattens nested Streams. Read more
Combinator similar to StreamExt::fold that holds internal state and produces a new stream. Read more
Skip elements on this stream while the provided asynchronous predicate resolves to true. Read more
Take elements from this stream while the provided asynchronous predicate resolves to true. Read more
Take elements from this stream until the provided future resolves. Read more
Runs this stream to completion, executing the provided asynchronous closure for each element on the stream. Read more
Creates a new stream of at most n items of the underlying stream. Read more
Creates a new stream which skips n items of the underlying stream. Read more
Fuse a stream such that poll_next will never again be called once it has finished. This method can be used to turn any Stream into a FusedStream. Read more
Borrows a stream, rather than consuming it. Read more
An adapter for zipping two streams together. Read more
Adapter for chaining two streams. Read more
Creates a new stream which exposes a peek method. Read more
Do something with each item of this stream, afterwards passing it on. Read more
Wrap this stream in an Either stream, making it the left-hand variant of that Either. Read more
Wrap this stream in an Either stream, making it the right-hand variant of that Either. Read more
A convenience method for calling [Stream::poll_next] on Unpin stream types. Read more
Returns a Future that resolves when the next item in this stream is ready. Read more
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.