docs(service): change the make_service_fn example to a full snippet
Include the creation of server too. Previously, the parameter type of the closure had a different type than the default server provided, which wasn't obvious to the user.
This commit is contained in:
committed by
Sean McArthur
parent
cbae4294c4
commit
2114950cda
@@ -118,17 +118,33 @@ where
|
|||||||
///
|
///
|
||||||
/// # Example
|
/// # Example
|
||||||
///
|
///
|
||||||
/// ```rust
|
/// ```rust,no_run
|
||||||
|
/// # #[cfg(feature = "runtime")] fn main() {
|
||||||
/// use std::net::TcpStream;
|
/// use std::net::TcpStream;
|
||||||
/// use hyper::{Body, Request, Response};
|
/// use hyper::{Body, Request, Response, Server};
|
||||||
|
/// use hyper::rt::{self, Future};
|
||||||
|
/// use hyper::server::conn::AddrStream;
|
||||||
/// use hyper::service::{make_service_fn, service_fn_ok};
|
/// use hyper::service::{make_service_fn, service_fn_ok};
|
||||||
///
|
///
|
||||||
/// let make_svc = make_service_fn(|socket: &TcpStream| {
|
/// let addr = ([127, 0, 0, 1], 3000).into();
|
||||||
/// let remote_addr = socket.peer_addr().unwrap();
|
///
|
||||||
|
/// let make_svc = make_service_fn(|socket: &AddrStream| {
|
||||||
|
/// let remote_addr = socket.remote_addr();
|
||||||
/// service_fn_ok(move |_: Request<Body>| {
|
/// service_fn_ok(move |_: Request<Body>| {
|
||||||
/// Response::new(Body::from(format!("Hello, {}", remote_addr)))
|
/// 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...
|
||||||
|
/// rt::run(server.map_err(|e| {
|
||||||
|
/// eprintln!("server error: {}", e);
|
||||||
|
/// }));
|
||||||
|
/// # }
|
||||||
|
/// # #[cfg(not(feature = "runtime"))] fn main() {}
|
||||||
/// ```
|
/// ```
|
||||||
pub fn make_service_fn<F, Ctx, Ret>(f: F) -> MakeServiceFn<F>
|
pub fn make_service_fn<F, Ctx, Ret>(f: F) -> MakeServiceFn<F>
|
||||||
where
|
where
|
||||||
|
|||||||
Reference in New Issue
Block a user