use crate::api::Result; use theseus::google_ip; use theseus::translation::{ self, TranslationProvider, TranslationRequest, TranslationResponse, TranslationSettings, }; pub fn init() -> tauri::plugin::TauriPlugin { tauri::plugin::Builder::new("translation") .invoke_handler(tauri::generate_handler![ translation_get_settings, translation_update_settings, translation_test_provider, translation_translate, translation_clear_cache, translation_google_ip_pool_size, ]) .build() } #[tauri::command] pub async fn translation_get_settings() -> Result { Ok(translation::get_settings().await?) } #[tauri::command] pub async fn translation_update_settings( settings: TranslationSettings, ) -> Result<()> { Ok(translation::update_settings(settings).await?) } #[tauri::command] pub async fn translation_test_provider( provider: TranslationProvider, ) -> Result { Ok(translation::test_provider(provider).await?) } #[tauri::command] pub async fn translation_translate( request: TranslationRequest, ) -> Result { Ok(translation::translate(request).await?) } #[tauri::command] pub async fn translation_clear_cache() -> Result<()> { Ok(translation::clear_cache().await?) } #[tauri::command] pub async fn translation_google_ip_pool_size() -> usize { google_ip::ip_pool_size().await }