Fix deserializer bounds on remote derive

This commit is contained in:
David Tolnay
2017-06-29 20:12:44 -07:00
parent 4fdba725fe
commit 1d3e921ba6
2 changed files with 31 additions and 5 deletions
+28
View File
@@ -330,6 +330,34 @@ fn test_gen() {
struct EmptyArray {
empty: [X; 0],
}
enum Or<A, B> {
A(A),
B(B),
}
#[derive(Serialize, Deserialize)]
#[serde(untagged, remote = "Or")]
enum OrDef<A, B> {
#[allow(dead_code)]
A(A),
#[allow(dead_code)]
B(B),
}
struct Str<'a>(&'a str);
#[derive(Serialize, Deserialize)]
#[serde(remote = "Str")]
struct StrDef<'a>(&'a str);
#[derive(Serialize, Deserialize)]
struct Remote<'a> {
#[serde(with = "OrDef")]
or: Or<u8, bool>,
#[serde(borrow, with = "StrDef")]
s: Str<'a>,
}
}
//////////////////////////////////////////////////////////////////////////