Trait rdkafka::util::AsyncRuntime

source ·
pub trait AsyncRuntime: Send + Sync + 'static {
    type Delay: Future<Output = ()> + Send;

    // Required methods
    fn spawn<T>(task: T)
       where T: Future<Output = ()> + Send + 'static;
    fn delay_for(duration: Duration) -> Self::Delay;
}
Expand description

An abstraction over asynchronous runtimes.

There are several asynchronous runtimes available for Rust. By default rust-rdkafka uses Tokio, via the TokioRuntime, but it has pluggable support for any runtime that can satisfy this trait.

For an example of using the smol runtime with rust-rdkafka, see the runtime_smol example.

For an example of using the async-std runtime with rust-rdkafka, see the runtime_async_std example.

Required Associated Types§

source

type Delay: Future<Output = ()> + Send

The type of the future returned by delay_for.

Required Methods§

source

fn spawn<T>(task: T)
where T: Future<Output = ()> + Send + 'static,

Spawns an asynchronous task.

The task should be be polled to completion, unless the runtime exits first. With some runtimes this requires an explicit “detach” step.

source

fn delay_for(duration: Duration) -> Self::Delay

Constructs a future that will resolve after duration has elapsed.

Object Safety§

This trait is not object safe.

Implementors§