Repository: seanmonstar/warp (language: rust)

Issue:
Documentation: explain what services are for
As a newbie to `warp` i've got the impression that `Filter`s are the building blocks.
Then on https://docs.rs/warp/0.2.0/warp/fn.service.html it is said `Convert a Filter into a Service.`

Questions:
* what is a `Service`? Probably https://docs.rs/hyper/0.13.1/hyper/service/index.html
* when to choose a `Service` over a `Filter`? Is it about async?


Discussion / hints:

Fix patch:
diff --git a/src/filter/service.rs b/src/filter/service.rs
index aa18ca3a3..c2dea4ee1 100644
--- a/src/filter/service.rs
+++ b/src/filter/service.rs
@@ -15,6 +15,11 @@ use crate::{Filter, Request};
 
 /// Convert a `Filter` into a `Service`.
 ///
+/// Filters are normally what APIs are built on in warp. However, it can be
+/// useful to convert a `Filter` into a [`Service`][Service], such as if
+/// further customizing a `hyper::Service`, or if wanting to make use of
+/// the greater [Tower][tower] set of middleware.
+///
 /// # Example
 ///
 /// Running a `warp::Filter` on a regular `hyper::Server`:
@@ -41,6 +46,9 @@ use crate::{Filter, Request};
 /// # Ok(())
 /// # }
 /// ```
+///
+/// [Service]: https://docs.rs/hyper/0.13.*/hyper/service/trait.Service.html
+/// [tower]: https://docs.rs/tower
 pub fn service<F>(filter: F) -> FilteredService<F>
 where
     F: Filter,
diff --git a/src/lib.rs b/src/lib.rs
index b298ba860..a29873095 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -151,9 +151,9 @@ pub use self::redirect::redirect;
 pub use self::reject::{reject, Rejection};
 #[doc(hidden)]
 pub use self::reply::{reply, Reply};
-pub use self::server::{serve, Server};
 #[cfg(feature = "tls")]
 pub use self::server::TlsServer;
+pub use self::server::{serve, Server};
 pub use self::service::service;
 #[doc(hidden)]
 pub use http;


Test patch: