mirror of https://github.com/rust-lang/cargo
Rename NameVer -> PackageId
This commit is contained in:
parent
f621ddb774
commit
61c95b750f
|
@ -1,10 +1,11 @@
|
||||||
use std::fmt;
|
use std::fmt;
|
||||||
use std::fmt::{Show,Formatter};
|
use std::fmt::{Show,Formatter};
|
||||||
|
use semver;
|
||||||
use semver::Version;
|
use semver::Version;
|
||||||
use serialize::{Encoder,Decoder,Encodable};
|
use serialize::{Encoder,Decoder,Encodable};
|
||||||
use core::{
|
use core::{
|
||||||
Dependency,
|
Dependency,
|
||||||
NameVer,
|
PackageId,
|
||||||
Summary
|
Summary
|
||||||
};
|
};
|
||||||
use core::dependency::SerializedDependency;
|
use core::dependency::SerializedDependency;
|
||||||
|
@ -101,12 +102,16 @@ impl Manifest {
|
||||||
&self.summary
|
&self.summary
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn get_package_id<'a>(&'a self) -> &'a PackageId {
|
||||||
|
self.get_summary().get_package_id()
|
||||||
|
}
|
||||||
|
|
||||||
pub fn get_name<'a>(&'a self) -> &'a str {
|
pub fn get_name<'a>(&'a self) -> &'a str {
|
||||||
self.get_summary().get_name_ver().get_name()
|
self.get_package_id().get_name()
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn get_version<'a>(&'a self) -> &'a Version {
|
pub fn get_version<'a>(&'a self) -> &'a Version {
|
||||||
self.get_summary().get_name_ver().get_version()
|
self.get_summary().get_package_id().get_version()
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn get_authors<'a>(&'a self) -> &'a [String] {
|
pub fn get_authors<'a>(&'a self) -> &'a [String] {
|
||||||
|
@ -169,6 +174,9 @@ impl Target {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* TODO:
|
||||||
|
* - Figure out if this is needed and/or if it should be moved somewhere else
|
||||||
|
*/
|
||||||
#[deriving(Decodable,Encodable,PartialEq,Clone,Show)]
|
#[deriving(Decodable,Encodable,PartialEq,Clone,Show)]
|
||||||
pub struct Project {
|
pub struct Project {
|
||||||
pub name: String,
|
pub name: String,
|
||||||
|
@ -177,8 +185,8 @@ pub struct Project {
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Project {
|
impl Project {
|
||||||
pub fn to_name_ver(&self) -> NameVer {
|
pub fn to_package_id(&self) -> PackageId {
|
||||||
NameVer::new(self.name.as_slice(), self.version.as_slice())
|
PackageId::new(self.name.as_slice(), semver::parse(self.version.as_slice()).unwrap())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,3 @@
|
||||||
pub use self::namever::{
|
|
||||||
NameVer
|
|
||||||
};
|
|
||||||
|
|
||||||
pub use self::registry::{
|
pub use self::registry::{
|
||||||
Registry,
|
Registry,
|
||||||
};
|
};
|
||||||
|
@ -18,6 +14,10 @@ pub use self::package::{
|
||||||
PackageSet
|
PackageSet
|
||||||
};
|
};
|
||||||
|
|
||||||
|
pub use self::package_id::{
|
||||||
|
PackageId
|
||||||
|
};
|
||||||
|
|
||||||
pub use self::source::{
|
pub use self::source::{
|
||||||
Source
|
Source
|
||||||
};
|
};
|
||||||
|
@ -30,9 +30,9 @@ pub use self::dependency::Dependency;
|
||||||
pub use self::version_req::VersionReq;
|
pub use self::version_req::VersionReq;
|
||||||
|
|
||||||
pub mod errors;
|
pub mod errors;
|
||||||
pub mod namever;
|
|
||||||
pub mod source;
|
pub mod source;
|
||||||
pub mod package;
|
pub mod package;
|
||||||
|
pub mod package_id;
|
||||||
pub mod dependency;
|
pub mod dependency;
|
||||||
pub mod manifest;
|
pub mod manifest;
|
||||||
pub mod resolver;
|
pub mod resolver;
|
||||||
|
|
|
@ -1,48 +0,0 @@
|
||||||
use semver;
|
|
||||||
use std::fmt;
|
|
||||||
use std::fmt::{Show,Formatter};
|
|
||||||
use serialize::{
|
|
||||||
Encodable,
|
|
||||||
Encoder,
|
|
||||||
Decodable,
|
|
||||||
Decoder
|
|
||||||
};
|
|
||||||
|
|
||||||
#[deriving(Clone,PartialEq,PartialOrd)]
|
|
||||||
pub struct NameVer {
|
|
||||||
name: String,
|
|
||||||
version: semver::Version
|
|
||||||
}
|
|
||||||
|
|
||||||
impl NameVer {
|
|
||||||
pub fn new(name: &str, version: &str) -> NameVer {
|
|
||||||
NameVer { name: name.to_str(), version: semver::parse(version.as_slice()).unwrap() }
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn get_name<'a>(&'a self) -> &'a str {
|
|
||||||
self.name.as_slice()
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn get_version<'a>(&'a self) -> &'a semver::Version {
|
|
||||||
&self.version
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
impl Show for NameVer {
|
|
||||||
fn fmt(&self, f: &mut Formatter) -> fmt::Result {
|
|
||||||
write!(f, "{} v{}", self.name, self.version)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
impl<E, D: Decoder<E>> Decodable<D,E> for NameVer {
|
|
||||||
fn decode(d: &mut D) -> Result<NameVer, E> {
|
|
||||||
let vector: Vec<String> = try!(Decodable::decode(d));
|
|
||||||
Ok(NameVer { name: vector.get(0).clone(), version: semver::parse(vector.get(1).as_slice()).unwrap() })
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
impl<E, S: Encoder<E>> Encodable<S,E> for NameVer {
|
|
||||||
fn encode(&self, e: &mut S) -> Result<(), E> {
|
|
||||||
(vec!(self.name.clone(), self.version.to_str())).encode(e)
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -4,9 +4,9 @@ use std::fmt::{Show,Formatter};
|
||||||
use std::path::Path;
|
use std::path::Path;
|
||||||
use semver::Version;
|
use semver::Version;
|
||||||
use core::{
|
use core::{
|
||||||
NameVer,
|
|
||||||
Dependency,
|
Dependency,
|
||||||
Manifest,
|
Manifest,
|
||||||
|
PackageId,
|
||||||
Registry,
|
Registry,
|
||||||
Target,
|
Target,
|
||||||
Summary
|
Summary
|
||||||
|
@ -37,11 +37,11 @@ impl<E, S: Encoder<E>> Encodable<S, E> for Package {
|
||||||
fn encode(&self, s: &mut S) -> Result<(), E> {
|
fn encode(&self, s: &mut S) -> Result<(), E> {
|
||||||
let manifest = self.get_manifest();
|
let manifest = self.get_manifest();
|
||||||
let summary = manifest.get_summary();
|
let summary = manifest.get_summary();
|
||||||
let name_ver = summary.get_name_ver();
|
let package_id = summary.get_package_id();
|
||||||
|
|
||||||
SerializedPackage {
|
SerializedPackage {
|
||||||
name: name_ver.get_name().to_str(),
|
name: package_id.get_name().to_str(),
|
||||||
version: name_ver.get_version().to_str(),
|
version: package_id.get_version().to_str(),
|
||||||
dependencies: summary.get_dependencies().iter().map(|d| SerializedDependency::from_dependency(d)).collect(),
|
dependencies: summary.get_dependencies().iter().map(|d| SerializedDependency::from_dependency(d)).collect(),
|
||||||
authors: Vec::from_slice(manifest.get_authors()),
|
authors: Vec::from_slice(manifest.get_authors()),
|
||||||
targets: Vec::from_slice(manifest.get_targets()),
|
targets: Vec::from_slice(manifest.get_targets()),
|
||||||
|
@ -70,12 +70,16 @@ impl Package {
|
||||||
self.manifest.get_summary()
|
self.manifest.get_summary()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn get_package_id<'a>(&'a self) -> &'a PackageId {
|
||||||
|
self.manifest.get_package_id()
|
||||||
|
}
|
||||||
|
|
||||||
pub fn get_name<'a>(&'a self) -> &'a str {
|
pub fn get_name<'a>(&'a self) -> &'a str {
|
||||||
self.get_manifest().get_name()
|
self.get_package_id().get_name()
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn get_version<'a>(&'a self) -> &'a Version {
|
pub fn get_version<'a>(&'a self) -> &'a Version {
|
||||||
self.get_manifest().get_version()
|
self.get_package_id().get_version()
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn get_dependencies<'a>(&'a self) -> &'a [Dependency] {
|
pub fn get_dependencies<'a>(&'a self) -> &'a [Dependency] {
|
||||||
|
@ -97,15 +101,11 @@ impl Package {
|
||||||
pub fn get_absolute_target_dir(&self) -> Path {
|
pub fn get_absolute_target_dir(&self) -> Path {
|
||||||
self.get_root().join(self.get_target_dir())
|
self.get_root().join(self.get_target_dir())
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn is_for_name_ver(&self, name_ver: &NameVer) -> bool {
|
|
||||||
self.get_name() == name_ver.get_name() && self.get_version() == name_ver.get_version()
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Show for Package {
|
impl Show for Package {
|
||||||
fn fmt(&self, f: &mut Formatter) -> fmt::Result {
|
fn fmt(&self, f: &mut Formatter) -> fmt::Result {
|
||||||
write!(f, "{}", self.get_summary().get_name_ver())
|
write!(f, "{}", self.get_summary().get_package_id())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,70 @@
|
||||||
|
use semver;
|
||||||
|
use std::fmt;
|
||||||
|
use std::fmt::{Show,Formatter};
|
||||||
|
use serialize::{
|
||||||
|
Encodable,
|
||||||
|
Encoder,
|
||||||
|
Decodable,
|
||||||
|
Decoder
|
||||||
|
};
|
||||||
|
|
||||||
|
trait ToVersion {
|
||||||
|
fn to_version(self) -> Option<semver::Version>;
|
||||||
|
}
|
||||||
|
|
||||||
|
impl ToVersion for semver::Version {
|
||||||
|
fn to_version(self) -> Option<semver::Version> {
|
||||||
|
Some(self)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl<'a> ToVersion for &'a str {
|
||||||
|
fn to_version(self) -> Option<semver::Version> {
|
||||||
|
semver::parse(self)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[deriving(Clone,PartialEq,PartialOrd)]
|
||||||
|
pub struct PackageId {
|
||||||
|
name: String,
|
||||||
|
version: semver::Version
|
||||||
|
}
|
||||||
|
|
||||||
|
impl PackageId {
|
||||||
|
pub fn new<T: ToVersion>(name: &str, version: T) -> PackageId {
|
||||||
|
PackageId {
|
||||||
|
name: name.to_str(),
|
||||||
|
version: version.to_version().unwrap()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn get_name<'a>(&'a self) -> &'a str {
|
||||||
|
self.name.as_slice()
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn get_version<'a>(&'a self) -> &'a semver::Version {
|
||||||
|
&self.version
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Show for PackageId {
|
||||||
|
fn fmt(&self, f: &mut Formatter) -> fmt::Result {
|
||||||
|
write!(f, "{} v{}", self.name, self.version)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl<E, D: Decoder<E>> Decodable<D,E> for PackageId {
|
||||||
|
fn decode(d: &mut D) -> Result<PackageId, E> {
|
||||||
|
let vector: Vec<String> = try!(Decodable::decode(d));
|
||||||
|
|
||||||
|
Ok(PackageId::new(
|
||||||
|
vector.get(0).as_slice(),
|
||||||
|
semver::parse(vector.get(1).as_slice()).unwrap()))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl<E, S: Encoder<E>> Encodable<S,E> for PackageId {
|
||||||
|
fn encode(&self, e: &mut S) -> Result<(), E> {
|
||||||
|
(vec!(self.name.clone(), self.version.to_str())).encode(e)
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,7 +1,7 @@
|
||||||
use std::collections::HashMap;
|
use std::collections::HashMap;
|
||||||
use core::{
|
use core::{
|
||||||
Dependency,
|
Dependency,
|
||||||
NameVer,
|
PackageId,
|
||||||
Summary,
|
Summary,
|
||||||
Registry
|
Registry
|
||||||
};
|
};
|
||||||
|
@ -11,7 +11,7 @@ use util::result::CargoResult;
|
||||||
* - The correct input here is not a registry. Resolves should be performable
|
* - The correct input here is not a registry. Resolves should be performable
|
||||||
* on package summaries vs. the packages themselves.
|
* on package summaries vs. the packages themselves.
|
||||||
*/
|
*/
|
||||||
pub fn resolve(deps: &[Dependency], registry: &Registry) -> CargoResult<Vec<NameVer>> {
|
pub fn resolve(deps: &[Dependency], registry: &Registry) -> CargoResult<Vec<PackageId>> {
|
||||||
let mut remaining = Vec::from_slice(deps);
|
let mut remaining = Vec::from_slice(deps);
|
||||||
let mut resolve = HashMap::<&str, &Summary>::new();
|
let mut resolve = HashMap::<&str, &Summary>::new();
|
||||||
|
|
||||||
|
@ -19,7 +19,7 @@ pub fn resolve(deps: &[Dependency], registry: &Registry) -> CargoResult<Vec<Name
|
||||||
let curr = match remaining.pop() {
|
let curr = match remaining.pop() {
|
||||||
Some(curr) => curr,
|
Some(curr) => curr,
|
||||||
None => {
|
None => {
|
||||||
return Ok(resolve.values().map(|summary| summary.get_name_ver().clone()).collect());
|
return Ok(resolve.values().map(|summary| summary.get_package_id().clone()).collect());
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -50,7 +50,7 @@ mod test {
|
||||||
|
|
||||||
use core::{
|
use core::{
|
||||||
Dependency,
|
Dependency,
|
||||||
NameVer,
|
PackageId,
|
||||||
Summary
|
Summary
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -62,17 +62,17 @@ mod test {
|
||||||
($name:expr => $($deps:expr),+) => (
|
($name:expr => $($deps:expr),+) => (
|
||||||
{
|
{
|
||||||
let d: Vec<Dependency> = vec!($($deps),+).iter().map(|s| Dependency::parse(*s, "1.0.0").unwrap()).collect();
|
let d: Vec<Dependency> = vec!($($deps),+).iter().map(|s| Dependency::parse(*s, "1.0.0").unwrap()).collect();
|
||||||
Summary::new(&NameVer::new($name, "1.0.0"), d.as_slice())
|
Summary::new(&PackageId::new($name, "1.0.0"), d.as_slice())
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
($name:expr) => (
|
($name:expr) => (
|
||||||
Summary::new(&NameVer::new($name, "1.0.0"), [])
|
Summary::new(&PackageId::new($name, "1.0.0"), [])
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
fn pkg(name: &str) -> Summary {
|
fn pkg(name: &str) -> Summary {
|
||||||
Summary::new(&NameVer::new(name, "1.0.0"), &[])
|
Summary::new(&PackageId::new(name, "1.0.0"), &[])
|
||||||
}
|
}
|
||||||
|
|
||||||
fn dep(name: &str) -> Dependency {
|
fn dep(name: &str) -> Dependency {
|
||||||
|
@ -83,9 +83,9 @@ mod test {
|
||||||
pkgs
|
pkgs
|
||||||
}
|
}
|
||||||
|
|
||||||
fn names(names: &[&'static str]) -> Vec<NameVer> {
|
fn names(names: &[&'static str]) -> Vec<PackageId> {
|
||||||
names.iter()
|
names.iter()
|
||||||
.map(|name| NameVer::new(*name, "1.0.0"))
|
.map(|name| PackageId::new(*name, "1.0.0"))
|
||||||
.collect()
|
.collect()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
use core::{Summary,NameVer,Package};
|
use core::{Summary,Package,PackageId};
|
||||||
use util::CargoResult;
|
use util::CargoResult;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -25,7 +25,7 @@ pub trait Source {
|
||||||
* The download method fetches the full package for each name and
|
* The download method fetches the full package for each name and
|
||||||
* version specified.
|
* version specified.
|
||||||
*/
|
*/
|
||||||
fn download(&self, packages: &[NameVer]) -> CargoResult<()>;
|
fn download(&self, packages: &[PackageId]) -> CargoResult<()>;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The get method returns the Path of each specified package on the
|
* The get method returns the Path of each specified package on the
|
||||||
|
@ -33,7 +33,7 @@ pub trait Source {
|
||||||
* and that the packages are already locally available on the file
|
* and that the packages are already locally available on the file
|
||||||
* system.
|
* system.
|
||||||
*/
|
*/
|
||||||
fn get(&self, packages: &[NameVer]) -> CargoResult<Vec<Package>>;
|
fn get(&self, packages: &[PackageId]) -> CargoResult<Vec<Package>>;
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Source for Vec<Box<Source>> {
|
impl Source for Vec<Box<Source>> {
|
||||||
|
@ -56,7 +56,7 @@ impl Source for Vec<Box<Source>> {
|
||||||
Ok(ret)
|
Ok(ret)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn download(&self, packages: &[NameVer]) -> CargoResult<()> {
|
fn download(&self, packages: &[PackageId]) -> CargoResult<()> {
|
||||||
for source in self.iter() {
|
for source in self.iter() {
|
||||||
try!(source.download(packages));
|
try!(source.download(packages));
|
||||||
}
|
}
|
||||||
|
@ -64,7 +64,7 @@ impl Source for Vec<Box<Source>> {
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
fn get(&self, packages: &[NameVer]) -> CargoResult<Vec<Package>> {
|
fn get(&self, packages: &[PackageId]) -> CargoResult<Vec<Package>> {
|
||||||
let mut ret = Vec::new();
|
let mut ret = Vec::new();
|
||||||
|
|
||||||
for source in self.iter() {
|
for source in self.iter() {
|
||||||
|
|
|
@ -1,33 +1,33 @@
|
||||||
use semver::Version;
|
use semver::Version;
|
||||||
use core::{
|
use core::{
|
||||||
Dependency,
|
Dependency,
|
||||||
NameVer
|
PackageId
|
||||||
};
|
};
|
||||||
|
|
||||||
#[deriving(Show,Clone,PartialEq)]
|
#[deriving(Show,Clone,PartialEq)]
|
||||||
pub struct Summary {
|
pub struct Summary {
|
||||||
name_ver: NameVer,
|
package_id: PackageId,
|
||||||
dependencies: Vec<Dependency>
|
dependencies: Vec<Dependency>
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Summary {
|
impl Summary {
|
||||||
pub fn new(name_ver: &NameVer, dependencies: &[Dependency]) -> Summary {
|
pub fn new(pkg_id: &PackageId, dependencies: &[Dependency]) -> Summary {
|
||||||
Summary {
|
Summary {
|
||||||
name_ver: name_ver.clone(),
|
package_id: pkg_id.clone(),
|
||||||
dependencies: Vec::from_slice(dependencies)
|
dependencies: Vec::from_slice(dependencies)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn get_name_ver<'a>(&'a self) -> &'a NameVer {
|
pub fn get_package_id<'a>(&'a self) -> &'a PackageId {
|
||||||
&self.name_ver
|
&self.package_id
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn get_name<'a>(&'a self) -> &'a str {
|
pub fn get_name<'a>(&'a self) -> &'a str {
|
||||||
self.get_name_ver().get_name()
|
self.get_package_id().get_name()
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn get_version<'a>(&'a self) -> &'a Version {
|
pub fn get_version<'a>(&'a self) -> &'a Version {
|
||||||
self.get_name_ver().get_version()
|
self.get_package_id().get_version()
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn get_dependencies<'a>(&'a self) -> &'a [Dependency] {
|
pub fn get_dependencies<'a>(&'a self) -> &'a [Dependency] {
|
||||||
|
@ -43,7 +43,7 @@ pub trait SummaryVec {
|
||||||
impl SummaryVec for Vec<Summary> {
|
impl SummaryVec for Vec<Summary> {
|
||||||
// TODO: Move to Registry
|
// TODO: Move to Registry
|
||||||
fn names(&self) -> Vec<String> {
|
fn names(&self) -> Vec<String> {
|
||||||
self.iter().map(|summary| summary.name_ver.get_name().to_str()).collect()
|
self.iter().map(|summary| summary.get_name().to_str()).collect()
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: Delete
|
// TODO: Delete
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
use ops;
|
use ops;
|
||||||
use core::source::Source;
|
use core::source::Source;
|
||||||
use core::{NameVer,Package,Summary};
|
use core::{Package,PackageId,Summary};
|
||||||
use util::CargoResult;
|
use util::CargoResult;
|
||||||
use sources::git::utils::{GitReference,GitRemote,Master,Other};
|
use sources::git::utils::{GitReference,GitRemote,Master,Other};
|
||||||
use std::fmt;
|
use std::fmt;
|
||||||
|
@ -44,15 +44,15 @@ impl Source for GitSource {
|
||||||
Ok(vec!(pkg.get_summary().clone()))
|
Ok(vec!(pkg.get_summary().clone()))
|
||||||
}
|
}
|
||||||
|
|
||||||
fn download(&self, _: &[NameVer]) -> CargoResult<()> {
|
fn download(&self, _: &[PackageId]) -> CargoResult<()> {
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
fn get(&self, packages: &[NameVer]) -> CargoResult<Vec<Package>> {
|
fn get(&self, package_ids: &[PackageId]) -> CargoResult<Vec<Package>> {
|
||||||
// TODO: Support multiple manifests per repo
|
// TODO: Support multiple manifests per repo
|
||||||
let pkg = try!(read_manifest(&self.checkout_path));
|
let pkg = try!(read_manifest(&self.checkout_path));
|
||||||
|
|
||||||
if packages.iter().any(|nv| pkg.is_for_name_ver(nv)) {
|
if package_ids.iter().any(|pkg_id| pkg_id == pkg.get_package_id()) {
|
||||||
Ok(vec!(pkg))
|
Ok(vec!(pkg))
|
||||||
} else {
|
} else {
|
||||||
Ok(vec!())
|
Ok(vec!())
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
use std::fmt;
|
use std::fmt;
|
||||||
use std::fmt::{Show,Formatter};
|
use std::fmt::{Show,Formatter};
|
||||||
use core::{NameVer,Package,Summary};
|
use core::{Package,PackageId,Summary};
|
||||||
use core::source::Source;
|
use core::source::Source;
|
||||||
use ops;
|
use ops;
|
||||||
use util::{CargoResult};
|
use util::{CargoResult};
|
||||||
|
@ -37,15 +37,15 @@ impl Source for PathSource {
|
||||||
}).collect())
|
}).collect())
|
||||||
}
|
}
|
||||||
|
|
||||||
fn download(&self, _: &[NameVer]) -> CargoResult<()>{
|
fn download(&self, _: &[PackageId]) -> CargoResult<()>{
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
fn get(&self, name_vers: &[NameVer]) -> CargoResult<Vec<Package>> {
|
fn get(&self, name_vers: &[PackageId]) -> CargoResult<Vec<Package>> {
|
||||||
Ok(self.paths.iter().filter_map(|path| {
|
Ok(self.paths.iter().filter_map(|path| {
|
||||||
match read_manifest(path) {
|
match read_manifest(path) {
|
||||||
Ok(pkg) => {
|
Ok(pkg) => {
|
||||||
if name_vers.iter().any(|nv| pkg.is_for_name_ver(nv)) {
|
if name_vers.iter().any(|pkg_id| pkg.get_package_id() == pkg_id) {
|
||||||
Some(pkg)
|
Some(pkg)
|
||||||
} else {
|
} else {
|
||||||
None
|
None
|
||||||
|
|
|
@ -124,7 +124,7 @@ impl TomlManifest {
|
||||||
}
|
}
|
||||||
|
|
||||||
Ok(Manifest::new(
|
Ok(Manifest::new(
|
||||||
&Summary::new(&self.project.to_name_ver(), deps.as_slice()),
|
&Summary::new(&self.project.to_package_id(), deps.as_slice()),
|
||||||
targets.as_slice(),
|
targets.as_slice(),
|
||||||
&Path::new("target")))
|
&Path::new("target")))
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue