pub struct AsyncReadBody<R> { /* private fields */ }
Available on crate feature async-read-body only.
Expand description

An HttpBody created from an AsyncRead.

Example

AsyncReadBody can be used to stream the contents of a file:

use axum::{
    Router,
    routing::get,
    http::{StatusCode, header::CONTENT_TYPE},
    response::{Response, IntoResponse},
};
use axum_extra::body::AsyncReadBody;
use tokio::fs::File;

async fn cargo_toml() -> Result<Response, (StatusCode, String)> {
    let file = File::open("Cargo.toml")
        .await
        .map_err(|err| {
            (StatusCode::NOT_FOUND, format!("File not found: {}", err))
        })?;

    let headers = [(CONTENT_TYPE, "text/x-toml")];
    let body = AsyncReadBody::new(file);
    Ok((headers, body).into_response())
}

let app = Router::new().route("/Cargo.toml", get(cargo_toml));

Implementations

Create a new AsyncReadBody.

Trait Implementations

Values yielded by the Body.

The error type this Body might generate.

Attempt to pull out the next data buffer of this stream.

Poll for an optional single HeaderMap of trailers. Read more

Returns true when the end of stream has been reached. Read more

Returns the bounds on the remaining length of the stream. Read more

Returns future that resolves to next data chunk, if any.

Returns future that resolves to trailers, if any.

Maps this body’s data value to a different value.

Maps this body’s error value to a different value.

Turn this body into a boxed trait object.

Turn this body into a boxed trait object that is !Sync.

Formats the value using the given formatter. Read more

Create a response.

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.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

Calls U::from(self).

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

Should always be Self

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.

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more