Pass RenameRule, RenameAllRules by value

This commit is contained in:
Jonas Platte 2019-12-15 19:11:46 +01:00
parent 2f9bf4d3eb
commit 56be1c203e
No known key found for this signature in database
GPG Key ID: CC154DE0E30B7C67
3 changed files with 19 additions and 19 deletions

View File

@ -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()),

View File

@ -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);
} }

View File

@ -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,
} }
} }
} }