extern crate iron;
#[macro_use] extern crate router;
use iron::prelude::*;
use iron::status;
use router::Router;
fn main() {
let router = router!{
id_1: get "/" => handler,
id_2: get "/:query" => query_handler
};
Iron::new(router).http("localhost:3000").unwrap();
fn handler(r: &mut Request) -> IronResult<Response> {
Ok(Response::with((
status::Ok,
format!("Please go to: {}",
url_for!(r, "id_2",
"query" => "test",
"extraparam" => "foo"))
)))
}
fn query_handler(req: &mut Request) -> IronResult<Response> {
let ref query = req.extensions.get::<Router>()
.unwrap().find("query").unwrap_or("/");
Ok(Response::with((status::Ok, *query)))
}
}