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}