pillow-http 0.4.1

http in pillow
Documentation
use crate::{request::Request, response::Response};

pub type MiddlewareType = Box<dyn Fn(&Request, &Response)>;

pub struct Middleware {
    pub cb: MiddlewareType,
}

impl Middleware {
    pub fn new<F>(controller: F) -> Middleware
    where
        F: Fn(&Request, &Response) + 'static,
    {
        let box_cb = Box::new(controller);

        Middleware { cb: box_cb }
    }
}

impl Middleware {
    pub fn use_middleware(&self, request: &Request, response: &Response) {
        let fun = &self.cb;

        fun(request, response);
    }
}