randomusert_lib/randomusert_lib/
server.rs1
2
3
4pub mod server {
5 use hyper::service::make_service_fn;
6 use hyper::service::service_fn;
7 use hyper::Request;
8 use hyper::Body;
9 use hyper::Server;
10 use hyper::Response;
11 use std::net::SocketAddr;
12 pub async fn start_server(addr: SocketAddr, handler: fn(Request<Body>) -> Response<Body>) -> Result<(), hyper::Error> {
14 let make_svc = make_service_fn(move |_| {
16 let handler = handler.clone();
17 async move {
18 Ok::<_, hyper::Error>(service_fn(move |req: Request<Body>| {
19 let response = handler(req);
20 async { Ok::<_, hyper::Error>(response) }
21 }))
22 }
23
24 });
25 let server = Server::bind(&addr).serve(make_svc);
26 println!("Server running on http://{}", addr);
27
28 server.await
29 }
30}