mirror of https://github.com/fafhrd91/actix-net
add forward_ready macro
This commit is contained in:
parent
55bbd27488
commit
00c4a3ac08
|
@ -94,9 +94,7 @@ where
|
||||||
type Error = Err;
|
type Error = Err;
|
||||||
type Future = Fut;
|
type Future = Fut;
|
||||||
|
|
||||||
fn poll_ready(&mut self, cx: &mut Context<'_>) -> Poll<Result<(), Self::Error>> {
|
crate::forward_ready!(service);
|
||||||
Poll::Ready(ready!(self.service.poll_ready(cx)))
|
|
||||||
}
|
|
||||||
|
|
||||||
fn call(&mut self, req: Req) -> Self::Future {
|
fn call(&mut self, req: Req) -> Self::Future {
|
||||||
(self.wrap_fn)(req, &mut self.service)
|
(self.wrap_fn)(req, &mut self.service)
|
||||||
|
|
|
@ -371,3 +371,15 @@ macro_rules! always_ready {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[macro_export]
|
||||||
|
macro_rules! forward_ready {
|
||||||
|
($field:ident) => {
|
||||||
|
fn poll_ready(
|
||||||
|
&mut self,
|
||||||
|
cx: &mut ::std::task::Context<'_>,
|
||||||
|
) -> ::std::task::Poll<Result<(), Self::Error>> {
|
||||||
|
self.$field.poll_ready(cx)
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
|
@ -52,9 +52,7 @@ where
|
||||||
type Error = A::Error;
|
type Error = A::Error;
|
||||||
type Future = MapFuture<A, F, Req, Res>;
|
type Future = MapFuture<A, F, Req, Res>;
|
||||||
|
|
||||||
fn poll_ready(&mut self, ctx: &mut Context<'_>) -> Poll<Result<(), Self::Error>> {
|
crate::forward_ready!(service);
|
||||||
self.service.poll_ready(ctx)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn call(&mut self, req: Req) -> Self::Future {
|
fn call(&mut self, req: Req) -> Self::Future {
|
||||||
MapFuture::new(self.service.call(req), self.f.clone())
|
MapFuture::new(self.service.call(req), self.f.clone())
|
||||||
|
|
|
@ -5,7 +5,6 @@
|
||||||
#![doc(html_favicon_url = "https://actix.rs/favicon.ico")]
|
#![doc(html_favicon_url = "https://actix.rs/favicon.ico")]
|
||||||
|
|
||||||
use std::marker::PhantomData;
|
use std::marker::PhantomData;
|
||||||
use std::task::{Context, Poll};
|
|
||||||
|
|
||||||
use actix_service::{
|
use actix_service::{
|
||||||
apply, dev::ApplyTransform, IntoServiceFactory, Service, ServiceFactory, Transform,
|
apply, dev::ApplyTransform, IntoServiceFactory, Service, ServiceFactory, Transform,
|
||||||
|
@ -36,9 +35,7 @@ where
|
||||||
type Error = S::Error;
|
type Error = S::Error;
|
||||||
type Future = Either<S::Future, Instrumented<S::Future>>;
|
type Future = Either<S::Future, Instrumented<S::Future>>;
|
||||||
|
|
||||||
fn poll_ready(&mut self, ctx: &mut Context<'_>) -> Poll<Result<(), Self::Error>> {
|
actix_service::forward_ready!(inner);
|
||||||
self.inner.poll_ready(ctx)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn call(&mut self, req: Req) -> Self::Future {
|
fn call(&mut self, req: Req) -> Self::Future {
|
||||||
let span = (self.make_span)(&req);
|
let span = (self.make_span)(&req);
|
||||||
|
|
Loading…
Reference in New Issue