Skip to main content

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