deeplx 2.2.6

A Rust package for unlimited DeepL translation
Documentation
use crate::server::{biz::translate::TranslateUsecase, conf::Config, pkgs::Error};

use axum::{
    extract::{FromRef, FromRequestParts},
    http::request::Parts,
};
use std::sync::{Arc, RwLock};

#[derive(Clone, FromRef)]
pub struct AppState {
    pub translate_uc: Arc<TranslateUsecase>,
    pub config: Arc<RwLock<Config>>,
}

impl<S> FromRequestParts<S> for AppState
where
    Self: FromRef<S>,
    S: Send + Sync,
{
    type Rejection = Error;

    async fn from_request_parts(_parts: &mut Parts, state: &S) -> Result<Self, Self::Rejection> {
        Ok(Self::from_ref(state))
    }
}