From 42a46796357dfda6e4683f23ae21738bd266662b Mon Sep 17 00:00:00 2001 From: Nikolay Kim <fafhrd91@gmail.com> Date: Wed, 5 Dec 2018 17:43:31 -0800 Subject: [PATCH] use FnMut for apply combinator --- src/service/apply.rs | 16 ++++++++-------- src/service/mod.rs | 4 ++-- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/service/apply.rs b/src/service/apply.rs index 5eea7448..2db93103 100644 --- a/src/service/apply.rs +++ b/src/service/apply.rs @@ -17,7 +17,7 @@ where impl<T, F, In, Out, Request> Apply<T, F, In, Out, Request> where T: Service<Request>, - F: Fn(In, &mut T) -> Out, + F: FnMut(In, &mut T) -> Out, Out: IntoFuture, { /// Create new `Apply` combinator @@ -47,7 +47,7 @@ where impl<T, F, In, Out, Request> Service<In> for Apply<T, F, In, Out, Request> where T: Service<Request, Error = Out::Error>, - F: Fn(In, &mut T) -> Out, + F: FnMut(In, &mut T) -> Out, Out: IntoFuture, { type Response = <Out::Future as Future>::Item; @@ -76,7 +76,7 @@ where impl<T, F, In, Out, Request> ApplyNewService<T, F, In, Out, Request> where T: NewService<Request>, - F: Fn(In, &mut T::Service) -> Out, + F: FnMut(In, &mut T::Service) -> Out, Out: IntoFuture, { /// Create new `ApplyNewService` new service instance @@ -92,7 +92,7 @@ where impl<T, F, In, Out, Request> Clone for ApplyNewService<T, F, In, Out, Request> where T: NewService<Request> + Clone, - F: Fn(Out, &mut T::Service) -> Out + Clone, + F: FnMut(Out, &mut T::Service) -> Out + Clone, Out: IntoFuture, { fn clone(&self) -> Self { @@ -107,7 +107,7 @@ where impl<T, F, In, Out, Request> NewService<In> for ApplyNewService<T, F, In, Out, Request> where T: NewService<Request, Error = Out::Error>, - F: Fn(In, &mut T::Service) -> Out + Clone, + F: FnMut(In, &mut T::Service) -> Out + Clone, Out: IntoFuture, { type Response = <Out::Future as Future>::Item; @@ -125,7 +125,7 @@ where pub struct ApplyNewServiceFuture<T, F, In, Out, Request> where T: NewService<Request>, - F: Fn(In, &mut T::Service) -> Out, + F: FnMut(In, &mut T::Service) -> Out, Out: IntoFuture, { fut: T::Future, @@ -136,7 +136,7 @@ where impl<T, F, In, Out, Request> ApplyNewServiceFuture<T, F, In, Out, Request> where T: NewService<Request>, - F: Fn(In, &mut T::Service) -> Out, + F: FnMut(In, &mut T::Service) -> Out, Out: IntoFuture, { fn new(fut: T::Future, f: F) -> Self { @@ -151,7 +151,7 @@ where impl<T, F, In, Out, Request> Future for ApplyNewServiceFuture<T, F, In, Out, Request> where T: NewService<Request>, - F: Fn(In, &mut T::Service) -> Out, + F: FnMut(In, &mut T::Service) -> Out, Out: IntoFuture, { type Item = Apply<T::Service, F, In, Out, Request>; diff --git a/src/service/mod.rs b/src/service/mod.rs index 3952a801..6ca60eb7 100644 --- a/src/service/mod.rs +++ b/src/service/mod.rs @@ -35,7 +35,7 @@ pub trait ServiceExt<Request>: Service<Request> { Self: Sized, T: Service<Req, Error = Out::Error>, I: IntoService<T, Req>, - F: Fn(Self::Response, &mut T) -> Out, + F: FnMut(Self::Response, &mut T) -> Out, Out: IntoFuture<Error = Self::Error>, { self.and_then(Apply::new(service.into_service(), f)) @@ -158,7 +158,7 @@ pub trait NewServiceExt<Request>: NewService<Request> { Self: Sized, T: NewService<Req, InitError = Self::InitError, Error = Out::Error>, I: IntoNewService<T, Req>, - F: Fn(Self::Response, &mut T::Service) -> Out + Clone, + F: FnMut(Self::Response, &mut T::Service) -> Out + Clone, Out: IntoFuture<Error = Self::Error>, { self.and_then(ApplyNewService::new(service, f))