pub fn reqresp<F>(source: &mut Source, sink: &mut Sink, handler: F) -> boolExpand description
An adapter to bridge a source,sink-handler to a request->response-handler
Examples found in repository?
examples/helloworld.rs (lines 11-15)
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
fn main() {
// Define our request handler
let connection_handler = |source: &mut Source, sink: &mut Sink| {
// Handle request
ehttpd::reqresp(source, sink, |_: Request| {
let mut response = Response::new_200_ok();
response.set_body_data(b"Hello world\r\n");
response
})
};
// Create a server that listens at [::]:9999 with up to 2048 worker threads under load if necessary
let server: Server<_> = Server::new(2048, connection_handler);
server.accept("[::]:9999").expect("server failed");
}More examples
examples/helloworld-nokeepalive.rs (lines 11-16)
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
fn main() {
// Define our request handler
let connection_handler = |source: &mut Source, sink: &mut Sink| {
// Handle request
ehttpd::reqresp(source, sink, |_: Request| {
let mut response = Response::new_200_ok();
response.set_body_data(b"Hello world\r\n");
response.set_connection_close();
response
})
};
// Create a server that listens at [::]:9999 with up to 2048 worker threads under load if necessary
let server: Server<_> = Server::new(2048, connection_handler);
server.accept("[::]:9999").expect("server failed");
}examples/teapot.rs (lines 11-21)
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
fn main() {
// Define our request handler
let connection_handler = |source: &mut Source, sink: &mut Sink| {
// Handle request
ehttpd::reqresp(source, sink, |request| {
// Create the response body
let mut message = b"There are only teapots in ".to_vec();
message.extend_from_slice(&request.target);
message.extend_from_slice(b"\r\n");
// Send the response
let mut response = Response::new_status_reason(418, "I'm a teapot");
response.set_body_data(message);
response
})
};
// Create a server that listens at [::]:9999 with up to 2048 worker threads under load if necessary
let server: Server<_> = Server::new(2048, connection_handler);
server.accept("[::]:9999").expect("server failed");
}