use std::io::Write;
use unit_rs::{Request, Unit, UnitResult};
fn main() {
let mut unit = Unit::new().unwrap();
unit.set_request_handler(request_handler);
unit.run();
}
fn request_handler(req: Request) -> UnitResult<()> {
let headers = &[("Content-Type", "text/plain")];
req.send_response(200, headers, "Hello world!\n")?;
req.send_chunks_with_writer(4096, |w| {
write!(w, "Request data:\n")?;
write!(w, " Method: {}\n", req.method())?;
write!(w, " Protocol: {}\n", req.version())?;
write!(w, " Remote addr: {}\n", req.remote())?;
write!(w, " Local addr: {}\n", req.local())?;
write!(w, " Server name: {}\n", req.server_name())?;
write!(w, " Target: {}\n", req.target())?;
write!(w, " Path: {}\n", req.path())?;
write!(w, " Query: {}\n", req.query())?;
write!(w, " Fields:\n")?;
for (name, value) in req.fields() {
write!(w, " {}: {}\n", name, value).unwrap();
}
write!(w, " Body:\n ").unwrap();
w.copy_from_reader(req.body())?;
Ok(())
})?;
Ok(())
}