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}