1- use serde_derive:: Deserialize ;
2-
31use crate :: identifiers:: { IdentifierManglingError , javaify_identifier} ;
42use crate :: parser_util:: JavaField ;
53
@@ -8,47 +6,15 @@ pub enum FieldMangling<'a> {
86 GetSet ( String , String ) ,
97}
108
11- #[ derive( Clone , Debug , Deserialize , PartialEq , Eq , Hash ) ]
12- pub struct FieldManglingStyle {
13- pub const_finals : bool , // Default: true
14- pub getter_pattern : String , // Default: "{NAME}", might consider "get_{NAME}"
15- pub setter_pattern : String , // Default: "set_{NAME}"
16- }
17-
18- impl Default for FieldManglingStyle {
19- fn default ( ) -> Self {
20- Self {
21- const_finals : true ,
22- getter_pattern : String :: from ( "{NAME}" ) ,
23- setter_pattern : String :: from ( "set_{NAME}" ) ,
24- }
25- }
26- }
27-
28- impl FieldManglingStyle {
29- pub fn mangle < ' a > (
30- & self ,
31- field : JavaField < ' a > ,
32- renamed_to : Option < & str > ,
33- ) -> Result < FieldMangling < ' a > , IdentifierManglingError > {
34- let field_name = renamed_to. unwrap_or ( field. name ( ) ) ;
35- if let ( Some ( value) , true ) = ( field. constant ( ) . as_ref ( ) , self . const_finals ) {
36- let name = if renamed_to. is_some ( ) {
37- Ok ( field_name. to_owned ( ) ) // Don't remangle renames
38- } else {
39- javaify_identifier ( field_name)
40- } ?;
41-
42- Ok ( FieldMangling :: ConstValue ( name, value. clone ( ) ) )
43- } else {
44- Ok ( FieldMangling :: GetSet (
45- self . mangle_identifier ( self . getter_pattern . replace ( "{NAME}" , field_name) . as_str ( ) ) ?,
46- self . mangle_identifier ( self . setter_pattern . replace ( "{NAME}" , field_name) . as_str ( ) ) ?,
47- ) )
48- }
49- }
50-
51- fn mangle_identifier ( & self , ident : & str ) -> Result < String , IdentifierManglingError > {
52- javaify_identifier ( ident)
9+ pub fn mangle_field < ' a > ( field : JavaField < ' a > ) -> Result < FieldMangling < ' a > , IdentifierManglingError > {
10+ let field_name = field. name ( ) ;
11+ if let Some ( value) = field. constant ( ) . as_ref ( ) {
12+ let name = javaify_identifier ( field_name) ?;
13+ Ok ( FieldMangling :: ConstValue ( name, value. clone ( ) ) )
14+ } else {
15+ Ok ( FieldMangling :: GetSet (
16+ javaify_identifier ( field_name) ?,
17+ javaify_identifier ( & format ! ( "set_{field_name}" ) ) ?,
18+ ) )
5319 }
5420}
0 commit comments