Skip to content

Commit 920bffc

Browse files
committed
Fix clippy lints in generate/peripheral.rs and use rustfmt
Signed-off-by: Daniel Egger <daniel@eggers-club.de>
1 parent a854b80 commit 920bffc

File tree

1 file changed

+76
-48
lines changed

1 file changed

+76
-48
lines changed

src/generate/peripheral.rs

Lines changed: 76 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,12 @@ use std::borrow::Cow;
22
use std::cmp::Ordering;
33
use std::collections::HashMap;
44

5-
use quote::ToTokens;
5+
use crate::svd::{Cluster, ClusterInfo, Peripheral, Register, RegisterCluster, RegisterProperties};
6+
use log::warn;
67
use proc_macro2::TokenStream;
7-
use crate::svd::{Cluster, ClusterInfo, RegisterProperties, Peripheral, Register, RegisterCluster};
8+
use proc_macro2::{Ident, Punct, Spacing, Span};
9+
use quote::ToTokens;
810
use svd_parser::derive_from::DeriveFrom;
9-
use proc_macro2::{Ident, Span, Punct, Spacing};
10-
use log::warn;
1111
use syn::{parse_str, Token};
1212

1313
use crate::errors::*;
@@ -23,16 +23,20 @@ pub fn render(
2323
) -> Result<TokenStream> {
2424
let mut out = TokenStream::new();
2525

26-
let p_derivedfrom = p_original.derived_from.as_ref().and_then(|s| {
27-
all_peripherals.iter().find(|x| x.name == *s)
28-
});
26+
let p_derivedfrom = p_original
27+
.derived_from
28+
.as_ref()
29+
.and_then(|s| all_peripherals.iter().find(|x| x.name == *s));
2930

3031
let p_merged = p_derivedfrom.map(|ancestor| p_original.derive_from(ancestor));
3132
let p = p_merged.as_ref().unwrap_or(p_original);
3233

3334
if p_original.derived_from.is_some() && p_derivedfrom.is_none() {
34-
eprintln!("Couldn't find derivedFrom original: {} for {}, skipping",
35-
p_original.derived_from.as_ref().unwrap(), p_original.name);
35+
eprintln!(
36+
"Couldn't find derivedFrom original: {} for {}, skipping",
37+
p_original.derived_from.as_ref().unwrap(),
38+
p_original.name
39+
);
3640
return Ok(out);
3741
}
3842

@@ -93,35 +97,37 @@ pub fn render(
9397
// Build a map so that we can look up registers within this peripheral
9498
let mut reg_map = HashMap::new();
9599
for r in registers {
96-
reg_map.insert(&r.name, r.clone());
100+
reg_map.insert(&r.name, svd_parser::svd::register::Register::clone(r));
97101
}
98102

99103
// Build up an alternate erc list by expanding any derived registers
100-
let mut alt_erc :Vec<RegisterCluster> = registers.iter().filter_map(|r| {
101-
match r.derived_from {
104+
let mut alt_erc: Vec<RegisterCluster> = registers
105+
.iter()
106+
.filter_map(|r| match r.derived_from {
102107
Some(ref derived) => {
103108
let ancestor = match reg_map.get(derived) {
104109
Some(r) => r,
105110
None => {
106-
eprintln!("register {} derivedFrom missing register {}", r.name, derived);
107-
return None
111+
eprintln!(
112+
"register {} derivedFrom missing register {}",
113+
r.name, derived
114+
);
115+
return None;
108116
}
109117
};
110118

111-
let d = match **ancestor {
112-
Register::Array(ref info, ref array_info) => {
113-
Some(RegisterCluster::Register(Register::Array(r.derive_from(info), array_info.clone())))
114-
}
115-
Register::Single(ref info) => {
116-
Some(RegisterCluster::Register(Register::Single(r.derive_from(info))))
117-
}
118-
};
119-
120-
d
119+
match *ancestor {
120+
Register::Array(ref info, ref array_info) => Some(RegisterCluster::Register(
121+
Register::Array(r.derive_from(info), array_info.clone()),
122+
)),
123+
Register::Single(ref info) => Some(RegisterCluster::Register(
124+
Register::Single(r.derive_from(info)),
125+
)),
126+
}
121127
}
122128
None => Some(RegisterCluster::Register((*r).clone())),
123-
}
124-
}).collect();
129+
})
130+
.collect();
125131

126132
// Now add the clusters to our alternate erc list
127133
let clusters = util::only_clusters(ercs);
@@ -507,11 +513,16 @@ fn register_or_cluster_block(
507513
// name, along with the region number, falling back to
508514
// the offset and end in case we couldn't figure out a
509515
// nice identifier.
510-
let name = Ident::new(&format!(
511-
"_reserved_{}_{}",
512-
i,
513-
region.compute_ident().unwrap_or_else(|| format!("{}_{}", region.offset, region.end))
514-
), span);
516+
let name = Ident::new(
517+
&format!(
518+
"_reserved_{}_{}",
519+
i,
520+
region
521+
.compute_ident()
522+
.unwrap_or_else(|| format!("{}_{}", region.offset, region.end))
523+
),
524+
span,
525+
);
515526
let pad = (region.end - region.offset) as usize;
516527
fields.extend(quote! {
517528
#name: [u8; #pad],
@@ -520,10 +531,13 @@ fn register_or_cluster_block(
520531
last_end = region.end;
521532
}
522533

523-
let name = Ident::new(&match name {
524-
Some(name) => name.to_sanitized_upper_case(),
525-
None => "RegisterBlock".into(),
526-
}, span);
534+
let name = Ident::new(
535+
&match name {
536+
Some(name) => name.to_sanitized_upper_case(),
537+
None => "RegisterBlock".into(),
538+
},
539+
span,
540+
);
527541

528542
let accessors = if have_accessors {
529543
quote! {
@@ -819,10 +833,10 @@ fn expand_svd_register(register: &Register, name: Option<&str>) -> Vec<syn::Fiel
819833
fn convert_svd_register(register: &Register, name: Option<&str>) -> syn::Field {
820834
let name_to_ty = |name: &String, ns: Option<&str>| -> String {
821835
if let Some(ns) = ns {
822-
String::from("self::")
823-
+ &ns.to_sanitized_snake_case()
824-
+ "::"
825-
+ &name.to_sanitized_upper_case()
836+
String::from("self::")
837+
+ &ns.to_sanitized_snake_case()
838+
+ "::"
839+
+ &name.to_sanitized_upper_case()
826840
} else {
827841
name.to_sanitized_upper_case().to_string()
828842
}
@@ -831,7 +845,7 @@ fn convert_svd_register(register: &Register, name: Option<&str>) -> syn::Field {
831845
match register {
832846
Register::Single(info) => new_syn_field(
833847
&info.name.to_sanitized_snake_case(),
834-
syn::Type::Path(parse_str::<syn::TypePath>(&name_to_ty(&info.name, name)).unwrap())
848+
syn::Type::Path(parse_str::<syn::TypePath>(&name_to_ty(&info.name, name)).unwrap()),
835849
),
836850
Register::Array(info, array_info) => {
837851
let has_brackets = info.name.contains("[%s]");
@@ -842,9 +856,14 @@ fn convert_svd_register(register: &Register, name: Option<&str>) -> syn::Field {
842856
info.name.replace("%s", "")
843857
};
844858

845-
let ty = syn::Type::Array(parse_str::<syn::TypeArray>(
846-
&format!("[{};{}]", name_to_ty(&nb_name, name), u64::from(array_info.dim))
847-
).unwrap());
859+
let ty = syn::Type::Array(
860+
parse_str::<syn::TypeArray>(&format!(
861+
"[{};{}]",
862+
name_to_ty(&nb_name, name),
863+
u64::from(array_info.dim)
864+
))
865+
.unwrap(),
866+
);
848867

849868
new_syn_field(&nb_name.to_sanitized_snake_case(), ty)
850869
}
@@ -904,7 +923,9 @@ fn convert_svd_cluster(cluster: &Cluster) -> syn::Field {
904923
match cluster {
905924
Cluster::Single(info) => new_syn_field(
906925
&info.name.to_sanitized_snake_case(),
907-
syn::Type::Path(parse_str::<syn::TypePath>(&info.name.to_sanitized_upper_case()).unwrap())
926+
syn::Type::Path(
927+
parse_str::<syn::TypePath>(&info.name.to_sanitized_upper_case()).unwrap(),
928+
),
908929
),
909930
Cluster::Array(info, array_info) => {
910931
let has_brackets = info.name.contains("[%s]");
@@ -915,9 +936,14 @@ fn convert_svd_cluster(cluster: &Cluster) -> syn::Field {
915936
info.name.replace("%s", "")
916937
};
917938

918-
let ty = syn::Type::Array(parse_str::<syn::TypeArray>(
919-
&format!("[{};{}]", &name.to_sanitized_upper_case(), u64::from(array_info.dim))
920-
).unwrap());
939+
let ty = syn::Type::Array(
940+
parse_str::<syn::TypeArray>(&format!(
941+
"[{};{}]",
942+
&name.to_sanitized_upper_case(),
943+
u64::from(array_info.dim)
944+
))
945+
.unwrap(),
946+
);
921947

922948
new_syn_field(&name.to_sanitized_snake_case(), ty)
923949
}
@@ -928,7 +954,9 @@ fn new_syn_field(ident: &str, ty: syn::Type) -> syn::Field {
928954
let span = Span::call_site();
929955
syn::Field {
930956
ident: Some(Ident::new(ident, span)),
931-
vis: syn::Visibility::Public(syn::VisPublic{ pub_token: Token![pub](span) }),
957+
vis: syn::Visibility::Public(syn::VisPublic {
958+
pub_token: Token![pub](span),
959+
}),
932960
attrs: vec![],
933961
colon_token: Some(Token![:](span)),
934962
ty,

0 commit comments

Comments
 (0)