Files
rust/crates/ra_lsp_server/src/project_model.rs

24 lines
665 B
Rust
Raw Normal View History

use std::path::PathBuf;
2019-01-10 22:21:14 +03:00
2018-12-18 12:45:20 +03:00
use thread_worker::{WorkerHandle, Worker};
2018-12-18 12:45:20 +03:00
use crate::Result;
2018-09-02 11:37:16 +03:00
pub use ra_project_model::{
ProjectWorkspace, CargoWorkspace, Package, Target, TargetKind, Sysroot,
2019-01-10 22:21:14 +03:00
};
2019-01-10 20:13:08 +03:00
pub fn workspace_loader() -> (Worker<PathBuf, Result<ProjectWorkspace>>, WorkerHandle) {
thread_worker::spawn::<PathBuf, Result<ProjectWorkspace>, _>(
"workspace loader",
1,
|input_receiver, output_sender| {
input_receiver
.into_iter()
.map(|path| ProjectWorkspace::discover(path.as_path()))
.try_for_each(|it| output_sender.send(it))
.unwrap()
},
)
}