@@ -892,15 +892,15 @@ fn convert_svd_cluster(cluster: &Cluster, name: Option<&str>) -> Result<syn::Fie
892
892
new_syn_field ( & info. name . to_sanitized_snake_case ( ) , ty)
893
893
}
894
894
Cluster :: Array ( info, array_info) => {
895
- let name = util:: replace_suffix ( & info. name , "" ) ;
895
+ let ty_name = util:: replace_suffix ( & info. name , "" ) ;
896
896
897
897
let ty = syn:: Type :: Array ( parse_str :: < syn:: TypeArray > ( & format ! (
898
898
"[{};{}]" ,
899
- & name. to_sanitized_upper_case ( ) ,
899
+ name_to_ty_str ( & ty_name , name) ,
900
900
u64 :: from( array_info. dim)
901
901
) ) ?) ;
902
902
903
- new_syn_field ( & name . to_sanitized_snake_case ( ) , ty)
903
+ new_syn_field ( & ty_name . to_sanitized_snake_case ( ) , ty)
904
904
}
905
905
} )
906
906
}
@@ -918,8 +918,8 @@ fn new_syn_field(ident: &str, ty: syn::Type) -> syn::Field {
918
918
}
919
919
}
920
920
921
- fn name_to_ty ( name : & str , ns : Option < & str > ) -> Result < syn :: Type , syn :: Error > {
922
- let ident = if let Some ( ns) = ns {
921
+ fn name_to_ty_str < ' a , ' b > ( name : & ' a str , ns : Option < & ' b str > ) -> Cow < ' a , str > {
922
+ if let Some ( ns) = ns {
923
923
Cow :: Owned (
924
924
String :: from ( "self::" )
925
925
+ & ns. to_sanitized_snake_case ( )
@@ -928,7 +928,11 @@ fn name_to_ty(name: &str, ns: Option<&str>) -> Result<syn::Type, syn::Error> {
928
928
)
929
929
} else {
930
930
name. to_sanitized_upper_case ( )
931
- } ;
931
+ }
932
+ }
933
+
934
+ fn name_to_ty ( name : & str , ns : Option < & str > ) -> Result < syn:: Type , syn:: Error > {
935
+ let ident = name_to_ty_str ( & name, ns) ;
932
936
Ok ( syn:: Type :: Path ( parse_str :: < syn:: TypePath > ( & ident) ?) )
933
937
}
934
938
0 commit comments