[−][src]Function hyper::service::make_service_fn
pub fn make_service_fn<F, Target, Ret>(f: F) -> MakeServiceFn<F> where
F: FnMut(&Target) -> Ret,
Ret: Future,
Create a MakeService
from a function.
Example
use std::convert::Infallible; use hyper::{Body, Request, Response, Server}; use hyper::server::conn::AddrStream; use hyper::service::{make_service_fn, service_fn}; let addr = ([127, 0, 0, 1], 3000).into(); let make_svc = make_service_fn(|socket: &AddrStream| { let remote_addr = socket.remote_addr(); async move { Ok::<_, Infallible>(service_fn(move |_: Request<Body>| async move { Ok::<_, Infallible>( Response::new(Body::from(format!("Hello, {}!", remote_addr))) ) })) } }); // Then bind and serve... let server = Server::bind(&addr) .serve(make_svc); // Finally, spawn `server` onto an Executor... if let Err(e) = server.await { eprintln!("server error: {}", e); }