Use serde(transparent) for UrlString (#6633)

This commit is contained in:
Charlie Marsh 2024-08-25 22:11:55 -04:00 committed by GitHub
parent 2ec7c69861
commit ee254a8230
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -143,32 +143,17 @@ impl Display for FileLocation {
PartialOrd,
Ord,
Hash,
Serialize,
Deserialize,
rkyv::Archive,
rkyv::Deserialize,
rkyv::Serialize,
)]
#[serde(transparent)]
#[archive(check_bytes)]
#[archive_attr(derive(Debug))]
pub struct UrlString(String);
impl serde::Serialize for UrlString {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: serde::ser::Serializer,
{
String::serialize(&self.0, serializer)
}
}
impl<'de> serde::de::Deserialize<'de> for UrlString {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: serde::de::Deserializer<'de>,
{
String::deserialize(deserializer).map(UrlString)
}
}
impl UrlString {
/// Converts a [`UrlString`] to a [`Url`].
pub fn to_url(&self) -> Url {