From fc7c436387f0db8a32e85cda4e0b8c4268dd4ce7 Mon Sep 17 00:00:00 2001 From: Nikolay Kim <fafhrd91@gmail.com> Date: Fri, 28 Sep 2018 12:22:49 -0700 Subject: [PATCH] drop server service errors --- src/server/services.rs | 49 ++++++++++++++++++++++++------------------ 1 file changed, 28 insertions(+), 21 deletions(-) diff --git a/src/server/services.rs b/src/server/services.rs index 43ba8ce0..3fa3e0c6 100644 --- a/src/server/services.rs +++ b/src/server/services.rs @@ -21,18 +21,13 @@ pub enum ServerMessage { } pub trait StreamServiceFactory: Send + Clone + 'static { - type NewService: NewService<Request = TcpStream, Response = (), Error = (), InitError = ()>; + type NewService: NewService<Request = TcpStream, Response = ()>; fn create(&self) -> Self::NewService; } pub trait ServiceFactory: Send + Clone + 'static { - type NewService: NewService< - Request = ServerMessage, - Response = (), - Error = (), - InitError = (), - >; + type NewService: NewService<Request = ServerMessage, Response = ()>; fn create(&self) -> Self::NewService; } @@ -66,7 +61,7 @@ impl<T> StreamService<T> { impl<T> Service for StreamService<T> where - T: Service<Request = TcpStream, Response = (), Error = ()>, + T: Service<Request = TcpStream, Response = ()>, T::Future: 'static, T::Error: 'static, { @@ -87,7 +82,7 @@ where }); if let Ok(stream) = stream { - spawn(self.service.call(stream).map(move |val| { + spawn(self.service.call(stream).map_err(|_| ()).map(move |val| { drop(guard); val })); @@ -113,7 +108,7 @@ impl<T> ServerService<T> { impl<T> Service for ServerService<T> where - T: Service<Request = ServerMessage, Response = (), Error = ()>, + T: Service<Request = ServerMessage, Response = ()>, T::Future: 'static, T::Error: 'static, { @@ -127,7 +122,7 @@ where } fn call(&mut self, (guard, req): (Option<CounterGuard>, ServerMessage)) -> Self::Future { - spawn(self.service.call(req).map(move |val| { + spawn(self.service.call(req).map_err(|_| ()).map(move |val| { drop(guard); val })); @@ -165,10 +160,16 @@ where } fn create(&self) -> Box<Future<Item = BoxedServerService, Error = ()>> { - Box::new(self.inner.create().new_service().map(move |inner| { - let service: BoxedServerService = Box::new(ServerService::new(inner)); - service - })) + Box::new( + self.inner + .create() + .new_service() + .map_err(|_| ()) + .map(move |inner| { + let service: BoxedServerService = Box::new(ServerService::new(inner)); + service + }), + ) } } @@ -202,10 +203,16 @@ where } fn create(&self) -> Box<Future<Item = BoxedServerService, Error = ()>> { - Box::new(self.inner.create().new_service().map(move |inner| { - let service: BoxedServerService = Box::new(StreamService::new(inner)); - service - })) + Box::new( + self.inner + .create() + .new_service() + .map_err(|_| ()) + .map(move |inner| { + let service: BoxedServerService = Box::new(StreamService::new(inner)); + service + }), + ) } } @@ -226,7 +233,7 @@ impl InternalServiceFactory for Box<InternalServiceFactory> { impl<F, T> ServiceFactory for F where F: Fn() -> T + Send + Clone + 'static, - T: NewService<Request = ServerMessage, Response = (), Error = (), InitError = ()>, + T: NewService<Request = ServerMessage, Response = ()>, { type NewService = T; @@ -238,7 +245,7 @@ where impl<F, T> StreamServiceFactory for F where F: Fn() -> T + Send + Clone + 'static, - T: NewService<Request = TcpStream, Response = (), Error = (), InitError = ()>, + T: NewService<Request = TcpStream, Response = ()>, { type NewService = T;