mod backend;
mod config;
mod model_manager;
pub use backend::PaddleOcrBackend;
pub use config::{PaddleLanguage, PaddleOcrConfig};
pub use model_manager::{CacheStats, ModelManager, ModelPaths};
pub const SUPPORTED_LANGUAGES: &[&str] = &[
"ch", "en", "french", "german", "korean", "japan", "chinese_cht", "ta", "te", "ka", "latin", "arabic", "cyrillic", "devanagari", ];
pub fn is_language_supported(lang: &str) -> bool {
SUPPORTED_LANGUAGES.contains(&lang)
}
pub fn map_language_code(kreuzberg_code: &str) -> Option<&'static str> {
match kreuzberg_code {
"ch" | "chi_sim" | "zho" | "zh" | "chinese" => Some("ch"),
"en" | "eng" | "english" => Some("en"),
"fr" | "fra" | "french" => Some("french"),
"de" | "deu" | "german" => Some("german"),
"ko" | "kor" | "korean" => Some("korean"),
"ja" | "jpn" | "japanese" => Some("japan"),
"chi_tra" | "zh_tw" | "zh_hant" => Some("chinese_cht"),
"ta" | "tam" | "tamil" => Some("ta"),
"te" | "tel" | "telugu" => Some("te"),
"ka" | "kan" | "kannada" => Some("ka"),
"ar" | "ara" | "arabic" => Some("arabic"),
"ru" | "rus" | "russian" => Some("cyrillic"),
"hi" | "hin" | "hindi" => Some("devanagari"),
"es" | "spa" | "spanish" | "it" | "ita" | "italian" | "pt" | "por" | "portuguese" | "nl" | "nld" | "dutch"
| "pl" | "pol" | "polish" => Some("latin"),
_ => None,
}
}