hyper/service/
mod.rs

1//! Asynchronous Services
2//!
3//! A [`Service`] is a trait representing an asynchronous
4//! function of a request to a response. It's similar to
5//! `async fn(Request) -> Result<Response, Error>`.
6//!
7//! The argument and return value isn't strictly required to be for HTTP.
8//! Therefore, hyper uses several "trait aliases" to reduce clutter around
9//! bounds. These are:
10//!
11//! - `HttpService`: This is blanketly implemented for all types that
12//!   implement `Service<http::Request<B1>, Response = http::Response<B2>>`.
13//!
14//! # HttpService
15//!
16//! In hyper, especially in the server setting, a `Service` is usually bound
17//! to a single connection. It defines how to respond to **all** requests that
18//! connection will receive.
19//!
20//! The helper [`service_fn`] should be sufficient for most cases, but
21//! if you need to implement `Service` for a type manually, you can follow the example
22//! in `service_struct_impl.rs`.
23
24mod http;
25mod service;
26mod util;
27
28pub use self::http::HttpService;
29pub use self::service::Service;
30pub use self::util::service_fn;