This commit is contained in:
sxyazi 2026-03-18 14:03:03 +08:00
parent 7eb040fb1d
commit eed2da8f89
No known key found for this signature in database

View file

@ -158,7 +158,10 @@ impl<'de> serde::Deserializer<'de> for &Data {
where
V: serde::de::Visitor<'de>,
{
visitor.visit_unit()
match self {
Data::Nil => visitor.visit_unit(),
_ => Err(Error::custom("expected unit")),
}
}
fn deserialize_unit_struct<V>(
@ -169,7 +172,10 @@ impl<'de> serde::Deserializer<'de> for &Data {
where
V: serde::de::Visitor<'de>,
{
visitor.visit_unit()
match self {
Data::Nil => visitor.visit_unit(),
_ => Err(Error::custom("expected unit struct")),
}
}
fn deserialize_newtype_struct<V>(
@ -316,9 +322,10 @@ impl<'de> MapAccess<'de> for DataMapAccess<'_> {
self.value = Some(value);
match key {
DataKey::String(s) => seed.deserialize((&**s).into_deserializer()).map(Some),
DataKey::Integer(i) => seed.deserialize((*i).into_deserializer()).map(Some),
DataKey::Boolean(b) => seed.deserialize((*b).into_deserializer()).map(Some),
DataKey::Integer(i) => seed.deserialize((*i).into_deserializer()).map(Some),
DataKey::Number(n) => seed.deserialize((*n).into_deserializer()).map(Some),
DataKey::String(s) => seed.deserialize((&**s).into_deserializer()).map(Some),
DataKey::Id(id) => seed.deserialize(id.get().into_deserializer()).map(Some),
_ => Err(Error::custom("unsupported map key type")),
}