logo
pub struct AdHoc { /* private fields */ }
Expand description

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 AdHoc::on_ignite, AdHoc::on_liftoff, AdHoc::on_request(), or AdHoc::on_response() 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 liftoff fairing named “Liftoff Printer”, simply prints a message indicating that Rocket has launched. 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::build()
    .attach(AdHoc::on_liftoff("Liftoff Printer", |_| Box::pin(async move {
        println!("...annnddd we have liftoff!");
    })))
    .attach(AdHoc::on_request("Put Rewriter", |req, _| Box::pin(async move {
        req.set_method(Method::Put);
    })));

Implementations

Constructs an AdHoc ignite fairing named name. The function f will be called by Rocket during the Rocket::ignite() phase.

This version of an AdHoc ignite fairing cannot abort ignite. For a fallible version that can, see AdHoc::try_on_ignite().

Example
use rocket::fairing::AdHoc;

// The no-op ignite fairing.
let fairing = AdHoc::on_ignite("Boom!", |rocket| async move {
    rocket
});

Constructs an AdHoc ignite fairing named name. The function f will be called by Rocket during the Rocket::ignite() phase. Returning an Err aborts ignition and thus launch.

For an infallible version, see AdHoc::on_ignite().

Example
use rocket::fairing::AdHoc;

// The no-op try ignite fairing.
let fairing = AdHoc::try_on_ignite("No-Op", |rocket| async { Ok(rocket) });

Constructs an AdHoc liftoff fairing named name. The function f will be called by Rocket just after Rocket::launch().

Example
use rocket::fairing::AdHoc;

// A fairing that prints a message just before launching.
let fairing = AdHoc::on_liftoff("Boom!", |_| Box::pin(async move {
    println!("Rocket has lifted off!");
}));

Constructs an AdHoc request fairing named name. The function f will be called and the returned Future will be awaited 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| {
    Box::pin(async move {
        // do something with the request and data...
    })
});

Constructs an AdHoc response fairing named name. The function f will be called and the returned Future will be awaited 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| {
    Box::pin(async move {
        // do something with the request and pending response...
    })
});

Constructs an AdHoc shutdown fairing named name. The function f will be called by Rocket when shutdown is triggered.

Example
use rocket::fairing::AdHoc;

// A fairing that prints a message just before launching.
let fairing = AdHoc::on_shutdown("Bye!", |_| Box::pin(async move {
    println!("Rocket is on its way back!");
}));

Constructs an AdHoc launch fairing that extracts a configuration of type T from the configured provider and stores it in managed state. If extractions fails, pretty-prints the error message and aborts launch.

Example
use serde::Deserialize;
use rocket::fairing::AdHoc;

#[derive(Deserialize)]
struct Config {
    field: String,
    other: usize,
    /* and so on.. */
}

#[launch]
fn rocket() -> _ {
    rocket::build().attach(AdHoc::config::<Config>())
}

Trait Implementations

Returns an Info structure containing the name and Kind of this fairing. The name can be any arbitrary string. Kind must be an ord set of Kind variants. Read more

The ignite callback. Returns Ok if ignition should proceed and Err if ignition and launch should be aborted. Read more

The liftoff callback. Read more

The request callback. Read more

The response callback. Read more

The shutdown callback. Read more

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.

Converts self into a collection.

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