Skip to content

Commit ef62cc3

Browse files
committed
rm deref
1 parent 93f1363 commit ef62cc3

File tree

1 file changed

+11
-20
lines changed

1 file changed

+11
-20
lines changed

src/generate/generic.rs

+11-20
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)