Trait actix_web::AsyncResponder [] [src]

pub trait AsyncResponder<I, E>: Sized {
    fn responder(self) -> Box<Future<Item = I, Error = E>>;
}

Convenience trait that converts Future object to a Boxed future

For example loading json from request's body is async operation.

use futures::future::Future;
use actix_web::{
    App, HttpRequest, HttpResponse, HttpMessage, Error, AsyncResponder};

#[derive(Deserialize, Debug)]
struct MyObj {
    name: String,
}

fn index(mut req: HttpRequest) -> Box<Future<Item=HttpResponse, Error=Error>> {
    req.json()                   // <- get JsonBody future
       .from_err()
       .and_then(|val: MyObj| {  // <- deserialized value
           Ok(HttpResponse::Ok().into())
       })
    // Construct boxed future by using `AsyncResponder::responder()` method
    .responder()
}

Required Methods

Important traits for Box<W>

Implementors