mirror of
https://github.com/serde-rs/serde.git
synced 2025-09-30 14:31:53 +00:00
Pass RenameRule, RenameAllRules by value
This commit is contained in:
parent
2f9bf4d3eb
commit
56be1c203e
@ -89,7 +89,7 @@ impl<'a> Container<'a> {
|
|||||||
has_flatten = true;
|
has_flatten = true;
|
||||||
}
|
}
|
||||||
field.attrs.rename_by_rules(
|
field.attrs.rename_by_rules(
|
||||||
&variant
|
variant
|
||||||
.attrs
|
.attrs
|
||||||
.rename_all_rules()
|
.rename_all_rules()
|
||||||
.or(attrs.rename_all_fields_rules()),
|
.or(attrs.rename_all_fields_rules()),
|
||||||
|
@ -202,10 +202,10 @@ pub struct RenameAllRules {
|
|||||||
impl RenameAllRules {
|
impl RenameAllRules {
|
||||||
/// Returns a new `RenameAllRules` with the individual rules of `self` and
|
/// Returns a new `RenameAllRules` with the individual rules of `self` and
|
||||||
/// `other_rules` joined by `RenameRules::or`.
|
/// `other_rules` joined by `RenameRules::or`.
|
||||||
pub fn or(&self, other_rules: &Self) -> Self {
|
pub fn or(self, other_rules: Self) -> Self {
|
||||||
Self {
|
Self {
|
||||||
serialize: self.serialize.or(&other_rules.serialize),
|
serialize: self.serialize.or(other_rules.serialize),
|
||||||
deserialize: self.deserialize.or(&other_rules.deserialize),
|
deserialize: self.deserialize.or(other_rules.deserialize),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -604,12 +604,12 @@ impl Container {
|
|||||||
&self.name
|
&self.name
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn rename_all_rules(&self) -> &RenameAllRules {
|
pub fn rename_all_rules(&self) -> RenameAllRules {
|
||||||
&self.rename_all_rules
|
self.rename_all_rules
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn rename_all_fields_rules(&self) -> &RenameAllRules {
|
pub fn rename_all_fields_rules(&self) -> RenameAllRules {
|
||||||
&self.rename_all_fields_rules
|
self.rename_all_fields_rules
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn transparent(&self) -> bool {
|
pub fn transparent(&self) -> bool {
|
||||||
@ -982,7 +982,7 @@ impl Variant {
|
|||||||
self.name.deserialize_aliases()
|
self.name.deserialize_aliases()
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn rename_by_rules(&mut self, rules: &RenameAllRules) {
|
pub fn rename_by_rules(&mut self, rules: RenameAllRules) {
|
||||||
if !self.name.serialize_renamed {
|
if !self.name.serialize_renamed {
|
||||||
self.name.serialize = rules.serialize.apply_to_variant(&self.name.serialize);
|
self.name.serialize = rules.serialize.apply_to_variant(&self.name.serialize);
|
||||||
}
|
}
|
||||||
@ -991,8 +991,8 @@ impl Variant {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn rename_all_rules(&self) -> &RenameAllRules {
|
pub fn rename_all_rules(&self) -> RenameAllRules {
|
||||||
&self.rename_all_rules
|
self.rename_all_rules
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn ser_bound(&self) -> Option<&[syn::WherePredicate]> {
|
pub fn ser_bound(&self) -> Option<&[syn::WherePredicate]> {
|
||||||
@ -1321,7 +1321,7 @@ impl Field {
|
|||||||
self.name.deserialize_aliases()
|
self.name.deserialize_aliases()
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn rename_by_rules(&mut self, rules: &RenameAllRules) {
|
pub fn rename_by_rules(&mut self, rules: RenameAllRules) {
|
||||||
if !self.name.serialize_renamed {
|
if !self.name.serialize_renamed {
|
||||||
self.name.serialize = rules.serialize.apply_to_field(&self.name.serialize);
|
self.name.serialize = rules.serialize.apply_to_field(&self.name.serialize);
|
||||||
}
|
}
|
||||||
|
@ -59,8 +59,8 @@ impl RenameRule {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// Apply a renaming rule to an enum variant, returning the version expected in the source.
|
/// Apply a renaming rule to an enum variant, returning the version expected in the source.
|
||||||
pub fn apply_to_variant(&self, variant: &str) -> String {
|
pub fn apply_to_variant(self, variant: &str) -> String {
|
||||||
match *self {
|
match self {
|
||||||
None | PascalCase => variant.to_owned(),
|
None | PascalCase => variant.to_owned(),
|
||||||
LowerCase => variant.to_ascii_lowercase(),
|
LowerCase => variant.to_ascii_lowercase(),
|
||||||
UpperCase => variant.to_ascii_uppercase(),
|
UpperCase => variant.to_ascii_uppercase(),
|
||||||
@ -84,8 +84,8 @@ impl RenameRule {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// Apply a renaming rule to a struct field, returning the version expected in the source.
|
/// Apply a renaming rule to a struct field, returning the version expected in the source.
|
||||||
pub fn apply_to_field(&self, field: &str) -> String {
|
pub fn apply_to_field(self, field: &str) -> String {
|
||||||
match *self {
|
match self {
|
||||||
None | LowerCase | SnakeCase => field.to_owned(),
|
None | LowerCase | SnakeCase => field.to_owned(),
|
||||||
UpperCase => field.to_ascii_uppercase(),
|
UpperCase => field.to_ascii_uppercase(),
|
||||||
PascalCase => {
|
PascalCase => {
|
||||||
@ -114,10 +114,10 @@ impl RenameRule {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// Returns the `RenameRule` if it is not `None`, `rule_b` otherwise.
|
/// Returns the `RenameRule` if it is not `None`, `rule_b` otherwise.
|
||||||
pub fn or(&self, rule_b: &Self) -> Self {
|
pub fn or(self, rule_b: Self) -> Self {
|
||||||
match self {
|
match self {
|
||||||
None => *rule_b,
|
None => rule_b,
|
||||||
_ => *self,
|
_ => self,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user