spacegate_kernel/helper_layers/map_request/
add_extension.rs

1use std::any::Any;
2
3use crate::{extension::Reflect, SgBody};
4use hyper::Request;
5
6pub fn add_extension<E: Any + Clone + Send + Sync + 'static>(extension: E, reflect: bool) -> (impl (Fn(Request<SgBody>) -> Request<SgBody>) + Clone) {
7    move |mut req: Request<SgBody>| {
8        req.extensions_mut().insert(extension.clone());
9        if reflect {
10            req.extensions_mut().get_mut::<Reflect>().map(|r| r.insert(extension.clone()));
11        }
12        req
13    }
14}