From 50e48847f10e082553a78117a00a7f69519968b4 Mon Sep 17 00:00:00 2001 From: Andrew Gallant Date: Fri, 22 Mar 2024 13:15:46 -0400 Subject: [PATCH] uv-resolver: add Clone impls For $reasons, we'll want to be able to clone a `Manifest` so that it can be re-used to generate a marker expression. There is likely a refactoring that could be done to avoid the cloning, but a `Manifest` is likely to be small in practice, and we'll only need to clone it once. --- crates/uv-resolver/src/manifest.rs | 2 +- crates/uv-resolver/src/preferences.rs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/crates/uv-resolver/src/manifest.rs b/crates/uv-resolver/src/manifest.rs index 8923e112b..d9eb6e44a 100644 --- a/crates/uv-resolver/src/manifest.rs +++ b/crates/uv-resolver/src/manifest.rs @@ -6,7 +6,7 @@ use uv_normalize::PackageName; use crate::preferences::Preference; /// A manifest of requirements, constraints, and preferences. -#[derive(Debug)] +#[derive(Clone, Debug)] pub struct Manifest { pub(crate) requirements: Vec, pub(crate) constraints: Vec, diff --git a/crates/uv-resolver/src/preferences.rs b/crates/uv-resolver/src/preferences.rs index 3d966454f..3d068b80d 100644 --- a/crates/uv-resolver/src/preferences.rs +++ b/crates/uv-resolver/src/preferences.rs @@ -19,7 +19,7 @@ pub enum PreferenceError { } /// A pinned requirement, as extracted from a `requirements.txt` file. -#[derive(Debug)] +#[derive(Clone, Debug)] pub struct Preference { requirement: Requirement, hashes: Vec,