viz_tower/
layer.rs

1use crate::Middleware;
2
3/// Transforms a Tower layer into Viz Middleware.
4#[derive(Debug)]
5pub struct Layered<L>(L);
6
7impl<L> Layered<L> {
8    /// Creates a new tower layer.
9    pub const fn new(l: L) -> Self {
10        Self(l)
11    }
12}
13
14impl<L, H> viz_core::Transform<H> for Layered<L>
15where
16    L: Clone,
17{
18    type Output = Middleware<L, H>;
19
20    fn transform(&self, h: H) -> Self::Output {
21        Middleware::new(self.0.clone(), h)
22    }
23}