[][src]Module hyper::service

Asynchronous Services

A Service is a trait representing an asynchronous function of a request to a response. It's similar to async fn(Request) -> Result<Response, Error>.

The argument and return value isn't strictly required to be for HTTP. Therefore, hyper uses several "trait aliases" to reduce clutter around bounds. These are:

HttpService

In hyper, especially in the server setting, a Service is usually bound to a single connection. It defines how to respond to all requests that connection will receive.

The helper service_fn should be sufficient for most cases, but if you need to implement Service for a type manually, you can follow the example in service_struct_impl.rs.

MakeService

Since a Service is bound to a single connection, a Server needs a way to make them as it accepts connections. This is what a MakeService does.

Resources that need to be shared by all Services can be put into a MakeService, and then passed to individual Services when call is called.

Traits

Service

An asynchronous function from a Request to a Response.

Functions

make_service_fn

Create a MakeService from a function.

service_fn

Create a Service from a function.