[][src]Struct rocket::fairing::AdHoc

pub struct AdHoc { /* fields omitted */ }

A ad-hoc fairing that can be created from a function or closure.

This enum can be used to create a fairing from a simple function or closure without creating a new structure or implementing Fairing directly.

Usage

Use the on_attach, on_launch, on_request, or on_response constructors to create an AdHoc structure from a function or closure. Then, simply attach the structure to the Rocket instance.

Example

The following snippet creates a Rocket instance with two ad-hoc fairings. The first, a launch fairing named "Launch Printer", simply prints a message indicating that the application is about to the launch. The second named "Put Rewriter", a request fairing, rewrites the method of all requests to be PUT.

use rocket::fairing::AdHoc;
use rocket::http::Method;

rocket::ignite()
    .attach(AdHoc::on_launch("Launch Printer", |_| {
        println!("Rocket is about to launch! Exciting! Here we go...");
    }))
    .attach(AdHoc::on_request("Put Rewriter", |req, _| {
        req.set_method(Method::Put);
    }));

Methods

impl AdHoc[src]

pub fn on_attach<F>(name: &'static str, f: F) -> AdHoc where
    F: FnOnce(Rocket) -> Result<Rocket, Rocket> + Send + 'static, 
[src]

Constructs an AdHoc attach fairing named name. The function f will be called by Rocket when this fairing is attached.

Example

use rocket::fairing::AdHoc;

// The no-op attach fairing.
let fairing = AdHoc::on_attach("No-Op", |rocket| Ok(rocket));

pub fn on_launch<F>(name: &'static str, f: F) -> AdHoc where
    F: FnOnce(&Rocket) + Send + 'static, 
[src]

Constructs an AdHoc launch fairing named name. The function f will be called by Rocket just prior to launching.

Example

use rocket::fairing::AdHoc;

// A fairing that prints a message just before launching.
let fairing = AdHoc::on_launch("Launch Count", |rocket| {
    println!("Launching in T-3..2..1..");
});

pub fn on_request<F>(name: &'static str, f: F) -> AdHoc where
    F: Fn(&mut Request, &Data) + Send + Sync + 'static, 
[src]

Constructs an AdHoc request fairing named name. The function f will be called by Rocket when a new request is received.

Example

use rocket::fairing::AdHoc;

// The no-op request fairing.
let fairing = AdHoc::on_request("Dummy", |req, data| {
    // do something with the request and data...
});

pub fn on_response<F>(name: &'static str, f: F) -> AdHoc where
    F: Fn(&Request, &mut Response) + Send + Sync + 'static, 
[src]

Constructs an AdHoc response fairing named name. The function f will be called by Rocket when a response is ready to be sent.

Example

use rocket::fairing::AdHoc;

// The no-op response fairing.
let fairing = AdHoc::on_response("Dummy", |req, resp| {
    // do something with the request and pending response...
});

Trait Implementations

impl Fairing for AdHoc[src]

Auto Trait Implementations

impl Send for AdHoc

impl Sync for AdHoc

Blanket Implementations

impl<T, U> Into for T where
    U: From<T>, 
[src]

impl<T> From for T[src]

impl<T, U> TryFrom for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T> Borrow for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> BorrowMut for T where
    T: ?Sized
[src]

impl<T, U> TryInto for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T> Typeable for T where
    T: Any

fn get_type(&self) -> TypeId

Get the TypeId of this object.

impl<T> IntoCollection for T[src]

impl<T, I> AsResult for T where
    I: Input
[src]