@@ -430,30 +430,15 @@ pub fn fields(
430
430
evs_r = Some ( evs. clone ( ) ) ;
431
431
432
432
if let Some ( base) = base {
433
- let pc = util:: replace_suffix ( base. field , "" ) ;
434
- let pc = pc. to_sanitized_upper_case ( ) ;
435
- let base_pc_r = Ident :: new ( & ( pc + "_A" ) , span) ;
436
- derive_from_base ( mod_items, & base, & name_pc_a, & base_pc_r, & description) ;
433
+ let pc_orig = util:: replace_suffix ( base. field , "" ) ;
437
434
438
- mod_items. extend ( quote ! {
439
- #[ doc = #readerdoc]
440
- pub struct #name_pc_r( crate :: FieldReader <#fty, #name_pc_a>) ;
441
-
442
- impl #name_pc_r {
443
- pub ( crate ) fn new( bits: #fty) -> Self {
444
- #name_pc_r( crate :: FieldReader :: new( bits) )
445
- }
446
- }
435
+ let pc = pc_orig. to_sanitized_upper_case ( ) ;
436
+ let base_pc_a = Ident :: new ( & ( pc + "_A" ) , span) ;
437
+ derive_from_base ( mod_items, & base, & name_pc_a, & base_pc_a, & description) ;
447
438
448
- impl core:: ops:: Deref for #name_pc_r {
449
- type Target = crate :: FieldReader <#fty, #name_pc_a>;
450
-
451
- #[ inline( always) ]
452
- fn deref( & self ) -> & Self :: Target {
453
- & self . 0
454
- }
455
- }
456
- } ) ;
439
+ let pc = pc_orig. to_sanitized_upper_case ( ) ;
440
+ let base_pc_r = Ident :: new ( & ( pc + "_R" ) , span) ;
441
+ derive_from_base ( mod_items, & base, & name_pc_r, & base_pc_r, & readerdoc) ;
457
442
} else {
458
443
let has_reserved_variant = evs. values . len ( ) != ( 1 << width) ;
459
444
let variants = Variant :: from_enumerated_values ( evs) ?;
0 commit comments