use crate::config::Config;
use std::path::PathBuf;
pub struct ModelManager;
impl ModelManager {
pub fn models_dir() -> PathBuf {
Config::global_models_dir()
}
pub fn model_dir(name: &str) -> PathBuf {
Self::models_dir().join(name)
}
pub fn model_path(name: &str) -> PathBuf {
Self::model_dir(name).join("model.onnx")
}
pub fn tokenizer_path(name: &str) -> PathBuf {
Self::model_dir(name).join("tokenizer.json")
}
pub fn is_installed(name: &str) -> bool {
Self::is_installed_in(name, &Self::models_dir())
}
pub fn is_installed_in(name: &str, base: &std::path::Path) -> bool {
base.join(name).join("model.onnx").exists()
&& base.join(name).join("tokenizer.json").exists()
}
}
#[cfg(test)]
#[path = "tests/models_tests.rs"]
mod tests;