From d751bd08bfa36bd8abdcbb4fa466022720094b7d Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Tue, 6 Aug 2019 10:54:51 +0200 Subject: cleanup --- crates/ra_project_model/src/cargo_workspace.rs | 2 +- crates/ra_project_model/src/lib.rs | 9 +++++---- crates/ra_project_model/src/sysroot.rs | 2 +- 3 files changed, 7 insertions(+), 6 deletions(-) (limited to 'crates/ra_project_model') diff --git a/crates/ra_project_model/src/cargo_workspace.rs b/crates/ra_project_model/src/cargo_workspace.rs index 2b06e9e37..712d8818f 100644 --- a/crates/ra_project_model/src/cargo_workspace.rs +++ b/crates/ra_project_model/src/cargo_workspace.rs @@ -167,7 +167,7 @@ impl CargoWorkspace { Ok(CargoWorkspace { packages, targets, workspace_root: meta.workspace_root }) } - pub fn packages<'a>(&'a self) -> impl Iterator + 'a { + pub fn packages<'a>(&'a self) -> impl Iterator + ExactSizeIterator + 'a { self.packages.iter().map(|(id, _pkg)| id) } diff --git a/crates/ra_project_model/src/lib.rs b/crates/ra_project_model/src/lib.rs index 647a1f365..8e81396d4 100644 --- a/crates/ra_project_model/src/lib.rs +++ b/crates/ra_project_model/src/lib.rs @@ -112,8 +112,7 @@ impl ProjectWorkspace { roots } ProjectWorkspace::Cargo { cargo, sysroot } => { - let mut roots = - Vec::with_capacity(cargo.packages().count() + sysroot.crates().count()); + let mut roots = Vec::with_capacity(cargo.packages().len() + sysroot.crates().len()); for pkg in cargo.packages() { let root = pkg.root(&cargo).to_path_buf(); let member = pkg.is_member(&cargo); @@ -127,10 +126,12 @@ impl ProjectWorkspace { } } - pub fn count(&self) -> usize { + pub fn n_packages(&self) -> usize { match self { ProjectWorkspace::Json { project } => project.crates.len(), - ProjectWorkspace::Cargo { cargo, .. } => cargo.packages().count(), + ProjectWorkspace::Cargo { cargo, sysroot } => { + cargo.packages().len() + sysroot.crates().len() + } } } diff --git a/crates/ra_project_model/src/sysroot.rs b/crates/ra_project_model/src/sysroot.rs index 4f6e880dd..3f34d51cc 100644 --- a/crates/ra_project_model/src/sysroot.rs +++ b/crates/ra_project_model/src/sysroot.rs @@ -28,7 +28,7 @@ impl Sysroot { self.by_name("std") } - pub fn crates<'a>(&'a self) -> impl Iterator + 'a { + pub fn crates<'a>(&'a self) -> impl Iterator + ExactSizeIterator + 'a { self.crates.iter().map(|(id, _data)| id) } -- cgit v1.2.3