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 where
V: serde::de::Visitor<'de>, 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>( fn deserialize_unit_struct<V>(
@ -169,7 +172,10 @@ impl<'de> serde::Deserializer<'de> for &Data {
where where
V: serde::de::Visitor<'de>, 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>( fn deserialize_newtype_struct<V>(
@ -316,9 +322,10 @@ impl<'de> MapAccess<'de> for DataMapAccess<'_> {
self.value = Some(value); self.value = Some(value);
match key { 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::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), DataKey::Id(id) => seed.deserialize(id.get().into_deserializer()).map(Some),
_ => Err(Error::custom("unsupported map key type")), _ => Err(Error::custom("unsupported map key type")),
} }