Skip to content

Commit 1606ab3

Browse files
committed
Replace PackageId::wrap with PackageId::pure
1 parent cffd5b2 commit 1606ab3

File tree

1 file changed

+15
-22
lines changed

1 file changed

+15
-22
lines changed

src/cargo/core/package_id.rs

+15-22
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@ impl<'de> de::Deserialize<'de> for PackageId {
7272
let string = String::deserialize(d)?;
7373
let mut s = string.splitn(3, ' ');
7474
let name = s.next().unwrap();
75+
let name = InternedString::new(name);
7576
let version = match s.next() {
7677
Some(s) => s,
7778
None => return Err(de::Error::custom("invalid serialized PackageId")),
@@ -88,11 +89,7 @@ impl<'de> de::Deserialize<'de> for PackageId {
8889
};
8990
let source_id = SourceId::from_url(url).map_err(de::Error::custom)?;
9091

91-
Ok(PackageId::wrap(PackageIdInner {
92-
name: InternedString::new(name),
93-
version,
94-
source_id,
95-
}))
92+
Ok(PackageId::pure(name, version, source_id))
9693
}
9794
}
9895

@@ -118,15 +115,15 @@ impl<'a> Hash for PackageId {
118115
impl PackageId {
119116
pub fn new<T: ToSemver>(name: &str, version: T, sid: SourceId) -> CargoResult<PackageId> {
120117
let v = version.to_semver()?;
121-
122-
Ok(PackageId::wrap(PackageIdInner {
123-
name: InternedString::new(name),
124-
version: v,
125-
source_id: sid,
126-
}))
118+
Ok(PackageId::pure(InternedString::new(name), v, sid))
127119
}
128120

129-
fn wrap(inner: PackageIdInner) -> PackageId {
121+
pub fn pure(name: InternedString, version: semver::Version, source_id: SourceId) -> PackageId {
122+
let inner = PackageIdInner {
123+
name,
124+
version,
125+
source_id,
126+
};
130127
let mut cache = PACKAGE_ID_CACHE.lock().unwrap();
131128
let inner = cache.get(&inner).cloned().unwrap_or_else(|| {
132129
let inner = Box::leak(Box::new(inner));
@@ -147,19 +144,15 @@ impl PackageId {
147144
}
148145

149146
pub fn with_precise(self, precise: Option<String>) -> PackageId {
150-
PackageId::wrap(PackageIdInner {
151-
name: self.inner.name,
152-
version: self.inner.version.clone(),
153-
source_id: self.inner.source_id.with_precise(precise),
154-
})
147+
PackageId::pure(
148+
self.inner.name,
149+
self.inner.version.clone(),
150+
self.inner.source_id.with_precise(precise),
151+
)
155152
}
156153

157154
pub fn with_source_id(self, source: SourceId) -> PackageId {
158-
PackageId::wrap(PackageIdInner {
159-
name: self.inner.name,
160-
version: self.inner.version.clone(),
161-
source_id: source,
162-
})
155+
PackageId::pure(self.inner.name, self.inner.version.clone(), source)
163156
}
164157

165158
pub fn stable_hash(self, workspace: &Path) -> PackageIdStableHash<'_> {

0 commit comments

Comments
 (0)