Skip to main content

scc_engine/
systems.rs

1//! Engine multi-repo stitching (values; CLI renders).
2
3// trace:exempt reason=internal-detail
4pub fn stitch(
5    members: &[std::path::PathBuf],
6) -> crate::Result<(Vec<scc_store::system::Member>, Vec<scc_store::system::Stitch>)> {
7    let roots: Vec<&std::path::Path> = members.iter().map(|p| p.as_path()).collect();
8    let sys = scc_store::system::System::open(&roots)?;
9    let mut all = sys.stitch_routes()?;
10    all.extend(sys.stitch_topics()?);
11    all.extend(sys.stitch_package_exports()?);
12    Ok((sys.members, all))
13}