use std::path::PathBuf; use thread_worker::Worker; use crate::Result; pub use ra_project_model::{ CargoWorkspace, Package, ProjectWorkspace, Sysroot, Target, TargetKind, }; pub fn workspace_loader(with_sysroot: bool) -> Worker> { Worker::>::spawn( "workspace loader", 1, move |input_receiver, output_sender| { input_receiver .into_iter() .map(|path| ProjectWorkspace::discover_with_sysroot(path.as_path(), with_sysroot)) .try_for_each(|it| output_sender.send(it)) .unwrap() }, ) }