#[macro_use] extern crate lazy_static; extern crate hyper; extern crate mars; use hyper::{Body, Request, Response, Server}; use hyper::service::service_fn_ok; use hyper::rt::Future; use mars::GeneralBuilder; lazy_static! { static ref BUILDER: GeneralBuilder = { GeneralBuilder::new() }; } fn manage_request(request: Request) -> Response { match BUILDER.build(request.uri().path()) { Err(error) => { eprintln!("Errror while treating the following request:\n{:?}\n{:?}", request, error); }, Ok(_) => (), } Response::new(Body::from("Hello")) } fn main() { let addr = ([127, 0, 0, 1], 1500).into(); let server = Server::bind(&addr) .serve(move || { service_fn_ok(|r| manage_request(r)) }) .map_err(|e| eprintln!("server error: {}", e)); hyper::rt::run(server); }