Crate rocket_codegen

Source
Expand description

§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.5.1"

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

#[macro_use] extern crate rocket;

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


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, encoding-safe route and non-route URI generation.

Attribute Macros§

async_test
Retrofits supports for async fn in unit tests.
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.
launch
Generates a main function that launches a returned Rocket<Build>.
main
Retrofits async fn support in main functions.
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.
FromFormField
Derive for the FromFormField trait.
Responder
Derive for the Responder trait.
UriDisplayPath
Derive for the UriDisplay<Path> trait.
UriDisplayQuery
Derive for the UriDisplay<Query> trait.