From dc4bb0bf083d6f472eb6892b50cbc7e3fb027a72 Mon Sep 17 00:00:00 2001 From: David Tolnay Date: Wed, 22 Aug 2018 20:50:29 -0400 Subject: [PATCH] Trim the r# from raw identifiers in user-facing strings --- serde_derive/src/de.rs | 3 ++- serde_derive/src/internals/attr.rs | 14 +++++++++----- serde_derive/src/ser.rs | 3 ++- 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/serde_derive/src/de.rs b/serde_derive/src/de.rs index e2ddfee1..af5d5b0c 100644 --- a/serde_derive/src/de.rs +++ b/serde_derive/src/de.rs @@ -30,8 +30,9 @@ pub fn expand_derive_deserialize(input: &syn::DeriveInput) -> Result String { + ident.to_string().trim_left_matches("r#").to_owned() +} + impl Name { /// Return the container name for the container when serializing. pub fn serialize_name(&self) -> String { @@ -380,8 +384,8 @@ impl Container { Container { name: Name { - serialize: ser_name.get().unwrap_or_else(|| item.ident.to_string()), - deserialize: de_name.get().unwrap_or_else(|| item.ident.to_string()), + serialize: ser_name.get().unwrap_or_else(|| unraw(&item.ident)), + deserialize: de_name.get().unwrap_or_else(|| unraw(&item.ident)), }, transparent: transparent.get(), deny_unknown_fields: deny_unknown_fields.get(), @@ -697,8 +701,8 @@ impl Variant { let de_renamed = de_name.is_some(); Variant { name: Name { - serialize: ser_name.unwrap_or_else(|| variant.ident.to_string()), - deserialize: de_name.unwrap_or_else(|| variant.ident.to_string()), + serialize: ser_name.unwrap_or_else(|| unraw(&variant.ident)), + deserialize: de_name.unwrap_or_else(|| unraw(&variant.ident)), }, ser_renamed: ser_renamed, de_renamed: de_renamed, @@ -822,7 +826,7 @@ impl Field { let mut flatten = BoolAttr::none(cx, "flatten"); let ident = match field.ident { - Some(ref ident) => ident.to_string(), + Some(ref ident) => unraw(ident), None => index.to_string(), }; diff --git a/serde_derive/src/ser.rs b/serde_derive/src/ser.rs index 30c326d9..d5ae1401 100644 --- a/serde_derive/src/ser.rs +++ b/serde_derive/src/ser.rs @@ -26,7 +26,8 @@ pub fn expand_derive_serialize(input: &syn::DeriveInput) -> Result