vornix-core 0.1.0

Librería de utilidades para microservicios en Rust, incluyendo conexión asincrónica a bases de datos, manejo de respuestas y más.
Documentation
// use actix_web::dev::{Service, ServiceRequest, ServiceResponse, Transform};
// use futures::future::{ok, Ready};
// use std::task::{Context, Poll};

// pub struct Language;

// impl<S, B> Transform<S, ServiceRequest> for Language
// where
//     S: Service<ServiceRequest, Response = ServiceResponse<B>, Error = actix_web::Error>,
//     S::Future: 'static,
// {
//     type Response = ServiceResponse<B>;
//     type Error = actix_web::Error;
//     type Transform = LanguageMiddleware<S>;
//     type InitError = ();
//     type Future = Ready<Result<Self::Transform, Self::InitError>>;

//     fn new_transform(&self, service: S) -> Self::Future {
//         ok(LanguageMiddleware { service })
//     }
// }

// pub struct LanguageMiddleware<S> {
//     service: S,
// }

// impl<S, B> Service<ServiceRequest> for LanguageMiddleware<S>
// where
//     S: Service<ServiceRequest, Response = ServiceResponse<B>, Error = actix_web::Error>,
//     S::Future: 'static,
// {
//     type Response = ServiceResponse<B>;
//     type Error = actix_web::Error;
//     type Future = S::Future;

//     fn poll_ready(&self, cx: &mut Context<'_>) -> Poll<Result<(), Self::Error>> {
//         self.service.poll_ready(cx)
//     }

//     fn call(&self, mut req: ServiceRequest) -> Self::Future {
//         if let Some(lang) = req.headers().get("Accept-Language") {
//             if let Ok(lang_str) = lang.to_str() {
//                 req.extensions_mut().insert(lang_str.to_string());
//             }
//         }
//         self.service.call(req)
//     }
// }