rust_express/utils/
middleware.rs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
use crate::utils::request::Request;
use futures::future::BoxFuture;
use std::collections::HashMap;

pub type MiddlewareData = HashMap<String, String>;

type Middleware = Box<dyn Fn(&Request, &mut MiddlewareData) -> () + Send + Sync>;
type AsyncMiddleware = Box<
    dyn for<'a> Fn(&'a Request, &'a mut MiddlewareData) -> BoxFuture<'a, ()> + Send + Sync,
>;

pub enum EitherMiddleware {
    Sync(Middleware),
    Async(AsyncMiddleware),
}