stem_splitter_core/
lib.rs

1mod error;
2mod types;
3
4pub mod core {
5    pub mod audio;
6    pub mod dsp;
7    pub mod engine;
8    pub mod splitter;
9}
10
11pub mod model {
12    pub mod model_manager;
13    pub mod registry;
14}
15
16pub mod io {
17    pub mod crypto;
18    pub mod net;
19    pub mod paths;
20    pub mod progress;
21}
22
23// Public API
24pub use crate::core::splitter::split_file;
25pub use crate::io::progress::{
26    set_download_progress_callback, set_split_progress_callback, SplitProgress,
27};
28pub use crate::model::model_manager::{ensure_model, ModelHandle};
29pub use crate::types::{AudioData, ModelManifest, SplitOptions, SplitResult};
30
31pub fn prepare_model(model_name: &str, manifest_url_override: Option<&str>) -> error::Result<()> {
32    let handle = ensure_model(model_name, manifest_url_override)?;
33    crate::core::engine::preload(&handle)?;
34    Ok(())
35}