use std::path::PathBuf;
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Copy, PartialEq, Eq, Default, Serialize, Deserialize)]
#[serde(rename_all = "snake_case")]
pub enum Language {
#[default]
English,
Latin,
ChineseSimplified,
Japanese,
Korean,
Cyrillic,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Default, Serialize, Deserialize)]
#[serde(rename_all = "lowercase")]
pub enum Backend {
#[default]
Ort,
Tract,
Candle,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(default, deny_unknown_fields)]
pub struct ModelConfig {
pub languages: Vec<Language>,
pub backend: Backend,
pub cache_dir: Option<PathBuf>,
pub registry_owner: Option<String>,
}
impl Default for ModelConfig {
fn default() -> Self {
Self {
languages: vec![Language::English],
backend: Backend::default(),
cache_dir: None,
registry_owner: None,
}
}
}