Struct router::Router
[-] [+]
[src]
pub struct Router {
// some fields omitted
}Router provides an interface for creating complex routes as middleware
for the Iron framework.
Methods
impl Router
fn new() -> Router
Construct a new, empty Router.
let router = Router::new();
fn route<H, S>(&mut self, method: Method, glob: S, handler: H) -> &mut Router where H: Handler, S: AsRef<str>
Add a new route to a Router, matching both a method and glob pattern.
route supports glob patterns: * for a single wildcard segment and
:param for matching storing that segment of the request url in the Params
object, which is stored in the request extensions.
For instance, to route Get requests on any route matching
/users/:userid/:friend and store userid and friend in
the exposed Params object:
let mut router = Router::new(); router.route(method::Get, "/users/:userid/:friendid", controller);
The controller provided to route can be any Handler, which allows
extreme flexibility when handling routes. For instance, you could provide
a Chain, a Handler, which contains an authorization middleware and
a controller function, so that you can confirm that the request is
authorized for this route before handling it.
fn get<H: Handler, S: AsRef<str>>(&mut self, glob: S, handler: H) -> &mut Router
Like route, but specialized to the Get method.
fn post<H: Handler, S: AsRef<str>>(&mut self, glob: S, handler: H) -> &mut Router
Like route, but specialized to the Post method.
fn put<H: Handler, S: AsRef<str>>(&mut self, glob: S, handler: H) -> &mut Router
Like route, but specialized to the Put method.
fn delete<H: Handler, S: AsRef<str>>(&mut self, glob: S, handler: H) -> &mut Router
Like route, but specialized to the Delete method.
fn head<H: Handler, S: AsRef<str>>(&mut self, glob: S, handler: H) -> &mut Router
Like route, but specialized to the Head method.
fn patch<H: Handler, S: AsRef<str>>(&mut self, glob: S, handler: H) -> &mut Router
Like route, but specialized to the Patch method.
fn options<H: Handler, S: AsRef<str>>(&mut self, glob: S, handler: H) -> &mut Router
Like route, but specialized to the Options method.