Eliminate Sep tokens in serde_test
This commit is contained in:
parent
9b51be4ba6
commit
67ed7a0edd
@ -42,7 +42,6 @@ impl<'de> Deserializer<'de> {
|
||||
|
||||
fn visit_seq<V>(&mut self,
|
||||
len: Option<usize>,
|
||||
sep: Token,
|
||||
end: Token,
|
||||
visitor: V)
|
||||
-> Result<V::Value, Error>
|
||||
@ -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<V>(&mut self,
|
||||
len: Option<usize>,
|
||||
sep: Token,
|
||||
end: Token,
|
||||
visitor: V)
|
||||
-> Result<V::Value, Error>
|
||||
@ -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<usize>,
|
||||
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<usize>) {
|
||||
@ -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<usize>,
|
||||
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<V>(&mut self, seed: V) -> Result<V::Value, Error>
|
||||
@ -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<Token>,
|
||||
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<V>(&mut self, seed: V) -> Result<V::Value, Error>
|
||||
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),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -253,7 +253,6 @@ impl<'s, 'a> ser::SerializeSeq for &'s mut Serializer<'a> {
|
||||
fn serialize_element<T: ?Sized>(&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<T: ?Sized>(&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<T: ?Sized>(&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<T: ?Sized>(&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<T: ?Sized>(&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)
|
||||
}
|
||||
|
@ -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<usize>),
|
||||
|
||||
/// 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,
|
||||
}
|
||||
|
@ -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::<InvalidLengthEnum>(
|
||||
&[
|
||||
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::<InvalidLengthEnum>(
|
||||
&[
|
||||
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()),
|
||||
|
@ -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"),
|
||||
|
||||
|
@ -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,
|
||||
]);
|
||||
|
@ -152,11 +152,9 @@ fn assert_de_tokens_ignore(ignorable_tokens: &[Token]) {
|
||||
// stream for an IgnoreBase type
|
||||
let concated_tokens : Vec<Token> = 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<StructDenyUnknown> {
|
||||
&[
|
||||
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<StructDenyUnknown> {
|
||||
&[
|
||||
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<StructSkipAllDenyUnknown> {
|
||||
&[
|
||||
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<Struct> {
|
||||
&[
|
||||
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<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<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,
|
||||
],
|
||||
|
@ -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::<u32, u32>(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::<Untagged>(
|
||||
&[
|
||||
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::<Untagged>(
|
||||
&[
|
||||
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,
|
||||
|
@ -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,
|
||||
|
Loading…
x
Reference in New Issue
Block a user