mirror of
https://github.com/pezkuwichain/serde.git
synced 2026-06-24 07:41:05 +00:00
Struct: add tests for deserialization from sequence
(review this commit with "ignore whitespace changes" option on)
This commit is contained in:
@@ -512,11 +512,14 @@ mod tuple {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
mod struct_ {
|
||||||
fn struct_() {
|
use super::*;
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn map() {
|
||||||
let value = AdjacentlyTagged::Struct::<u8> { f: 1 };
|
let value = AdjacentlyTagged::Struct::<u8> { f: 1 };
|
||||||
|
|
||||||
// struct with tag first
|
// Map: tag + content
|
||||||
assert_tokens(
|
assert_tokens(
|
||||||
&value,
|
&value,
|
||||||
&[
|
&[
|
||||||
@@ -541,7 +544,7 @@ fn struct_() {
|
|||||||
],
|
],
|
||||||
);
|
);
|
||||||
|
|
||||||
// struct with content first
|
// Map: content + tag
|
||||||
assert_de_tokens(
|
assert_de_tokens(
|
||||||
&value,
|
&value,
|
||||||
&[
|
&[
|
||||||
@@ -565,6 +568,32 @@ fn struct_() {
|
|||||||
Token::StructEnd,
|
Token::StructEnd,
|
||||||
],
|
],
|
||||||
);
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn seq() {
|
||||||
|
let value = AdjacentlyTagged::Struct::<u8> { f: 1 };
|
||||||
|
|
||||||
|
// Seq: tag + content
|
||||||
|
assert_de_tokens(
|
||||||
|
&value,
|
||||||
|
&[
|
||||||
|
Token::Seq { len: Some(2) },
|
||||||
|
Token::UnitVariant {
|
||||||
|
name: "AdjacentlyTagged",
|
||||||
|
variant: "Struct",
|
||||||
|
},
|
||||||
|
Token::Struct {
|
||||||
|
name: "Struct",
|
||||||
|
len: 1,
|
||||||
|
},
|
||||||
|
Token::Str("f"),
|
||||||
|
Token::U8(1),
|
||||||
|
Token::StructEnd,
|
||||||
|
Token::SeqEnd,
|
||||||
|
],
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
|
|||||||
Reference in New Issue
Block a user