stem_splitter_core/io/
paths.rs1use 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}