diff --git a/motore/src/layer/mod.rs b/motore/src/layer/mod.rs index adc784c..ed163a6 100644 --- a/motore/src/layer/mod.rs +++ b/motore/src/layer/mod.rs @@ -11,6 +11,7 @@ mod ext; mod identity; mod layer_fn; mod layers; +mod service_layer; mod stack; #[cfg(feature = "tower")] mod tower_adapter; @@ -22,6 +23,7 @@ pub use self::{ identity::Identity, layer_fn::{layer_fn, LayerFn}, layers::Layers, + service_layer::ServiceLayerExt, stack::Stack, }; diff --git a/motore/src/layer/service_layer.rs b/motore/src/layer/service_layer.rs new file mode 100644 index 0000000..d851af3 --- /dev/null +++ b/motore/src/layer/service_layer.rs @@ -0,0 +1,16 @@ +use super::Layer; + +pub trait ServiceLayerExt: Sized { + fn layer(self, l: L) -> L::Service + where + L: Layer; +} + +impl ServiceLayerExt for S { + fn layer(self, l: L) -> L::Service + where + L: Layer, + { + Layer::layer(l, self) + } +}