Support borrowing within internally tagged enum

This commit is contained in:
David Tolnay
2017-05-10 19:56:05 -07:00
parent 58e30eaee4
commit c1259fbc87
2 changed files with 195 additions and 113 deletions
+24
View File
@@ -695,6 +695,30 @@ fn test_internally_tagged_enum() {
);
}
#[test]
fn test_internally_tagged_borrow() {
#[derive(Debug, PartialEq, Serialize, Deserialize)]
#[serde(tag = "type")]
pub enum Input<'a> {
Package { name: &'a str },
}
assert_tokens(
&Input::Package { name: "borrowed" },
&[
Token::Struct { name: "Input", len: 2 },
Token::BorrowedStr("type"),
Token::BorrowedStr("Package"),
Token::BorrowedStr("name"),
Token::BorrowedStr("borrowed"),
Token::StructEnd,
],
);
}
#[test]
fn test_adjacently_tagged_enum() {
#[derive(Debug, PartialEq, Serialize, Deserialize)]