sui_http/middleware/callback/
layer.rs1use super::Callback;
5use super::MakeCallbackHandler;
6use tower::Layer;
7
8#[derive(Debug, Copy, Clone)]
15pub struct CallbackLayer<M> {
16 pub(crate) make_handler: M,
17}
18
19impl<M> CallbackLayer<M> {
20 pub fn new(make_handler: M) -> Self
22 where
23 M: MakeCallbackHandler,
24 {
25 Self { make_handler }
26 }
27}
28
29impl<S, M> Layer<S> for CallbackLayer<M>
30where
31 M: Clone,
32{
33 type Service = Callback<S, M>;
34
35 fn layer(&self, inner: S) -> Self::Service {
36 Callback {
37 inner,
38 make_callback_handler: self.make_handler.clone(),
39 }
40 }
41}