logo
pub trait ServiceFactory<Req> {
    type Response;
    type Error;
    type Config;
    type Service: Service<Req>
    where
        <Self::Service as Service<Req>>::Response == Self::Response,
        <Self::Service as Service<Req>>::Error == Self::Error
; type InitError; type Future: Future
    where
        <Self::Future as Future>::Output == Result<Self::Service, Self::InitError>
; fn new_service(&self, cfg: Self::Config) -> Self::Future; }
Expand description

Factory for creating Services.

This is useful for cases where new Services must be produced. One case is a TCP server listener: a listener accepts new connections, constructs a new Service for each using the ServiceFactory trait, and uses the new Service to process inbound requests on that new connection.

Config is a service factory configuration type.

Simple factories may be able to use fn_factory or fn_factory_with_config to reduce boilerplate.

Required Associated Types

Responses given by the created services.

Errors produced by the created services.

Service factory configuration.

The kind of Service created by this factory.

Errors potentially raised while building a service.

The future of the Service instance.g

Required Methods

Create and return a new service asynchronously.

Implementations on Foreign Types

Implementors