use core::{Dependency, PackageId, Summary, SourceId, PackageIdSpec};
use core::{WorkspaceConfig, Epoch, Features, Feature};
+use core::interning::InternedString;
use util::Config;
use util::toml::TomlManifest;
use util::errors::*;
pub fn exclude(&self) -> &[String] { &self.exclude }
pub fn include(&self) -> &[String] { &self.include }
pub fn metadata(&self) -> &ManifestMetadata { &self.metadata }
- pub fn name(&self) -> &str { self.package_id().name().to_inner() }
+ pub fn name(&self) -> InternedString { self.package_id().name() }
pub fn package_id(&self) -> &PackageId { self.summary.package_id() }
pub fn summary(&self) -> &Summary { &self.summary }
pub fn targets(&self) -> &[Target] { &self.targets }
use core::{Dependency, Manifest, PackageId, SourceId, Target};
use core::{Summary, SourceMap};
+use core::interning::InternedString;
use ops;
use util::{Config, internal, lev_distance};
use util::errors::{CargoResult, CargoResultExt};
/// Get the path to the manifest
pub fn manifest_path(&self) -> &Path { &self.manifest_path }
/// Get the name of the package
- pub fn name(&self) -> &str { self.package_id().name().to_inner() }
+ pub fn name(&self) -> InternedString { self.package_id().name() }
/// Get the PackageId object for the package (fully defines a package)
pub fn package_id(&self) -> &PackageId { self.manifest.package_id() }
/// Get the root folder of the package
patches: &HashMap<Url, Vec<PackageId>>,
summary: Summary) -> Summary {
let pair = locked.get(summary.source_id()).and_then(|map| {
- map.get(summary.name())
+ map.get(&*summary.name())
}).and_then(|vec| {
vec.iter().find(|&&(ref id, _)| id == summary.package_id())
});
}
pub fn package_id(&self) -> &PackageId { &self.inner.package_id }
- pub fn name(&self) -> &str { self.package_id().name().to_inner() }
+ pub fn name(&self) -> InternedString { self.package_id().name() }
pub fn version(&self) -> &Version { self.package_id().version() }
pub fn source_id(&self) -> &SourceId { self.package_id().source_id() }
pub fn dependencies(&self) -> &[Dependency] { &self.inner.dependencies }
bail!("Passing multiple packages and `open` is not supported.\n\
Please re-run this command with `-p <spec>` where `<spec>` \
is one of the following:\n {}",
- pkgs.iter().map(|p| p.name()).collect::<Vec<_>>().join("\n "));
+ pkgs.iter().map(|p| p.name().to_inner()).collect::<Vec<_>>().join("\n "));
} else if pkgs.len() == 1 {
pkgs[0].name().replace("-", "_")
} else {
return Ok((pkg.clone(), Box::new(source)));
fn multi_err(kind: &str, mut pkgs: Vec<&Package>) -> String {
- pkgs.sort_by(|a, b| a.name().cmp(b.name()));
+ pkgs.sort_by(|a, b| a.name().cmp(&b.name()));
format!("multiple packages with {} found: {}", kind,
- pkgs.iter().map(|p| p.name()).collect::<Vec<_>>()
+ pkgs.iter().map(|p| p.name().to_inner()).collect::<Vec<_>>()
.join(", "))
}
}
Packages::Packages(xs) => match xs.len() {
0 => ws.current()?,
1 => ws.members()
- .find(|pkg| pkg.name() == xs[0])
+ .find(|pkg| &*pkg.name() == xs[0])
.ok_or_else(||
format_err!("package `{}` is not a member of the workspace", xs[0])
)?,
.env("CARGO_PKG_VERSION_PATCH", &pkg.version().patch.to_string())
.env("CARGO_PKG_VERSION_PRE", &pre_version_component(pkg.version()))
.env("CARGO_PKG_VERSION", &pkg.version().to_string())
- .env("CARGO_PKG_NAME", &pkg.name())
+ .env("CARGO_PKG_NAME", &*pkg.name())
.env("CARGO_PKG_DESCRIPTION", metadata.description.as_ref().unwrap_or(&String::new()))
.env("CARGO_PKG_HOMEPAGE", metadata.homepage.as_ref().unwrap_or(&String::new()))
.env("CARGO_PKG_AUTHORS", &pkg.authors().join(":"))