use actix_web::{ HttpMessage, HttpRequest, dev::{ServiceRequest, ServiceResponse}, guard::GuardContext, }; use crate::Session; pub trait SessionExt { fn get_session(&self) -> Session; } impl SessionExt for HttpRequest { fn get_session(&self) -> Session { Session::get_session(&mut self.extensions_mut()) } } impl SessionExt for ServiceRequest { fn get_session(&self) -> Session { Session::get_session(&mut self.extensions_mut()) } } impl SessionExt for ServiceResponse { fn get_session(&self) -> Session { self.request().get_session() } } impl SessionExt for GuardContext<'_> { fn get_session(&self) -> Session { Session::get_session(&mut self.req_data_mut()) } }