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() }