Skip to content

Commit 6588b0a

Browse files
committed
Cover Content::Seq case in VariantRefDeserializer::struct_variant
1 parent 0093f74 commit 6588b0a

File tree

2 files changed

+21
-0
lines changed

2 files changed

+21
-0
lines changed

serde/src/private/de.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2217,6 +2217,8 @@ mod content {
22172217
Some(Content::Map(v)) => {
22182218
de::Deserializer::deserialize_any(MapRefDeserializer::new(v), visitor)
22192219
}
2220+
// Covered by tests/test_enum_untagged.rs
2221+
// newtype_enum::struct_from_seq
22202222
Some(Content::Seq(v)) => {
22212223
de::Deserializer::deserialize_any(SeqRefDeserializer::new(v), visitor)
22222224
}

test_suite/tests/test_enum_untagged.rs

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -214,6 +214,25 @@ mod newtype_enum {
214214
],
215215
);
216216
}
217+
218+
// Reaches crate::private::de::content::VariantRefDeserializer::struct_variant
219+
// Content::Seq case
220+
#[test]
221+
fn struct_from_seq() {
222+
assert_de_tokens(
223+
&Outer::Inner(Inner::Struct { f: 1 }),
224+
&[
225+
Token::Map { len: Some(1) },
226+
// tag
227+
Token::Str("Struct"),
228+
// content
229+
Token::Seq { len: Some(1) },
230+
Token::U8(1),
231+
Token::SeqEnd,
232+
Token::MapEnd,
233+
],
234+
);
235+
}
217236
}
218237

219238
// Reaches crate::private::de::content::ContentRefDeserializer::deserialize_option

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy