Skip to main content

stem_splitter_core/io/
paths.rs

1use crate::error::{Result, StemError};
2use directories::ProjectDirs;
3use std::path::PathBuf;
4
5pub fn models_cache_dir() -> Result<PathBuf> {
6    let proj = ProjectDirs::from("dev", "StemSplitter", "stem-splitter-core")
7        .ok_or(StemError::CacheDirUnavailable)?;
8    let mut p = PathBuf::from(proj.cache_dir());
9    p.push("models");
10    Ok(p)
11}
12
13pub fn ep_cache_file() -> Result<PathBuf> {
14    let proj = ProjectDirs::from("dev", "StemSplitter", "stem-splitter-core")
15        .ok_or(StemError::CacheDirUnavailable)?;
16    let mut p = PathBuf::from(proj.cache_dir());
17    p.push("ep_health_v1.json");
18    Ok(p)
19}
20
21pub fn ep_probe_cache_file() -> Result<PathBuf> {
22    let proj = ProjectDirs::from("dev", "StemSplitter", "stem-splitter-core")
23        .ok_or(StemError::CacheDirUnavailable)?;
24    let mut p = PathBuf::from(proj.cache_dir());
25    p.push("ep_probe_success_v1.json");
26    Ok(p)
27}
28
29pub fn coreml_cache_dir() -> Result<PathBuf> {
30    let proj = ProjectDirs::from("dev", "StemSplitter", "stem-splitter-core")
31        .ok_or(StemError::CacheDirUnavailable)?;
32    let mut p = PathBuf::from(proj.cache_dir());
33    p.push("coreml");
34    Ok(p)
35}