simple/
simple.rs

1extern crate ferrum;
2extern crate ferrum_router;
3
4// To run, $ cargo run --example simple
5// To use, go to http://localhost:3000/test and see output "test"
6// Or, go to http://localhost:3000 to see a default "OK"
7
8use ferrum::{Ferrum, FerrumResult, mime, Request, Response};
9use ferrum_router::{Router};
10
11fn handler(_: &mut Request) -> FerrumResult<Response> {
12    Ok(Response::new().with_content("OK", mime::TEXT_PLAIN))
13}
14
15fn query_handler(request: &mut Request) -> FerrumResult<Response> {
16    let params = request.extensions.get::<Router>().unwrap();
17    let query = params.get("query").map(|value| value.as_str()).unwrap_or("/");
18    Ok(Response::new().with_content(query, mime::TEXT_PLAIN))
19}
20
21fn main() {
22    let mut router = Router::new();
23    router.get("/", handler, None);
24    router.get("/{query}", query_handler, None);
25
26    Ferrum::new(router).http("localhost:3000").unwrap();
27}