1use std::fmt;
2use tower_layer::Layer;
3
4use crate::LoadShed;
5
6#[derive(Clone)]
8pub struct LoadShedLayer {
9 _p: (),
10}
11
12impl LoadShedLayer {
13 pub fn new() -> Self {
15 LoadShedLayer { _p: () }
16 }
17}
18
19impl<S> Layer<S> for LoadShedLayer {
20 type Service = LoadShed<S>;
21
22 fn layer(&self, service: S) -> Self::Service {
23 LoadShed::new(service)
24 }
25}
26
27impl fmt::Debug for LoadShedLayer {
28 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
29 f.debug_struct("LoadShedLayer").finish()
30 }
31}