From 6acedd8a728cc10eef2ae01f96ed6009962dba66 Mon Sep 17 00:00:00 2001 From: Dale Wijnand Date: Fri, 4 May 2018 14:15:48 +0100 Subject: [PATCH] Re-organise Source impls method definition order Optimised for minimised PR diff, and thus reviewability --- src/cargo/core/source/mod.rs | 10 +++++----- src/cargo/sources/directory.rs | 18 +++++++++--------- src/cargo/sources/git/source.rs | 14 +++++++------- src/cargo/sources/path.rs | 18 +++++++++--------- src/cargo/sources/registry/mod.rs | 24 ++++++++++++------------ src/cargo/sources/replaced.rs | 24 ++++++++++++------------ 6 files changed, 54 insertions(+), 54 deletions(-) diff --git a/src/cargo/core/source/mod.rs b/src/cargo/core/source/mod.rs index 1c6eed633..c36480aab 100644 --- a/src/cargo/core/source/mod.rs +++ b/src/cargo/core/source/mod.rs @@ -64,11 +64,6 @@ pub trait Source { } impl<'a, T: Source + ?Sized + 'a> Source for Box { - /// Forwards to `Source::source_id` - fn source_id(&self) -> &SourceId { - (**self).source_id() - } - /// Forwards to `Source::supports_checksums` fn supports_checksums(&self) -> bool { (**self).supports_checksums() @@ -84,6 +79,11 @@ impl<'a, T: Source + ?Sized + 'a> Source for Box { (**self).query(dep, f) } + /// Forwards to `Source::source_id` + fn source_id(&self) -> &SourceId { + (**self).source_id() + } + /// Forwards to `Source::update` fn update(&mut self) -> CargoResult<()> { (**self).update() diff --git a/src/cargo/sources/directory.rs b/src/cargo/sources/directory.rs index 647c8b475..bf20a270d 100644 --- a/src/cargo/sources/directory.rs +++ b/src/cargo/sources/directory.rs @@ -45,8 +45,13 @@ impl<'cfg> Debug for DirectorySource<'cfg> { } impl<'cfg> Source for DirectorySource<'cfg> { - fn source_id(&self) -> &SourceId { - &self.source_id + fn query(&mut self, dep: &Dependency, f: &mut FnMut(Summary)) -> CargoResult<()> { + let packages = self.packages.values().map(|p| &p.0); + let matches = packages.filter(|pkg| dep.matches(pkg.summary())); + for summary in matches.map(|pkg| pkg.summary().clone()) { + f(summary); + } + Ok(()) } fn supports_checksums(&self) -> bool { @@ -57,13 +62,8 @@ impl<'cfg> Source for DirectorySource<'cfg> { true } - fn query(&mut self, dep: &Dependency, f: &mut FnMut(Summary)) -> CargoResult<()> { - let packages = self.packages.values().map(|p| &p.0); - let matches = packages.filter(|pkg| dep.matches(pkg.summary())); - for summary in matches.map(|pkg| pkg.summary().clone()) { - f(summary); - } - Ok(()) + fn source_id(&self) -> &SourceId { + &self.source_id } fn update(&mut self) -> CargoResult<()> { diff --git a/src/cargo/sources/git/source.rs b/src/cargo/sources/git/source.rs index dfdf58996..f940eb4a7 100644 --- a/src/cargo/sources/git/source.rs +++ b/src/cargo/sources/git/source.rs @@ -125,8 +125,11 @@ impl<'cfg> Debug for GitSource<'cfg> { } impl<'cfg> Source for GitSource<'cfg> { - fn source_id(&self) -> &SourceId { - &self.source_id + fn query(&mut self, dep: &Dependency, f: &mut FnMut(Summary)) -> CargoResult<()> { + let src = self.path_source + .as_mut() + .expect("BUG: update() must be called before query()"); + src.query(dep, f) } fn supports_checksums(&self) -> bool { @@ -137,11 +140,8 @@ impl<'cfg> Source for GitSource<'cfg> { true } - fn query(&mut self, dep: &Dependency, f: &mut FnMut(Summary)) -> CargoResult<()> { - let src = self.path_source - .as_mut() - .expect("BUG: update() must be called before query()"); - src.query(dep, f) + fn source_id(&self) -> &SourceId { + &self.source_id } fn update(&mut self) -> CargoResult<()> { diff --git a/src/cargo/sources/path.rs b/src/cargo/sources/path.rs index e30b8103e..c7a0fdf75 100644 --- a/src/cargo/sources/path.rs +++ b/src/cargo/sources/path.rs @@ -476,8 +476,13 @@ impl<'cfg> Debug for PathSource<'cfg> { } impl<'cfg> Source for PathSource<'cfg> { - fn source_id(&self) -> &SourceId { - &self.source_id + fn query(&mut self, dep: &Dependency, f: &mut FnMut(Summary)) -> CargoResult<()> { + for s in self.packages.iter().map(|p| p.summary()) { + if dep.matches(s) { + f(s.clone()) + } + } + Ok(()) } fn supports_checksums(&self) -> bool { @@ -488,13 +493,8 @@ impl<'cfg> Source for PathSource<'cfg> { false } - fn query(&mut self, dep: &Dependency, f: &mut FnMut(Summary)) -> CargoResult<()> { - for s in self.packages.iter().map(|p| p.summary()) { - if dep.matches(s) { - f(s.clone()) - } - } - Ok(()) + fn source_id(&self) -> &SourceId { + &self.source_id } fn update(&mut self) -> CargoResult<()> { diff --git a/src/cargo/sources/registry/mod.rs b/src/cargo/sources/registry/mod.rs index d9571c23d..2e6f63228 100644 --- a/src/cargo/sources/registry/mod.rs +++ b/src/cargo/sources/registry/mod.rs @@ -421,18 +421,6 @@ impl<'cfg> RegistrySource<'cfg> { } impl<'cfg> Source for RegistrySource<'cfg> { - fn source_id(&self) -> &SourceId { - &self.source_id - } - - fn supports_checksums(&self) -> bool { - true - } - - fn requires_precise(&self) -> bool { - false - } - fn query(&mut self, dep: &Dependency, f: &mut FnMut(Summary)) -> CargoResult<()> { // If this is a precise dependency, then it came from a lockfile and in // theory the registry is known to contain this version. If, however, we @@ -454,6 +442,18 @@ impl<'cfg> Source for RegistrySource<'cfg> { self.index.query(dep, &mut *self.ops, f) } + fn supports_checksums(&self) -> bool { + true + } + + fn requires_precise(&self) -> bool { + false + } + + fn source_id(&self) -> &SourceId { + &self.source_id + } + fn update(&mut self) -> CargoResult<()> { // If we have an imprecise version then we don't know what we're going // to look for, so we always attempt to perform an update here. diff --git a/src/cargo/sources/replaced.rs b/src/cargo/sources/replaced.rs index 9d2ea2c41..16d867c17 100644 --- a/src/cargo/sources/replaced.rs +++ b/src/cargo/sources/replaced.rs @@ -22,18 +22,6 @@ impl<'cfg> ReplacedSource<'cfg> { } impl<'cfg> Source for ReplacedSource<'cfg> { - fn source_id(&self) -> &SourceId { - &self.to_replace - } - - fn supports_checksums(&self) -> bool { - self.inner.supports_checksums() - } - - fn requires_precise(&self) -> bool { - self.inner.requires_precise() - } - fn query(&mut self, dep: &Dependency, f: &mut FnMut(Summary)) -> CargoResult<()> { let (replace_with, to_replace) = (&self.replace_with, &self.to_replace); let dep = dep.clone().map_source(to_replace, replace_with); @@ -47,6 +35,18 @@ impl<'cfg> Source for ReplacedSource<'cfg> { Ok(()) } + fn supports_checksums(&self) -> bool { + self.inner.supports_checksums() + } + + fn requires_precise(&self) -> bool { + self.inner.requires_precise() + } + + fn source_id(&self) -> &SourceId { + &self.to_replace + } + fn update(&mut self) -> CargoResult<()> { self.inner .update() -- 2.30.2