@@ -810,17 +810,6 @@ fn expand_svd_register(
810
810
811
811
/// Convert a parsed `Register` into its `Field` equivalent
812
812
fn convert_svd_register ( register : & Register , name : Option < & str > ) -> Result < syn:: Field , syn:: Error > {
813
- let name_to_ty_str = |name : & String , ns : Option < & str > | -> String {
814
- if let Some ( ns) = ns {
815
- String :: from ( "self::" )
816
- + & ns. to_sanitized_snake_case ( )
817
- + "::"
818
- + & name. to_sanitized_upper_case ( )
819
- } else {
820
- name. to_sanitized_upper_case ( ) . to_string ( )
821
- }
822
- } ;
823
-
824
813
Ok ( match register {
825
814
Register :: Single ( info) => new_syn_field (
826
815
& info. name . to_sanitized_snake_case ( ) ,
@@ -831,7 +820,7 @@ fn convert_svd_register(register: &Register, name: Option<&str>) -> Result<syn::
831
820
832
821
let ty = syn:: Type :: Array ( parse_str :: < syn:: TypeArray > ( & format ! (
833
822
"[{};{}]" ,
834
- name_to_ty_str ( & nb_name, name) ,
823
+ name_to_ty_cow ( & nb_name, name) ,
835
824
u64 :: from( array_info. dim)
836
825
) ) ?) ;
837
826
@@ -913,8 +902,8 @@ fn new_syn_field(ident: &str, ty: syn::Type) -> syn::Field {
913
902
}
914
903
}
915
904
916
- fn name_to_ty ( name : & String , ns : Option < & str > ) -> Result < syn :: Type , syn :: Error > {
917
- let ident = if let Some ( ns) = ns {
905
+ fn name_to_ty_cow < ' a > ( name : & ' a String , ns : Option < & str > ) -> Cow < ' a , str > {
906
+ if let Some ( ns) = ns {
918
907
Cow :: Owned (
919
908
String :: from ( "self::" )
920
909
+ & ns. to_sanitized_snake_case ( )
@@ -923,7 +912,10 @@ fn name_to_ty(name: &String, ns: Option<&str>) -> Result<syn::Type, syn::Error>
923
912
)
924
913
} else {
925
914
name. to_sanitized_upper_case ( )
926
- } ;
915
+ }
916
+ }
927
917
918
+ fn name_to_ty ( name : & String , ns : Option < & str > ) -> Result < syn:: Type , syn:: Error > {
919
+ let ident = name_to_ty_cow ( name, ns) ;
928
920
Ok ( syn:: Type :: Path ( parse_str :: < syn:: TypePath > ( & ident) ?) )
929
921
}
0 commit comments