zon_middleware/
ext.rs

1pub trait HttpServiceExt {
2    fn map_request<F>(self, f: F) -> crate::MapRequestService<Self, F>
3    where
4        Self: Sized,
5    {
6        crate::MapRequestService::new(self, f)
7    }
8
9    fn map_response<F>(self, f: F) -> crate::MapResponseService<Self, F>
10    where
11        Self: Sized,
12    {
13        crate::MapResponseService::new(self, f)
14    }
15
16    #[cfg(feature = "set-status")]
17    fn set_status(self, status: http::StatusCode) -> crate::SetStatusService<Self>
18    where
19        Self: Sized,
20    {
21        crate::SetStatusService::new(self, status)
22    }
23
24    #[cfg(feature = "task-local")]
25    fn set_task_local<T>(
26        self,
27        key: &'static tokio::task::LocalKey<T>,
28        value: T,
29    ) -> crate::SetTaskLocalService<Self, T>
30    where
31        Self: Sized,
32        T: Clone + Send + Sync + 'static,
33    {
34        crate::SetTaskLocalService::new(self, key, value)
35    }
36}
37
38impl<T> HttpServiceExt for T {}