Trait MakeService
trait MakeService<Target, Request>: Sealed<(Target, Request)>
Creates new Service values.
Acts as a service factory. This is useful for cases where new Service
values must be produced. One case is a TCP server listener. The listener
accepts new TCP streams, obtains a new Service value using the
MakeService trait, and uses that new Service value to process inbound
requests on that new TCP stream.
This is essentially a trait alias for a Service of Services.
Associated Types
type ResponseResponses given by the service
type ErrorErrors produced by the service
type Service: TraitBound { trait_: Path { path: "Service", id: Id(70), args: Some(AngleBracketed { args: [Type(Generic("Request"))], constraints: [AssocItemConstraint { name: "Response", args: None, binding: Equality(Type(QualifiedPath { name: "Response", args: None, self_type: Generic("Self"), trait_: Some(Path { path: "", id: Id(69), args: None }) })) }, AssocItemConstraint { name: "Error", args: None, binding: Equality(Type(QualifiedPath { name: "Error", args: None, self_type: Generic("Self"), trait_: Some(Path { path: "", id: Id(69), args: None }) })) }] }) }, generic_params: [], modifier: None }The
Servicevalue created by this factorytype MakeErrorErrors produced while building a service.
type Future: TraitBound { trait_: Path { path: "Future", id: Id(175), args: Some(AngleBracketed { args: [], constraints: [AssocItemConstraint { name: "Output", args: None, binding: Equality(Type(ResolvedPath(Path { path: "Result", id: Id(33), args: Some(AngleBracketed { args: [Type(QualifiedPath { name: "Service", args: None, self_type: Generic("Self"), trait_: Some(Path { path: "", id: Id(69), args: None }) }), Type(QualifiedPath { name: "MakeError", args: None, self_type: Generic("Self"), trait_: Some(Path { path: "", id: Id(69), args: None }) })], constraints: [] }) }))) }] }) }, generic_params: [], modifier: None }The future of the
Serviceinstance.
Required Methods
fn poll_ready(self: &mut Self, cx: &mut Context<'_>) -> Poll<Result<(), <Self as >::MakeError>>Returns
Poll::Readywhen the factory is able to create more services.If the service is at capacity, then
Poll::Pendingis returned and the task is notified when the service becomes ready again. This function is expected to be called while on a task.fn make_service(self: &mut Self, target: Target) -> <Self as >::FutureCreate and return a new service value asynchronously.
Provided Methods
fn into_service(self: Self) -> IntoService<Self, Request> where Self: SizedConsume this
MakeServiceand convert it into aService.Example
use Infallible; use Service; use MakeService; use service_fn; #fn as_service(self: &mut Self) -> AsService<'_, Self, Request> where Self: SizedConvert this
MakeServiceinto aServicewithout consuming the originalMakeService.Example
use Infallible; use Service; use MakeService; use service_fn; #
Implementors
impl<M, S, Target, Request> MakeService for Then<S, F>impl<M, S, Target, Request> MakeService for Timeout<T>impl<M, S, Target, Request> MakeService for AsyncFilter<T, U>impl<M, S, Target, Request> MakeService for Steer<S, F, Req>impl<M, S, Target, Request> MakeService for Balance<D, Req>impl<M, S, Target, Request> MakeService for Buffer<Req, F>impl<M, S, Target, Request> MakeService for UnsyncBoxService<T, U, E>impl<M, S, Target, Request> MakeService for RateLimit<T>impl<M, S, Target, Request> MakeService for PeakEwma<S, C>impl<M, S, Target, Request> MakeService for Shared<S>impl<M, S, Target, Request> MakeService for Optional<T>impl<M, S, Target, Request> MakeService for BoxCloneSyncService<T, U, E>impl<M, S, Target, Request> MakeService for Retry<P, S>impl<M, S, Target, Request> MakeService for PendingRequests<S, C>impl<M, S, Target, Request> MakeService for Constant<T, M>impl<M, S, Target, Request> MakeService for AndThen<S, F>impl<M, S, Target, Request> MakeService for ServiceFn<T>impl<M, S, Target, Request> MakeService for BoxService<T, U, E>impl<M, S, Target, Request> MakeService for MapFuture<S, F>impl<M, S, Target, Request> MakeService for MakeBalance<S, Req>impl<M, S, Target, Request> MakeService for AsService<'a, M, Request>impl<M, S, Target, Request> MakeService for FutureService<F, S>impl<M, S, Target, Request> MakeService for Reconnect<M, Target>impl<M, S, Target, Request> MakeService for LoadShed<S>impl<M, S, Target, Request> MakeService for MapResponse<S, F>impl<M, S, Target, Request> MakeService for MapRequest<S, F>impl<M, S, Target, Request> MakeService for Hedge<S, P>impl<M, S, Target, Request> MakeService for Either<A, B>impl<M, S, Target, Request> MakeService for Mimpl<M, S, Target, Request> MakeService for MapResult<S, F>impl<M, S, Target, Request> MakeService for ConcurrencyLimit<T>impl<M, S, Target, Request> MakeService for IntoService<M, Request>impl<M, S, Target, Request> MakeService for BoxCloneService<T, U, E>impl<M, S, Target, Request> MakeService for MapErr<S, F>impl<M, S, Target, Request> MakeService for SpawnReady<S>impl<M, S, Target, Request> MakeService for Filter<T, U>