diff --git a/serde_test/src/de.rs b/serde_test/src/de.rs index 28989187..2811241e 100644 --- a/serde_test/src/de.rs +++ b/serde_test/src/de.rs @@ -42,7 +42,6 @@ impl<'de> Deserializer<'de> { fn visit_seq(&mut self, len: Option, - sep: Token, end: Token, visitor: V) -> Result @@ -51,7 +50,6 @@ impl<'de> Deserializer<'de> { let value = try!(visitor.visit_seq(DeserializerSeqVisitor { de: self, len: len, - sep: sep, end: end.clone(), })); try!(self.expect_token(end)); @@ -60,7 +58,6 @@ impl<'de> Deserializer<'de> { fn visit_map(&mut self, len: Option, - sep: Token, end: Token, visitor: V) -> Result @@ -69,7 +66,6 @@ impl<'de> Deserializer<'de> { let value = try!(visitor.visit_map(DeserializerMapVisitor { de: self, len: len, - sep: sep, end: end.clone(), })); try!(self.expect_token(end)); @@ -113,25 +109,24 @@ impl<'de, 'a> de::Deserializer<'de> for &'a mut Deserializer<'de> { Some(Token::UnitStruct(_name)) => visitor.visit_unit(), Some(Token::StructNewType(_name)) => visitor.visit_newtype_struct(self), Some(Token::SeqStart(len)) => { - self.visit_seq(len, Token::SeqSep, Token::SeqEnd, visitor) + self.visit_seq(len, Token::SeqEnd, visitor) } Some(Token::SeqArrayStart(len)) => { - self.visit_seq(Some(len), Token::SeqSep, Token::SeqEnd, visitor) + self.visit_seq(Some(len), Token::SeqEnd, visitor) } Some(Token::TupleStart(len)) => { - self.visit_seq(Some(len), Token::TupleSep, Token::TupleEnd, visitor) + self.visit_seq(Some(len), Token::TupleEnd, visitor) } Some(Token::TupleStructStart(_, len)) => { self.visit_seq(Some(len), - Token::TupleStructSep, Token::TupleStructEnd, visitor) } Some(Token::MapStart(len)) => { - self.visit_map(len, Token::MapSep, Token::MapEnd, visitor) + self.visit_map(len, Token::MapEnd, visitor) } Some(Token::StructStart(_, len)) => { - self.visit_map(Some(len), Token::StructSep, Token::StructEnd, visitor) + self.visit_map(Some(len), Token::StructEnd, visitor) } Some(Token::EnumStart(_)) => { let variant = self.next_token().ok_or(Error::EndOfTokens)?; @@ -153,15 +148,19 @@ impl<'de, 'a> de::Deserializer<'de> for &'a mut Deserializer<'de> { Err(Error::UnexpectedToken(variant)) } (variant, _) => { - visitor.visit_map(EnumMapVisitor::new(self, variant)) + visitor.visit_map(EnumMapVisitor::new(self, variant, EnumFormat::Any)) } } } Some(Token::EnumUnit(_, variant)) => visitor.visit_str(variant), - Some(Token::EnumNewType(_, variant)) | - Some(Token::EnumSeqStart(_, variant, _)) | + Some(Token::EnumNewType(_, variant)) => { + visitor.visit_map(EnumMapVisitor::new(self, Token::Str(variant), EnumFormat::Any)) + } + Some(Token::EnumSeqStart(_, variant, _)) => { + visitor.visit_map(EnumMapVisitor::new(self, Token::Str(variant), EnumFormat::Seq)) + } Some(Token::EnumMapStart(_, variant, _)) => { - visitor.visit_map(EnumMapVisitor::new(self, Token::Str(variant))) + visitor.visit_map(EnumMapVisitor::new(self, Token::Str(variant), EnumFormat::Map)) } Some(token) => Err(Error::UnexpectedToken(token)), None => Err(Error::EndOfTokens), @@ -255,7 +254,7 @@ impl<'de, 'a> de::Deserializer<'de> for &'a mut Deserializer<'de> { match self.tokens.first() { Some(&Token::SeqArrayStart(_)) => { self.next_token(); - self.visit_seq(Some(len), Token::SeqSep, Token::SeqEnd, visitor) + self.visit_seq(Some(len), Token::SeqEnd, visitor) } Some(_) => self.deserialize(visitor), None => Err(Error::EndOfTokens), @@ -273,20 +272,19 @@ impl<'de, 'a> de::Deserializer<'de> for &'a mut Deserializer<'de> { } Some(&Token::SeqStart(_)) => { self.next_token(); - self.visit_seq(Some(len), Token::SeqSep, Token::SeqEnd, visitor) + self.visit_seq(Some(len), Token::SeqEnd, visitor) } Some(&Token::SeqArrayStart(_)) => { self.next_token(); - self.visit_seq(Some(len), Token::SeqSep, Token::SeqEnd, visitor) + self.visit_seq(Some(len), Token::SeqEnd, visitor) } Some(&Token::TupleStart(_)) => { self.next_token(); - self.visit_seq(Some(len), Token::TupleSep, Token::TupleEnd, visitor) + self.visit_seq(Some(len), Token::TupleEnd, visitor) } Some(&Token::TupleStructStart(_, _)) => { self.next_token(); self.visit_seq(Some(len), - Token::TupleStructSep, Token::TupleStructEnd, visitor) } @@ -317,21 +315,20 @@ impl<'de, 'a> de::Deserializer<'de> for &'a mut Deserializer<'de> { } Some(&Token::SeqStart(_)) => { self.next_token(); - self.visit_seq(Some(len), Token::SeqSep, Token::SeqEnd, visitor) + self.visit_seq(Some(len), Token::SeqEnd, visitor) } Some(&Token::SeqArrayStart(_)) => { self.next_token(); - self.visit_seq(Some(len), Token::SeqSep, Token::SeqEnd, visitor) + self.visit_seq(Some(len), Token::SeqEnd, visitor) } Some(&Token::TupleStart(_)) => { self.next_token(); - self.visit_seq(Some(len), Token::TupleSep, Token::TupleEnd, visitor) + self.visit_seq(Some(len), Token::TupleEnd, visitor) } Some(&Token::TupleStructStart(n, _)) => { self.next_token(); if name == n { self.visit_seq(Some(len), - Token::TupleStructSep, Token::TupleStructEnd, visitor) } else { @@ -355,7 +352,6 @@ impl<'de, 'a> de::Deserializer<'de> for &'a mut Deserializer<'de> { self.next_token(); if name == n { self.visit_map(Some(fields.len()), - Token::StructSep, Token::StructEnd, visitor) } else { @@ -364,7 +360,7 @@ impl<'de, 'a> de::Deserializer<'de> for &'a mut Deserializer<'de> { } Some(&Token::MapStart(_)) => { self.next_token(); - self.visit_map(Some(fields.len()), Token::MapSep, Token::MapEnd, visitor) + self.visit_map(Some(fields.len()), Token::MapEnd, visitor) } Some(_) => self.deserialize(visitor), None => Err(Error::EndOfTokens), @@ -377,7 +373,6 @@ impl<'de, 'a> de::Deserializer<'de> for &'a mut Deserializer<'de> { struct DeserializerSeqVisitor<'a, 'de: 'a> { de: &'a mut Deserializer<'de>, len: Option, - sep: Token, end: Token, } @@ -390,14 +385,8 @@ impl<'de, 'a> SeqVisitor<'de> for DeserializerSeqVisitor<'a, 'de> { if self.de.tokens.first() == Some(&self.end) { return Ok(None); } - match self.de.next_token() { - Some(ref token) if *token == self.sep => { - self.len = self.len.map(|len| len.saturating_sub(1)); - seed.deserialize(&mut *self.de).map(Some) - } - Some(other) => Err(Error::UnexpectedToken(other)), - None => Err(Error::EndOfTokens), - } + self.len = self.len.map(|len| len.saturating_sub(1)); + seed.deserialize(&mut *self.de).map(Some) } fn size_hint(&self) -> (usize, Option) { @@ -411,7 +400,6 @@ impl<'de, 'a> SeqVisitor<'de> for DeserializerSeqVisitor<'a, 'de> { struct DeserializerMapVisitor<'a, 'de: 'a> { de: &'a mut Deserializer<'de>, len: Option, - sep: Token, end: Token, } @@ -424,14 +412,8 @@ impl<'de, 'a> MapVisitor<'de> for DeserializerMapVisitor<'a, 'de> { if self.de.tokens.first() == Some(&self.end) { return Ok(None); } - match self.de.next_token() { - Some(ref token) if *token == self.sep => { - self.len = self.len.map(|len| len.saturating_sub(1)); - seed.deserialize(&mut *self.de).map(Some) - } - Some(other) => Err(Error::UnexpectedToken(other)), - None => Err(Error::EndOfTokens), - } + self.len = self.len.map(|len| len.saturating_sub(1)); + seed.deserialize(&mut *self.de).map(Some) } fn visit_value_seed(&mut self, seed: V) -> Result @@ -512,7 +494,7 @@ impl<'de, 'a> VariantVisitor<'de> for DeserializerEnumVisitor<'a, 'de> { let token = self.de.next_token().unwrap(); if len == enum_len { - self.de.visit_seq(Some(len), Token::EnumSeqSep, Token::EnumSeqEnd, visitor) + self.de.visit_seq(Some(len), Token::EnumSeqEnd, visitor) } else { Err(Error::UnexpectedToken(token)) } @@ -521,7 +503,7 @@ impl<'de, 'a> VariantVisitor<'de> for DeserializerEnumVisitor<'a, 'de> { let token = self.de.next_token().unwrap(); if len == enum_len { - self.de.visit_seq(Some(len), Token::SeqSep, Token::SeqEnd, visitor) + self.de.visit_seq(Some(len), Token::SeqEnd, visitor) } else { Err(Error::UnexpectedToken(token)) } @@ -540,7 +522,6 @@ impl<'de, 'a> VariantVisitor<'de> for DeserializerEnumVisitor<'a, 'de> { if fields.len() == enum_len { self.de.visit_map(Some(fields.len()), - Token::EnumMapSep, Token::EnumMapEnd, visitor) } else { @@ -551,7 +532,7 @@ impl<'de, 'a> VariantVisitor<'de> for DeserializerEnumVisitor<'a, 'de> { let token = self.de.next_token().unwrap(); if fields.len() == enum_len { - self.de.visit_map(Some(fields.len()), Token::MapSep, Token::MapEnd, visitor) + self.de.visit_map(Some(fields.len()), Token::MapEnd, visitor) } else { Err(Error::UnexpectedToken(token)) } @@ -567,13 +548,21 @@ impl<'de, 'a> VariantVisitor<'de> for DeserializerEnumVisitor<'a, 'de> { struct EnumMapVisitor<'a, 'de: 'a> { de: &'a mut Deserializer<'de>, variant: Option, + format: EnumFormat, +} + +enum EnumFormat { + Seq, + Map, + Any, } impl<'a, 'de> EnumMapVisitor<'a, 'de> { - fn new(de: &'a mut Deserializer<'de>, variant: Token) -> Self { + fn new(de: &'a mut Deserializer<'de>, variant: Token, format: EnumFormat) -> Self { EnumMapVisitor { de: de, variant: Some(variant), + format: format, } } } @@ -604,13 +593,12 @@ impl<'de, 'a> MapVisitor<'de> for EnumMapVisitor<'a, 'de> { fn visit_value_seed(&mut self, seed: V) -> Result where V: DeserializeSeed<'de> { - match self.de.tokens.first() { - Some(&Token::EnumSeqSep) => { + match self.format { + EnumFormat::Seq => { let value = { let visitor = DeserializerSeqVisitor { de: self.de, len: None, - sep: Token::EnumSeqSep, end: Token::EnumSeqEnd, }; try!(seed.deserialize(SeqVisitorDeserializer::new(visitor))) @@ -618,12 +606,11 @@ impl<'de, 'a> MapVisitor<'de> for EnumMapVisitor<'a, 'de> { try!(self.de.expect_token(Token::EnumSeqEnd)); Ok(value) } - Some(&Token::EnumMapSep) => { + EnumFormat::Map => { let value = { let visitor = DeserializerMapVisitor { de: self.de, len: None, - sep: Token::EnumMapSep, end: Token::EnumMapEnd, }; try!(seed.deserialize(MapVisitorDeserializer::new(visitor))) @@ -631,7 +618,7 @@ impl<'de, 'a> MapVisitor<'de> for EnumMapVisitor<'a, 'de> { try!(self.de.expect_token(Token::EnumMapEnd)); Ok(value) } - _ => seed.deserialize(&mut *self.de), + EnumFormat::Any => seed.deserialize(&mut *self.de), } } } diff --git a/serde_test/src/ser.rs b/serde_test/src/ser.rs index e8af6ee9..919565b1 100644 --- a/serde_test/src/ser.rs +++ b/serde_test/src/ser.rs @@ -253,7 +253,6 @@ impl<'s, 'a> ser::SerializeSeq for &'s mut Serializer<'a> { fn serialize_element(&mut self, value: &T) -> Result<(), Error> where T: Serialize { - assert_next_token!(self, SeqSep); value.serialize(&mut **self) } @@ -270,7 +269,6 @@ impl<'s, 'a> ser::SerializeTuple for &'s mut Serializer<'a> { fn serialize_element(&mut self, value: &T) -> Result<(), Error> where T: Serialize { - assert_next_token!(self, TupleSep); value.serialize(&mut **self) } @@ -287,7 +285,6 @@ impl<'s, 'a> ser::SerializeTupleStruct for &'s mut Serializer<'a> { fn serialize_field(&mut self, value: &T) -> Result<(), Error> where T: Serialize { - assert_next_token!(self, TupleStructSep); value.serialize(&mut **self) } @@ -304,7 +301,6 @@ impl<'s, 'a> ser::SerializeTupleVariant for &'s mut Serializer<'a> { fn serialize_field(&mut self, value: &T) -> Result<(), Error> where T: Serialize { - assert_next_token!(self, EnumSeqSep); value.serialize(&mut **self) } @@ -321,7 +317,6 @@ impl<'s, 'a> ser::SerializeMap for &'s mut Serializer<'a> { fn serialize_key(&mut self, key: &T) -> Result<(), Self::Error> where T: Serialize { - assert_next_token!(self, MapSep); key.serialize(&mut **self) } @@ -347,7 +342,6 @@ impl<'s, 'a> ser::SerializeStruct for &'s mut Serializer<'a> { -> Result<(), Self::Error> where T: Serialize { - assert_next_token!(self, StructSep); try!(key.serialize(&mut **self)); value.serialize(&mut **self) } @@ -368,7 +362,6 @@ impl<'s, 'a> ser::SerializeStructVariant for &'s mut Serializer<'a> { -> Result<(), Self::Error> where T: Serialize { - assert_next_token!(self, EnumMapSep); try!(key.serialize(&mut **self)); value.serialize(&mut **self) } diff --git a/serde_test/src/token.rs b/serde_test/src/token.rs index 7cc9bbdd..5e9cead0 100644 --- a/serde_test/src/token.rs +++ b/serde_test/src/token.rs @@ -105,29 +105,18 @@ pub enum Token { /// header is a list of elements, followed by `SeqEnd`. SeqArrayStart(usize), - /// A separator, which occurs *before* every element in a sequence. - /// - /// Elements in sequences are represented by a `SeqSep`, followed by the value of the element. - SeqSep, - /// An indicator of the end of a sequence. SeqEnd, /// The header to a tuple of the given length, similar to `SeqArrayStart`. TupleStart(usize), - /// A separator, similar to `SeqSep`. - TupleSep, - /// An indicator of the end of a tuple, similar to `SeqEnd`. TupleEnd, /// The header to a tuple struct of the given name and length. TupleStructStart(&'static str, usize), - /// A separator, similar to `TupleSep`. - TupleStructSep, - /// An indicator of the end of a tuple struct, similar to `TupleEnd`. TupleStructEnd, @@ -137,30 +126,18 @@ pub enum Token { /// is a list of key-value pairs, followed by `MapEnd`. MapStart(Option), - /// A separator, which occurs *before* every key-value pair in a map. - /// - /// Elements in maps are represented by a `MapSep`, followed by a serialized key, followed - /// by a serialized value. - MapSep, - /// An indicator of the end of a map. MapEnd, /// The header of a struct of the given name and length, similar to `MapStart`. StructStart(&'static str, usize), - /// A separator, similar to `MapSep`. - StructSep, - /// An indicator of the end of a struct, similar to `MapEnd`. StructEnd, /// The header to a tuple variant of an enum of the given name, of the given name and length. EnumSeqStart(&'static str, &'static str, usize), - /// A separator, similar to `TupleSep`. - EnumSeqSep, - /// An indicator of the end of a tuple variant, similar to `TupleEnd`. EnumSeqEnd, @@ -168,9 +145,6 @@ pub enum Token { /// similar to `StructStart`. EnumMapStart(&'static str, &'static str, usize), - /// A separator, similar to `StructSep`. - EnumMapSep, - /// An indicator of the end of a struct, similar to `StructEnd`. EnumMapEnd, } diff --git a/test_suite/tests/test_annotations.rs b/test_suite/tests/test_annotations.rs index 3bcedd77..1eef647c 100644 --- a/test_suite/tests/test_annotations.rs +++ b/test_suite/tests/test_annotations.rs @@ -87,23 +87,18 @@ fn test_default_struct() { &[ Token::StructStart("DefaultStruct", 3), - Token::StructSep, Token::Str("a1"), Token::I32(1), - Token::StructSep, Token::Str("a2"), Token::I32(2), - Token::StructSep, Token::Str("a3"), Token::I32(3), - Token::StructSep, Token::Str("a4"), Token::I32(4), - Token::StructSep, Token::Str("a5"), Token::I32(5), @@ -116,7 +111,6 @@ fn test_default_struct() { &[ Token::StructStart("DefaultStruct", 1), - Token::StructSep, Token::Str("a1"), Token::I32(1), @@ -150,23 +144,18 @@ fn test_default_enum() { &[ Token::EnumMapStart("DefaultEnum", "Struct", 3), - Token::EnumMapSep, Token::Str("a1"), Token::I32(1), - Token::EnumMapSep, Token::Str("a2"), Token::I32(2), - Token::EnumMapSep, Token::Str("a3"), Token::I32(3), - Token::EnumMapSep, Token::Str("a4"), Token::I32(4), - Token::EnumMapSep, Token::Str("a5"), Token::I32(5), @@ -179,7 +168,6 @@ fn test_default_enum() { &[ Token::EnumMapStart("DefaultEnum", "Struct", 3), - Token::EnumMapSep, Token::Str("a1"), Token::I32(1), @@ -221,7 +209,6 @@ fn test_no_std_default() { &[ Token::StructStart("ContainsNoStdDefault", 1), - Token::StructSep, Token::Str("a"), Token::StructNewType("NoStdDefault"), Token::I8(8), @@ -304,30 +291,23 @@ fn test_ignore_unknown() { &[ Token::StructStart("DefaultStruct", 5), - Token::StructSep, Token::Str("whoops1"), Token::I32(2), - Token::StructSep, Token::Str("a1"), Token::I32(1), - Token::StructSep, Token::Str("whoops2"), Token::SeqStart(Some(1)), - Token::SeqSep, Token::I32(2), Token::SeqEnd, - Token::StructSep, Token::Str("a2"), Token::I32(2), - Token::StructSep, Token::Str("whoops3"), Token::I32(2), - Token::StructSep, Token::Str("a3"), Token::I32(3), @@ -339,11 +319,9 @@ fn test_ignore_unknown() { &[ Token::StructStart("DenyUnknown", 2), - Token::StructSep, Token::Str("a1"), Token::I32(1), - Token::StructSep, Token::Str("whoops"), ], Error::Message("unknown field `whoops`, expected `a1`".to_owned()) @@ -373,11 +351,9 @@ fn test_rename_struct() { &[ Token::StructStart("Superhero", 2), - Token::StructSep, Token::Str("a1"), Token::I32(1), - Token::StructSep, Token::Str("a3"), Token::I32(2), @@ -390,11 +366,9 @@ fn test_rename_struct() { &[ Token::StructStart("SuperheroSer", 2), - Token::StructSep, Token::Str("a1"), Token::I32(1), - Token::StructSep, Token::Str("a4"), Token::I32(2), @@ -407,11 +381,9 @@ fn test_rename_struct() { &[ Token::StructStart("SuperheroDe", 2), - Token::StructSep, Token::Str("a1"), Token::I32(1), - Token::StructSep, Token::Str("a5"), Token::I32(2), @@ -469,13 +441,8 @@ fn test_rename_enum() { &RenameEnum::WonderWoman(0, 1), &[ Token::EnumSeqStart("Superhero", "diana_prince", 2), - - Token::EnumSeqSep, Token::I8(0), - - Token::EnumSeqSep, Token::I8(1), - Token::EnumSeqEnd, ] ); @@ -485,7 +452,6 @@ fn test_rename_enum() { &[ Token::EnumMapStart("Superhero", "barry_allan", 1), - Token::EnumMapSep, Token::Str("b"), Token::I32(1), @@ -501,11 +467,9 @@ fn test_rename_enum() { &[ Token::EnumMapStart("SuperheroSer", "dick_grayson", 2), - Token::EnumMapSep, Token::Str("a"), Token::I8(0), - Token::EnumMapSep, Token::Str("c"), Token::Str(""), @@ -521,11 +485,9 @@ fn test_rename_enum() { &[ Token::EnumMapStart("SuperheroDe", "jason_todd", 2), - Token::EnumMapSep, Token::Str("a"), Token::I8(0), - Token::EnumMapSep, Token::Str("d"), Token::Str(""), @@ -555,11 +517,9 @@ fn test_skip_serializing_struct() { &[ Token::StructStart("SkipSerializingStruct", 2), - Token::StructSep, Token::Str("a"), Token::I8(1), - Token::StructSep, Token::Str("c"), Token::I32(3), @@ -576,7 +536,6 @@ fn test_skip_serializing_struct() { &[ Token::StructStart("SkipSerializingStruct", 1), - Token::StructSep, Token::Str("a"), Token::I8(1), @@ -608,11 +567,9 @@ fn test_skip_serializing_enum() { &[ Token::EnumMapStart("SkipSerializingEnum", "Struct", 2), - Token::EnumMapSep, Token::Str("a"), Token::I8(1), - Token::EnumMapSep, Token::Str("c"), Token::I32(3), @@ -629,7 +586,6 @@ fn test_skip_serializing_enum() { &[ Token::EnumMapStart("SkipSerializingEnum", "Struct", 1), - Token::EnumMapSep, Token::Str("a"), Token::I8(1), @@ -676,12 +632,10 @@ fn test_elt_not_serialize() { &[ Token::StructStart("ContainsNotSerialize", 2), - Token::StructSep, Token::Str("a"), Token::Option(true), Token::I8(1), - Token::StructSep, Token::Str("d"), Token::Str("trouble"), @@ -708,11 +662,9 @@ fn test_serialize_with_struct() { &[ Token::StructStart("SerializeWithStruct", 2), - Token::StructSep, Token::Str("a"), Token::I8(1), - Token::StructSep, Token::Str("b"), Token::Bool(false), @@ -728,11 +680,9 @@ fn test_serialize_with_struct() { &[ Token::StructStart("SerializeWithStruct", 2), - Token::StructSep, Token::Str("a"), Token::I8(1), - Token::StructSep, Token::Str("b"), Token::Bool(true), @@ -761,11 +711,9 @@ fn test_serialize_with_enum() { &[ Token::EnumMapStart("SerializeWithEnum", "Struct", 2), - Token::EnumMapSep, Token::Str("a"), Token::I8(1), - Token::EnumMapSep, Token::Str("b"), Token::Bool(false), @@ -781,11 +729,9 @@ fn test_serialize_with_enum() { &[ Token::EnumMapStart("SerializeWithEnum", "Struct", 2), - Token::EnumMapSep, Token::Str("a"), Token::I8(1), - Token::EnumMapSep, Token::Str("b"), Token::Bool(true), @@ -811,11 +757,9 @@ fn test_deserialize_with_struct() { &[ Token::StructStart("DeserializeWithStruct", 2), - Token::StructSep, Token::Str("a"), Token::I8(1), - Token::StructSep, Token::Str("b"), Token::Bool(false), @@ -831,11 +775,9 @@ fn test_deserialize_with_struct() { &[ Token::StructStart("DeserializeWithStruct", 2), - Token::StructSep, Token::Str("a"), Token::I8(1), - Token::StructSep, Token::Str("b"), Token::Bool(true), @@ -863,11 +805,9 @@ fn test_deserialize_with_enum() { &[ Token::EnumMapStart("DeserializeWithEnum", "Struct", 2), - Token::EnumMapSep, Token::Str("a"), Token::I8(1), - Token::EnumMapSep, Token::Str("b"), Token::Bool(false), @@ -883,11 +823,9 @@ fn test_deserialize_with_enum() { &[ Token::EnumMapStart("DeserializeWithEnum", "Struct", 2), - Token::EnumMapSep, Token::Str("a"), Token::I8(1), - Token::EnumMapSep, Token::Str("b"), Token::Bool(true), @@ -902,7 +840,6 @@ fn test_missing_renamed_field_struct() { &[ Token::StructStart("Superhero", 2), - Token::StructSep, Token::Str("a1"), Token::I32(1), @@ -915,7 +852,6 @@ fn test_missing_renamed_field_struct() { &[ Token::StructStart("SuperheroDe", 2), - Token::StructSep, Token::Str("a1"), Token::I32(1), @@ -940,7 +876,6 @@ fn test_missing_renamed_field_enum() { &[ Token::EnumMapStart("SuperheroDe", "jason_todd", 2), - Token::EnumMapSep, Token::Str("a"), Token::I8(0), @@ -961,8 +896,7 @@ fn test_invalid_length_enum() { assert_de_tokens_error::( &[ Token::EnumSeqStart("InvalidLengthEnum", "A", 3), - Token::EnumSeqSep, - Token::I32(1), + Token::I32(1), Token::EnumSeqEnd, ], Error::Message("invalid length 1, expected tuple of 3 elements".to_owned()), @@ -970,8 +904,7 @@ fn test_invalid_length_enum() { assert_de_tokens_error::( &[ Token::EnumSeqStart("InvalidLengthEnum", "B", 3), - Token::EnumSeqSep, - Token::I32(1), + Token::I32(1), Token::EnumSeqEnd, ], Error::Message("invalid length 1, expected tuple of 2 elements".to_owned()), diff --git a/test_suite/tests/test_borrow.rs b/test_suite/tests/test_borrow.rs index 4749456e..c12bcdcd 100644 --- a/test_suite/tests/test_borrow.rs +++ b/test_suite/tests/test_borrow.rs @@ -90,13 +90,8 @@ fn test_tuple() { &("str", &b"bytes"[..]), &[ Token::TupleStart(2), - - Token::TupleSep, Token::BorrowedStr("str"), - - Token::TupleSep, Token::BorrowedBytes(b"bytes"), - Token::TupleEnd, ] ); @@ -115,11 +110,9 @@ fn test_struct() { &[ Token::StructStart("Borrowing", 2), - Token::StructSep, Token::BorrowedStr("bs"), Token::BorrowedStr("str"), - Token::StructSep, Token::BorrowedStr("bb"), Token::BorrowedBytes(b"bytes"), @@ -141,11 +134,9 @@ fn test_cow() { let tokens = &[ Token::StructStart("Cows", 2), - Token::StructSep, Token::Str("copied"), Token::BorrowedStr("copied"), - Token::StructSep, Token::Str("borrowed"), Token::BorrowedStr("borrowed"), diff --git a/test_suite/tests/test_bytes.rs b/test_suite/tests/test_bytes.rs index f4ae59dc..3cc941d3 100644 --- a/test_suite/tests/test_bytes.rs +++ b/test_suite/tests/test_bytes.rs @@ -37,21 +37,15 @@ fn test_byte_buf() { assert_de_tokens(&buf, &[Token::String("ABC")]); assert_de_tokens(&buf, &[ Token::SeqStart(None), - Token::SeqSep, Token::U8(65), - Token::SeqSep, Token::U8(66), - Token::SeqSep, Token::U8(67), Token::SeqEnd, ]); assert_de_tokens(&buf, &[ Token::SeqStart(Some(3)), - Token::SeqSep, Token::U8(65), - Token::SeqSep, Token::U8(66), - Token::SeqSep, Token::U8(67), Token::SeqEnd, ]); diff --git a/test_suite/tests/test_de.rs b/test_suite/tests/test_de.rs index 2d012259..5fe900e1 100644 --- a/test_suite/tests/test_de.rs +++ b/test_suite/tests/test_de.rs @@ -152,11 +152,9 @@ fn assert_de_tokens_ignore(ignorable_tokens: &[Token]) { // stream for an IgnoreBase type let concated_tokens : Vec = vec![ Token::MapStart(Some(2)), - Token::MapSep, Token::Str("a"), Token::I32(1), - Token::MapSep, Token::Str("ignored") ] .into_iter() @@ -264,49 +262,29 @@ declare_tests! { test_tuple_struct { TupleStruct(1, 2, 3) => &[ Token::SeqStart(Some(3)), - Token::SeqSep, Token::I32(1), - - Token::SeqSep, Token::I32(2), - - Token::SeqSep, Token::I32(3), Token::SeqEnd, ], TupleStruct(1, 2, 3) => &[ Token::SeqStart(None), - Token::SeqSep, Token::I32(1), - - Token::SeqSep, Token::I32(2), - - Token::SeqSep, Token::I32(3), Token::SeqEnd, ], TupleStruct(1, 2, 3) => &[ Token::TupleStructStart("TupleStruct", 3), - Token::TupleStructSep, Token::I32(1), - - Token::TupleStructSep, Token::I32(2), - - Token::TupleStructSep, Token::I32(3), Token::TupleStructEnd, ], TupleStruct(1, 2, 3) => &[ Token::TupleStructStart("TupleStruct", 3), - Token::TupleStructSep, Token::I32(1), - - Token::TupleStructSep, Token::I32(2), - - Token::TupleStructSep, Token::I32(3), Token::TupleStructEnd, ], @@ -318,22 +296,15 @@ declare_tests! { ], btreeset![btreeset![], btreeset![1], btreeset![2, 3]] => &[ Token::SeqStart(Some(3)), - Token::SeqSep, Token::SeqStart(Some(0)), Token::SeqEnd, - Token::SeqSep, Token::SeqStart(Some(1)), - Token::SeqSep, Token::I32(1), Token::SeqEnd, - Token::SeqSep, Token::SeqStart(Some(2)), - Token::SeqSep, Token::I32(2), - - Token::SeqSep, Token::I32(3), Token::SeqEnd, Token::SeqEnd, @@ -350,13 +321,8 @@ declare_tests! { ], hashset![1, 2, 3] => &[ Token::SeqStart(Some(3)), - Token::SeqSep, Token::I32(1), - - Token::SeqSep, Token::I32(2), - - Token::SeqSep, Token::I32(3), Token::SeqEnd, ], @@ -366,13 +332,8 @@ declare_tests! { ], hashset![FnvHasher @ 1, 2, 3] => &[ Token::SeqStart(Some(3)), - Token::SeqSep, Token::I32(1), - - Token::SeqSep, Token::I32(2), - - Token::SeqSep, Token::I32(3), Token::SeqEnd, ], @@ -384,22 +345,15 @@ declare_tests! { ], vec![vec![], vec![1], vec![2, 3]] => &[ Token::SeqStart(Some(3)), - Token::SeqSep, Token::SeqStart(Some(0)), Token::SeqEnd, - Token::SeqSep, Token::SeqStart(Some(1)), - Token::SeqSep, Token::I32(1), Token::SeqEnd, - Token::SeqSep, Token::SeqStart(Some(2)), - Token::SeqSep, Token::I32(2), - - Token::SeqSep, Token::I32(3), Token::SeqEnd, Token::SeqEnd, @@ -420,44 +374,30 @@ declare_tests! { ], ([0; 0], [1], [2, 3]) => &[ Token::SeqStart(Some(3)), - Token::SeqSep, Token::SeqStart(Some(0)), Token::SeqEnd, - Token::SeqSep, Token::SeqStart(Some(1)), - Token::SeqSep, Token::I32(1), Token::SeqEnd, - Token::SeqSep, Token::SeqStart(Some(2)), - Token::SeqSep, Token::I32(2), - - Token::SeqSep, Token::I32(3), Token::SeqEnd, Token::SeqEnd, ], ([0; 0], [1], [2, 3]) => &[ Token::SeqArrayStart(3), - Token::SeqSep, Token::SeqArrayStart(0), Token::SeqEnd, - Token::SeqSep, Token::SeqArrayStart(1), - Token::SeqSep, Token::I32(1), Token::SeqEnd, - Token::SeqSep, Token::SeqArrayStart(2), - Token::SeqSep, Token::I32(2), - - Token::SeqSep, Token::I32(3), Token::SeqEnd, Token::SeqEnd, @@ -470,37 +410,25 @@ declare_tests! { test_tuple { (1,) => &[ Token::SeqStart(Some(1)), - Token::SeqSep, Token::I32(1), Token::SeqEnd, ], (1, 2, 3) => &[ Token::SeqStart(Some(3)), - Token::SeqSep, Token::I32(1), - - Token::SeqSep, Token::I32(2), - - Token::SeqSep, Token::I32(3), Token::SeqEnd, ], (1,) => &[ Token::TupleStart(1), - Token::TupleSep, Token::I32(1), Token::TupleEnd, ], (1, 2, 3) => &[ Token::TupleStart(3), - Token::TupleSep, Token::I32(1), - - Token::TupleSep, Token::I32(2), - - Token::TupleSep, Token::I32(3), Token::TupleEnd, ], @@ -512,37 +440,30 @@ declare_tests! { ], btreemap![1 => 2] => &[ Token::MapStart(Some(1)), - Token::MapSep, Token::I32(1), Token::I32(2), Token::MapEnd, ], btreemap![1 => 2, 3 => 4] => &[ Token::MapStart(Some(2)), - Token::MapSep, Token::I32(1), Token::I32(2), - Token::MapSep, Token::I32(3), Token::I32(4), Token::MapEnd, ], btreemap![1 => btreemap![], 2 => btreemap![3 => 4, 5 => 6]] => &[ Token::MapStart(Some(2)), - Token::MapSep, Token::I32(1), Token::MapStart(Some(0)), Token::MapEnd, - Token::MapSep, Token::I32(2), Token::MapStart(Some(2)), - Token::MapSep, Token::I32(3), Token::I32(4), - Token::MapSep, Token::I32(5), Token::I32(6), Token::MapEnd, @@ -560,37 +481,30 @@ declare_tests! { ], hashmap![1 => 2] => &[ Token::MapStart(Some(1)), - Token::MapSep, Token::I32(1), Token::I32(2), Token::MapEnd, ], hashmap![1 => 2, 3 => 4] => &[ Token::MapStart(Some(2)), - Token::MapSep, Token::I32(1), Token::I32(2), - Token::MapSep, Token::I32(3), Token::I32(4), Token::MapEnd, ], hashmap![1 => hashmap![], 2 => hashmap![3 => 4, 5 => 6]] => &[ Token::MapStart(Some(2)), - Token::MapSep, Token::I32(1), Token::MapStart(Some(0)), Token::MapEnd, - Token::MapSep, Token::I32(2), Token::MapStart(Some(2)), - Token::MapSep, Token::I32(3), Token::I32(4), - Token::MapSep, Token::I32(5), Token::I32(6), Token::MapEnd, @@ -602,11 +516,9 @@ declare_tests! { ], hashmap![FnvHasher @ 1 => 2, 3 => 4] => &[ Token::MapStart(Some(2)), - Token::MapSep, Token::I32(1), Token::I32(2), - Token::MapSep, Token::I32(3), Token::I32(4), Token::MapEnd, @@ -615,32 +527,25 @@ declare_tests! { test_struct { Struct { a: 1, b: 2, c: 0 } => &[ Token::MapStart(Some(3)), - Token::MapSep, Token::Str("a"), Token::I32(1), - Token::MapSep, Token::Str("b"), Token::I32(2), Token::MapEnd, ], Struct { a: 1, b: 2, c: 0 } => &[ Token::StructStart("Struct", 3), - Token::StructSep, Token::Str("a"), Token::I32(1), - Token::StructSep, Token::Str("b"), Token::I32(2), Token::StructEnd, ], Struct { a: 1, b: 2, c: 0 } => &[ Token::SeqStart(Some(3)), - Token::SeqSep, Token::I32(1), - - Token::SeqSep, Token::I32(2), Token::SeqEnd, ], @@ -648,38 +553,30 @@ declare_tests! { test_struct_with_skip { Struct { a: 1, b: 2, c: 0 } => &[ Token::MapStart(Some(3)), - Token::MapSep, Token::Str("a"), Token::I32(1), - Token::MapSep, Token::Str("b"), Token::I32(2), - Token::MapSep, Token::Str("c"), Token::I32(3), - Token::MapSep, Token::Str("d"), Token::I32(4), Token::MapEnd, ], Struct { a: 1, b: 2, c: 0 } => &[ Token::StructStart("Struct", 3), - Token::StructSep, Token::Str("a"), Token::I32(1), - Token::StructSep, Token::Str("b"), Token::I32(2), - Token::StructSep, Token::Str("c"), Token::I32(3), - Token::StructSep, Token::Str("d"), Token::I32(4), Token::StructEnd, @@ -692,11 +589,9 @@ declare_tests! { ], StructSkipAll { a: 0 } => &[ Token::StructStart("StructSkipAll", 1), - Token::StructSep, Token::Str("a"), Token::I32(1), - Token::StructSep, Token::Str("b"), Token::I32(2), Token::StructEnd, @@ -711,11 +606,9 @@ declare_tests! { test_struct_default { StructDefault { a: 50, b: "overwritten".to_string() } => &[ Token::StructStart("StructDefault", 1), - Token::StructSep, Token::Str("a"), Token::I32(50), - Token::StructSep, Token::Str("b"), Token::String("overwritten"), Token::StructEnd, @@ -739,13 +632,8 @@ declare_tests! { test_enum_seq { Enum::Seq(1, 2, 3) => &[ Token::EnumSeqStart("Enum", "Seq", 3), - Token::EnumSeqSep, Token::I32(1), - - Token::EnumSeqSep, Token::I32(2), - - Token::EnumSeqSep, Token::I32(3), Token::EnumSeqEnd, ], @@ -753,15 +641,12 @@ declare_tests! { test_enum_map { Enum::Map { a: 1, b: 2, c: 3 } => &[ Token::EnumMapStart("Enum", "Map", 3), - Token::EnumMapSep, Token::Str("a"), Token::I32(1), - Token::EnumMapSep, Token::Str("b"), Token::I32(2), - Token::EnumMapSep, Token::Str("c"), Token::I32(3), Token::EnumMapEnd, @@ -787,11 +672,8 @@ declare_tests! { test_boxed_slice { Box::new([0, 1, 2]) => &[ Token::SeqStart(Some(3)), - Token::SeqSep, Token::I32(0), - Token::SeqSep, Token::I32(1), - Token::SeqSep, Token::I32(2), Token::SeqEnd, ], @@ -799,21 +681,16 @@ declare_tests! { test_duration { Duration::new(1, 2) => &[ Token::StructStart("Duration", 2), - Token::StructSep, Token::Str("secs"), Token::U64(1), - Token::StructSep, Token::Str("nanos"), Token::U32(2), Token::StructEnd, ], Duration::new(1, 2) => &[ Token::SeqStart(Some(2)), - Token::SeqSep, Token::I64(1), - - Token::SeqSep, Token::I64(2), Token::SeqEnd, ], @@ -821,21 +698,16 @@ declare_tests! { test_range { 1u32..2u32 => &[ Token::StructStart("Range", 2), - Token::StructSep, Token::Str("start"), Token::U32(1), - Token::StructSep, Token::Str("end"), Token::U32(2), Token::StructEnd, ], 1u32..2u32 => &[ Token::SeqStart(Some(2)), - Token::SeqSep, Token::U64(1), - - Token::SeqSep, Token::U64(2), Token::SeqEnd, ], @@ -873,13 +745,8 @@ fn test_osstring() { Token::EnumStart("OsString"), Token::Str("Unix"), Token::SeqStart(Some(2)), - Token::SeqSep, Token::U8(1), - - Token::SeqSep, Token::U8(2), - - Token::SeqSep, Token::U8(3), Token::SeqEnd, ]; @@ -898,13 +765,8 @@ fn test_osstring() { Token::EnumStart("OsString"), Token::Str("Windows"), Token::SeqStart(Some(2)), - Token::SeqSep, Token::U16(1), - - Token::SeqSep, Token::U16(2), - - Token::SeqSep, Token::U16(3), Token::SeqEnd, ]; @@ -955,11 +817,9 @@ declare_error_tests! { test_unknown_field { &[ Token::StructStart("StructDenyUnknown", 2), - Token::StructSep, Token::Str("a"), Token::I32(0), - Token::StructSep, Token::Str("d"), ], Error::Message("unknown field `d`, expected `a`".to_owned()), @@ -967,7 +827,6 @@ declare_error_tests! { test_skipped_field_is_unknown { &[ Token::StructStart("StructDenyUnknown", 2), - Token::StructSep, Token::Str("b"), ], Error::Message("unknown field `b`, expected `a`".to_owned()), @@ -975,7 +834,6 @@ declare_error_tests! { test_skip_all_deny_unknown { &[ Token::StructStart("StructSkipAllDenyUnknown", 1), - Token::StructSep, Token::Str("a"), ], Error::Message("unknown field `a`, there are no fields".to_owned()), @@ -1001,20 +859,18 @@ declare_error_tests! { test_struct_seq_too_long { &[ Token::SeqStart(Some(4)), - Token::SeqSep, Token::I32(1), - Token::SeqSep, Token::I32(2), - Token::SeqSep, Token::I32(3), + Token::I32(1), + Token::I32(2), + Token::I32(3), ], - Error::UnexpectedToken(Token::SeqSep), + Error::UnexpectedToken(Token::I32(3)), } test_duplicate_field_struct { &[ Token::MapStart(Some(3)), - Token::MapSep, Token::Str("a"), Token::I32(1), - Token::MapSep, Token::Str("a"), ], Error::Message("duplicate field `a`".to_owned()), @@ -1022,11 +878,9 @@ declare_error_tests! { test_duplicate_field_enum { &[ Token::EnumMapStart("Enum", "Map", 3), - Token::EnumMapSep, Token::Str("a"), Token::I32(1), - Token::EnumMapSep, Token::Str("a"), ], Error::Message("duplicate field `a`".to_owned()), @@ -1042,7 +896,6 @@ declare_error_tests! { test_short_tuple<(u8, u8, u8)> { &[ Token::TupleStart(1), - Token::TupleSep, Token::U8(1), Token::TupleEnd, ], @@ -1051,7 +904,6 @@ declare_error_tests! { test_short_array<[u8; 3]> { &[ Token::SeqStart(Some(1)), - Token::SeqSep, Token::U8(1), Token::SeqEnd, ], diff --git a/test_suite/tests/test_macros.rs b/test_suite/tests/test_macros.rs index 43fe0980..f739e860 100644 --- a/test_suite/tests/test_macros.rs +++ b/test_suite/tests/test_macros.rs @@ -165,15 +165,9 @@ fn test_ser_named_tuple() { &SerNamedTuple(&a, &mut b, c), &[ Token::TupleStructStart("SerNamedTuple", 3), - Token::TupleStructSep, Token::I32(5), - - Token::TupleStructSep, Token::I32(6), - - Token::TupleStructSep, Token::I32(7), - Token::TupleStructEnd, ], ); @@ -185,15 +179,9 @@ fn test_de_named_tuple() { &DeNamedTuple(5, 6, 7), &[ Token::SeqStart(Some(3)), - Token::SeqSep, Token::I32(5), - - Token::SeqSep, Token::I32(6), - - Token::SeqSep, Token::I32(7), - Token::SeqEnd, ] ); @@ -202,15 +190,9 @@ fn test_de_named_tuple() { &DeNamedTuple(5, 6, 7), &[ Token::TupleStructStart("DeNamedTuple", 3), - Token::TupleStructSep, Token::I32(5), - - Token::TupleStructSep, Token::I32(6), - - Token::TupleStructSep, Token::I32(7), - Token::TupleStructEnd, ] ); @@ -231,15 +213,12 @@ fn test_ser_named_map() { &[ Token::StructStart("SerNamedMap", 3), - Token::StructSep, Token::Str("a"), Token::I32(5), - Token::StructSep, Token::Str("b"), Token::I32(6), - Token::StructSep, Token::Str("c"), Token::I32(7), @@ -259,15 +238,12 @@ fn test_de_named_map() { &[ Token::StructStart("DeNamedMap", 3), - Token::StructSep, Token::Str("a"), Token::I32(5), - Token::StructSep, Token::Str("b"), Token::I32(6), - Token::StructSep, Token::Str("c"), Token::I32(7), @@ -302,19 +278,10 @@ fn test_ser_enum_seq() { ), &[ Token::EnumSeqStart("SerEnum", "Seq", 4), - - Token::EnumSeqSep, Token::I8(1), - - Token::EnumSeqSep, Token::I32(2), - - Token::EnumSeqSep, Token::I32(3), - - Token::EnumSeqSep, Token::I32(4), - Token::EnumSeqEnd, ], ); @@ -337,19 +304,15 @@ fn test_ser_enum_map() { &[ Token::EnumMapStart("SerEnum", "Map", 4), - Token::EnumMapSep, Token::Str("a"), Token::I8(1), - Token::EnumMapSep, Token::Str("b"), Token::I32(2), - Token::EnumMapSep, Token::Str("c"), Token::I32(3), - Token::EnumMapSep, Token::Str("d"), Token::I32(4), @@ -384,19 +347,10 @@ fn test_de_enum_seq() { ), &[ Token::EnumSeqStart("DeEnum", "Seq", 4), - - Token::EnumSeqSep, Token::I8(1), - - Token::EnumSeqSep, Token::I32(2), - - Token::EnumSeqSep, Token::I32(3), - - Token::EnumSeqSep, Token::I32(4), - Token::EnumSeqEnd, ], ); @@ -419,19 +373,15 @@ fn test_de_enum_map() { &[ Token::EnumMapStart("DeEnum", "Map", 4), - Token::EnumMapSep, Token::Str("a"), Token::I8(1), - Token::EnumMapSep, Token::Str("b"), Token::I32(2), - Token::EnumMapSep, Token::Str("c"), Token::I32(3), - Token::EnumMapSep, Token::Str("d"), Token::I32(4), @@ -465,7 +415,6 @@ fn test_lifetimes() { &[ Token::EnumMapStart("Lifetimes", "LifetimeMap", 1), - Token::EnumMapSep, Token::Str("a"), Token::I32(5), @@ -478,7 +427,6 @@ fn test_lifetimes() { &[ Token::EnumMapStart("Lifetimes", "NoLifetimeMap", 1), - Token::EnumMapSep, Token::Str("a"), Token::I32(5), @@ -494,7 +442,6 @@ fn test_generic_struct() { &[ Token::StructStart("GenericStruct", 1), - Token::StructSep, Token::Str("x"), Token::U32(5), @@ -520,13 +467,8 @@ fn test_generic_tuple_struct() { &GenericTupleStruct(5u32, 6u32), &[ Token::TupleStructStart("GenericTupleStruct", 2), - - Token::TupleStructSep, Token::U32(5), - - Token::TupleStructSep, Token::U32(6), - Token::TupleStructEnd, ] ); @@ -559,13 +501,8 @@ fn test_generic_enum_seq() { &GenericEnum::Seq::(5, 6), &[ Token::EnumSeqStart("GenericEnum", "Seq", 2), - - Token::EnumSeqSep, Token::U32(5), - - Token::EnumSeqSep, Token::U32(6), - Token::EnumSeqEnd, ] ); @@ -578,11 +515,9 @@ fn test_generic_enum_map() { &[ Token::EnumMapStart("GenericEnum", "Map", 2), - Token::EnumMapSep, Token::Str("x"), Token::U32(5), - Token::EnumMapSep, Token::Str("y"), Token::U32(6), @@ -598,7 +533,6 @@ fn test_default_ty_param() { &[ Token::StructStart("DefaultTyParam", 1), - Token::StructSep, Token::Str("phantom"), Token::UnitStruct("PhantomData"), @@ -619,11 +553,9 @@ fn test_enum_state_field() { &[ Token::EnumMapStart("SomeEnum", "Key", 2), - Token::EnumMapSep, Token::Str("key"), Token::Char('a'), - Token::EnumMapSep, Token::Str("state"), Token::Bool(true), @@ -654,7 +586,6 @@ fn test_untagged_enum() { &[ Token::StructStart("Untagged", 1), - Token::StructSep, Token::Str("a"), Token::U8(1), @@ -667,7 +598,6 @@ fn test_untagged_enum() { &[ Token::StructStart("Untagged", 1), - Token::StructSep, Token::Str("b"), Token::U8(2), @@ -699,13 +629,8 @@ fn test_untagged_enum() { &Untagged::F(1, 2), &[ Token::TupleStart(2), - - Token::TupleSep, Token::U8(1), - - Token::TupleSep, Token::U8(2), - Token::TupleEnd, ] ); @@ -720,10 +645,7 @@ fn test_untagged_enum() { assert_de_tokens_error::( &[ Token::TupleStart(1), - - Token::TupleSep, Token::U8(1), - Token::TupleEnd, ], Error::Message("data did not match any variant of untagged enum Untagged".to_owned()), @@ -732,16 +654,9 @@ fn test_untagged_enum() { assert_de_tokens_error::( &[ Token::TupleStart(3), - - Token::TupleSep, Token::U8(1), - - Token::TupleSep, Token::U8(2), - - Token::TupleSep, Token::U8(3), - Token::TupleEnd, ], Error::Message("data did not match any variant of untagged enum Untagged".to_owned()), @@ -778,11 +693,9 @@ fn test_internally_tagged_enum() { &[ Token::StructStart("InternallyTagged", 2), - Token::StructSep, Token::Str("type"), Token::Str("A"), - Token::StructSep, Token::Str("a"), Token::U8(1), @@ -795,11 +708,9 @@ fn test_internally_tagged_enum() { &[ Token::StructStart("InternallyTagged", 2), - Token::StructSep, Token::Str("type"), Token::Str("B"), - Token::StructSep, Token::Str("b"), Token::U8(2), @@ -812,7 +723,6 @@ fn test_internally_tagged_enum() { &[ Token::StructStart("InternallyTagged", 1), - Token::StructSep, Token::Str("type"), Token::Str("C"), @@ -825,7 +735,6 @@ fn test_internally_tagged_enum() { &[ Token::MapStart(Some(1)), - Token::MapSep, Token::Str("type"), Token::Str("D"), @@ -838,7 +747,6 @@ fn test_internally_tagged_enum() { &[ Token::MapStart(Some(1)), - Token::MapSep, Token::Str("type"), Token::Str("E"), @@ -851,11 +759,9 @@ fn test_internally_tagged_enum() { &[ Token::StructStart("Struct", 2), - Token::StructSep, Token::Str("type"), Token::Str("F"), - Token::StructSep, Token::Str("f"), Token::U8(6), @@ -875,7 +781,6 @@ fn test_internally_tagged_enum() { &[ Token::MapStart(Some(1)), - Token::MapSep, Token::Str("type"), Token::Str("Z"), @@ -902,7 +807,6 @@ fn test_adjacently_tagged_enum() { &[ Token::StructStart("AdjacentlyTagged", 1), - Token::StructSep, Token::Str("t"), Token::Str("Unit"), @@ -916,11 +820,9 @@ fn test_adjacently_tagged_enum() { &[ Token::StructStart("AdjacentlyTagged", 1), - Token::StructSep, Token::Str("t"), Token::Str("Unit"), - Token::StructSep, Token::Str("c"), Token::Unit, @@ -934,11 +836,9 @@ fn test_adjacently_tagged_enum() { &[ Token::StructStart("AdjacentlyTagged", 1), - Token::StructSep, Token::Str("c"), Token::Unit, - Token::StructSep, Token::Str("t"), Token::Str("Unit"), @@ -952,11 +852,9 @@ fn test_adjacently_tagged_enum() { &[ Token::StructStart("AdjacentlyTagged", 2), - Token::StructSep, Token::Str("t"), Token::Str("Newtype"), - Token::StructSep, Token::Str("c"), Token::U8(1), @@ -970,11 +868,9 @@ fn test_adjacently_tagged_enum() { &[ Token::StructStart("AdjacentlyTagged", 2), - Token::StructSep, Token::Str("c"), Token::U8(1), - Token::StructSep, Token::Str("t"), Token::Str("Newtype"), @@ -988,16 +884,12 @@ fn test_adjacently_tagged_enum() { &[ Token::StructStart("AdjacentlyTagged", 2), - Token::StructSep, Token::Str("t"), Token::Str("Tuple"), - Token::StructSep, Token::Str("c"), Token::TupleStart(2), - Token::TupleSep, Token::U8(1), - Token::TupleSep, Token::U8(1), Token::TupleEnd, @@ -1011,16 +903,12 @@ fn test_adjacently_tagged_enum() { &[ Token::StructStart("AdjacentlyTagged", 2), - Token::StructSep, Token::Str("c"), Token::TupleStart(2), - Token::TupleSep, Token::U8(1), - Token::TupleSep, Token::U8(1), Token::TupleEnd, - Token::StructSep, Token::Str("t"), Token::Str("Tuple"), @@ -1034,14 +922,11 @@ fn test_adjacently_tagged_enum() { &[ Token::StructStart("AdjacentlyTagged", 2), - Token::StructSep, Token::Str("t"), Token::Str("Struct"), - Token::StructSep, Token::Str("c"), Token::StructStart("Struct", 1), - Token::StructSep, Token::Str("f"), Token::U8(1), Token::StructEnd, @@ -1056,15 +941,12 @@ fn test_adjacently_tagged_enum() { &[ Token::StructStart("AdjacentlyTagged", 2), - Token::StructSep, Token::Str("c"), Token::StructStart("Struct", 1), - Token::StructSep, Token::Str("f"), Token::U8(1), Token::StructEnd, - Token::StructSep, Token::Str("t"), Token::Str("Struct"), @@ -1094,11 +976,9 @@ fn test_enum_in_internally_tagged_enum() { &[ Token::MapStart(Some(2)), - Token::MapSep, Token::Str("type"), Token::Str("Inner"), - Token::MapSep, Token::Str("Unit"), Token::Unit, @@ -1111,11 +991,9 @@ fn test_enum_in_internally_tagged_enum() { &[ Token::MapStart(Some(2)), - Token::MapSep, Token::Str("type"), Token::Str("Inner"), - Token::MapSep, Token::Str("Newtype"), Token::U8(1), @@ -1128,16 +1006,12 @@ fn test_enum_in_internally_tagged_enum() { &[ Token::MapStart(Some(2)), - Token::MapSep, Token::Str("type"), Token::Str("Inner"), - Token::MapSep, Token::Str("Tuple"), Token::TupleStructStart("Tuple", 2), - Token::TupleStructSep, Token::U8(1), - Token::TupleStructSep, Token::U8(1), Token::TupleStructEnd, @@ -1150,14 +1024,11 @@ fn test_enum_in_internally_tagged_enum() { &[ Token::MapStart(Some(2)), - Token::MapSep, Token::Str("type"), Token::Str("Inner"), - Token::MapSep, Token::Str("Struct"), Token::StructStart("Struct", 1), - Token::StructSep, Token::Str("f"), Token::U8(1), Token::StructEnd, @@ -1202,12 +1073,8 @@ fn test_enum_in_untagged_enum() { &Outer::Inner(Inner::Tuple(1, 1)), &[ Token::EnumSeqStart("Inner", "Tuple", 2), - - Token::EnumSeqSep, Token::U8(1), - Token::EnumSeqSep, Token::U8(1), - Token::EnumSeqEnd, ] ); @@ -1217,7 +1084,6 @@ fn test_enum_in_untagged_enum() { &[ Token::EnumMapStart("Inner", "Struct", 1), - Token::EnumMapSep, Token::Str("f"), Token::U8(1), @@ -1259,10 +1125,8 @@ fn test_rename_all() { &E::Serialize { serialize: true, serialize_seq: true }, &[ Token::EnumMapStart("E", "serialize", 2), - Token::EnumMapSep, Token::Str("serialize"), Token::Bool(true), - Token::EnumMapSep, Token::Str("serializeSeq"), Token::Bool(true), Token::EnumMapEnd, @@ -1273,10 +1137,8 @@ fn test_rename_all() { &E::SerializeSeq { serialize: true, serialize_seq: true }, &[ Token::EnumMapStart("E", "serialize_seq", 2), - Token::EnumMapSep, Token::Str("serialize"), Token::Bool(true), - Token::EnumMapSep, Token::Str("serialize-seq"), Token::Bool(true), Token::EnumMapEnd, @@ -1287,10 +1149,8 @@ fn test_rename_all() { &E::SerializeMap { serialize: true, serialize_seq: true }, &[ Token::EnumMapStart("E", "serialize_map", 2), - Token::EnumMapSep, Token::Str("SERIALIZE"), Token::Bool(true), - Token::EnumMapSep, Token::Str("SERIALIZE_SEQ"), Token::Bool(true), Token::EnumMapEnd, @@ -1301,10 +1161,8 @@ fn test_rename_all() { &S { serialize: true, serialize_seq: true }, &[ Token::StructStart("S", 2), - Token::StructSep, Token::Str("Serialize"), Token::Bool(true), - Token::StructSep, Token::Str("SerializeSeq"), Token::Bool(true), Token::StructEnd, diff --git a/test_suite/tests/test_ser.rs b/test_suite/tests/test_ser.rs index 7613cb8a..89df7851 100644 --- a/test_suite/tests/test_ser.rs +++ b/test_suite/tests/test_ser.rs @@ -125,13 +125,8 @@ declare_tests! { ], &[1, 2, 3][..] => &[ Token::SeqStart(Some(3)), - Token::SeqSep, Token::I32(1), - - Token::SeqSep, Token::I32(2), - - Token::SeqSep, Token::I32(3), Token::SeqEnd, ], @@ -143,13 +138,8 @@ declare_tests! { ], [1, 2, 3] => &[ Token::SeqArrayStart(3), - Token::SeqSep, Token::I32(1), - - Token::SeqSep, Token::I32(2), - - Token::SeqSep, Token::I32(3), Token::SeqEnd, ], @@ -161,22 +151,15 @@ declare_tests! { ], vec![vec![], vec![1], vec![2, 3]] => &[ Token::SeqStart(Some(3)), - Token::SeqSep, Token::SeqStart(Some(0)), Token::SeqEnd, - Token::SeqSep, Token::SeqStart(Some(1)), - Token::SeqSep, Token::I32(1), Token::SeqEnd, - Token::SeqSep, Token::SeqStart(Some(2)), - Token::SeqSep, Token::I32(2), - - Token::SeqSep, Token::I32(3), Token::SeqEnd, Token::SeqEnd, @@ -189,13 +172,11 @@ declare_tests! { ], hashset![1] => &[ Token::SeqStart(Some(1)), - Token::SeqSep, Token::I32(1), Token::SeqEnd, ], hashset![FnvHasher @ 1] => &[ Token::SeqStart(Some(1)), - Token::SeqSep, Token::I32(1), Token::SeqEnd, ], @@ -203,19 +184,13 @@ declare_tests! { test_tuple { (1,) => &[ Token::TupleStart(1), - Token::TupleSep, Token::I32(1), Token::TupleEnd, ], (1, 2, 3) => &[ Token::TupleStart(3), - Token::TupleSep, Token::I32(1), - - Token::TupleSep, Token::I32(2), - - Token::TupleSep, Token::I32(3), Token::TupleEnd, ], @@ -223,37 +198,30 @@ declare_tests! { test_btreemap { btreemap![1 => 2] => &[ Token::MapStart(Some(1)), - Token::MapSep, Token::I32(1), Token::I32(2), Token::MapEnd, ], btreemap![1 => 2, 3 => 4] => &[ Token::MapStart(Some(2)), - Token::MapSep, Token::I32(1), Token::I32(2), - Token::MapSep, Token::I32(3), Token::I32(4), Token::MapEnd, ], btreemap![1 => btreemap![], 2 => btreemap![3 => 4, 5 => 6]] => &[ Token::MapStart(Some(2)), - Token::MapSep, Token::I32(1), Token::MapStart(Some(0)), Token::MapEnd, - Token::MapSep, Token::I32(2), Token::MapStart(Some(2)), - Token::MapSep, Token::I32(3), Token::I32(4), - Token::MapSep, Token::I32(5), Token::I32(6), Token::MapEnd, @@ -267,14 +235,12 @@ declare_tests! { ], hashmap![1 => 2] => &[ Token::MapStart(Some(1)), - Token::MapSep, Token::I32(1), Token::I32(2), Token::MapEnd, ], hashmap![FnvHasher @ 1 => 2] => &[ Token::MapStart(Some(1)), - Token::MapSep, Token::I32(1), Token::I32(2), Token::MapEnd, @@ -286,13 +252,8 @@ declare_tests! { test_tuple_struct { TupleStruct(1, 2, 3) => &[ Token::TupleStructStart("TupleStruct", 3), - Token::TupleStructSep, Token::I32(1), - - Token::TupleStructSep, Token::I32(2), - - Token::TupleStructSep, Token::I32(3), Token::TupleStructEnd, ], @@ -300,15 +261,12 @@ declare_tests! { test_struct { Struct { a: 1, b: 2, c: 3 } => &[ Token::StructStart("Struct", 3), - Token::StructSep, Token::Str("a"), Token::I32(1), - Token::StructSep, Token::Str("b"), Token::I32(2), - Token::StructSep, Token::Str("c"), Token::I32(3), Token::StructEnd, @@ -319,20 +277,15 @@ declare_tests! { Enum::One(42) => &[Token::EnumNewType("Enum", "One"), Token::I32(42)], Enum::Seq(1, 2) => &[ Token::EnumSeqStart("Enum", "Seq", 2), - Token::EnumSeqSep, Token::I32(1), - - Token::EnumSeqSep, Token::I32(2), Token::EnumSeqEnd, ], Enum::Map { a: 1, b: 2 } => &[ Token::EnumMapStart("Enum", "Map", 2), - Token::EnumMapSep, Token::Str("a"), Token::I32(1), - Token::EnumMapSep, Token::Str("b"), Token::I32(2), Token::EnumMapEnd, @@ -344,11 +297,8 @@ declare_tests! { test_boxed_slice { Box::new([0, 1, 2]) => &[ Token::SeqArrayStart(3), - Token::SeqSep, Token::I32(0), - Token::SeqSep, Token::I32(1), - Token::SeqSep, Token::I32(2), Token::SeqEnd, ], @@ -356,11 +306,9 @@ declare_tests! { test_duration { Duration::new(1, 2) => &[ Token::StructStart("Duration", 2), - Token::StructSep, Token::Str("secs"), Token::U64(1), - Token::StructSep, Token::Str("nanos"), Token::U32(2), Token::StructEnd, @@ -369,11 +317,9 @@ declare_tests! { test_range { 1u32..2u32 => &[ Token::StructStart("Range", 2), - Token::StructSep, Token::Str("start"), Token::U32(1), - Token::StructSep, Token::Str("end"), Token::U32(2), Token::StructEnd,