[][src]Crate rocket_codegen

Rocket - Code Generation

This crate implements the code generation portions of Rocket. This includes custom derives, custom attributes, and procedural macros. The documentation here is purely technical. The code generation facilities are documented thoroughly in the Rocket programming guide.

Usage

You should not directly depend on this library. To use the macros, attributes, and derives in this crate, it suffices to depend on rocket in Cargo.toml:

[dependencies]
rocket = "0.4.0"

And to import all macros, attributes, and derives via #[macro_use] in the crate root:

#![feature(proc_macro_hygiene, decl_macro)]

#[macro_use] extern crate rocket;

Or, alternatively, selectively import from the top-level scope:

#![feature(proc_macro_hygiene, decl_macro)]

use rocket::{get, routes};

Debugging Codegen

When the ROCKET_CODEGEN_DEBUG environment variable is set, this crate logs, at compile-time and to the console, the items it generates. For example, you might run the following to build a Rocket application with codegen debug logging enabled:

ROCKET_CODEGEN_DEBUG=1 cargo build

Macros

catchers

Generates a Vec of Catchers from a set of catcher paths.

routes

Generates a Vec of Routes from a set of route paths.

uri

Type safe generation of route URIs.

Attribute Macros

catch

Attribute to generate a Catcher and associated metadata.

delete

Attribute to generate a Route and associated metadata.

get

Attribute to generate a Route and associated metadata.

head

Attribute to generate a Route and associated metadata.

options

Attribute to generate a Route and associated metadata.

patch

Attribute to generate a Route and associated metadata.

post

Attribute to generate a Route and associated metadata.

put

Attribute to generate a Route and associated metadata.

route

Attribute to generate a Route and associated metadata.

Derive Macros

FromForm

Derive for the FromForm trait.

FromFormValue

Derive for the FromFormValue trait.

Responder

Derive for the Responder trait.

UriDisplayPath

Derive for the UriDisplay<Path> trait.

UriDisplayQuery

Derive for the UriDisplay<Query> trait.