diff --git a/src/framed.rs b/src/framed.rs index a1053271..6f0877a9 100644 --- a/src/framed.rs +++ b/src/framed.rs @@ -3,7 +3,7 @@ use std::marker::PhantomData; use std::mem; use actix; -use futures::future::{ok, Either, FutureResult}; +use futures::future::{ok, FutureResult}; use futures::unsync::mpsc; use futures::{Async, AsyncSink, Future, Poll, Sink, Stream}; use tokio_codec::{Decoder, Encoder, Framed}; @@ -23,7 +23,7 @@ impl FramedNewService where T: AsyncRead + AsyncWrite, U: Decoder + Encoder, - S: NewService, Response = Option>> + Clone, + S: NewService, Response = Response> + Clone, <::Service as Service>::Future: 'static, <::Service as Service>::Error: 'static, ::Item: 'static, @@ -53,7 +53,7 @@ impl NewService for FramedNewService where T: AsyncRead + AsyncWrite, U: Decoder + Encoder, - S: NewService, Response = Option>> + Clone, + S: NewService, Response = Response> + Clone, <::Service as Service>::Future: 'static, <::Service as Service>::Error: 'static, ::Item: 'static, @@ -95,7 +95,7 @@ impl Service for FramedService where T: AsyncRead + AsyncWrite, U: Decoder + Encoder, - S: NewService, Response = Option>>, + S: NewService, Response = Response>, <::Service as Service>::Future: 'static, <::Service as Service>::Error: 'static, ::Item: 'static, @@ -124,7 +124,7 @@ pub struct FramedServiceResponseFuture where T: AsyncRead + AsyncWrite, U: Decoder + Encoder, - S: NewService, Response = Option>>, + S: NewService, Response = Response>, <::Service as Service>::Future: 'static, <::Service as Service>::Error: 'static, ::Item: 'static, @@ -138,7 +138,7 @@ impl Future for FramedServiceResponseFuture where T: AsyncRead + AsyncWrite, U: Decoder + Encoder, - S: NewService, Response = Option>>, + S: NewService, Response = Response>, <::Service as Service>::Future: 'static, <::Service as Service>::Error: 'static, ::Item: 'static, @@ -194,7 +194,7 @@ impl FramedTransport where T: AsyncRead + AsyncWrite, U: Decoder + Encoder, - S: Service, Response = Option>>, + S: Service, Response = Response>, S::Future: 'static, S::Error: 'static, ::Error: 'static, @@ -218,7 +218,7 @@ impl FramedTransport where T: AsyncRead + AsyncWrite, U: Decoder + Encoder, - S: Service, Response = Option>>, + S: Service, Response = Response>, S::Future: 'static, S::Error: 'static, ::Item: 'static, @@ -234,17 +234,7 @@ where Ok(Async::Ready(_)) => { let sender = self.write_tx.clone(); actix::Arbiter::spawn(self.service.call(item).then(|item| { - let item = match item { - Ok(item) => { - if let Some(item) = item { - Ok(item) - } else { - return Either::B(ok(())); - } - } - Err(err) => Err(err), - }; - Either::A(sender.send(item).map(|_| ()).map_err(|_| ())) + sender.send(item).map(|_| ()).map_err(|_| ()) })); } Ok(Async::NotReady) => { @@ -348,7 +338,7 @@ impl Future for FramedTransport where T: AsyncRead + AsyncWrite, U: Decoder + Encoder, - S: Service, Response = Option>>, + S: Service, Response = Response>, S::Future: 'static, S::Error: 'static, ::Item: 'static,