Remove serialize traits from verbatim URL (#5501)

This commit is contained in:
Charlie Marsh 2024-07-26 20:51:24 -04:00 committed by GitHub
parent 4f3dde34dc
commit 8f16f1b746
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 2 additions and 38 deletions

View file

@ -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<VerbatimUrl> for VerbatimParsedUrl {
type Error = ParsedUrlError;
fn try_from(verbatim_url: VerbatimUrl) -> Result<Self, Self::Error> {
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<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: serde::ser::Serializer,
{
self.verbatim.serialize(serializer)
}
}
impl<'de> serde::de::Deserialize<'de> for VerbatimParsedUrl {
fn deserialize<D>(deserializer: D) -> Result<VerbatimParsedUrl, D::Error>
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