Struct rocket::Rocket [] [src]

pub struct Rocket { /* fields omitted */ }

The main Rocket type: used to mount routes and catchers and launch the application.

Methods

impl Rocket
[src]

Create a new Rocket application using the configuration information in Rocket.toml. If the file does not exist or if there is an I/O error reading the file, the defaults are used. See the config documentation for more information on defaults.

This method is typically called through the rocket::ignite alias.

Panics

If there is an error parsing the Rocket.toml file, this functions prints a nice error message and then exits the process.

Examples

rocket::ignite()

Creates a new Rocket application using the supplied custom configuration information. Ignores the Rocket.toml file. Does not enable logging. To enable logging, use the hidden logger::init(LoggingLevel) method.

This method is typically called through the rocket::custom alias.

Examples

use rocket::config::{Config, Environment};

let config = Config::default_for(Environment::active()?, "/custom")?
    .address("1.2.3.4".into())
    .port(9234);

let app = rocket::custom(&config);

Mounts all of the routes in the supplied vector at the given base path. Mounting a route with path path at path base makes the route available at base/path.

Examples

Use the routes! macro to mount routes created using the code generation facilities. Requests to the /hello/world URI will be dispatched to the hi route.

Panics

The base mount point must be a static path. That is, the mount point must not contain dynamic path parameters: <param>.

#[get("/world")]
fn hi() -> &'static str {
    "Hello!"
}

fn main() {
    rocket::ignite().mount("/hello", routes![hi])
}

Manually create a route named hi at path "/world" mounted at base "/hello". Requests to the /hello/world URI will be dispatched to the hi route.

use rocket::{Request, Route, Data};
use rocket::handler::Outcome;
use rocket::http::Method::*;

fn hi(_: &Request, _: Data) -> Outcome<'static> {
    Outcome::of("Hello!")
}

rocket::ignite().mount("/hello", vec![Route::new(Get, "/world", hi)])

Registers all of the catchers in the supplied vector.

Examples

#![feature(plugin)]
#![plugin(rocket_codegen)]

extern crate rocket;

use rocket::Request;

#[error(500)]
fn internal_error() -> &'static str {
    "Whoops! Looks like we messed up."
}

#[error(400)]
fn not_found(req: &Request) -> String {
    format!("I couldn't find '{}'. Try something else?", req.uri())
}

fn main() {
    rocket::ignite().catch(errors![internal_error, not_found])
}

Starts the application server and begins listening for and dispatching requests to mounted routes and catchers.

Panics

If the server could not be started, this method prints the reason and then exits the process.

Examples

rocket::ignite().launch()