async_translate/
translator.rs1use crate::{error::TranslationError, options::TranslateOptions};
4use unic_langid::LanguageIdentifier;
5
6#[async_trait::async_trait]
8pub trait Translator: Send + Sync {
9 async fn translate_with_options(
22 &self,
23 text: &str,
24 target_lang: &LanguageIdentifier,
25 source_lang: Option<&LanguageIdentifier>,
26 options: &TranslateOptions,
27 ) -> Result<String, TranslationError>;
28
29 async fn translate(
41 &self,
42 text: &str,
43 target_lang: &LanguageIdentifier,
44 source_lang: Option<&LanguageIdentifier>,
45 ) -> Result<String, TranslationError> {
46 self.translate_with_options(text, target_lang, source_lang, &TranslateOptions::default())
47 .await
48 }
49}