simple_middleware/
middleware.rs

1pub struct Middleware<V, R> {
2    inner: fn(V) -> R,
3}
4
5impl<V, R> Middleware<V, R> {
6    pub fn handle(&self, value: V) -> R {
7        (self.inner)(value)
8    }
9}
10
11#[cfg(test)]
12mod test {
13    use super::*;
14
15    #[test]
16    fn test_calling_middleware() {
17        let middle = Middleware {
18            inner: |val: i32| val + 2,
19        };
20
21        assert_eq!(middle.handle(50), 52, "Wrong answer. suppose to be 52");
22    }
23}