summaryrefslogtreecommitdiff
path: root/vendor/tower-layer/src/identity.rs
diff options
context:
space:
mode:
authormo khan <mo@mokhan.ca>2025-07-02 18:36:06 -0600
committermo khan <mo@mokhan.ca>2025-07-02 18:36:06 -0600
commit8cdfa445d6629ffef4cb84967ff7017654045bc2 (patch)
tree22f0b0907c024c78d26a731e2e1f5219407d8102 /vendor/tower-layer/src/identity.rs
parent4351c74c7c5f97156bc94d3a8549b9940ac80e3f (diff)
chore: add vendor directory
Diffstat (limited to 'vendor/tower-layer/src/identity.rs')
-rw-r--r--vendor/tower-layer/src/identity.rs37
1 files changed, 37 insertions, 0 deletions
diff --git a/vendor/tower-layer/src/identity.rs b/vendor/tower-layer/src/identity.rs
new file mode 100644
index 00000000..5233a1d8
--- /dev/null
+++ b/vendor/tower-layer/src/identity.rs
@@ -0,0 +1,37 @@
+use super::Layer;
+use std::fmt;
+
+/// A no-op middleware.
+///
+/// When wrapping a [`Service`], the [`Identity`] layer returns the provided
+/// service without modifying it.
+///
+/// [`Service`]: https://docs.rs/tower-service/latest/tower_service/trait.Service.html
+#[derive(Default, Clone)]
+pub struct Identity {
+ _p: (),
+}
+
+impl Identity {
+ /// Create a new [`Identity`] value
+ pub const fn new() -> Identity {
+ Identity { _p: () }
+ }
+}
+
+/// Decorates a [`Service`], transforming either the request or the response.
+///
+/// [`Service`]: https://docs.rs/tower-service/latest/tower_service/trait.Service.html
+impl<S> Layer<S> for Identity {
+ type Service = S;
+
+ fn layer(&self, inner: S) -> Self::Service {
+ inner
+ }
+}
+
+impl fmt::Debug for Identity {
+ fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
+ f.debug_struct("Identity").finish()
+ }
+}