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