spacegate_kernel/helper_layers/map_request/
add_extension.rs1use 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}