rust_express/utils/
middleware.rs

1use crate::utils::request::Request;
2use futures::future::BoxFuture;
3use std::collections::HashMap;
4
5pub type MiddlewareData = HashMap<String, String>;
6
7type Middleware = Box<dyn Fn(&Request, &mut MiddlewareData) -> () + Send + Sync>;
8type AsyncMiddleware = Box<
9    dyn for<'a> Fn(&'a Request, &'a mut MiddlewareData) -> BoxFuture<'a, ()> + Send + Sync,
10>;
11
12pub enum EitherMiddleware {
13    Sync(Middleware),
14    Async(AsyncMiddleware),
15}