diff --git a/crates/pep508-rs/src/lib.rs b/crates/pep508-rs/src/lib.rs index d5ee9a86e..5f8f17dfb 100644 --- a/crates/pep508-rs/src/lib.rs +++ b/crates/pep508-rs/src/lib.rs @@ -197,7 +197,7 @@ impl Display for Requirement { } /// -impl<'de, T: Pep508Url + Deserialize<'de>> Deserialize<'de> for Requirement { +impl<'de, T: Pep508Url> Deserialize<'de> for Requirement { fn deserialize(deserializer: D) -> Result where D: Deserializer<'de>, diff --git a/crates/pep508-rs/src/verbatim_url.rs b/crates/pep508-rs/src/verbatim_url.rs index a91a0d402..1c14044a1 100644 --- a/crates/pep508-rs/src/verbatim_url.rs +++ b/crates/pep508-rs/src/verbatim_url.rs @@ -13,14 +13,10 @@ use uv_fs::{normalize_absolute_path, normalize_url_path}; use crate::Pep508Url; /// A wrapper around [`Url`] that preserves the original string. -#[derive(Debug, Clone, Eq, derivative::Derivative, serde::Deserialize, serde::Serialize)] +#[derive(Debug, Clone, Eq, derivative::Derivative)] #[derivative(PartialEq, Hash, Ord)] pub struct VerbatimUrl { /// The parsed URL. - #[serde( - serialize_with = "Url::serialize_internal", - deserialize_with = "Url::deserialize_internal" - )] url: Url, /// The URL as it was provided by the user. #[derivative(PartialEq = "ignore")] diff --git a/crates/pypi-types/src/parsed_url.rs b/crates/pypi-types/src/parsed_url.rs index 2b1df5cc2..b8bbb5b73 100644 --- a/crates/pypi-types/src/parsed_url.rs +++ b/crates/pypi-types/src/parsed_url.rs @@ -1,6 +1,5 @@ use std::fmt::{Display, Formatter}; use std::path::{Path, PathBuf}; - use thiserror::Error; use url::{ParseError, Url}; @@ -138,37 +137,6 @@ impl Display for VerbatimParsedUrl { } } -impl TryFrom for VerbatimParsedUrl { - type Error = ParsedUrlError; - - fn try_from(verbatim_url: VerbatimUrl) -> Result { - let parsed_url = ParsedUrl::try_from(verbatim_url.to_url())?; - Ok(Self { - parsed_url, - verbatim: verbatim_url, - }) - } -} - -impl serde::ser::Serialize for VerbatimParsedUrl { - fn serialize(&self, serializer: S) -> Result - where - S: serde::ser::Serializer, - { - self.verbatim.serialize(serializer) - } -} - -impl<'de> serde::de::Deserialize<'de> for VerbatimParsedUrl { - fn deserialize(deserializer: D) -> Result - where - D: serde::de::Deserializer<'de>, - { - let verbatim_url = VerbatimUrl::deserialize(deserializer)?; - Self::try_from(verbatim_url).map_err(serde::de::Error::custom) - } -} - /// We support three types of URLs for distributions: /// * The path to a file or directory (`file://`) /// * A Git repository (`git+https://` or `git+ssh://`), optionally with a subdirectory and/or