Skip to content

Commit 54ba172

Browse files
committed
Fix clippy lints in generate/register.rs and use rustfmt
Signed-off-by: Daniel Egger <daniel@eggers-club.de>
1 parent 4b8b02b commit 54ba172

File tree

1 file changed

+65
-50
lines changed

1 file changed

+65
-50
lines changed

src/generate/register.rs

Lines changed: 65 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
use crate::svd::{
2-
Access, BitRange, RegisterProperties, EnumeratedValues, Field, Peripheral, Register, RegisterCluster,
3-
Usage, WriteConstraint,
2+
Access, BitRange, EnumeratedValues, Field, Peripheral, Register, RegisterCluster,
3+
RegisterProperties, Usage, WriteConstraint,
44
};
55
use cast::u64;
66
use log::warn;
7-
use proc_macro2::{TokenStream, Ident, Span, Punct, Spacing};
7+
use proc_macro2::{Ident, Punct, Spacing, Span, TokenStream};
88

99
use crate::errors::*;
1010
use crate::util::{self, ToSanitizedSnakeCase, ToSanitizedUpperCase, U32Ext};
@@ -59,10 +59,7 @@ pub fn render(
5959
methods.push("read");
6060
}
6161

62-
let res_val = register
63-
.reset_value
64-
.or(defs.reset_value)
65-
.map(|v| v as u64);
62+
let res_val = register.reset_value.or(defs.reset_value).map(|v| v as u64);
6663
if can_write {
6764
let desc = format!("Writer for register {}", register.name);
6865
mod_items.push(quote! {
@@ -151,12 +148,19 @@ pub fn render(
151148
}
152149

153150
let mut out = TokenStream::new();
154-
let methods = methods.iter().map(|s| format!("[`{0}`](crate::generic::Reg::{0})", s)).collect::<Vec<_>>();
151+
let methods = methods
152+
.iter()
153+
.map(|s| format!("[`{0}`](crate::generic::Reg::{0})", s))
154+
.collect::<Vec<_>>();
155155
let mut doc = format!("{}\n\nThis register you can {}. See [API](https://docs.rs/svd2rust/#read--modify--write-api).",
156156
&description, methods.join(", "));
157157

158158
if name_sc != "cfg" {
159-
doc += format!("\n\nFor information about available fields see [{0}]({0}) module", &name_sc).as_str();
159+
doc += format!(
160+
"\n\nFor information about available fields see [{0}]({0}) module",
161+
&name_sc
162+
)
163+
.as_str();
160164
}
161165
out.extend(quote! {
162166
#[doc = #doc]
@@ -168,14 +172,20 @@ pub fn render(
168172
});
169173

170174
if can_read {
171-
let doc = format!("`read()` method returns [{0}::R]({0}::R) reader structure", &name_sc);
175+
let doc = format!(
176+
"`read()` method returns [{0}::R]({0}::R) reader structure",
177+
&name_sc
178+
);
172179
out.extend(quote! {
173180
#[doc = #doc]
174181
impl crate::Readable for #name_pc {}
175182
});
176183
}
177184
if can_write {
178-
let doc = format!("`write(|w| ..)` method takes [{0}::W]({0}::W) writer structure", &name_sc);
185+
let doc = format!(
186+
"`write(|w| ..)` method takes [{0}::W]({0}::W) writer structure",
187+
&name_sc
188+
);
179189
out.extend(quote! {
180190
#[doc = #doc]
181191
impl crate::Writable for #name_pc {}
@@ -216,11 +226,7 @@ pub fn fields(
216226
impl<'a> F<'a> {
217227
fn from(f: &'a Field) -> Result<Self> {
218228
// TODO(AJM) - do we need to do anything with this range type?
219-
let BitRange {
220-
offset,
221-
width,
222-
range_type: _,
223-
} = f.bit_range;
229+
let BitRange { offset, width, .. } = f.bit_range;
224230
let sc = f.name.to_sanitized_snake_case();
225231
let pc = f.name.to_sanitized_upper_case();
226232
let span = Span::call_site();
@@ -229,11 +235,7 @@ pub fn fields(
229235
let pc_w = Ident::new(&format!("{}_AW", pc), span);
230236
let _pc_w = Ident::new(&format!("{}_W", pc), span);
231237
let _sc = Ident::new(&format!("_{}", sc), span);
232-
let bits = Ident::new(if width == 1 {
233-
"bit"
234-
} else {
235-
"bits"
236-
}, Span::call_site());
238+
let bits = Ident::new(if width == 1 { "bit" } else { "bits" }, Span::call_site());
237239
let mut description_with_bits = if width == 1 {
238240
format!("Bit {}", offset)
239241
} else {
@@ -262,7 +264,7 @@ pub fn fields(
262264
access: f.access,
263265
evs: &f.enumerated_values,
264266
sc: Ident::new(&sc, Span::call_site()),
265-
mask: 1u64.wrapping_neg() >> (64-width),
267+
mask: 1u64.wrapping_neg() >> (64 - width),
266268
name: &f.name,
267269
offset: u64::from(offset),
268270
ty: width.to_ty()?,
@@ -296,7 +298,6 @@ pub fn fields(
296298
all_peripherals,
297299
)?;
298300

299-
300301
let pc_r = &f.pc_r;
301302
let mut pc_w = &f.pc_r;
302303

@@ -340,7 +341,8 @@ pub fn fields(
340341
base_pc_w = base.as_ref().map(|base| {
341342
let pc = base.field.to_sanitized_upper_case();
342343
let base_pc_r = Ident::new(&format!("{}_A", pc), Span::call_site());
343-
let base_pc_r = derive_from_base(mod_items, &base, &pc_r, &base_pc_r, description);
344+
let base_pc_r =
345+
derive_from_base(mod_items, &base, &pc_r, &base_pc_r, description);
344346

345347
let doc = format!("Reader of field `{}`", f.name);
346348
mod_items.push(quote! {
@@ -410,11 +412,14 @@ pub fn fields(
410412
let pc = &v.pc;
411413
let sc = &v.sc;
412414

413-
let is_variant = Ident::new(&if sc.to_string().starts_with('_') {
414-
format!("is{}", sc)
415-
} else {
416-
format!("is_{}", sc)
417-
}, Span::call_site());
415+
let is_variant = Ident::new(
416+
&if sc.to_string().starts_with('_') {
417+
format!("is{}", sc)
418+
} else {
419+
format!("is_{}", sc)
420+
},
421+
Span::call_site(),
422+
);
418423

419424
let doc = format!("Checks if the value of the field is `{}`", pc);
420425
enum_items.push(quote! {
@@ -435,7 +440,6 @@ pub fn fields(
435440
}
436441
});
437442
}
438-
439443
} else {
440444
let sc = &f.sc;
441445
r_impl_items.push(quote! {
@@ -451,7 +455,6 @@ pub fn fields(
451455
#[doc = #doc]
452456
pub type #_pc_r = crate::R<#fty, #fty>;
453457
})
454-
455458
}
456459
}
457460

@@ -583,7 +586,8 @@ pub fn fields(
583586
fn unsafety(write_constraint: Option<&WriteConstraint>, width: u32) -> Option<Ident> {
584587
match &write_constraint {
585588
Some(&WriteConstraint::Range(range))
586-
if u64::from(range.min) == 0 && u64::from(range.max) == 1u64.wrapping_neg() >> (64-width) =>
589+
if u64::from(range.min) == 0
590+
&& u64::from(range.max) == 1u64.wrapping_neg() >> (64 - width) =>
587591
{
588592
// the SVD has acknowledged that it's safe to write
589593
// any value that can fit in the field
@@ -633,11 +637,18 @@ impl Variant {
633637
}
634638
}
635639

636-
fn add_from_variants(mod_items: &mut Vec<TokenStream>, variants: &Vec<Variant>, pc: &Ident, f: &F, desc: &str, reset_value: Option<u64>) {
640+
fn add_from_variants(
641+
mod_items: &mut Vec<TokenStream>,
642+
variants: &[Variant],
643+
pc: &Ident,
644+
f: &F,
645+
desc: &str,
646+
reset_value: Option<u64>,
647+
) {
637648
let fty = &f.ty;
638649

639650
let (repr, cast) = if f.ty == "bool" {
640-
(quote! { }, quote! { variant as u8 != 0 })
651+
(quote! {}, quote! { variant as u8 != 0 })
641652
} else {
642653
(quote! { #[repr(#fty)] }, quote! { variant as _ })
643654
};
@@ -677,7 +688,13 @@ fn add_from_variants(mod_items: &mut Vec<TokenStream>, variants: &Vec<Variant>,
677688
});
678689
}
679690

680-
fn derive_from_base(mod_items: &mut Vec<TokenStream>, base: &Base, pc: &Ident, base_pc: &Ident, desc: &str) -> TokenStream {
691+
fn derive_from_base(
692+
mod_items: &mut Vec<TokenStream>,
693+
base: &Base,
694+
pc: &Ident,
695+
base_pc: &Ident,
696+
desc: &str,
697+
) -> TokenStream {
681698
let span = Span::call_site();
682699
if let (Some(peripheral), Some(register)) = (&base.peripheral, &base.register) {
683700
let pmod_ = peripheral.to_sanitized_snake_case();
@@ -799,7 +816,7 @@ fn lookup<'a>(
799816
}
800817

801818
fn lookup_filter<'a>(
802-
evs: &Vec<(&'a EnumeratedValues, Option<Base<'a>>)>,
819+
evs: &[(&'a EnumeratedValues, Option<Base<'a>>)],
803820
usage: Usage,
804821
) -> Option<(&'a EnumeratedValues, Option<Base<'a>>)> {
805822
for (evs, base) in evs.iter() {
@@ -818,12 +835,13 @@ fn lookup_in_fields<'f>(
818835
register: &Register,
819836
) -> Result<(&'f EnumeratedValues, Option<Base<'f>>)> {
820837
if let Some(base_field) = fields.iter().find(|f| f.name == base_field) {
821-
return lookup_in_field(base_evs, None, None, base_field);
838+
lookup_in_field(base_evs, None, None, base_field)
822839
} else {
823840
Err(format!(
824841
"Field {} not found in register {}",
825842
base_field, register.name
826-
))?
843+
)
844+
.into())
827845
}
828846
}
829847

@@ -846,16 +864,14 @@ fn lookup_in_peripheral<'p>(
846864
{
847865
lookup_in_field(base_evs, Some(base_register), base_peripheral, field)
848866
} else {
849-
Err(format!(
850-
"No field {} in register {}",
851-
base_field, register.name
852-
))?
867+
Err(format!("No field {} in register {}", base_field, register.name).into())
853868
}
854869
} else {
855870
Err(format!(
856871
"No register {} in peripheral {}",
857872
base_register, peripheral.name
858-
))?
873+
)
874+
.into())
859875
}
860876
}
861877

@@ -878,10 +894,7 @@ fn lookup_in_field<'f>(
878894
}
879895
}
880896

881-
Err(format!(
882-
"No EnumeratedValues {} in field {}",
883-
base_evs, field.name
884-
))?
897+
Err(format!("No EnumeratedValues {} in field {}", base_evs, field.name).into())
885898
}
886899

887900
fn lookup_in_register<'r>(
@@ -904,7 +917,8 @@ fn lookup_in_register<'r>(
904917
None => Err(format!(
905918
"EnumeratedValues {} not found in register {}",
906919
base_evs, register.name
907-
))?,
920+
)
921+
.into()),
908922
Some(&(evs, field)) => {
909923
if matches.len() == 1 {
910924
Ok((
@@ -921,7 +935,8 @@ fn lookup_in_register<'r>(
921935
"Fields {:?} have an \
922936
enumeratedValues named {}",
923937
fields, base_evs
924-
))?
938+
)
939+
.into())
925940
}
926941
}
927942
}
@@ -945,7 +960,7 @@ fn lookup_in_peripherals<'p>(
945960
peripheral,
946961
)
947962
} else {
948-
Err(format!("No peripheral {}", base_peripheral))?
963+
Err(format!("No peripheral {}", base_peripheral).into())
949964
}
950965
}
951966

0 commit comments

Comments
 (0)