actix_web/middleware/
identity.rs1#[expect(deprecated, reason = "preserve the public ready future type")]
4use actix_utils::future::{ready, Ready};
5
6use crate::dev::{forward_ready, Service, Transform};
7
8#[derive(Debug, Clone, Default)]
10#[non_exhaustive]
11pub struct Identity;
12
13#[expect(deprecated, reason = "preserve the public ready future type")]
14impl<S: Service<Req>, Req> Transform<S, Req> for Identity {
15 type Response = S::Response;
16 type Error = S::Error;
17 type Transform = IdentityMiddleware<S>;
18 type InitError = ();
19 type Future = Ready<Result<Self::Transform, Self::InitError>>;
20
21 #[inline]
22 fn new_transform(&self, service: S) -> Self::Future {
23 ready(Ok(IdentityMiddleware { service }))
24 }
25}
26
27#[doc(hidden)]
28pub struct IdentityMiddleware<S> {
29 service: S,
30}
31
32impl<S: Service<Req>, Req> Service<Req> for IdentityMiddleware<S> {
33 type Response = S::Response;
34 type Error = S::Error;
35 type Future = S::Future;
36
37 forward_ready!(service);
38
39 #[inline]
40 fn call(&self, req: Req) -> Self::Future {
41 self.service.call(req)
42 }
43}