Skip to content

Commit dff31e9

Browse files
charliermarshLoïc LESCOAT
authored andcommitted
Use a Box for Yanked on File (astral-sh#11755)
## Summary See: astral-sh#11715.
1 parent 4595437 commit dff31e9

File tree

5 files changed

+14
-10
lines changed

5 files changed

+14
-10
lines changed

crates/uv-client/src/html.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -184,7 +184,7 @@ impl SimpleHtml {
184184
let yanked = if let Some(yanked) = link.attributes().get("data-yanked").flatten() {
185185
let yanked = std::str::from_utf8(yanked.as_bytes())?;
186186
let yanked = html_escape::decode_html_entities(yanked);
187-
Some(Yanked::Reason(yanked.into()))
187+
Some(Box::new(Yanked::Reason(yanked.into())))
188188
} else {
189189
None
190190
};

crates/uv-distribution-types/src/file.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ pub struct File {
3333
// milliseconds.
3434
pub upload_time_utc_ms: Option<i64>,
3535
pub url: FileLocation,
36-
pub yanked: Option<Yanked>,
36+
pub yanked: Option<Box<Yanked>>,
3737
}
3838

3939
impl File {

crates/uv-distribution-types/src/resolved.rs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,8 +75,10 @@ impl ResolvedDist {
7575
pub fn yanked(&self) -> Option<&Yanked> {
7676
match self {
7777
Self::Installable { dist, .. } => match dist.as_ref() {
78-
Dist::Source(SourceDist::Registry(sdist)) => sdist.file.yanked.as_ref(),
79-
Dist::Built(BuiltDist::Registry(wheel)) => wheel.best_wheel().file.yanked.as_ref(),
78+
Dist::Source(SourceDist::Registry(sdist)) => sdist.file.yanked.as_deref(),
79+
Dist::Built(BuiltDist::Registry(wheel)) => {
80+
wheel.best_wheel().file.yanked.as_deref()
81+
}
8082
_ => None,
8183
},
8284
Self::Installed { .. } => None,

crates/uv-pypi-types/src/simple_json.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ pub struct File {
5454
pub size: Option<u64>,
5555
pub upload_time: Option<Timestamp>,
5656
pub url: String,
57-
pub yanked: Option<Yanked>,
57+
pub yanked: Option<Box<Yanked>>,
5858
}
5959

6060
fn deserialize_version_specifiers_lenient<'de, D>(

crates/uv-resolver/src/version_map.rs

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -417,7 +417,7 @@ impl VersionMapLazy {
417417
};
418418

419419
// Prioritize amongst all available files.
420-
let yanked = file.yanked.clone();
420+
let yanked = file.yanked.as_deref();
421421
let hashes = file.hashes.clone();
422422
match filename {
423423
DistFilename::WheelFilename(filename) => {
@@ -472,7 +472,7 @@ impl VersionMapLazy {
472472
name: &PackageName,
473473
version: &Version,
474474
hashes: &[HashDigest],
475-
yanked: Option<Yanked>,
475+
yanked: Option<&Yanked>,
476476
excluded: bool,
477477
upload_time: Option<i64>,
478478
) -> SourceDistCompatibility {
@@ -491,7 +491,9 @@ impl VersionMapLazy {
491491
// Check if yanked
492492
if let Some(yanked) = yanked {
493493
if yanked.is_yanked() && !self.allowed_yanks.contains(name, version) {
494-
return SourceDistCompatibility::Incompatible(IncompatibleSource::Yanked(yanked));
494+
return SourceDistCompatibility::Incompatible(IncompatibleSource::Yanked(
495+
yanked.clone(),
496+
));
495497
}
496498
}
497499

@@ -519,7 +521,7 @@ impl VersionMapLazy {
519521
name: &PackageName,
520522
version: &Version,
521523
hashes: &[HashDigest],
522-
yanked: Option<Yanked>,
524+
yanked: Option<&Yanked>,
523525
excluded: bool,
524526
upload_time: Option<i64>,
525527
) -> WheelCompatibility {
@@ -536,7 +538,7 @@ impl VersionMapLazy {
536538
// Check if yanked
537539
if let Some(yanked) = yanked {
538540
if yanked.is_yanked() && !self.allowed_yanks.contains(name, version) {
539-
return WheelCompatibility::Incompatible(IncompatibleWheel::Yanked(yanked));
541+
return WheelCompatibility::Incompatible(IncompatibleWheel::Yanked(yanked.clone()));
540542
}
541543
}
542544

0 commit comments

Comments
 (0)