@@ -9,7 +9,6 @@ pub fn render() -> Result<Vec<Tokens>> {
99
1010 generic_items. push ( quote ! {
1111 use core:: marker;
12- use core:: ops:: Deref ;
1312 use vcell:: VolatileCell ;
1413
1514 ///Marker trait for readable register/field
@@ -38,43 +37,35 @@ pub fn render() -> Result<Vec<Tokens>> {
3837 _marker: marker:: PhantomData <REG >,
3938 }
4039
41- impl <U , REG > core:: ops:: Deref for Reg <U , REG > {
42- type Target = vcell:: VolatileCell <U >;
43- #[ inline( always) ]
44- fn deref( & self ) -> & Self :: Target {
45- & self . register
46- }
47- }
48-
4940 impl <U , REG > Reg <U , REG >
5041 where
51- Self : Readable + Deref < Target = VolatileCell < U >> ,
42+ Self : Readable ,
5243 U : Copy
5344 {
5445 ///Reads the contents of the register
5546 #[ inline( always) ]
5647 pub fn read( & self ) -> R <U , Self > {
57- R { bits: ( * self ) . get( ) , _reg: marker:: PhantomData }
48+ R { bits: self . register . get( ) , _reg: marker:: PhantomData }
5849 }
5950 }
6051
6152 impl <U , REG > Reg <U , REG >
6253 where
63- Self : ResetValue <U > + Writable + Deref < Target = VolatileCell < U >> ,
54+ Self : ResetValue <U > + Writable ,
6455 U : Copy ,
6556 {
6657 ///Writes the reset value to the register
6758 #[ inline( always) ]
6859 pub fn reset( & self ) {
69- ( * self ) . set( Self :: reset_value( ) )
60+ self . register . set( Self :: reset_value( ) )
7061 }
7162 }
7263 } ) ;
7364
7465 generic_items. push ( quote ! {
7566 impl <U , REG > Reg <U , REG >
7667 where
77- Self : ResetValue <U > + Writable + Deref < Target = VolatileCell < U >> ,
68+ Self : ResetValue <U > + Writable ,
7869 U : Copy
7970 {
8071 ///Writes to the register
@@ -83,15 +74,15 @@ pub fn render() -> Result<Vec<Tokens>> {
8374 where
8475 F : FnOnce ( & mut W <U , Self >) -> & mut W <U , Self >
8576 {
86- ( * self ) . set( f( & mut W { bits: Self :: reset_value( ) , _reg: marker:: PhantomData } ) . bits) ;
77+ self . register . set( f( & mut W { bits: Self :: reset_value( ) , _reg: marker:: PhantomData } ) . bits) ;
8778 }
8879 }
8980 } ) ;
9081
9182 generic_items. push ( quote ! {
9283 impl <U , REG > Reg <U , REG >
9384 where
94- Self : Writable + Deref < Target = VolatileCell < U >> ,
85+ Self : Writable ,
9586 U : Copy + Default
9687 {
9788 ///Writes Zero to the register
@@ -100,15 +91,15 @@ pub fn render() -> Result<Vec<Tokens>> {
10091 where
10192 F : FnOnce ( & mut W <U , Self >) -> & mut W <U , Self >
10293 {
103- ( * self ) . set( f( & mut W { bits: U :: default ( ) , _reg: marker:: PhantomData } ) . bits) ;
94+ self . register . set( f( & mut W { bits: U :: default ( ) , _reg: marker:: PhantomData } ) . bits) ;
10495 }
10596 }
10697 } ) ;
10798
10899 generic_items. push ( quote ! {
109100 impl <U , REG > Reg <U , REG >
110101 where
111- Self : Readable + Writable + Deref < Target = VolatileCell < U >> ,
102+ Self : Readable + Writable ,
112103 U : Copy ,
113104 {
114105 ///Modifies the contents of the register
@@ -117,8 +108,8 @@ pub fn render() -> Result<Vec<Tokens>> {
117108 where
118109 for <' w> F : FnOnce ( & R <U , Self >, & ' w mut W <U , Self >) -> & ' w mut W <U , Self >
119110 {
120- let bits = ( * self ) . get( ) ;
121- ( * self ) . set( f( & R { bits, _reg: marker:: PhantomData } , & mut W { bits, _reg: marker:: PhantomData } ) . bits) ;
111+ let bits = self . register . get( ) ;
112+ self . register . set( f( & R { bits, _reg: marker:: PhantomData } , & mut W { bits, _reg: marker:: PhantomData } ) . bits) ;
122113 }
123114 }
124115 } ) ;
0 commit comments