madsim_rdkafka::util

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

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl AsyncRuntime for TokioRuntime

Available on crate feature tokio only.