@@ -179,15 +179,9 @@ pub fn render(
179179 pub mod #name_sc #open
180180 } ) ;
181181
182- for item in mod_items {
183- out. extend ( quote ! {
184- #item
185- } ) ;
186- }
182+ out. extend ( mod_items) ;
187183
188- out. extend ( quote ! {
189- #close
190- } ) ;
184+ close. to_tokens ( & mut out) ;
191185
192186 Ok ( out)
193187}
@@ -730,12 +724,13 @@ fn cluster_block(
730724 util:: escape_brackets ( util:: respace ( c. description . as_ref ( ) . unwrap_or ( & c. name ) ) . as_ref ( ) ) ;
731725
732726 // Generate the register block.
733- let mod_name = match c {
734- Cluster :: Single ( info) => & info. name ,
735- Cluster :: Array ( info, _ai) => & info. name ,
736- }
737- . replace ( "[%s]" , "" )
738- . replace ( "%s" , "" ) ;
727+ let mod_name = util:: replace_suffix (
728+ match c {
729+ Cluster :: Single ( info) => & info. name ,
730+ Cluster :: Array ( info, _ai) => & info. name ,
731+ } ,
732+ "" ,
733+ ) ;
739734 let name_sc = Ident :: new ( & mod_name. to_sanitized_snake_case ( ) , Span :: call_site ( ) ) ;
740735
741736 let defaults = c. default_register_properties . derive_from ( defaults) ;
@@ -794,8 +789,6 @@ fn expand_svd_register(register: &Register, name: Option<&str>) -> Vec<syn::Fiel
794789 match register {
795790 Register :: Single ( _info) => out. push ( convert_svd_register ( register, name) ) ,
796791 Register :: Array ( info, array_info) => {
797- let has_brackets = info. name . contains ( "[%s]" ) ;
798-
799792 let indices = array_info
800793 . dim_index
801794 . as_ref ( )
@@ -808,18 +801,10 @@ fn expand_svd_register(register: &Register, name: Option<&str>) -> Vec<syn::Fiel
808801 )
809802 } ) ;
810803
811- for ( idx, _i) in indices. iter ( ) . zip ( 0 ..) {
812- let nb_name = if has_brackets {
813- info. name . replace ( "[%s]" , idx)
814- } else {
815- info. name . replace ( "%s" , idx)
816- } ;
804+ let ty_name = util:: replace_suffix ( & info. name , "" ) ;
817805
818- let ty_name = if has_brackets {
819- info. name . replace ( "[%s]" , "" )
820- } else {
821- info. name . replace ( "%s" , "" )
822- } ;
806+ for ( idx, _i) in indices. iter ( ) . zip ( 0 ..) {
807+ let nb_name = util:: replace_suffix ( & info. name , idx) ;
823808
824809 let ty = name_to_ty ( & ty_name, name) ;
825810
@@ -849,13 +834,7 @@ fn convert_svd_register(register: &Register, name: Option<&str>) -> syn::Field {
849834 syn:: Type :: Path ( parse_str :: < syn:: TypePath > ( & name_to_ty ( & info. name , name) ) . unwrap ( ) ) ,
850835 ) ,
851836 Register :: Array ( info, array_info) => {
852- let has_brackets = info. name . contains ( "[%s]" ) ;
853-
854- let nb_name = if has_brackets {
855- info. name . replace ( "[%s]" , "" )
856- } else {
857- info. name . replace ( "%s" , "" )
858- } ;
837+ let nb_name = util:: replace_suffix ( & info. name , "" ) ;
859838
860839 let ty = syn:: Type :: Array (
861840 parse_str :: < syn:: TypeArray > ( & format ! (
@@ -883,8 +862,6 @@ fn expand_svd_cluster(cluster: &Cluster) -> Vec<syn::Field> {
883862 match & cluster {
884863 Cluster :: Single ( _info) => out. push ( convert_svd_cluster ( cluster) ) ,
885864 Cluster :: Array ( info, array_info) => {
886- let has_brackets = info. name . contains ( "[%s]" ) ;
887-
888865 let indices = array_info
889866 . dim_index
890867 . as_ref ( )
@@ -897,18 +874,10 @@ fn expand_svd_cluster(cluster: &Cluster) -> Vec<syn::Field> {
897874 )
898875 } ) ;
899876
900- for ( idx, _i) in indices. iter ( ) . zip ( 0 ..) {
901- let name = if has_brackets {
902- info. name . replace ( "[%s]" , idx)
903- } else {
904- info. name . replace ( "%s" , idx)
905- } ;
877+ let ty_name = util:: replace_suffix ( & info. name , "" ) ;
906878
907- let ty_name = if has_brackets {
908- info. name . replace ( "[%s]" , "" )
909- } else {
910- info. name . replace ( "%s" , "" )
911- } ;
879+ for ( idx, _i) in indices. iter ( ) . zip ( 0 ..) {
880+ let name = util:: replace_suffix ( & info. name , idx) ;
912881
913882 let ty = name_to_ty ( & ty_name) ;
914883
@@ -929,13 +898,7 @@ fn convert_svd_cluster(cluster: &Cluster) -> syn::Field {
929898 ) ,
930899 ) ,
931900 Cluster :: Array ( info, array_info) => {
932- let has_brackets = info. name . contains ( "[%s]" ) ;
933-
934- let name = if has_brackets {
935- info. name . replace ( "[%s]" , "" )
936- } else {
937- info. name . replace ( "%s" , "" )
938- } ;
901+ let name = util:: replace_suffix ( & info. name , "" ) ;
939902
940903 let ty = syn:: Type :: Array (
941904 parse_str :: < syn:: TypeArray > ( & format ! (
0 commit comments