Type Alias rocket::handler::Outcome

source ·
pub type Outcome<'r> = Outcome<Response<'r>, Status, Data>;
Expand description

Type alias for the Outcome of a Handler.

Aliased Type§

enum Outcome<'r> {
    Success(Response<'r>),
    Failure(Status),
    Forward(Data),
}

Variants§

§

Success(Response<'r>)

Contains the success value.

§

Failure(Status)

Contains the failure error value.

§

Forward(Data)

Contains the value to forward on.

Implementations§

source§

impl<'r> Outcome<'r>

source

pub fn from<T: Responder<'r>>(req: &Request<'_>, responder: T) -> Outcome<'r>

Return the Outcome of response to req from responder.

If the responder returns Ok, an outcome of Success is returned with the response. If the responder returns Err, an outcome of Failure is returned with the status code.

§Example
use rocket::{Request, Data};
use rocket::handler::Outcome;

fn str_responder(req: &Request, _: Data) -> Outcome<'static> {
    Outcome::from(req, "Hello, world!")
}
source

pub fn from_or_forward<T>( req: &Request<'_>, data: Data, responder: T ) -> Outcome<'r>
where T: Responder<'r>,

Return the Outcome of response to req from responder.

If the responder returns Ok, an outcome of Success is returned with the response. If the responder returns Err, an outcome of Forward is returned.

§Example
use rocket::{Request, Data};
use rocket::handler::Outcome;

fn str_responder(req: &Request, data: Data) -> Outcome<'static> {
    Outcome::from_or_forward(req, data, "Hello, world!")
}
source

pub fn failure(code: Status) -> Outcome<'static>

Return an Outcome of Failure with the status code code. This is equivalent to Outcome::Failure(code).

This method exists to be used during manual routing where rocket::handler::Outcome is imported instead of rocket::Outcome.

§Example
use rocket::{Request, Data};
use rocket::handler::Outcome;
use rocket::http::Status;

fn bad_req_route(_: &Request, _: Data) -> Outcome<'static> {
    Outcome::failure(Status::BadRequest)
}
source

pub fn forward(data: Data) -> Outcome<'static>

Return an Outcome of Forward with the data data. This is equivalent to Outcome::Forward(data).

This method exists to be used during manual routing where rocket::handler::Outcome is imported instead of rocket::Outcome.

§Example
use rocket::{Request, Data};
use rocket::handler::Outcome;

fn always_forward(_: &Request, data: Data) -> Outcome<'static> {
    Outcome::forward(data)
}