pillow_http/
middlewares.rs

1use crate::{request::Request, response::Response};
2
3pub type MiddlewareType = Box<dyn Fn(&Request, &Response)>;
4
5pub struct Middleware {
6    pub cb: MiddlewareType,
7}
8
9impl Middleware {
10    pub fn new<F>(controller: F) -> Middleware
11    where
12        F: Fn(&Request, &Response) + 'static,
13    {
14        let box_cb = Box::new(controller);
15
16        Middleware { cb: box_cb }
17    }
18}
19
20impl Middleware {
21    pub fn use_middleware(&self, request: &Request, response: &Response) {
22        let fun = &self.cb;
23
24        fun(request, response);
25    }
26}