mirror of
https://github.com/pezkuwichain/serde.git
synced 2026-07-19 23:55:44 +00:00
Remove ident from Name struct
This commit is contained in:
+17
-23
@@ -83,26 +83,19 @@ impl<'a, 'b> BoolAttr<'a, 'b> {
|
|||||||
|
|
||||||
#[derive(Debug)]
|
#[derive(Debug)]
|
||||||
pub struct Name {
|
pub struct Name {
|
||||||
ident: ast::Ident,
|
serialize: InternedString,
|
||||||
serialize_name: Option<InternedString>,
|
deserialize: InternedString,
|
||||||
deserialize_name: Option<InternedString>,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Name {
|
impl Name {
|
||||||
/// Return the container name for the container when serializing.
|
/// Return the container name for the container when serializing.
|
||||||
pub fn serialize_name(&self) -> InternedString {
|
pub fn serialize_name(&self) -> InternedString {
|
||||||
match self.serialize_name {
|
self.serialize.clone()
|
||||||
Some(ref name) => name.clone(),
|
|
||||||
None => self.ident.name.as_str(),
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Return the container name for the container when deserializing.
|
/// Return the container name for the container when deserializing.
|
||||||
pub fn deserialize_name(&self) -> InternedString {
|
pub fn deserialize_name(&self) -> InternedString {
|
||||||
match self.deserialize_name {
|
self.deserialize.clone()
|
||||||
Some(ref name) => name.clone(),
|
|
||||||
None => self.ident.name.as_str(),
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -124,6 +117,8 @@ impl Item {
|
|||||||
let mut ser_bound = Attr::none(cx, "bound");
|
let mut ser_bound = Attr::none(cx, "bound");
|
||||||
let mut de_bound = Attr::none(cx, "bound");
|
let mut de_bound = Attr::none(cx, "bound");
|
||||||
|
|
||||||
|
let ident = item.ident.name.as_str();
|
||||||
|
|
||||||
for meta_items in item.attrs().iter().filter_map(get_serde_meta_items) {
|
for meta_items in item.attrs().iter().filter_map(get_serde_meta_items) {
|
||||||
for meta_item in meta_items {
|
for meta_item in meta_items {
|
||||||
let span = meta_item.span;
|
let span = meta_item.span;
|
||||||
@@ -177,9 +172,8 @@ impl Item {
|
|||||||
|
|
||||||
Item {
|
Item {
|
||||||
name: Name {
|
name: Name {
|
||||||
ident: item.ident,
|
serialize: ser_name.get().unwrap_or(ident.clone()),
|
||||||
serialize_name: ser_name.get(),
|
deserialize: de_name.get().unwrap_or(ident),
|
||||||
deserialize_name: de_name.get(),
|
|
||||||
},
|
},
|
||||||
deny_unknown_fields: deny_unknown_fields.get(),
|
deny_unknown_fields: deny_unknown_fields.get(),
|
||||||
ser_bound: ser_bound.get(),
|
ser_bound: ser_bound.get(),
|
||||||
@@ -215,6 +209,8 @@ impl Variant {
|
|||||||
let mut ser_name = Attr::none(cx, "rename");
|
let mut ser_name = Attr::none(cx, "rename");
|
||||||
let mut de_name = Attr::none(cx, "rename");
|
let mut de_name = Attr::none(cx, "rename");
|
||||||
|
|
||||||
|
let ident = variant.node.name.name.as_str();
|
||||||
|
|
||||||
for meta_items in variant.node.attrs.iter().filter_map(get_serde_meta_items) {
|
for meta_items in variant.node.attrs.iter().filter_map(get_serde_meta_items) {
|
||||||
for meta_item in meta_items {
|
for meta_item in meta_items {
|
||||||
let span = meta_item.span;
|
let span = meta_item.span;
|
||||||
@@ -247,9 +243,8 @@ impl Variant {
|
|||||||
|
|
||||||
Variant {
|
Variant {
|
||||||
name: Name {
|
name: Name {
|
||||||
ident: variant.node.name,
|
serialize: ser_name.get().unwrap_or(ident.clone()),
|
||||||
serialize_name: ser_name.get(),
|
deserialize: de_name.get().unwrap_or(ident),
|
||||||
deserialize_name: de_name.get(),
|
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -300,9 +295,9 @@ impl Field {
|
|||||||
let mut ser_bound = Attr::none(cx, "bound");
|
let mut ser_bound = Attr::none(cx, "bound");
|
||||||
let mut de_bound = Attr::none(cx, "bound");
|
let mut de_bound = Attr::none(cx, "bound");
|
||||||
|
|
||||||
let field_ident = match field.ident {
|
let ident = match field.ident {
|
||||||
Some(ident) => ident,
|
Some(ident) => ident.name.as_str(),
|
||||||
None => ast::Ident::with_empty_ctxt(token::intern(&index.to_string())),
|
None => token::intern_and_get_ident(&index.to_string()),
|
||||||
};
|
};
|
||||||
|
|
||||||
for meta_items in field.attrs.iter().filter_map(get_serde_meta_items) {
|
for meta_items in field.attrs.iter().filter_map(get_serde_meta_items) {
|
||||||
@@ -402,9 +397,8 @@ impl Field {
|
|||||||
|
|
||||||
Field {
|
Field {
|
||||||
name: Name {
|
name: Name {
|
||||||
ident: field_ident,
|
serialize: ser_name.get().unwrap_or(ident.clone()),
|
||||||
serialize_name: ser_name.get(),
|
deserialize: de_name.get().unwrap_or(ident),
|
||||||
deserialize_name: de_name.get(),
|
|
||||||
},
|
},
|
||||||
skip_serializing: skip_serializing.get(),
|
skip_serializing: skip_serializing.get(),
|
||||||
skip_deserializing: skip_deserializing.get(),
|
skip_deserializing: skip_deserializing.get(),
|
||||||
|
|||||||
Reference in New Issue
Block a user