@@ -46,7 +46,7 @@ pub fn render(
46
46
let span = Span :: call_site ( ) ;
47
47
let reg_ty = ident ( & name, & config, "register" , span) ;
48
48
let doc_alias = ( & reg_ty. to_string ( ) != & name) . then ( || quote ! ( #[ doc( alias = #name) ] ) ) ;
49
- let mod_ty = name . to_snake_case_ident ( span) ;
49
+ let mod_ty = ident ( & name , config , "register_mod" , span) ;
50
50
let description = util:: escape_special_chars (
51
51
util:: respace ( & register. description . clone ( ) . unwrap_or_else ( || {
52
52
warn ! ( "Missing description for register {}" , register. name) ;
@@ -59,7 +59,7 @@ pub fn render(
59
59
let mut derived = if & dpath. block == path {
60
60
type_path ( Punctuated :: new ( ) )
61
61
} else {
62
- util:: block_path_to_ty ( & dpath. block , span)
62
+ util:: block_path_to_ty ( & dpath. block , config , span)
63
63
} ;
64
64
let dname = util:: name_of ( index. registers . get ( dpath) . unwrap ( ) , config. ignore_groups ) ;
65
65
let mut mod_derived = derived. clone ( ) ;
@@ -70,7 +70,7 @@ pub fn render(
70
70
mod_derived
71
71
. path
72
72
. segments
73
- . push ( path_segment ( dname . to_snake_case_ident ( span) ) ) ;
73
+ . push ( path_segment ( ident ( & dname , config , "register_mod" , span) ) ) ;
74
74
75
75
Ok ( quote ! {
76
76
pub use #derived as #reg_ty;
@@ -203,7 +203,7 @@ pub fn render_register_mod(
203
203
let name = util:: name_of ( register, config. ignore_groups ) ;
204
204
let span = Span :: call_site ( ) ;
205
205
let regspec_ty = regspec ( & name, config, span) ;
206
- let name_snake_case = name . to_snake_case_ident ( span) ;
206
+ let mod_ty = ident ( & name , config , "regster_mod" , span) ;
207
207
let rsize = properties
208
208
. size
209
209
. ok_or_else ( || anyhow ! ( "Register {} has no `size` field" , register. name) ) ?;
@@ -386,7 +386,7 @@ pub fn render_register_mod(
386
386
can_read,
387
387
can_write,
388
388
can_reset,
389
- & name_snake_case ,
389
+ & mod_ty ,
390
390
true ,
391
391
register. read_action,
392
392
) ?
@@ -402,15 +402,14 @@ pub fn render_register_mod(
402
402
} ) ;
403
403
404
404
if can_read {
405
- let doc = format ! ( "`read()` method returns [`{name_snake_case }::R`](R) reader structure" , ) ;
405
+ let doc = format ! ( "`read()` method returns [`{mod_ty }::R`](R) reader structure" , ) ;
406
406
mod_items. extend ( quote ! {
407
407
#[ doc = #doc]
408
408
impl crate :: Readable for #regspec_ty { }
409
409
} ) ;
410
410
}
411
411
if can_write {
412
- let doc =
413
- format ! ( "`write(|w| ..)` method takes [`{name_snake_case}::W`](W) writer structure" , ) ;
412
+ let doc = format ! ( "`write(|w| ..)` method takes [`{mod_ty}::W`](W) writer structure" , ) ;
414
413
415
414
let zero_to_modify_fields_bitmap = util:: hex ( zero_to_modify_fields_bitmap) ;
416
415
let one_to_modify_fields_bitmap = util:: hex ( one_to_modify_fields_bitmap) ;
@@ -865,7 +864,7 @@ pub fn fields(
865
864
let base_field = util:: replace_suffix ( & base. field . name , "" ) ;
866
865
let base_r = ident ( & base_field, & config, "field_reader" , span) ;
867
866
if !reader_derives. contains ( & reader_ty) {
868
- let base_path = base_syn_path ( base, & fpath, & base_r) ?;
867
+ let base_path = base_syn_path ( base, & fpath, & base_r, config ) ?;
869
868
mod_items. extend ( quote ! {
870
869
#[ doc = #field_reader_brief]
871
870
pub use #base_path as #reader_ty;
@@ -877,7 +876,7 @@ pub fn fields(
877
876
if base. register ( ) != fpath. register ( ) {
878
877
// use the same enum structure name
879
878
if !enum_derives. contains ( & value_read_ty) {
880
- let base_path = base_syn_path ( base, & fpath, & value_read_ty) ?;
879
+ let base_path = base_syn_path ( base, & fpath, & value_read_ty, config ) ?;
881
880
mod_items. extend ( quote ! {
882
881
#[ doc = #description]
883
882
pub use #base_path as #value_read_ty;
@@ -1140,7 +1139,7 @@ pub fn fields(
1140
1139
let base_field = util:: replace_suffix ( & base. field . name , "" ) ;
1141
1140
let base_w = ident ( & base_field, & config, "field_writer" , span) ;
1142
1141
if !writer_derives. contains ( & writer_ty) {
1143
- let base_path = base_syn_path ( base, & fpath, & base_w) ?;
1142
+ let base_path = base_syn_path ( base, & fpath, & base_w, config ) ?;
1144
1143
mod_items. extend ( quote ! {
1145
1144
#[ doc = #field_writer_brief]
1146
1145
pub use #base_path as #writer_ty;
@@ -1153,7 +1152,7 @@ pub fn fields(
1153
1152
if writer_reader_different_enum {
1154
1153
// use the same enum structure name
1155
1154
if !writer_enum_derives. contains ( & value_write_ty) {
1156
- let base_path = base_syn_path ( base, & fpath, & value_write_ty) ?;
1155
+ let base_path = base_syn_path ( base, & fpath, & value_write_ty, config ) ?;
1157
1156
mod_items. extend ( quote ! {
1158
1157
#[ doc = #description]
1159
1158
pub use #base_path as #value_write_ty;
@@ -1458,18 +1457,24 @@ fn base_syn_path(
1458
1457
base : & EnumPath ,
1459
1458
fpath : & FieldPath ,
1460
1459
base_ident : & Ident ,
1460
+ config : & Config ,
1461
1461
) -> Result < syn:: TypePath , syn:: Error > {
1462
1462
let span = Span :: call_site ( ) ;
1463
1463
let path = if base. register ( ) == fpath. register ( ) {
1464
1464
ident_to_path ( base_ident. clone ( ) )
1465
1465
} else if base. register ( ) . block == fpath. register ( ) . block {
1466
1466
let mut segments = Punctuated :: new ( ) ;
1467
1467
segments. push ( path_segment ( Ident :: new ( "super" , span) ) ) ;
1468
- segments. push ( path_segment ( base. register ( ) . name . to_snake_case_ident ( span) ) ) ;
1468
+ segments. push ( path_segment ( ident (
1469
+ & base. register ( ) . name ,
1470
+ config,
1471
+ "register_mod" ,
1472
+ span,
1473
+ ) ) ) ;
1469
1474
segments. push ( path_segment ( base_ident. clone ( ) ) ) ;
1470
1475
type_path ( segments)
1471
1476
} else {
1472
- let mut rmod_ = crate :: util:: register_path_to_ty ( base. register ( ) , span) ;
1477
+ let mut rmod_ = crate :: util:: register_path_to_ty ( base. register ( ) , config , span) ;
1473
1478
rmod_. path . segments . push ( path_segment ( base_ident. clone ( ) ) ) ;
1474
1479
rmod_
1475
1480
} ;
0 commit comments