Skip to content

Commit dda656e

Browse files
committed
Try #264:
2 parents c1acfbd + 450b410 commit dda656e

File tree

2 files changed

+6
-4
lines changed

2 files changed

+6
-4
lines changed

src/generate/register.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ pub fn render(
8282
});
8383
}
8484

85-
if access == Access::WriteOnly || access == Access::ReadWrite {
85+
if [Access::WriteOnly, Access::WriteOnce, Access::ReadWrite].contains(&access) {
8686
reg_impl_items.push(quote! {
8787
/// Writes to the register
8888
#[inline]
@@ -174,7 +174,7 @@ pub fn render(
174174
});
175175
}
176176

177-
if access == Access::WriteOnly || access == Access::ReadWrite {
177+
if [Access::WriteOnly, Access::WriteOnce, Access::ReadWrite].contains(&access) {
178178
mod_items.push(quote! {
179179
impl W {
180180
#(#w_impl_items)*
@@ -569,7 +569,7 @@ pub fn fields(
569569
}
570570
}
571571

572-
if access == Access::WriteOnly || access == Access::ReadWrite {
572+
if [Access::WriteOnly, Access::WriteOnce, Access::ReadWrite].contains(&access) {
573573
for f in &fs {
574574
if f.access == Some(Access::ReadOnly) {
575575
continue;

src/util.rs

+3-1
Original file line numberDiff line numberDiff line change
@@ -201,7 +201,9 @@ pub fn access_of(register: &Register) -> Access {
201201
if let Some(ref fields) = register.fields {
202202
if fields.iter().all(|f| f.access == Some(Access::ReadOnly)) {
203203
Access::ReadOnly
204-
} else if fields.iter().all(|f| f.access == Some(Access::WriteOnly)) {
204+
} else if fields.iter().all(|f| f.access == Some(Access::WriteOnce)) {
205+
Access::WriteOnce
206+
} else if fields.iter().all(|f| f.access == Some(Access::WriteOnly) || f.access == Some(Access::WriteOnce)) {
205207
Access::WriteOnly
206208
} else {
207209
Access::ReadWrite

0 commit comments

Comments
 (0)