Skip to main content

AsyncTransport

Trait AsyncTransport 

Source
pub trait AsyncTransport {
    type Error;

    // Required method
    fn send<'transport, 'request, 'writer, 'buffer>(
        &'transport self,
        request: TransportRequest<'request>,
        response: AsyncResponseStaging<'writer, 'buffer>,
    ) -> impl Future<Output = Result<ResponseCompletion, Self::Error>> + Send + 'writer
       where 'transport: 'writer,
             'request: 'writer,
             'buffer: 'writer;
}
Expand description

Cross-thread asynchronous transport over caller-owned buffers.

Implementations can stage body and headers but cannot commit a response. Callers use drive_async, which owns cleanup across the await and commits returned completion metadata only after Ready(Ok).

Required Associated Types§

Source

type Error

Transport-specific failure.

Required Methods§

Source

fn send<'transport, 'request, 'writer, 'buffer>( &'transport self, request: TransportRequest<'request>, response: AsyncResponseStaging<'writer, 'buffer>, ) -> impl Future<Output = Result<ResponseCompletion, Self::Error>> + Send + 'writer
where 'transport: 'writer, 'request: 'writer, 'buffer: 'writer,

Stages one complete response without committing it.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§