use crate::core::compiler::CompileKind;
-use crate::core::interning::InternedString;
+use crate::util::interning::InternedString;
use crate::util::ProcessBuilder;
use crate::util::{CargoResult, Config, RustfixDiagnosticServer};
use anyhow::bail;
use crate::core::compiler::{BuildConfig, CompileKind, Unit};
use crate::core::profiles::Profiles;
use crate::core::PackageSet;
-use crate::core::{InternedString, Workspace};
+use crate::core::Workspace;
use crate::util::config::Config;
use crate::util::errors::CargoResult;
+use crate::util::interning::InternedString;
use crate::util::Rustc;
use std::collections::HashMap;
use std::path::PathBuf;
-use crate::core::{InternedString, Target};
+use crate::core::Target;
use crate::util::errors::{CargoResult, CargoResultExt};
+use crate::util::interning::InternedString;
use crate::util::Config;
use anyhow::bail;
use serde::Serialize;
use serde::{Deserialize, Serialize};
use crate::core::compiler::unit_graph::UnitDep;
-use crate::core::{InternedString, Package};
+use crate::core::Package;
use crate::util;
use crate::util::errors::{CargoResult, CargoResultExt};
+use crate::util::interning::InternedString;
use crate::util::paths;
use crate::util::{internal, profile};
use crate::core::compiler::{CompileMode, Context, CrateType, Unit};
-use crate::core::interning::InternedString;
use crate::core::profiles;
+use crate::util::interning::InternedString;
use crate::util::errors::CargoResult;
use std::collections::hash_map::{Entry, HashMap};
pub use crate::core::compiler::unit::{Unit, UnitInterner};
use crate::core::manifest::TargetSourcePath;
use crate::core::profiles::{PanicStrategy, Profile, Strip};
-use crate::core::{Edition, Feature, InternedString, PackageId, Target};
+use crate::core::{Edition, Feature, PackageId, Target};
use crate::util::errors::{self, CargoResult, CargoResultExt, ProcessError, VerboseError};
+use crate::util::interning::InternedString;
use crate::util::machine_message::Message;
use crate::util::{self, machine_message, ProcessBuilder};
use crate::util::{internal, join_paths, paths, profile};
use crate::core::compiler::{CompileKind, CompileMode, CrateType};
use crate::core::manifest::{Target, TargetKind};
-use crate::core::{profiles::Profile, InternedString, Package};
+use crate::core::{profiles::Profile, Package};
use crate::util::hex::short_hash;
+use crate::util::interning::InternedString;
use crate::util::Config;
use std::cell::RefCell;
use std::collections::HashSet;
use crate::core::profiles::{Profile, Profiles, UnitFor};
use crate::core::resolver::features::{FeaturesFor, ResolvedFeatures};
use crate::core::resolver::Resolve;
-use crate::core::{InternedString, Package, PackageId, PackageSet, Target, Workspace};
+use crate::core::{Package, PackageId, PackageSet, Target, Workspace};
use crate::ops::resolve_all_features;
+use crate::util::interning::InternedString;
use crate::util::Config;
use crate::CargoResult;
use log::trace;
use crate::core::compiler::Unit;
use crate::core::compiler::{CompileKind, CompileMode};
use crate::core::profiles::{Profile, UnitFor};
-use crate::core::{nightly_features_allowed, InternedString, PackageId, Target};
+use crate::core::{nightly_features_allowed, PackageId, Target};
+use crate::util::interning::InternedString;
use crate::util::CargoResult;
use std::collections::HashMap;
use std::io::Write;
use serde::Serialize;
use std::rc::Rc;
-use crate::core::interning::InternedString;
use crate::core::{PackageId, SourceId, Summary};
use crate::util::errors::{CargoResult, CargoResultExt};
+use crate::util::interning::InternedString;
use crate::util::Config;
/// Information about a dependency requested by a Cargo manifest.
+++ /dev/null
-use serde::{Serialize, Serializer};
-use std::borrow::Borrow;
-use std::cmp::Ordering;
-use std::collections::HashSet;
-use std::ffi::OsStr;
-use std::fmt;
-use std::hash::{Hash, Hasher};
-use std::ops::Deref;
-use std::path::Path;
-use std::ptr;
-use std::str;
-use std::sync::Mutex;
-
-pub fn leak(s: String) -> &'static str {
- Box::leak(s.into_boxed_str())
-}
-
-lazy_static::lazy_static! {
- static ref STRING_CACHE: Mutex<HashSet<&'static str>> = Mutex::new(HashSet::new());
-}
-
-#[derive(Clone, Copy)]
-pub struct InternedString {
- inner: &'static str,
-}
-
-impl<'a> From<&'a str> for InternedString {
- fn from(item: &'a str) -> Self {
- InternedString::new(item)
- }
-}
-
-impl<'a> From<&'a String> for InternedString {
- fn from(item: &'a String) -> Self {
- InternedString::new(item)
- }
-}
-
-impl From<String> for InternedString {
- fn from(item: String) -> Self {
- InternedString::new(&item)
- }
-}
-
-impl PartialEq for InternedString {
- fn eq(&self, other: &InternedString) -> bool {
- ptr::eq(self.as_str(), other.as_str())
- }
-}
-
-impl PartialEq<str> for InternedString {
- fn eq(&self, other: &str) -> bool {
- *self == other
- }
-}
-
-impl<'a> PartialEq<&'a str> for InternedString {
- fn eq(&self, other: &&str) -> bool {
- **self == **other
- }
-}
-
-impl Eq for InternedString {}
-
-impl InternedString {
- pub fn new(str: &str) -> InternedString {
- let mut cache = STRING_CACHE.lock().unwrap();
- let s = cache.get(str).cloned().unwrap_or_else(|| {
- let s = leak(str.to_string());
- cache.insert(s);
- s
- });
-
- InternedString { inner: s }
- }
-
- pub fn as_str(&self) -> &'static str {
- self.inner
- }
-}
-
-impl Deref for InternedString {
- type Target = str;
-
- fn deref(&self) -> &'static str {
- self.as_str()
- }
-}
-
-impl AsRef<str> for InternedString {
- fn as_ref(&self) -> &str {
- self.as_str()
- }
-}
-
-impl AsRef<OsStr> for InternedString {
- fn as_ref(&self) -> &OsStr {
- self.as_str().as_ref()
- }
-}
-
-impl AsRef<Path> for InternedString {
- fn as_ref(&self) -> &Path {
- self.as_str().as_ref()
- }
-}
-
-impl Hash for InternedString {
- // N.B., we can't implement this as `identity(self).hash(state)`,
- // because we use this for on-disk fingerprints and so need
- // stability across Cargo invocations.
- fn hash<H: Hasher>(&self, state: &mut H) {
- self.as_str().hash(state);
- }
-}
-
-impl Borrow<str> for InternedString {
- // If we implement Hash as `identity(self).hash(state)`,
- // then this will need to be removed.
- fn borrow(&self) -> &str {
- self.as_str()
- }
-}
-
-impl fmt::Debug for InternedString {
- fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
- fmt::Debug::fmt(self.as_str(), f)
- }
-}
-
-impl fmt::Display for InternedString {
- fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
- fmt::Display::fmt(self.as_str(), f)
- }
-}
-
-impl Ord for InternedString {
- fn cmp(&self, other: &InternedString) -> Ordering {
- self.as_str().cmp(other.as_str())
- }
-}
-
-impl PartialOrd for InternedString {
- fn partial_cmp(&self, other: &InternedString) -> Option<Ordering> {
- Some(self.cmp(other))
- }
-}
-
-impl Serialize for InternedString {
- fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
- where
- S: Serializer,
- {
- serializer.serialize_str(self.inner)
- }
-}
-
-struct InternedStringVisitor;
-
-impl<'de> serde::Deserialize<'de> for InternedString {
- fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
- where
- D: serde::Deserializer<'de>,
- {
- deserializer.deserialize_str(InternedStringVisitor)
- }
-}
-
-impl<'de> serde::de::Visitor<'de> for InternedStringVisitor {
- type Value = InternedString;
-
- fn expecting(&self, formatter: &mut fmt::Formatter<'_>) -> fmt::Result {
- formatter.write_str("an String like thing")
- }
-
- fn visit_str<E>(self, v: &str) -> Result<Self::Value, E>
- where
- E: serde::de::Error,
- {
- Ok(InternedString::new(v))
- }
-}
use url::Url;
use crate::core::compiler::CrateType;
-use crate::core::interning::InternedString;
use crate::core::resolver::ResolveBehavior;
use crate::core::{Dependency, PackageId, PackageIdSpec, SourceId, Summary};
use crate::core::{Edition, Feature, Features, WorkspaceConfig};
use crate::util::errors::*;
+use crate::util::interning::InternedString;
use crate::util::toml::{TomlManifest, TomlProfiles};
use crate::util::{short_hash, Config, Filesystem};
enable_nightly_features, maybe_allow_nightly_features, nightly_features_allowed,
};
pub use self::features::{CliUnstable, Edition, Feature, Features};
-pub use self::interning::InternedString;
pub use self::manifest::{EitherManifest, VirtualManifest};
pub use self::manifest::{Manifest, Target, TargetKind};
pub use self::package::{Package, PackageSet};
pub mod compiler;
pub mod dependency;
pub mod features;
-mod interning;
pub mod manifest;
pub mod package;
pub mod package_id;
use crate::core::compiler::{CompileKind, RustcTargetData};
use crate::core::dependency::DepKind;
-use crate::core::interning::InternedString;
use crate::core::resolver::{HasDevUnits, Resolve};
use crate::core::source::MaybePackage;
use crate::core::{Dependency, Manifest, PackageId, SourceId, Target};
use crate::ops;
use crate::util::config::PackageCacheLock;
use crate::util::errors::{CargoResult, CargoResultExt, HttpNot200};
+use crate::util::interning::InternedString;
use crate::util::network::Retry;
use crate::util::{self, internal, Config, Progress, ProgressStyle};
use serde::de;
use serde::ser;
-use crate::core::interning::InternedString;
use crate::core::source::SourceId;
+use crate::util::interning::InternedString;
use crate::util::{CargoResult, ToSemver};
lazy_static::lazy_static! {
use serde::{de, ser};
use url::Url;
-use crate::core::interning::InternedString;
use crate::core::PackageId;
use crate::util::errors::{CargoResult, CargoResultExt};
+use crate::util::interning::InternedString;
use crate::util::{validate_package_name, IntoUrl, ToSemver};
/// Some or all of the data required to identify a package:
#[cfg(test)]
mod tests {
use super::PackageIdSpec;
- use crate::core::interning::InternedString;
use crate::core::{PackageId, SourceId};
+ use crate::util::interning::InternedString;
use crate::util::ToSemver;
use url::Url;
use crate::core::compiler::CompileMode;
-use crate::core::interning::InternedString;
use crate::core::resolver::features::FeaturesFor;
use crate::core::{Feature, Features, PackageId, PackageIdSpec, Resolve, Shell};
use crate::util::errors::CargoResultExt;
+use crate::util::interning::InternedString;
use crate::util::toml::{ProfilePackageSpec, StringOrBool, TomlProfile, TomlProfiles, U32OrBool};
use crate::util::{closest_msg, config, CargoResult, Config};
use anyhow::bail;
use semver::VersionReq;
use url::Url;
+use crate::core::PackageSet;
use crate::core::{Dependency, PackageId, Source, SourceId, SourceMap, Summary};
-use crate::core::{InternedString, PackageSet};
use crate::sources::config::SourceConfigMap;
use crate::util::errors::{CargoResult, CargoResultExt};
+use crate::util::interning::InternedString;
use crate::util::{profile, CanonicalUrl, Config};
/// Source of information about a group of packages.
use anyhow::format_err;
use log::debug;
-use crate::core::interning::InternedString;
use crate::core::{Dependency, PackageId, SourceId, Summary};
+use crate::util::interning::InternedString;
use crate::util::Graph;
use super::dep_cache::RegistryQueryer;
use log::debug;
-use crate::core::interning::InternedString;
use crate::core::resolver::context::Context;
use crate::core::resolver::errors::describe_path;
use crate::core::{Dependency, FeatureValue, PackageId, PackageIdSpec, Registry, Summary};
use crate::util::errors::{CargoResult, CargoResultExt};
+use crate::util::interning::InternedString;
use crate::core::resolver::types::{ConflictReason, DepInfo, FeaturesSet};
use crate::core::resolver::{ActivateResult, ResolveOpts};
use serde::ser;
use serde::{Deserialize, Serialize};
-use crate::core::InternedString;
use crate::core::{Dependency, Package, PackageId, SourceId, Workspace};
use crate::util::errors::{CargoResult, CargoResultExt};
+use crate::util::interning::InternedString;
use crate::util::{internal, Graph};
use super::{Resolve, ResolveVersion};
use crate::core::dependency::{DepKind, Dependency};
use crate::core::resolver::types::FeaturesSet;
use crate::core::resolver::{Resolve, ResolveBehavior};
-use crate::core::{FeatureValue, InternedString, PackageId, PackageIdSpec, PackageSet, Workspace};
+use crate::core::{FeatureValue, PackageId, PackageIdSpec, PackageSet, Workspace};
+use crate::util::interning::InternedString;
use crate::util::CargoResult;
use std::collections::{BTreeSet, HashMap, HashSet};
use std::rc::Rc;
use super::encode::Metadata;
use crate::core::dependency::DepKind;
-use crate::core::interning::InternedString;
use crate::core::{Dependency, PackageId, PackageIdSpec, Summary, Target};
use crate::util::errors::CargoResult;
+use crate::util::interning::InternedString;
use crate::util::Graph;
use std::borrow::Borrow;
use std::cmp;
use super::features::RequestedFeatures;
-use crate::core::interning::InternedString;
use crate::core::{Dependency, PackageId, Summary};
use crate::util::errors::CargoResult;
+use crate::util::interning::InternedString;
use crate::util::Config;
use std::cmp::Ordering;
use std::collections::{BTreeMap, BTreeSet};
use serde::{Serialize, Serializer};
-use crate::core::interning::InternedString;
use crate::core::{Dependency, PackageId, SourceId};
+use crate::util::interning::InternedString;
use semver::Version;
use crate::util::CargoResult;
use crate::core::registry::PackageRegistry;
use crate::core::resolver::features::RequestedFeatures;
use crate::core::resolver::ResolveBehavior;
-use crate::core::{Dependency, InternedString, PackageId, PackageIdSpec};
+use crate::core::{Dependency, PackageId, PackageIdSpec};
use crate::core::{EitherManifest, Package, SourceId, VirtualManifest};
use crate::ops;
use crate::sources::PathSource;
use crate::util::errors::{CargoResult, CargoResultExt, ManifestError};
+use crate::util::interning::InternedString;
use crate::util::paths;
use crate::util::toml::{read_manifest, TomlProfiles};
use crate::util::{Config, Filesystem};
use crate::core::compiler::{CompileKind, CompileMode, Layout, RustcTargetData};
use crate::core::profiles::Profiles;
-use crate::core::{InternedString, PackageIdSpec, TargetKind, Workspace};
+use crate::core::{PackageIdSpec, TargetKind, Workspace};
use crate::ops;
use crate::util::errors::{CargoResult, CargoResultExt};
+use crate::util::interning::InternedString;
use crate::util::paths;
use crate::util::Config;
use std::fs;
use crate::core::compiler::{CompileKind, RustcTargetData};
use crate::core::dependency::DepKind;
use crate::core::resolver::{HasDevUnits, Resolve, ResolveOpts};
-use crate::core::{Dependency, InternedString, Package, PackageId, Workspace};
+use crate::core::{Dependency, Package, PackageId, Workspace};
use crate::ops::{self, Packages};
+use crate::util::interning::InternedString;
use crate::util::CargoResult;
use cargo_platform::Platform;
use serde::Serialize;
use crate::core::dependency::DepKind;
use crate::core::resolver::features::{FeaturesFor, RequestedFeatures, ResolvedFeatures};
use crate::core::resolver::Resolve;
-use crate::core::{
- FeatureMap, FeatureValue, InternedString, Package, PackageId, PackageIdSpec, Workspace,
-};
+use crate::core::{FeatureMap, FeatureValue, Package, PackageId, PackageIdSpec, Workspace};
+use crate::util::interning::InternedString;
use crate::util::CargoResult;
use std::collections::{HashMap, HashSet};
//! hopefully those are more obvious inline in the code itself.
use crate::core::dependency::Dependency;
-use crate::core::{InternedString, PackageId, SourceId, Summary};
+use crate::core::{PackageId, SourceId, Summary};
use crate::sources::registry::{RegistryData, RegistryPackage};
+use crate::util::interning::InternedString;
use crate::util::paths;
use crate::util::{internal, CargoResult, Config, Filesystem, ToSemver};
use log::info;
-use crate::core::{InternedString, PackageId};
+use crate::core::PackageId;
use crate::sources::registry::{MaybeLock, RegistryConfig, RegistryData};
use crate::util::errors::CargoResult;
+use crate::util::interning::InternedString;
use crate::util::paths;
use crate::util::{Config, Filesystem, Sha256};
use std::fs::File;
use crate::core::dependency::{DepKind, Dependency};
use crate::core::source::MaybePackage;
-use crate::core::{InternedString, Package, PackageId, Source, SourceId, Summary};
+use crate::core::{Package, PackageId, Source, SourceId, Summary};
use crate::sources::PathSource;
use crate::util::errors::CargoResultExt;
use crate::util::hex;
+use crate::util::interning::InternedString;
use crate::util::into_url::IntoUrl;
use crate::util::{restricted_names, CargoResult, Config, Filesystem};
-use crate::core::{GitReference, InternedString, PackageId, SourceId};
+use crate::core::{GitReference, PackageId, SourceId};
use crate::sources::git;
use crate::sources::registry::MaybeLock;
use crate::sources::registry::{
VERSION_TEMPLATE,
};
use crate::util::errors::{CargoResult, CargoResultExt};
+use crate::util::interning::InternedString;
use crate::util::paths;
use crate::util::{Config, Filesystem, Sha256};
use lazycell::LazyCell;
use crate::core::compiler::{BuildConfig, MessageFormat};
-use crate::core::InternedString;
use crate::core::Workspace;
use crate::ops::{CompileFilter, CompileOptions, NewOptions, Packages, VersionControl};
use crate::sources::CRATES_IO_REGISTRY;
use crate::util::important_paths::find_root_manifest_for_wd;
+use crate::util::interning::InternedString;
use crate::util::{paths, toml::TomlProfile, validate_package_name};
use crate::util::{
print_available_benches, print_available_binaries, print_available_examples,
--- /dev/null
+use serde::{Serialize, Serializer};
+use std::borrow::Borrow;
+use std::cmp::Ordering;
+use std::collections::HashSet;
+use std::ffi::OsStr;
+use std::fmt;
+use std::hash::{Hash, Hasher};
+use std::ops::Deref;
+use std::path::Path;
+use std::ptr;
+use std::str;
+use std::sync::Mutex;
+
+pub fn leak(s: String) -> &'static str {
+ Box::leak(s.into_boxed_str())
+}
+
+lazy_static::lazy_static! {
+ static ref STRING_CACHE: Mutex<HashSet<&'static str>> = Mutex::new(HashSet::new());
+}
+
+#[derive(Clone, Copy)]
+pub struct InternedString {
+ inner: &'static str,
+}
+
+impl<'a> From<&'a str> for InternedString {
+ fn from(item: &'a str) -> Self {
+ InternedString::new(item)
+ }
+}
+
+impl<'a> From<&'a String> for InternedString {
+ fn from(item: &'a String) -> Self {
+ InternedString::new(item)
+ }
+}
+
+impl From<String> for InternedString {
+ fn from(item: String) -> Self {
+ InternedString::new(&item)
+ }
+}
+
+impl PartialEq for InternedString {
+ fn eq(&self, other: &InternedString) -> bool {
+ ptr::eq(self.as_str(), other.as_str())
+ }
+}
+
+impl PartialEq<str> for InternedString {
+ fn eq(&self, other: &str) -> bool {
+ *self == other
+ }
+}
+
+impl<'a> PartialEq<&'a str> for InternedString {
+ fn eq(&self, other: &&str) -> bool {
+ **self == **other
+ }
+}
+
+impl Eq for InternedString {}
+
+impl InternedString {
+ pub fn new(str: &str) -> InternedString {
+ let mut cache = STRING_CACHE.lock().unwrap();
+ let s = cache.get(str).cloned().unwrap_or_else(|| {
+ let s = leak(str.to_string());
+ cache.insert(s);
+ s
+ });
+
+ InternedString { inner: s }
+ }
+
+ pub fn as_str(&self) -> &'static str {
+ self.inner
+ }
+}
+
+impl Deref for InternedString {
+ type Target = str;
+
+ fn deref(&self) -> &'static str {
+ self.as_str()
+ }
+}
+
+impl AsRef<str> for InternedString {
+ fn as_ref(&self) -> &str {
+ self.as_str()
+ }
+}
+
+impl AsRef<OsStr> for InternedString {
+ fn as_ref(&self) -> &OsStr {
+ self.as_str().as_ref()
+ }
+}
+
+impl AsRef<Path> for InternedString {
+ fn as_ref(&self) -> &Path {
+ self.as_str().as_ref()
+ }
+}
+
+impl Hash for InternedString {
+ // N.B., we can't implement this as `identity(self).hash(state)`,
+ // because we use this for on-disk fingerprints and so need
+ // stability across Cargo invocations.
+ fn hash<H: Hasher>(&self, state: &mut H) {
+ self.as_str().hash(state);
+ }
+}
+
+impl Borrow<str> for InternedString {
+ // If we implement Hash as `identity(self).hash(state)`,
+ // then this will need to be removed.
+ fn borrow(&self) -> &str {
+ self.as_str()
+ }
+}
+
+impl fmt::Debug for InternedString {
+ fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
+ fmt::Debug::fmt(self.as_str(), f)
+ }
+}
+
+impl fmt::Display for InternedString {
+ fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
+ fmt::Display::fmt(self.as_str(), f)
+ }
+}
+
+impl Ord for InternedString {
+ fn cmp(&self, other: &InternedString) -> Ordering {
+ self.as_str().cmp(other.as_str())
+ }
+}
+
+impl PartialOrd for InternedString {
+ fn partial_cmp(&self, other: &InternedString) -> Option<Ordering> {
+ Some(self.cmp(other))
+ }
+}
+
+impl Serialize for InternedString {
+ fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
+ where
+ S: Serializer,
+ {
+ serializer.serialize_str(self.inner)
+ }
+}
+
+struct InternedStringVisitor;
+
+impl<'de> serde::Deserialize<'de> for InternedString {
+ fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
+ where
+ D: serde::Deserializer<'de>,
+ {
+ deserializer.deserialize_str(InternedStringVisitor)
+ }
+}
+
+impl<'de> serde::de::Visitor<'de> for InternedStringVisitor {
+ type Value = InternedString;
+
+ fn expecting(&self, formatter: &mut fmt::Formatter<'_>) -> fmt::Result {
+ formatter.write_str("an String like thing")
+ }
+
+ fn visit_str<E>(self, v: &str) -> Result<Self::Value, E>
+ where
+ E: serde::de::Error,
+ {
+ Ok(InternedString::new(v))
+ }
+}
mod hasher;
pub mod hex;
pub mod important_paths;
+pub mod interning;
pub mod into_url;
mod into_url_with_base;
pub mod job;
use log::{debug, info, warn};
use serde::{Deserialize, Serialize};
-use crate::core::InternedString;
+use crate::util::interning::InternedString;
use crate::util::paths;
use crate::util::{self, profile, CargoResult, CargoResultExt, ProcessBuilder, StableHasher};
use crate::core::manifest::{ManifestMetadata, TargetSourcePath, Warnings};
use crate::core::profiles::Strip;
use crate::core::resolver::ResolveBehavior;
-use crate::core::{Dependency, InternedString, Manifest, PackageId, Summary, Target};
+use crate::core::{Dependency, Manifest, PackageId, Summary, Target};
use crate::core::{Edition, EitherManifest, Feature, Features, VirtualManifest, Workspace};
use crate::core::{GitReference, PackageIdSpec, SourceId, WorkspaceConfig, WorkspaceRootConfig};
use crate::sources::{CRATES_IO_INDEX, CRATES_IO_REGISTRY};
use crate::util::errors::{CargoResult, CargoResultExt, ManifestError};
+use crate::util::interning::InternedString;
use crate::util::{self, paths, validate_package_name, Config, IntoUrl};
mod targets;
//! Tests for config settings.
-use cargo::core::{enable_nightly_features, InternedString, Shell};
+use cargo::core::{enable_nightly_features, Shell};
use cargo::util::config::{self, Config, SslVersionConfig, StringList};
+use cargo::util::interning::InternedString;
use cargo::util::toml::{self, VecStringOrBool as VSOB};
use cargo::CargoResult;
use cargo_test_support::{normalized_lines_match, paths, project, t};
use cargo::core::enable_nightly_features;
use cargo::core::features::Features;
use cargo::core::profiles::{Profiles, UnitFor};
- use cargo::core::{InternedString, PackageId};
+ use cargo::core::PackageId;
+ use cargo::util::interning::InternedString;
use cargo::util::toml::TomlProfiles;
use std::fs;
enable_nightly_features();