pub trait Layer<S> {
type Service;
// Required method
fn layer(&self, inner: S) -> Self::Service;
}
Expand description
Decorates a Service
, transforming either the request or the response.
Often, many of the pieces needed for writing network applications can be
reused across multiple services. The Layer
trait can be used to write
reusable components that can be applied to very different kinds of services;
for example, it can be applied to services operating on different protocols,
and to both the client and server side of a network transaction.
§Log
Take request logging as an example:
pub struct LogLayer {
target: &'static str,
}
impl<S> Layer<S> for LogLayer {
type Service = LogService<S>;
fn layer(&self, service: S) -> Self::Service {
LogService {
target: self.target,
service
}
}
}
// This service implements the Log behavior
pub struct LogService<S> {
target: &'static str,
service: S,
}
impl<S, Request> Service<Request> for LogService<S>
where
S: Service<Request>,
Request: fmt::Debug,
{
type Response = S::Response;
type Error = S::Error;
type Future = S::Future;
fn poll_ready(&mut self, cx: &mut Context<'_>) -> Poll<Result<(), Self::Error>> {
self.service.poll_ready(cx)
}
fn call(&mut self, request: Request) -> Self::Future {
// Insert log statement here or other functionality
println!("request = {:?}, target = {:?}", request, self.target);
self.service.call(request)
}
}
The above log implementation is decoupled from the underlying protocol and is also decoupled from client or server concerns. In other words, the same log middleware could be used in either a client or a server.
Required Associated Types§
Required Methods§
Implementations on Foreign Types§
source§impl<S, L1, L2, L3> Layer<S> for (L1, L2, L3)
impl<S, L1, L2, L3> Layer<S> for (L1, L2, L3)
source§impl<S, L1, L2, L3, L4> Layer<S> for (L1, L2, L3, L4)
impl<S, L1, L2, L3, L4> Layer<S> for (L1, L2, L3, L4)
source§impl<S, L1, L2, L3, L4, L5> Layer<S> for (L1, L2, L3, L4, L5)where
L1: Layer<<L2 as Layer<<L3 as Layer<<L4 as Layer<<L5 as Layer<S>>::Service>>::Service>>::Service>>::Service>,
L2: Layer<<L3 as Layer<<L4 as Layer<<L5 as Layer<S>>::Service>>::Service>>::Service>,
L3: Layer<<L4 as Layer<<L5 as Layer<S>>::Service>>::Service>,
L4: Layer<<L5 as Layer<S>>::Service>,
L5: Layer<S>,
impl<S, L1, L2, L3, L4, L5> Layer<S> for (L1, L2, L3, L4, L5)where
L1: Layer<<L2 as Layer<<L3 as Layer<<L4 as Layer<<L5 as Layer<S>>::Service>>::Service>>::Service>>::Service>,
L2: Layer<<L3 as Layer<<L4 as Layer<<L5 as Layer<S>>::Service>>::Service>>::Service>,
L3: Layer<<L4 as Layer<<L5 as Layer<S>>::Service>>::Service>,
L4: Layer<<L5 as Layer<S>>::Service>,
L5: Layer<S>,
source§impl<S, L1, L2, L3, L4, L5, L6> Layer<S> for (L1, L2, L3, L4, L5, L6)where
L1: Layer<<L2 as Layer<<L3 as Layer<<L4 as Layer<<L5 as Layer<<L6 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>,
L2: Layer<<L3 as Layer<<L4 as Layer<<L5 as Layer<<L6 as Layer<S>>::Service>>::Service>>::Service>>::Service>,
L3: Layer<<L4 as Layer<<L5 as Layer<<L6 as Layer<S>>::Service>>::Service>>::Service>,
L4: Layer<<L5 as Layer<<L6 as Layer<S>>::Service>>::Service>,
L5: Layer<<L6 as Layer<S>>::Service>,
L6: Layer<S>,
impl<S, L1, L2, L3, L4, L5, L6> Layer<S> for (L1, L2, L3, L4, L5, L6)where
L1: Layer<<L2 as Layer<<L3 as Layer<<L4 as Layer<<L5 as Layer<<L6 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>,
L2: Layer<<L3 as Layer<<L4 as Layer<<L5 as Layer<<L6 as Layer<S>>::Service>>::Service>>::Service>>::Service>,
L3: Layer<<L4 as Layer<<L5 as Layer<<L6 as Layer<S>>::Service>>::Service>>::Service>,
L4: Layer<<L5 as Layer<<L6 as Layer<S>>::Service>>::Service>,
L5: Layer<<L6 as Layer<S>>::Service>,
L6: Layer<S>,
source§impl<S, L1, L2, L3, L4, L5, L6, L7> Layer<S> for (L1, L2, L3, L4, L5, L6, L7)where
L1: Layer<<L2 as Layer<<L3 as Layer<<L4 as Layer<<L5 as Layer<<L6 as Layer<<L7 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L2: Layer<<L3 as Layer<<L4 as Layer<<L5 as Layer<<L6 as Layer<<L7 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>,
L3: Layer<<L4 as Layer<<L5 as Layer<<L6 as Layer<<L7 as Layer<S>>::Service>>::Service>>::Service>>::Service>,
L4: Layer<<L5 as Layer<<L6 as Layer<<L7 as Layer<S>>::Service>>::Service>>::Service>,
L5: Layer<<L6 as Layer<<L7 as Layer<S>>::Service>>::Service>,
L6: Layer<<L7 as Layer<S>>::Service>,
L7: Layer<S>,
impl<S, L1, L2, L3, L4, L5, L6, L7> Layer<S> for (L1, L2, L3, L4, L5, L6, L7)where
L1: Layer<<L2 as Layer<<L3 as Layer<<L4 as Layer<<L5 as Layer<<L6 as Layer<<L7 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L2: Layer<<L3 as Layer<<L4 as Layer<<L5 as Layer<<L6 as Layer<<L7 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>,
L3: Layer<<L4 as Layer<<L5 as Layer<<L6 as Layer<<L7 as Layer<S>>::Service>>::Service>>::Service>>::Service>,
L4: Layer<<L5 as Layer<<L6 as Layer<<L7 as Layer<S>>::Service>>::Service>>::Service>,
L5: Layer<<L6 as Layer<<L7 as Layer<S>>::Service>>::Service>,
L6: Layer<<L7 as Layer<S>>::Service>,
L7: Layer<S>,
source§impl<S, L1, L2, L3, L4, L5, L6, L7, L8> Layer<S> for (L1, L2, L3, L4, L5, L6, L7, L8)where
L1: Layer<<L2 as Layer<<L3 as Layer<<L4 as Layer<<L5 as Layer<<L6 as Layer<<L7 as Layer<<L8 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L2: Layer<<L3 as Layer<<L4 as Layer<<L5 as Layer<<L6 as Layer<<L7 as Layer<<L8 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L3: Layer<<L4 as Layer<<L5 as Layer<<L6 as Layer<<L7 as Layer<<L8 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>,
L4: Layer<<L5 as Layer<<L6 as Layer<<L7 as Layer<<L8 as Layer<S>>::Service>>::Service>>::Service>>::Service>,
L5: Layer<<L6 as Layer<<L7 as Layer<<L8 as Layer<S>>::Service>>::Service>>::Service>,
L6: Layer<<L7 as Layer<<L8 as Layer<S>>::Service>>::Service>,
L7: Layer<<L8 as Layer<S>>::Service>,
L8: Layer<S>,
impl<S, L1, L2, L3, L4, L5, L6, L7, L8> Layer<S> for (L1, L2, L3, L4, L5, L6, L7, L8)where
L1: Layer<<L2 as Layer<<L3 as Layer<<L4 as Layer<<L5 as Layer<<L6 as Layer<<L7 as Layer<<L8 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L2: Layer<<L3 as Layer<<L4 as Layer<<L5 as Layer<<L6 as Layer<<L7 as Layer<<L8 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L3: Layer<<L4 as Layer<<L5 as Layer<<L6 as Layer<<L7 as Layer<<L8 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>,
L4: Layer<<L5 as Layer<<L6 as Layer<<L7 as Layer<<L8 as Layer<S>>::Service>>::Service>>::Service>>::Service>,
L5: Layer<<L6 as Layer<<L7 as Layer<<L8 as Layer<S>>::Service>>::Service>>::Service>,
L6: Layer<<L7 as Layer<<L8 as Layer<S>>::Service>>::Service>,
L7: Layer<<L8 as Layer<S>>::Service>,
L8: Layer<S>,
type Service = <L1 as Layer<<L2 as Layer<<L3 as Layer<<L4 as Layer<<L5 as Layer<<L6 as Layer<<L7 as Layer<<L8 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service
fn layer( &self, service: S, ) -> <(L1, L2, L3, L4, L5, L6, L7, L8) as Layer<S>>::Service
source§impl<S, L1, L2, L3, L4, L5, L6, L7, L8, L9> Layer<S> for (L1, L2, L3, L4, L5, L6, L7, L8, L9)where
L1: Layer<<L2 as Layer<<L3 as Layer<<L4 as Layer<<L5 as Layer<<L6 as Layer<<L7 as Layer<<L8 as Layer<<L9 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L2: Layer<<L3 as Layer<<L4 as Layer<<L5 as Layer<<L6 as Layer<<L7 as Layer<<L8 as Layer<<L9 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L3: Layer<<L4 as Layer<<L5 as Layer<<L6 as Layer<<L7 as Layer<<L8 as Layer<<L9 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L4: Layer<<L5 as Layer<<L6 as Layer<<L7 as Layer<<L8 as Layer<<L9 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>,
L5: Layer<<L6 as Layer<<L7 as Layer<<L8 as Layer<<L9 as Layer<S>>::Service>>::Service>>::Service>>::Service>,
L6: Layer<<L7 as Layer<<L8 as Layer<<L9 as Layer<S>>::Service>>::Service>>::Service>,
L7: Layer<<L8 as Layer<<L9 as Layer<S>>::Service>>::Service>,
L8: Layer<<L9 as Layer<S>>::Service>,
L9: Layer<S>,
impl<S, L1, L2, L3, L4, L5, L6, L7, L8, L9> Layer<S> for (L1, L2, L3, L4, L5, L6, L7, L8, L9)where
L1: Layer<<L2 as Layer<<L3 as Layer<<L4 as Layer<<L5 as Layer<<L6 as Layer<<L7 as Layer<<L8 as Layer<<L9 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L2: Layer<<L3 as Layer<<L4 as Layer<<L5 as Layer<<L6 as Layer<<L7 as Layer<<L8 as Layer<<L9 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L3: Layer<<L4 as Layer<<L5 as Layer<<L6 as Layer<<L7 as Layer<<L8 as Layer<<L9 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L4: Layer<<L5 as Layer<<L6 as Layer<<L7 as Layer<<L8 as Layer<<L9 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>,
L5: Layer<<L6 as Layer<<L7 as Layer<<L8 as Layer<<L9 as Layer<S>>::Service>>::Service>>::Service>>::Service>,
L6: Layer<<L7 as Layer<<L8 as Layer<<L9 as Layer<S>>::Service>>::Service>>::Service>,
L7: Layer<<L8 as Layer<<L9 as Layer<S>>::Service>>::Service>,
L8: Layer<<L9 as Layer<S>>::Service>,
L9: Layer<S>,
type Service = <L1 as Layer<<L2 as Layer<<L3 as Layer<<L4 as Layer<<L5 as Layer<<L6 as Layer<<L7 as Layer<<L8 as Layer<<L9 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service
fn layer( &self, service: S, ) -> <(L1, L2, L3, L4, L5, L6, L7, L8, L9) as Layer<S>>::Service
source§impl<S, L1, L2, L3, L4, L5, L6, L7, L8, L9, L10> Layer<S> for (L1, L2, L3, L4, L5, L6, L7, L8, L9, L10)where
L1: Layer<<L2 as Layer<<L3 as Layer<<L4 as Layer<<L5 as Layer<<L6 as Layer<<L7 as Layer<<L8 as Layer<<L9 as Layer<<L10 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L2: Layer<<L3 as Layer<<L4 as Layer<<L5 as Layer<<L6 as Layer<<L7 as Layer<<L8 as Layer<<L9 as Layer<<L10 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L3: Layer<<L4 as Layer<<L5 as Layer<<L6 as Layer<<L7 as Layer<<L8 as Layer<<L9 as Layer<<L10 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L4: Layer<<L5 as Layer<<L6 as Layer<<L7 as Layer<<L8 as Layer<<L9 as Layer<<L10 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L5: Layer<<L6 as Layer<<L7 as Layer<<L8 as Layer<<L9 as Layer<<L10 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>,
L6: Layer<<L7 as Layer<<L8 as Layer<<L9 as Layer<<L10 as Layer<S>>::Service>>::Service>>::Service>>::Service>,
L7: Layer<<L8 as Layer<<L9 as Layer<<L10 as Layer<S>>::Service>>::Service>>::Service>,
L8: Layer<<L9 as Layer<<L10 as Layer<S>>::Service>>::Service>,
L9: Layer<<L10 as Layer<S>>::Service>,
L10: Layer<S>,
impl<S, L1, L2, L3, L4, L5, L6, L7, L8, L9, L10> Layer<S> for (L1, L2, L3, L4, L5, L6, L7, L8, L9, L10)where
L1: Layer<<L2 as Layer<<L3 as Layer<<L4 as Layer<<L5 as Layer<<L6 as Layer<<L7 as Layer<<L8 as Layer<<L9 as Layer<<L10 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L2: Layer<<L3 as Layer<<L4 as Layer<<L5 as Layer<<L6 as Layer<<L7 as Layer<<L8 as Layer<<L9 as Layer<<L10 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L3: Layer<<L4 as Layer<<L5 as Layer<<L6 as Layer<<L7 as Layer<<L8 as Layer<<L9 as Layer<<L10 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L4: Layer<<L5 as Layer<<L6 as Layer<<L7 as Layer<<L8 as Layer<<L9 as Layer<<L10 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L5: Layer<<L6 as Layer<<L7 as Layer<<L8 as Layer<<L9 as Layer<<L10 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>,
L6: Layer<<L7 as Layer<<L8 as Layer<<L9 as Layer<<L10 as Layer<S>>::Service>>::Service>>::Service>>::Service>,
L7: Layer<<L8 as Layer<<L9 as Layer<<L10 as Layer<S>>::Service>>::Service>>::Service>,
L8: Layer<<L9 as Layer<<L10 as Layer<S>>::Service>>::Service>,
L9: Layer<<L10 as Layer<S>>::Service>,
L10: Layer<S>,
type Service = <L1 as Layer<<L2 as Layer<<L3 as Layer<<L4 as Layer<<L5 as Layer<<L6 as Layer<<L7 as Layer<<L8 as Layer<<L9 as Layer<<L10 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service
fn layer( &self, service: S, ) -> <(L1, L2, L3, L4, L5, L6, L7, L8, L9, L10) as Layer<S>>::Service
source§impl<S, L1, L2, L3, L4, L5, L6, L7, L8, L9, L10, L11> Layer<S> for (L1, L2, L3, L4, L5, L6, L7, L8, L9, L10, L11)where
L1: Layer<<L2 as Layer<<L3 as Layer<<L4 as Layer<<L5 as Layer<<L6 as Layer<<L7 as Layer<<L8 as Layer<<L9 as Layer<<L10 as Layer<<L11 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L2: Layer<<L3 as Layer<<L4 as Layer<<L5 as Layer<<L6 as Layer<<L7 as Layer<<L8 as Layer<<L9 as Layer<<L10 as Layer<<L11 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L3: Layer<<L4 as Layer<<L5 as Layer<<L6 as Layer<<L7 as Layer<<L8 as Layer<<L9 as Layer<<L10 as Layer<<L11 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L4: Layer<<L5 as Layer<<L6 as Layer<<L7 as Layer<<L8 as Layer<<L9 as Layer<<L10 as Layer<<L11 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L5: Layer<<L6 as Layer<<L7 as Layer<<L8 as Layer<<L9 as Layer<<L10 as Layer<<L11 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L6: Layer<<L7 as Layer<<L8 as Layer<<L9 as Layer<<L10 as Layer<<L11 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>,
L7: Layer<<L8 as Layer<<L9 as Layer<<L10 as Layer<<L11 as Layer<S>>::Service>>::Service>>::Service>>::Service>,
L8: Layer<<L9 as Layer<<L10 as Layer<<L11 as Layer<S>>::Service>>::Service>>::Service>,
L9: Layer<<L10 as Layer<<L11 as Layer<S>>::Service>>::Service>,
L10: Layer<<L11 as Layer<S>>::Service>,
L11: Layer<S>,
impl<S, L1, L2, L3, L4, L5, L6, L7, L8, L9, L10, L11> Layer<S> for (L1, L2, L3, L4, L5, L6, L7, L8, L9, L10, L11)where
L1: Layer<<L2 as Layer<<L3 as Layer<<L4 as Layer<<L5 as Layer<<L6 as Layer<<L7 as Layer<<L8 as Layer<<L9 as Layer<<L10 as Layer<<L11 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L2: Layer<<L3 as Layer<<L4 as Layer<<L5 as Layer<<L6 as Layer<<L7 as Layer<<L8 as Layer<<L9 as Layer<<L10 as Layer<<L11 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L3: Layer<<L4 as Layer<<L5 as Layer<<L6 as Layer<<L7 as Layer<<L8 as Layer<<L9 as Layer<<L10 as Layer<<L11 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L4: Layer<<L5 as Layer<<L6 as Layer<<L7 as Layer<<L8 as Layer<<L9 as Layer<<L10 as Layer<<L11 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L5: Layer<<L6 as Layer<<L7 as Layer<<L8 as Layer<<L9 as Layer<<L10 as Layer<<L11 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L6: Layer<<L7 as Layer<<L8 as Layer<<L9 as Layer<<L10 as Layer<<L11 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>,
L7: Layer<<L8 as Layer<<L9 as Layer<<L10 as Layer<<L11 as Layer<S>>::Service>>::Service>>::Service>>::Service>,
L8: Layer<<L9 as Layer<<L10 as Layer<<L11 as Layer<S>>::Service>>::Service>>::Service>,
L9: Layer<<L10 as Layer<<L11 as Layer<S>>::Service>>::Service>,
L10: Layer<<L11 as Layer<S>>::Service>,
L11: Layer<S>,
type Service = <L1 as Layer<<L2 as Layer<<L3 as Layer<<L4 as Layer<<L5 as Layer<<L6 as Layer<<L7 as Layer<<L8 as Layer<<L9 as Layer<<L10 as Layer<<L11 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service
fn layer( &self, service: S, ) -> <(L1, L2, L3, L4, L5, L6, L7, L8, L9, L10, L11) as Layer<S>>::Service
source§impl<S, L1, L2, L3, L4, L5, L6, L7, L8, L9, L10, L11, L12> Layer<S> for (L1, L2, L3, L4, L5, L6, L7, L8, L9, L10, L11, L12)where
L1: Layer<<L2 as Layer<<L3 as Layer<<L4 as Layer<<L5 as Layer<<L6 as Layer<<L7 as Layer<<L8 as Layer<<L9 as Layer<<L10 as Layer<<L11 as Layer<<L12 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L2: Layer<<L3 as Layer<<L4 as Layer<<L5 as Layer<<L6 as Layer<<L7 as Layer<<L8 as Layer<<L9 as Layer<<L10 as Layer<<L11 as Layer<<L12 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L3: Layer<<L4 as Layer<<L5 as Layer<<L6 as Layer<<L7 as Layer<<L8 as Layer<<L9 as Layer<<L10 as Layer<<L11 as Layer<<L12 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L4: Layer<<L5 as Layer<<L6 as Layer<<L7 as Layer<<L8 as Layer<<L9 as Layer<<L10 as Layer<<L11 as Layer<<L12 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L5: Layer<<L6 as Layer<<L7 as Layer<<L8 as Layer<<L9 as Layer<<L10 as Layer<<L11 as Layer<<L12 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L6: Layer<<L7 as Layer<<L8 as Layer<<L9 as Layer<<L10 as Layer<<L11 as Layer<<L12 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L7: Layer<<L8 as Layer<<L9 as Layer<<L10 as Layer<<L11 as Layer<<L12 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>,
L8: Layer<<L9 as Layer<<L10 as Layer<<L11 as Layer<<L12 as Layer<S>>::Service>>::Service>>::Service>>::Service>,
L9: Layer<<L10 as Layer<<L11 as Layer<<L12 as Layer<S>>::Service>>::Service>>::Service>,
L10: Layer<<L11 as Layer<<L12 as Layer<S>>::Service>>::Service>,
L11: Layer<<L12 as Layer<S>>::Service>,
L12: Layer<S>,
impl<S, L1, L2, L3, L4, L5, L6, L7, L8, L9, L10, L11, L12> Layer<S> for (L1, L2, L3, L4, L5, L6, L7, L8, L9, L10, L11, L12)where
L1: Layer<<L2 as Layer<<L3 as Layer<<L4 as Layer<<L5 as Layer<<L6 as Layer<<L7 as Layer<<L8 as Layer<<L9 as Layer<<L10 as Layer<<L11 as Layer<<L12 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L2: Layer<<L3 as Layer<<L4 as Layer<<L5 as Layer<<L6 as Layer<<L7 as Layer<<L8 as Layer<<L9 as Layer<<L10 as Layer<<L11 as Layer<<L12 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L3: Layer<<L4 as Layer<<L5 as Layer<<L6 as Layer<<L7 as Layer<<L8 as Layer<<L9 as Layer<<L10 as Layer<<L11 as Layer<<L12 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L4: Layer<<L5 as Layer<<L6 as Layer<<L7 as Layer<<L8 as Layer<<L9 as Layer<<L10 as Layer<<L11 as Layer<<L12 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L5: Layer<<L6 as Layer<<L7 as Layer<<L8 as Layer<<L9 as Layer<<L10 as Layer<<L11 as Layer<<L12 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L6: Layer<<L7 as Layer<<L8 as Layer<<L9 as Layer<<L10 as Layer<<L11 as Layer<<L12 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L7: Layer<<L8 as Layer<<L9 as Layer<<L10 as Layer<<L11 as Layer<<L12 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>,
L8: Layer<<L9 as Layer<<L10 as Layer<<L11 as Layer<<L12 as Layer<S>>::Service>>::Service>>::Service>>::Service>,
L9: Layer<<L10 as Layer<<L11 as Layer<<L12 as Layer<S>>::Service>>::Service>>::Service>,
L10: Layer<<L11 as Layer<<L12 as Layer<S>>::Service>>::Service>,
L11: Layer<<L12 as Layer<S>>::Service>,
L12: Layer<S>,
type Service = <L1 as Layer<<L2 as Layer<<L3 as Layer<<L4 as Layer<<L5 as Layer<<L6 as Layer<<L7 as Layer<<L8 as Layer<<L9 as Layer<<L10 as Layer<<L11 as Layer<<L12 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service
fn layer( &self, service: S, ) -> <(L1, L2, L3, L4, L5, L6, L7, L8, L9, L10, L11, L12) as Layer<S>>::Service
source§impl<S, L1, L2, L3, L4, L5, L6, L7, L8, L9, L10, L11, L12, L13> Layer<S> for (L1, L2, L3, L4, L5, L6, L7, L8, L9, L10, L11, L12, L13)where
L1: Layer<<L2 as Layer<<L3 as Layer<<L4 as Layer<<L5 as Layer<<L6 as Layer<<L7 as Layer<<L8 as Layer<<L9 as Layer<<L10 as Layer<<L11 as Layer<<L12 as Layer<<L13 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L2: Layer<<L3 as Layer<<L4 as Layer<<L5 as Layer<<L6 as Layer<<L7 as Layer<<L8 as Layer<<L9 as Layer<<L10 as Layer<<L11 as Layer<<L12 as Layer<<L13 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L3: Layer<<L4 as Layer<<L5 as Layer<<L6 as Layer<<L7 as Layer<<L8 as Layer<<L9 as Layer<<L10 as Layer<<L11 as Layer<<L12 as Layer<<L13 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L4: Layer<<L5 as Layer<<L6 as Layer<<L7 as Layer<<L8 as Layer<<L9 as Layer<<L10 as Layer<<L11 as Layer<<L12 as Layer<<L13 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L5: Layer<<L6 as Layer<<L7 as Layer<<L8 as Layer<<L9 as Layer<<L10 as Layer<<L11 as Layer<<L12 as Layer<<L13 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L6: Layer<<L7 as Layer<<L8 as Layer<<L9 as Layer<<L10 as Layer<<L11 as Layer<<L12 as Layer<<L13 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L7: Layer<<L8 as Layer<<L9 as Layer<<L10 as Layer<<L11 as Layer<<L12 as Layer<<L13 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L8: Layer<<L9 as Layer<<L10 as Layer<<L11 as Layer<<L12 as Layer<<L13 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>,
L9: Layer<<L10 as Layer<<L11 as Layer<<L12 as Layer<<L13 as Layer<S>>::Service>>::Service>>::Service>>::Service>,
L10: Layer<<L11 as Layer<<L12 as Layer<<L13 as Layer<S>>::Service>>::Service>>::Service>,
L11: Layer<<L12 as Layer<<L13 as Layer<S>>::Service>>::Service>,
L12: Layer<<L13 as Layer<S>>::Service>,
L13: Layer<S>,
impl<S, L1, L2, L3, L4, L5, L6, L7, L8, L9, L10, L11, L12, L13> Layer<S> for (L1, L2, L3, L4, L5, L6, L7, L8, L9, L10, L11, L12, L13)where
L1: Layer<<L2 as Layer<<L3 as Layer<<L4 as Layer<<L5 as Layer<<L6 as Layer<<L7 as Layer<<L8 as Layer<<L9 as Layer<<L10 as Layer<<L11 as Layer<<L12 as Layer<<L13 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L2: Layer<<L3 as Layer<<L4 as Layer<<L5 as Layer<<L6 as Layer<<L7 as Layer<<L8 as Layer<<L9 as Layer<<L10 as Layer<<L11 as Layer<<L12 as Layer<<L13 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L3: Layer<<L4 as Layer<<L5 as Layer<<L6 as Layer<<L7 as Layer<<L8 as Layer<<L9 as Layer<<L10 as Layer<<L11 as Layer<<L12 as Layer<<L13 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L4: Layer<<L5 as Layer<<L6 as Layer<<L7 as Layer<<L8 as Layer<<L9 as Layer<<L10 as Layer<<L11 as Layer<<L12 as Layer<<L13 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L5: Layer<<L6 as Layer<<L7 as Layer<<L8 as Layer<<L9 as Layer<<L10 as Layer<<L11 as Layer<<L12 as Layer<<L13 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L6: Layer<<L7 as Layer<<L8 as Layer<<L9 as Layer<<L10 as Layer<<L11 as Layer<<L12 as Layer<<L13 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L7: Layer<<L8 as Layer<<L9 as Layer<<L10 as Layer<<L11 as Layer<<L12 as Layer<<L13 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L8: Layer<<L9 as Layer<<L10 as Layer<<L11 as Layer<<L12 as Layer<<L13 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>,
L9: Layer<<L10 as Layer<<L11 as Layer<<L12 as Layer<<L13 as Layer<S>>::Service>>::Service>>::Service>>::Service>,
L10: Layer<<L11 as Layer<<L12 as Layer<<L13 as Layer<S>>::Service>>::Service>>::Service>,
L11: Layer<<L12 as Layer<<L13 as Layer<S>>::Service>>::Service>,
L12: Layer<<L13 as Layer<S>>::Service>,
L13: Layer<S>,
type Service = <L1 as Layer<<L2 as Layer<<L3 as Layer<<L4 as Layer<<L5 as Layer<<L6 as Layer<<L7 as Layer<<L8 as Layer<<L9 as Layer<<L10 as Layer<<L11 as Layer<<L12 as Layer<<L13 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service
fn layer( &self, service: S, ) -> <(L1, L2, L3, L4, L5, L6, L7, L8, L9, L10, L11, L12, L13) as Layer<S>>::Service
source§impl<S, L1, L2, L3, L4, L5, L6, L7, L8, L9, L10, L11, L12, L13, L14> Layer<S> for (L1, L2, L3, L4, L5, L6, L7, L8, L9, L10, L11, L12, L13, L14)where
L1: Layer<<L2 as Layer<<L3 as Layer<<L4 as Layer<<L5 as Layer<<L6 as Layer<<L7 as Layer<<L8 as Layer<<L9 as Layer<<L10 as Layer<<L11 as Layer<<L12 as Layer<<L13 as Layer<<L14 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L2: Layer<<L3 as Layer<<L4 as Layer<<L5 as Layer<<L6 as Layer<<L7 as Layer<<L8 as Layer<<L9 as Layer<<L10 as Layer<<L11 as Layer<<L12 as Layer<<L13 as Layer<<L14 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L3: Layer<<L4 as Layer<<L5 as Layer<<L6 as Layer<<L7 as Layer<<L8 as Layer<<L9 as Layer<<L10 as Layer<<L11 as Layer<<L12 as Layer<<L13 as Layer<<L14 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L4: Layer<<L5 as Layer<<L6 as Layer<<L7 as Layer<<L8 as Layer<<L9 as Layer<<L10 as Layer<<L11 as Layer<<L12 as Layer<<L13 as Layer<<L14 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L5: Layer<<L6 as Layer<<L7 as Layer<<L8 as Layer<<L9 as Layer<<L10 as Layer<<L11 as Layer<<L12 as Layer<<L13 as Layer<<L14 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L6: Layer<<L7 as Layer<<L8 as Layer<<L9 as Layer<<L10 as Layer<<L11 as Layer<<L12 as Layer<<L13 as Layer<<L14 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L7: Layer<<L8 as Layer<<L9 as Layer<<L10 as Layer<<L11 as Layer<<L12 as Layer<<L13 as Layer<<L14 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L8: Layer<<L9 as Layer<<L10 as Layer<<L11 as Layer<<L12 as Layer<<L13 as Layer<<L14 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L9: Layer<<L10 as Layer<<L11 as Layer<<L12 as Layer<<L13 as Layer<<L14 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>,
L10: Layer<<L11 as Layer<<L12 as Layer<<L13 as Layer<<L14 as Layer<S>>::Service>>::Service>>::Service>>::Service>,
L11: Layer<<L12 as Layer<<L13 as Layer<<L14 as Layer<S>>::Service>>::Service>>::Service>,
L12: Layer<<L13 as Layer<<L14 as Layer<S>>::Service>>::Service>,
L13: Layer<<L14 as Layer<S>>::Service>,
L14: Layer<S>,
impl<S, L1, L2, L3, L4, L5, L6, L7, L8, L9, L10, L11, L12, L13, L14> Layer<S> for (L1, L2, L3, L4, L5, L6, L7, L8, L9, L10, L11, L12, L13, L14)where
L1: Layer<<L2 as Layer<<L3 as Layer<<L4 as Layer<<L5 as Layer<<L6 as Layer<<L7 as Layer<<L8 as Layer<<L9 as Layer<<L10 as Layer<<L11 as Layer<<L12 as Layer<<L13 as Layer<<L14 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L2: Layer<<L3 as Layer<<L4 as Layer<<L5 as Layer<<L6 as Layer<<L7 as Layer<<L8 as Layer<<L9 as Layer<<L10 as Layer<<L11 as Layer<<L12 as Layer<<L13 as Layer<<L14 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L3: Layer<<L4 as Layer<<L5 as Layer<<L6 as Layer<<L7 as Layer<<L8 as Layer<<L9 as Layer<<L10 as Layer<<L11 as Layer<<L12 as Layer<<L13 as Layer<<L14 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L4: Layer<<L5 as Layer<<L6 as Layer<<L7 as Layer<<L8 as Layer<<L9 as Layer<<L10 as Layer<<L11 as Layer<<L12 as Layer<<L13 as Layer<<L14 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L5: Layer<<L6 as Layer<<L7 as Layer<<L8 as Layer<<L9 as Layer<<L10 as Layer<<L11 as Layer<<L12 as Layer<<L13 as Layer<<L14 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L6: Layer<<L7 as Layer<<L8 as Layer<<L9 as Layer<<L10 as Layer<<L11 as Layer<<L12 as Layer<<L13 as Layer<<L14 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L7: Layer<<L8 as Layer<<L9 as Layer<<L10 as Layer<<L11 as Layer<<L12 as Layer<<L13 as Layer<<L14 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L8: Layer<<L9 as Layer<<L10 as Layer<<L11 as Layer<<L12 as Layer<<L13 as Layer<<L14 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L9: Layer<<L10 as Layer<<L11 as Layer<<L12 as Layer<<L13 as Layer<<L14 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>,
L10: Layer<<L11 as Layer<<L12 as Layer<<L13 as Layer<<L14 as Layer<S>>::Service>>::Service>>::Service>>::Service>,
L11: Layer<<L12 as Layer<<L13 as Layer<<L14 as Layer<S>>::Service>>::Service>>::Service>,
L12: Layer<<L13 as Layer<<L14 as Layer<S>>::Service>>::Service>,
L13: Layer<<L14 as Layer<S>>::Service>,
L14: Layer<S>,
type Service = <L1 as Layer<<L2 as Layer<<L3 as Layer<<L4 as Layer<<L5 as Layer<<L6 as Layer<<L7 as Layer<<L8 as Layer<<L9 as Layer<<L10 as Layer<<L11 as Layer<<L12 as Layer<<L13 as Layer<<L14 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service
fn layer( &self, service: S, ) -> <(L1, L2, L3, L4, L5, L6, L7, L8, L9, L10, L11, L12, L13, L14) as Layer<S>>::Service
source§impl<S, L1, L2, L3, L4, L5, L6, L7, L8, L9, L10, L11, L12, L13, L14, L15> Layer<S> for (L1, L2, L3, L4, L5, L6, L7, L8, L9, L10, L11, L12, L13, L14, L15)where
L1: Layer<<L2 as Layer<<L3 as Layer<<L4 as Layer<<L5 as Layer<<L6 as Layer<<L7 as Layer<<L8 as Layer<<L9 as Layer<<L10 as Layer<<L11 as Layer<<L12 as Layer<<L13 as Layer<<L14 as Layer<<L15 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L2: Layer<<L3 as Layer<<L4 as Layer<<L5 as Layer<<L6 as Layer<<L7 as Layer<<L8 as Layer<<L9 as Layer<<L10 as Layer<<L11 as Layer<<L12 as Layer<<L13 as Layer<<L14 as Layer<<L15 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L3: Layer<<L4 as Layer<<L5 as Layer<<L6 as Layer<<L7 as Layer<<L8 as Layer<<L9 as Layer<<L10 as Layer<<L11 as Layer<<L12 as Layer<<L13 as Layer<<L14 as Layer<<L15 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L4: Layer<<L5 as Layer<<L6 as Layer<<L7 as Layer<<L8 as Layer<<L9 as Layer<<L10 as Layer<<L11 as Layer<<L12 as Layer<<L13 as Layer<<L14 as Layer<<L15 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L5: Layer<<L6 as Layer<<L7 as Layer<<L8 as Layer<<L9 as Layer<<L10 as Layer<<L11 as Layer<<L12 as Layer<<L13 as Layer<<L14 as Layer<<L15 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L6: Layer<<L7 as Layer<<L8 as Layer<<L9 as Layer<<L10 as Layer<<L11 as Layer<<L12 as Layer<<L13 as Layer<<L14 as Layer<<L15 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L7: Layer<<L8 as Layer<<L9 as Layer<<L10 as Layer<<L11 as Layer<<L12 as Layer<<L13 as Layer<<L14 as Layer<<L15 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L8: Layer<<L9 as Layer<<L10 as Layer<<L11 as Layer<<L12 as Layer<<L13 as Layer<<L14 as Layer<<L15 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L9: Layer<<L10 as Layer<<L11 as Layer<<L12 as Layer<<L13 as Layer<<L14 as Layer<<L15 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L10: Layer<<L11 as Layer<<L12 as Layer<<L13 as Layer<<L14 as Layer<<L15 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>,
L11: Layer<<L12 as Layer<<L13 as Layer<<L14 as Layer<<L15 as Layer<S>>::Service>>::Service>>::Service>>::Service>,
L12: Layer<<L13 as Layer<<L14 as Layer<<L15 as Layer<S>>::Service>>::Service>>::Service>,
L13: Layer<<L14 as Layer<<L15 as Layer<S>>::Service>>::Service>,
L14: Layer<<L15 as Layer<S>>::Service>,
L15: Layer<S>,
impl<S, L1, L2, L3, L4, L5, L6, L7, L8, L9, L10, L11, L12, L13, L14, L15> Layer<S> for (L1, L2, L3, L4, L5, L6, L7, L8, L9, L10, L11, L12, L13, L14, L15)where
L1: Layer<<L2 as Layer<<L3 as Layer<<L4 as Layer<<L5 as Layer<<L6 as Layer<<L7 as Layer<<L8 as Layer<<L9 as Layer<<L10 as Layer<<L11 as Layer<<L12 as Layer<<L13 as Layer<<L14 as Layer<<L15 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L2: Layer<<L3 as Layer<<L4 as Layer<<L5 as Layer<<L6 as Layer<<L7 as Layer<<L8 as Layer<<L9 as Layer<<L10 as Layer<<L11 as Layer<<L12 as Layer<<L13 as Layer<<L14 as Layer<<L15 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L3: Layer<<L4 as Layer<<L5 as Layer<<L6 as Layer<<L7 as Layer<<L8 as Layer<<L9 as Layer<<L10 as Layer<<L11 as Layer<<L12 as Layer<<L13 as Layer<<L14 as Layer<<L15 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L4: Layer<<L5 as Layer<<L6 as Layer<<L7 as Layer<<L8 as Layer<<L9 as Layer<<L10 as Layer<<L11 as Layer<<L12 as Layer<<L13 as Layer<<L14 as Layer<<L15 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L5: Layer<<L6 as Layer<<L7 as Layer<<L8 as Layer<<L9 as Layer<<L10 as Layer<<L11 as Layer<<L12 as Layer<<L13 as Layer<<L14 as Layer<<L15 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L6: Layer<<L7 as Layer<<L8 as Layer<<L9 as Layer<<L10 as Layer<<L11 as Layer<<L12 as Layer<<L13 as Layer<<L14 as Layer<<L15 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L7: Layer<<L8 as Layer<<L9 as Layer<<L10 as Layer<<L11 as Layer<<L12 as Layer<<L13 as Layer<<L14 as Layer<<L15 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L8: Layer<<L9 as Layer<<L10 as Layer<<L11 as Layer<<L12 as Layer<<L13 as Layer<<L14 as Layer<<L15 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L9: Layer<<L10 as Layer<<L11 as Layer<<L12 as Layer<<L13 as Layer<<L14 as Layer<<L15 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L10: Layer<<L11 as Layer<<L12 as Layer<<L13 as Layer<<L14 as Layer<<L15 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>,
L11: Layer<<L12 as Layer<<L13 as Layer<<L14 as Layer<<L15 as Layer<S>>::Service>>::Service>>::Service>>::Service>,
L12: Layer<<L13 as Layer<<L14 as Layer<<L15 as Layer<S>>::Service>>::Service>>::Service>,
L13: Layer<<L14 as Layer<<L15 as Layer<S>>::Service>>::Service>,
L14: Layer<<L15 as Layer<S>>::Service>,
L15: Layer<S>,
type Service = <L1 as Layer<<L2 as Layer<<L3 as Layer<<L4 as Layer<<L5 as Layer<<L6 as Layer<<L7 as Layer<<L8 as Layer<<L9 as Layer<<L10 as Layer<<L11 as Layer<<L12 as Layer<<L13 as Layer<<L14 as Layer<<L15 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service
fn layer( &self, service: S, ) -> <(L1, L2, L3, L4, L5, L6, L7, L8, L9, L10, L11, L12, L13, L14, L15) as Layer<S>>::Service
source§impl<S, L1, L2, L3, L4, L5, L6, L7, L8, L9, L10, L11, L12, L13, L14, L15, L16> Layer<S> for (L1, L2, L3, L4, L5, L6, L7, L8, L9, L10, L11, L12, L13, L14, L15, L16)where
L1: Layer<<L2 as Layer<<L3 as Layer<<L4 as Layer<<L5 as Layer<<L6 as Layer<<L7 as Layer<<L8 as Layer<<L9 as Layer<<L10 as Layer<<L11 as Layer<<L12 as Layer<<L13 as Layer<<L14 as Layer<<L15 as Layer<<L16 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L2: Layer<<L3 as Layer<<L4 as Layer<<L5 as Layer<<L6 as Layer<<L7 as Layer<<L8 as Layer<<L9 as Layer<<L10 as Layer<<L11 as Layer<<L12 as Layer<<L13 as Layer<<L14 as Layer<<L15 as Layer<<L16 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L3: Layer<<L4 as Layer<<L5 as Layer<<L6 as Layer<<L7 as Layer<<L8 as Layer<<L9 as Layer<<L10 as Layer<<L11 as Layer<<L12 as Layer<<L13 as Layer<<L14 as Layer<<L15 as Layer<<L16 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L4: Layer<<L5 as Layer<<L6 as Layer<<L7 as Layer<<L8 as Layer<<L9 as Layer<<L10 as Layer<<L11 as Layer<<L12 as Layer<<L13 as Layer<<L14 as Layer<<L15 as Layer<<L16 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L5: Layer<<L6 as Layer<<L7 as Layer<<L8 as Layer<<L9 as Layer<<L10 as Layer<<L11 as Layer<<L12 as Layer<<L13 as Layer<<L14 as Layer<<L15 as Layer<<L16 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L6: Layer<<L7 as Layer<<L8 as Layer<<L9 as Layer<<L10 as Layer<<L11 as Layer<<L12 as Layer<<L13 as Layer<<L14 as Layer<<L15 as Layer<<L16 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L7: Layer<<L8 as Layer<<L9 as Layer<<L10 as Layer<<L11 as Layer<<L12 as Layer<<L13 as Layer<<L14 as Layer<<L15 as Layer<<L16 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L8: Layer<<L9 as Layer<<L10 as Layer<<L11 as Layer<<L12 as Layer<<L13 as Layer<<L14 as Layer<<L15 as Layer<<L16 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L9: Layer<<L10 as Layer<<L11 as Layer<<L12 as Layer<<L13 as Layer<<L14 as Layer<<L15 as Layer<<L16 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L10: Layer<<L11 as Layer<<L12 as Layer<<L13 as Layer<<L14 as Layer<<L15 as Layer<<L16 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L11: Layer<<L12 as Layer<<L13 as Layer<<L14 as Layer<<L15 as Layer<<L16 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>,
L12: Layer<<L13 as Layer<<L14 as Layer<<L15 as Layer<<L16 as Layer<S>>::Service>>::Service>>::Service>>::Service>,
L13: Layer<<L14 as Layer<<L15 as Layer<<L16 as Layer<S>>::Service>>::Service>>::Service>,
L14: Layer<<L15 as Layer<<L16 as Layer<S>>::Service>>::Service>,
L15: Layer<<L16 as Layer<S>>::Service>,
L16: Layer<S>,
impl<S, L1, L2, L3, L4, L5, L6, L7, L8, L9, L10, L11, L12, L13, L14, L15, L16> Layer<S> for (L1, L2, L3, L4, L5, L6, L7, L8, L9, L10, L11, L12, L13, L14, L15, L16)where
L1: Layer<<L2 as Layer<<L3 as Layer<<L4 as Layer<<L5 as Layer<<L6 as Layer<<L7 as Layer<<L8 as Layer<<L9 as Layer<<L10 as Layer<<L11 as Layer<<L12 as Layer<<L13 as Layer<<L14 as Layer<<L15 as Layer<<L16 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L2: Layer<<L3 as Layer<<L4 as Layer<<L5 as Layer<<L6 as Layer<<L7 as Layer<<L8 as Layer<<L9 as Layer<<L10 as Layer<<L11 as Layer<<L12 as Layer<<L13 as Layer<<L14 as Layer<<L15 as Layer<<L16 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L3: Layer<<L4 as Layer<<L5 as Layer<<L6 as Layer<<L7 as Layer<<L8 as Layer<<L9 as Layer<<L10 as Layer<<L11 as Layer<<L12 as Layer<<L13 as Layer<<L14 as Layer<<L15 as Layer<<L16 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L4: Layer<<L5 as Layer<<L6 as Layer<<L7 as Layer<<L8 as Layer<<L9 as Layer<<L10 as Layer<<L11 as Layer<<L12 as Layer<<L13 as Layer<<L14 as Layer<<L15 as Layer<<L16 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L5: Layer<<L6 as Layer<<L7 as Layer<<L8 as Layer<<L9 as Layer<<L10 as Layer<<L11 as Layer<<L12 as Layer<<L13 as Layer<<L14 as Layer<<L15 as Layer<<L16 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L6: Layer<<L7 as Layer<<L8 as Layer<<L9 as Layer<<L10 as Layer<<L11 as Layer<<L12 as Layer<<L13 as Layer<<L14 as Layer<<L15 as Layer<<L16 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L7: Layer<<L8 as Layer<<L9 as Layer<<L10 as Layer<<L11 as Layer<<L12 as Layer<<L13 as Layer<<L14 as Layer<<L15 as Layer<<L16 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L8: Layer<<L9 as Layer<<L10 as Layer<<L11 as Layer<<L12 as Layer<<L13 as Layer<<L14 as Layer<<L15 as Layer<<L16 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L9: Layer<<L10 as Layer<<L11 as Layer<<L12 as Layer<<L13 as Layer<<L14 as Layer<<L15 as Layer<<L16 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L10: Layer<<L11 as Layer<<L12 as Layer<<L13 as Layer<<L14 as Layer<<L15 as Layer<<L16 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>,
L11: Layer<<L12 as Layer<<L13 as Layer<<L14 as Layer<<L15 as Layer<<L16 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>,
L12: Layer<<L13 as Layer<<L14 as Layer<<L15 as Layer<<L16 as Layer<S>>::Service>>::Service>>::Service>>::Service>,
L13: Layer<<L14 as Layer<<L15 as Layer<<L16 as Layer<S>>::Service>>::Service>>::Service>,
L14: Layer<<L15 as Layer<<L16 as Layer<S>>::Service>>::Service>,
L15: Layer<<L16 as Layer<S>>::Service>,
L16: Layer<S>,
type Service = <L1 as Layer<<L2 as Layer<<L3 as Layer<<L4 as Layer<<L5 as Layer<<L6 as Layer<<L7 as Layer<<L8 as Layer<<L9 as Layer<<L10 as Layer<<L11 as Layer<<L12 as Layer<<L13 as Layer<<L14 as Layer<<L15 as Layer<<L16 as Layer<S>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service>>::Service
fn layer( &self, service: S, ) -> <(L1, L2, L3, L4, L5, L6, L7, L8, L9, L10, L11, L12, L13, L14, L15, L16) as Layer<S>>::Service
Implementors§
source§impl<In, T, U, E> Layer<In> for BoxCloneServiceLayer<In, T, U, E>
Available on crate feature util
only.
impl<In, T, U, E> Layer<In> for BoxCloneServiceLayer<In, T, U, E>
Available on crate feature
util
only.type Service = BoxCloneService<T, U, E>
source§impl<In, T, U, E> Layer<In> for BoxLayer<In, T, U, E>
Available on crate feature util
only.
impl<In, T, U, E> Layer<In> for BoxLayer<In, T, U, E>
Available on crate feature
util
only.type Service = BoxService<T, U, E>
source§impl<P, S> Layer<S> for RetryLayer<P>where
P: Clone,
Available on crate feature retry
only.
impl<P, S> Layer<S> for RetryLayer<P>where
P: Clone,
Available on crate feature
retry
only.source§impl<S> Layer<S> for Identity
impl<S> Layer<S> for Identity
Decorates a Service
, transforming either the request or the response.
source§impl<S> Layer<S> for ConcurrencyLimitLayer
Available on crate feature limit
only.
impl<S> Layer<S> for ConcurrencyLimitLayer
Available on crate feature
limit
only.type Service = ConcurrencyLimit<S>
source§impl<S> Layer<S> for GlobalConcurrencyLimitLayer
Available on crate feature limit
only.
impl<S> Layer<S> for GlobalConcurrencyLimitLayer
Available on crate feature
limit
only.type Service = ConcurrencyLimit<S>
source§impl<S> Layer<S> for RateLimitLayer
Available on crate feature limit
only.
impl<S> Layer<S> for RateLimitLayer
Available on crate feature
limit
only.source§impl<S> Layer<S> for LoadShedLayer
Available on crate feature load-shed
only.
impl<S> Layer<S> for LoadShedLayer
Available on crate feature
load-shed
only.source§impl<S> Layer<S> for SpawnReadyLayer
Available on crate feature spawn-ready
only.
impl<S> Layer<S> for SpawnReadyLayer
Available on crate feature
spawn-ready
only.type Service = SpawnReady<S>
source§impl<S> Layer<S> for TimeoutLayer
Available on crate feature timeout
only.
impl<S> Layer<S> for TimeoutLayer
Available on crate feature
timeout
only.source§impl<S, F> Layer<S> for AndThenLayer<F>where
F: Clone,
Available on crate feature util
only.
impl<S, F> Layer<S> for AndThenLayer<F>where
F: Clone,
Available on crate feature
util
only.source§impl<S, F> Layer<S> for MapErrLayer<F>where
F: Clone,
Available on crate feature util
only.
impl<S, F> Layer<S> for MapErrLayer<F>where
F: Clone,
Available on crate feature
util
only.source§impl<S, F> Layer<S> for MapFutureLayer<F>where
F: Clone,
Available on crate feature util
only.
impl<S, F> Layer<S> for MapFutureLayer<F>where
F: Clone,
Available on crate feature
util
only.source§impl<S, F> Layer<S> for MapRequestLayer<F>where
F: Clone,
Available on crate feature util
only.
impl<S, F> Layer<S> for MapRequestLayer<F>where
F: Clone,
Available on crate feature
util
only.type Service = MapRequest<S, F>
source§impl<S, F> Layer<S> for MapResponseLayer<F>where
F: Clone,
Available on crate feature util
only.
impl<S, F> Layer<S> for MapResponseLayer<F>where
F: Clone,
Available on crate feature
util
only.type Service = MapResponse<S, F>
source§impl<S, F> Layer<S> for MapResultLayer<F>where
F: Clone,
Available on crate feature util
only.
impl<S, F> Layer<S> for MapResultLayer<F>where
F: Clone,
Available on crate feature
util
only.source§impl<S, L> Layer<S> for ServiceBuilder<L>where
L: Layer<S>,
impl<S, L> Layer<S> for ServiceBuilder<L>where
L: Layer<S>,
source§impl<S, Req> Layer<S> for MakeBalanceLayer<S, Req>
Available on crate feature balance
only.
impl<S, Req> Layer<S> for MakeBalanceLayer<S, Req>
Available on crate feature
balance
only.type Service = MakeBalance<S, Req>
source§impl<S, Request> Layer<S> for BufferLayer<Request>
Available on crate feature buffer
only.
impl<S, Request> Layer<S> for BufferLayer<Request>
Available on crate feature
buffer
only.source§impl<U: Clone, S> Layer<S> for AsyncFilterLayer<U>
Available on crate feature filter
only.
impl<U: Clone, S> Layer<S> for AsyncFilterLayer<U>
Available on crate feature
filter
only.