#[macro_use] extern crate chiisai;
use chiisai::*;
use futures::future::ok;
use hyper::header::ContentLength;
static INDEX: &'static [u8] = b"Try POST /echo\n";
fn main() {
let server = Chiisai::new()
.routes(router! {
("/", GetEcho)
("/echo", GetEcho)
("/echo", PostEcho)
});
server.run().unwrap();
}
routes!(
(Post, PostEcho, |req: Request| {
let mut res = Response::new();
if let Some(len) = req.headers().get::<ContentLength>() {
res.headers_mut().set(len.clone());
}
ok(res.with_body(req.body()))
})
(Get, GetEcho, |_| {
ok(Response::new()
.with_header(ContentLength(INDEX.len() as u64))
.with_body(INDEX))
})
);