1use crate::{App, ErrorMiddleware, Middleware, Router};
2
3pub fn collect_middleware<'a, T>(app: &'a mut App<T>) -> Vec<Middleware<T>> {
4 app.routers.iter_mut().fold(
5 vec![],
6 |mut acc: Vec<Middleware<T>>, router: &mut Router<T>| {
7 acc.append(&mut router.middleware);
8
9 acc
10 },
11 )
12}
13
14pub fn collect_error_middleware<'a, T>(app: &'a mut App<T>) -> Vec<ErrorMiddleware<T>> {
15 app.routers.iter_mut().fold(
16 vec![],
17 |mut acc: Vec<ErrorMiddleware<T>>, router: &mut Router<T>| {
18 acc.append(&mut router.error_middleware);
19
20 acc
21 },
22 )
23}