use actix_web::{dev::ServiceRequest, HttpMessage, HttpRequest};
pub trait RequestExt {
fn request_id(&self) -> Option<String>;
fn get_extension<T: Clone + 'static>(&self) -> Option<T>;
}
impl RequestExt for HttpRequest {
fn request_id(&self) -> Option<String> {
self.extensions()
.get::<crate::middleware::request_id::RequestIdExt>()
.map(|ext| ext.0.clone())
}
fn get_extension<T: Clone + 'static>(&self) -> Option<T> {
self.extensions().get::<T>().cloned()
}
}
impl RequestExt for ServiceRequest {
fn request_id(&self) -> Option<String> {
self.extensions()
.get::<crate::middleware::request_id::RequestIdExt>()
.map(|ext| ext.0.clone())
}
fn get_extension<T: Clone + 'static>(&self) -> Option<T> {
self.extensions().get::<T>().cloned()
}
}