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
						Sean McArthur
					
				
			
			
				
	
			
			
			
						parent
						
							cbae4294c4
						
					
				
				
					commit
					2114950cda
				
			| @@ -118,17 +118,33 @@ where | ||||
| /// | ||||
| /// # Example | ||||
| /// | ||||
| /// ```rust | ||||
| /// ```rust,no_run | ||||
| /// # #[cfg(feature = "runtime")] fn main() { | ||||
| /// 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}; | ||||
| /// | ||||
| /// let make_svc = make_service_fn(|socket: &TcpStream| { | ||||
| ///     let remote_addr = socket.peer_addr().unwrap(); | ||||
| /// let addr = ([127, 0, 0, 1], 3000).into(); | ||||
| /// | ||||
| /// let make_svc = make_service_fn(|socket: &AddrStream| { | ||||
| ///     let remote_addr = socket.remote_addr(); | ||||
| ///     service_fn_ok(move |_: Request<Body>| { | ||||
| ///         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> | ||||
| where | ||||
|   | ||||
		Reference in New Issue
	
	Block a user