feat(codegen): Support renames that are different when serializing and deserializing

According to #61, if one uses serde to serialize requests that pass
url-encoded parameters to a server, it might get responses back
with a different capitalization scheme. This patch restores the
behavior implemented in #62.

# Conflicts:
#	serde_codegen/src/attr.rs
#	serde_codegen/src/de.rs
#	serde_tests/tests/test_annotations.rs
This commit is contained in:
Erick Tryzelaar
2016-02-08 10:35:42 -08:00
parent 365e5129af
commit b842164fd8
4 changed files with 220 additions and 34 deletions
+3 -3
View File
@@ -554,7 +554,7 @@ fn deserialize_item_enum(
enum_def.variants.iter()
.map(|variant| {
let attrs = try!(attr::VariantAttrs::from_variant(cx, variant));
Ok(attrs.name_expr())
Ok(attrs.deserialize_name_expr())
})
.collect()
),
@@ -924,7 +924,7 @@ fn deserialize_struct_visitor(
fields.iter()
.map(|field| {
let attrs = try!(attr::FieldAttrs::from_field(cx, field));
Ok(attrs.name_expr())
Ok(attrs.deserialize_name_expr())
})
.collect()
),
@@ -1007,7 +1007,7 @@ fn deserialize_map(
let missing_expr = if field_attr.use_default() {
quote_expr!(cx, ::std::default::Default::default())
} else {
let name = field_attr.name_expr();
let name = field_attr.ident_expr();
quote_expr!(cx, try!(visitor.missing_field($name)))
};