mirror of
https://github.com/pezkuwichain/serde.git
synced 2026-06-13 07:51:03 +00:00
Convert serde_test's unexpected from macro to function
This commit is contained in:
+12
-16
@@ -32,13 +32,11 @@ macro_rules! assert_next_token {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
macro_rules! unexpected {
|
fn unexpected(token: Token) -> Error {
|
||||||
($token:expr) => {
|
de::Error::custom(format!(
|
||||||
Err(de::Error::custom(format!(
|
"deserialization did not expect this token: {}",
|
||||||
"deserialization did not expect this token: {}",
|
token,
|
||||||
$token
|
))
|
||||||
)))
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
||||||
macro_rules! end_of_tokens {
|
macro_rules! end_of_tokens {
|
||||||
@@ -211,7 +209,7 @@ impl<'de, 'a> de::Deserializer<'de> for &'a mut Deserializer<'de> {
|
|||||||
self.next_token();
|
self.next_token();
|
||||||
visitor.visit_u64(variant)
|
visitor.visit_u64(variant)
|
||||||
}
|
}
|
||||||
(variant, Token::Unit) => unexpected!(variant),
|
(variant, Token::Unit) => Err(unexpected(variant)),
|
||||||
(variant, _) => {
|
(variant, _) => {
|
||||||
visitor.visit_map(EnumMapVisitor::new(self, variant, EnumFormat::Any))
|
visitor.visit_map(EnumMapVisitor::new(self, variant, EnumFormat::Any))
|
||||||
}
|
}
|
||||||
@@ -239,9 +237,7 @@ impl<'de, 'a> de::Deserializer<'de> for &'a mut Deserializer<'de> {
|
|||||||
| Token::MapEnd
|
| Token::MapEnd
|
||||||
| Token::StructEnd
|
| Token::StructEnd
|
||||||
| Token::TupleVariantEnd
|
| Token::TupleVariantEnd
|
||||||
| Token::StructVariantEnd => {
|
| Token::StructVariantEnd => Err(unexpected(token)),
|
||||||
unexpected!(token)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -538,7 +534,7 @@ impl<'de, 'a> VariantAccess<'de> for DeserializerEnumVisitor<'a, 'de> {
|
|||||||
self.de
|
self.de
|
||||||
.visit_seq(Some(len), Token::TupleVariantEnd, visitor)
|
.visit_seq(Some(len), Token::TupleVariantEnd, visitor)
|
||||||
} else {
|
} else {
|
||||||
unexpected!(token)
|
Err(unexpected(token))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Token::Seq {
|
Token::Seq {
|
||||||
@@ -549,7 +545,7 @@ impl<'de, 'a> VariantAccess<'de> for DeserializerEnumVisitor<'a, 'de> {
|
|||||||
if len == enum_len {
|
if len == enum_len {
|
||||||
self.de.visit_seq(Some(len), Token::SeqEnd, visitor)
|
self.de.visit_seq(Some(len), Token::SeqEnd, visitor)
|
||||||
} else {
|
} else {
|
||||||
unexpected!(token)
|
Err(unexpected(token))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
_ => de::Deserializer::deserialize_any(self.de, visitor),
|
_ => de::Deserializer::deserialize_any(self.de, visitor),
|
||||||
@@ -572,7 +568,7 @@ impl<'de, 'a> VariantAccess<'de> for DeserializerEnumVisitor<'a, 'de> {
|
|||||||
self.de
|
self.de
|
||||||
.visit_map(Some(fields.len()), Token::StructVariantEnd, visitor)
|
.visit_map(Some(fields.len()), Token::StructVariantEnd, visitor)
|
||||||
} else {
|
} else {
|
||||||
unexpected!(token)
|
Err(unexpected(token))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Token::Map {
|
Token::Map {
|
||||||
@@ -584,7 +580,7 @@ impl<'de, 'a> VariantAccess<'de> for DeserializerEnumVisitor<'a, 'de> {
|
|||||||
self.de
|
self.de
|
||||||
.visit_map(Some(fields.len()), Token::MapEnd, visitor)
|
.visit_map(Some(fields.len()), Token::MapEnd, visitor)
|
||||||
} else {
|
} else {
|
||||||
unexpected!(token)
|
Err(unexpected(token))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
_ => de::Deserializer::deserialize_any(self.de, visitor),
|
_ => de::Deserializer::deserialize_any(self.de, visitor),
|
||||||
@@ -629,7 +625,7 @@ impl<'de, 'a> MapAccess<'de> for EnumMapVisitor<'a, 'de> {
|
|||||||
.deserialize(BytesDeserializer { value: variant })
|
.deserialize(BytesDeserializer { value: variant })
|
||||||
.map(Some),
|
.map(Some),
|
||||||
Some(Token::U32(variant)) => seed.deserialize(variant.into_deserializer()).map(Some),
|
Some(Token::U32(variant)) => seed.deserialize(variant.into_deserializer()).map(Some),
|
||||||
Some(other) => unexpected!(other),
|
Some(other) => Err(unexpected(other)),
|
||||||
None => Ok(None),
|
None => Ok(None),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user