vornix_core/response/
language.rs1use actix_web::dev::Payload;
2use actix_web::{FromRequest, HttpRequest};
3use futures::future::{ready, Ready};
4
5pub struct LanguageExtractor(pub String);
6
7impl FromRequest for LanguageExtractor {
8 type Error = actix_web::Error;
9 type Future = Ready<Result<Self, Self::Error>>;
10
11 fn from_request(req: &HttpRequest, _payload: &mut Payload) -> Self::Future {
12 let language = req
14 .headers()
15 .get("Accept-Language")
16 .and_then(|lang| lang.to_str().ok())
17 .unwrap_or("en")
18 .to_string();
19
20 ready(Ok(LanguageExtractor(language))) }
23}