Macro rocket::routes [−][src]
routes!() { /* proc-macro */ }
Generates a Vec
of Route
s from a set of route paths.
The routes!
macro expands a list of route paths into a Vec
of their
corresponding Route
structures. For example, given the following routes:
#[get("/")] fn index() { /* .. */ } mod person { #[post("/hi/<person>")] pub fn hello(person: String) { /* .. */ } }
The routes!
macro can be used as:
let my_routes = routes![index, person::hello]; assert_eq!(my_routes.len(), 2); let index_route = &my_routes[0]; assert_eq!(index_route.method, Method::Get); assert_eq!(index_route.name, Some("index")); assert_eq!(index_route.uri.path(), "/"); let hello_route = &my_routes[1]; assert_eq!(hello_route.method, Method::Post); assert_eq!(hello_route.name, Some("hello")); assert_eq!(hello_route.uri.path(), "/hi/<person>");
The grammar for routes!
is defined as:
routes := PATH (',' PATH)*
PATH := a path, as defined by Rust