use std::cell::RefCell;
use std::collections::HashMap;
-use core::{Source, SourceId, SourceMap, Summary, Dependency, PackageId, Package};
+use core::{Source, SourceId, SourceMap, Summary, Dependency, PackageId};
use core::PackageSet;
use util::{Config, profile};
use util::errors::{CargoResult, CargoResultExt};
}
}
-impl Registry for Vec<Summary> {
- fn query(&mut self,
- dep: &Dependency,
- f: &mut FnMut(Summary)) -> CargoResult<()> {
- for summary in self.iter().filter(|summary| dep.matches(*summary)) {
- f(summary.clone());
- }
- Ok(())
- }
-}
-
-impl Registry for Vec<Package> {
- fn query(&mut self,
- dep: &Dependency,
- f: &mut FnMut(Summary)) -> CargoResult<()> {
- for summary in self.iter()
- .map(|p| p.summary())
- .filter(|summary| dep.matches(*summary)) {
- f(summary.clone());
- }
- Ok(())
- }
-}
-
impl<'a, T: ?Sized + Registry + 'a> Registry for Box<T> {
fn query(&mut self,
dep: &Dependency,
fn query(&mut self,
dep: &Dependency,
f: &mut FnMut(Summary)) -> CargoResult<()> {
- self.packages.query(dep, f)
+ for s in self.packages.iter().map(|p| p.summary()) {
+ if dep.matches(s) {
+ f(s.clone())
+ }
+ }
+ Ok(())
}
}