diff --git a/tower/src/filter/mod.rs b/tower/src/filter/mod.rs index 261dbd8f..344c8ed2 100644 --- a/tower/src/filter/mod.rs +++ b/tower/src/filter/mod.rs @@ -80,6 +80,21 @@ impl Filter { { self.predicate.check(request) } + + /// Get a reference to the inner service + pub fn get_ref(&self) -> &T { + &self.inner + } + + /// Get a mutable reference to the inner service + pub fn get_mut(&mut self) -> &mut T { + &mut self.inner + } + + /// Consume `self`, returning the inner service + pub fn into_inner(self) -> T { + self.inner + } } impl Service for Filter @@ -127,6 +142,21 @@ impl AsyncFilter { { self.predicate.check(request).await } + + /// Get a reference to the inner service + pub fn get_ref(&self) -> &T { + &self.inner + } + + /// Get a mutable reference to the inner service + pub fn get_mut(&mut self) -> &mut T { + &mut self.inner + } + + /// Consume `self`, returning the inner service + pub fn into_inner(self) -> T { + self.inner + } } impl Service for AsyncFilter