mirror of
https://github.com/pezkuwichain/serde.git
synced 2026-04-23 05:58:01 +00:00
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:
@@ -311,7 +311,7 @@ fn serialize_variant(
|
||||
let type_name = builder.expr().str(type_ident);
|
||||
let variant_ident = variant.node.name;
|
||||
let variant_attrs = try!(attr::VariantAttrs::from_variant(cx, variant));
|
||||
let variant_name = variant_attrs.name_expr();
|
||||
let variant_name = variant_attrs.serialize_name_expr();
|
||||
|
||||
match variant.node.data {
|
||||
ast::VariantData::Unit(_) => {
|
||||
@@ -613,7 +613,7 @@ fn serialize_struct_visitor<I>(
|
||||
.filter(|&(ref field, _)| !field.skip_serializing_field())
|
||||
.enumerate()
|
||||
.map(|(i, (ref field, value_expr))| {
|
||||
let key_expr = field.name_expr();
|
||||
let key_expr = field.serialize_name_expr();
|
||||
|
||||
let stmt = if field.skip_serializing_field_if_empty() {
|
||||
quote_stmt!(cx, if ($value_expr).is_empty() { continue; })
|
||||
|
||||
Reference in New Issue
Block a user