diff --git a/actix-service/src/lib.rs b/actix-service/src/lib.rs index 7661915b..16162563 100644 --- a/actix-service/src/lib.rs +++ b/actix-service/src/lib.rs @@ -26,7 +26,7 @@ pub use self::fn_service::{factory_fn, factory_fn_cfg, service_fn, service_fn2}; pub use self::into::{into_factory, into_service, ServiceFactoryMapper, ServiceMapper}; pub use self::map_config::{map_config, unit_config, MappedConfig}; pub use self::pipeline::{pipeline, pipeline_factory, Pipeline, PipelineFactory}; -pub use self::transform::{apply, IntoTransform, Transform}; +pub use self::transform::{apply, Transform}; /// An asynchronous function from `Request` to a `Response`. pub trait Service { diff --git a/actix-service/src/transform.rs b/actix-service/src/transform.rs index 3dc398f2..e90836f5 100644 --- a/actix-service/src/transform.rs +++ b/actix-service/src/transform.rs @@ -83,29 +83,11 @@ where } } -/// Trait for types that can be converted to a *transform service* -pub trait IntoTransform -where - T: Transform, -{ - /// Convert to a `TransformService` - fn into_transform(self) -> T; -} - -impl IntoTransform for T -where - T: Transform, -{ - fn into_transform(self) -> T { - self - } -} - /// Apply transform to a service. Function returns /// services factory that in initialization creates /// service and applies transform to this service. pub fn apply( - t: F, + t: T, service: U, ) -> impl ServiceFactory< Config = S::Config, @@ -118,14 +100,13 @@ pub fn apply( where S: ServiceFactory, T: Transform, - F: IntoTransform, U: IntoServiceFactory, { - ApplyTransform::new(t.into_transform(), service.into_factory()) + ApplyTransform::new(t, service.into_factory()) } /// `Apply` transform to new service -pub struct ApplyTransform { +struct ApplyTransform { s: Rc, t: Rc, } @@ -136,10 +117,10 @@ where T: Transform, { /// Create new `ApplyTransform` new service instance - pub fn new>(t: F, service: S) -> Self { + fn new(t: T, service: S) -> Self { Self { s: Rc::new(service), - t: Rc::new(t.into_transform()), + t: Rc::new(t), } } } @@ -175,8 +156,9 @@ where } } } + #[pin_project] -pub struct ApplyTransformFuture +struct ApplyTransformFuture where S: ServiceFactory, T: Transform,