Define FeatureMap type as an abstraction
authorDirkjan Ochtman <dirkjan@ochtman.nl>
Sat, 14 Oct 2017 09:18:50 +0000 (11:18 +0200)
committerDirkjan Ochtman <dirkjan@ochtman.nl>
Wed, 4 Apr 2018 07:20:56 +0000 (09:20 +0200)
src/cargo/core/mod.rs
src/cargo/core/package.rs
src/cargo/core/summary.rs

index f6434f77362b25e61dd66583a2723a27a37d6701..6b8926756e1f118ea9630eed6946d5fc7ee90d26 100644 (file)
@@ -9,7 +9,7 @@ pub use self::registry::Registry;
 pub use self::resolver::Resolve;
 pub use self::shell::{Shell, Verbosity};
 pub use self::source::{GitReference, Source, SourceId, SourceMap};
-pub use self::summary::Summary;
+pub use self::summary::{FeatureMap, Summary};
 pub use self::workspace::{Members, Workspace, WorkspaceConfig, WorkspaceRootConfig};
 
 pub mod source;
index f3ce2eaf29c36042dbc371f4b3bddeeb4ffd2f7c..990144254da043a8e6a4a92c7e624b3bb1828ab5 100644 (file)
@@ -1,5 +1,5 @@
 use std::cell::{Ref, RefCell};
-use std::collections::{BTreeMap, HashMap};
+use std::collections::HashMap;
 use std::fmt;
 use std::hash;
 use std::path::{Path, PathBuf};
@@ -10,7 +10,7 @@ use toml;
 use lazycell::LazyCell;
 
 use core::{Dependency, Manifest, PackageId, SourceId, Target};
-use core::{SourceMap, Summary};
+use core::{FeatureMap, SourceMap, Summary};
 use core::interning::InternedString;
 use util::{internal, lev_distance, Config};
 use util::errors::{CargoResult, CargoResultExt};
@@ -39,7 +39,7 @@ struct SerializedPackage<'a> {
     source: &'a SourceId,
     dependencies: &'a [Dependency],
     targets: &'a [Target],
-    features: &'a BTreeMap<String, Vec<String>>,
+    features: &'a FeatureMap,
     manifest_path: &'a str,
 }
 
index db2545d44c5244f5ab892aef4859cecc40ae4e6f..1081b5d6c4be34fb6e893d2b7e680ee89085e526 100644 (file)
@@ -21,7 +21,7 @@ pub struct Summary {
 struct Inner {
     package_id: PackageId,
     dependencies: Vec<Dependency>,
-    features: BTreeMap<String, Vec<String>>,
+    features: FeatureMap,
     checksum: Option<String>,
     links: Option<InternedString>,
 }
@@ -110,7 +110,7 @@ impl Summary {
     pub fn dependencies(&self) -> &[Dependency] {
         &self.inner.dependencies
     }
-    pub fn features(&self) -> &BTreeMap<String, Vec<String>> {
+    pub fn features(&self) -> &FeatureMap {
         &self.inner.features
     }
     pub fn checksum(&self) -> Option<&str> {
@@ -158,3 +158,5 @@ impl PartialEq for Summary {
         self.inner.package_id == other.inner.package_id
     }
 }
+
+pub type FeatureMap = BTreeMap<String, Vec<String>>;