Skip to content

Commit 350b8e9

Browse files
bors[bot]burrbull
andauthored
Merge #82
82: if let instead of match, rm ref r=Disasm a=burrbull Co-authored-by: Andrey Zgarbul <zgarbul.andrey@gmail.com>
2 parents 160ef7b + 6735fc8 commit 350b8e9

12 files changed

+160
-275
lines changed

src/svd/cluster.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,9 @@ impl Deref for Cluster {
2424
type Target = ClusterInfo;
2525

2626
fn deref(&self) -> &ClusterInfo {
27-
match *self {
28-
Cluster::Single(ref info) => info,
29-
Cluster::Array(ref info, _) => info,
27+
match self {
28+
Cluster::Single(info) => info,
29+
Cluster::Array(info, _) => info,
3030
}
3131
}
3232
}
@@ -48,7 +48,7 @@ impl Parse for Cluster {
4848
)));
4949
}
5050

51-
if let Some(ref indices) = array_info.dim_index {
51+
if let Some(indices) = &array_info.dim_index {
5252
if array_info.dim as usize != indices.len() {
5353
// TODO: replace with real error
5454
return Err(SVDError::from(SVDErrorKind::Other(

src/svd/clusterinfo.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ impl Encode for ClusterInfo {
6262
Some(self.description.clone()),
6363
));
6464

65-
if let Some(ref v) = self.header_struct_name {
65+
if let Some(v) = &self.header_struct_name {
6666
e.children
6767
.push(new_element("headerStructName", Some(v.clone())));
6868
}

src/svd/device.rs

Lines changed: 21 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -82,57 +82,43 @@ impl Encode for Device {
8282
String::from("xmlns:xs"),
8383
String::from("http://www.w3.org/2001/XMLSchema-instance"),
8484
);
85-
match self.schema_version {
86-
Some(ref schema_version) => {
87-
elem.attributes.insert(
88-
String::from("schemaVersion"),
89-
format!("{}", schema_version));
90-
},
91-
None => (),
85+
if let Some(schema_version) = &self.schema_version {
86+
elem.attributes.insert(
87+
String::from("schemaVersion"),
88+
format!("{}", schema_version)
89+
);
9290
}
93-
match self.schema_version {
94-
Some(ref schema_version) => {
95-
elem.attributes.insert(
96-
String::from("xs:noNamespaceSchemaLocation"),
97-
format!("CMSIS-SVD_Schema_{}.xsd", schema_version));
98-
},
99-
None => (),
91+
if let Some(schema_version) = &self.schema_version {
92+
elem.attributes.insert(
93+
String::from("xs:noNamespaceSchemaLocation"),
94+
format!("CMSIS-SVD_Schema_{}.xsd", schema_version)
95+
);
10096
}
10197

10298

103-
match self.version {
104-
Some(ref v) => elem.children
105-
.push(new_element("version", Some(v.clone()))),
106-
None => (),
99+
if let Some(v) = &self.version {
100+
elem.children.push(new_element("version", Some(v.clone())));
107101
}
108102

109-
match self.description {
110-
Some(ref v) => elem.children
111-
.push(new_element("description", Some(v.clone()))),
112-
None => (),
103+
if let Some(v) = &self.description {
104+
elem.children.push(new_element("description", Some(v.clone())));
113105
}
114106

115-
match self.description {
116-
Some(ref v) => elem.children.push(new_element(
107+
if let Some(v) = &self.description {
108+
elem.children.push(new_element(
117109
"addressUnitBits",
118110
Some(format!("{}", v)),
119-
)),
120-
None => (),
111+
));
121112
}
122113

123-
match self.width {
124-
Some(ref v) => elem.children
125-
.push(new_element("width", Some(format!("{}", v)))),
126-
None => (),
114+
if let Some(v) = &self.width {
115+
elem.children.push(new_element("width", Some(format!("{}", v))));
127116
}
128117

129118
elem.children.extend(self.default_register_properties.encode()?);
130119

131-
match self.cpu {
132-
Some(ref v) => {
133-
elem.children.push(v.encode()?);
134-
}
135-
None => (),
120+
if let Some(v) = &self.cpu {
121+
elem.children.push(v.encode()?);
136122
}
137123

138124
let peripherals: Result<Vec<_>, _> = self.peripherals

src/svd/enumeratedvalue.rs

Lines changed: 12 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -74,32 +74,22 @@ impl Encode for EnumeratedValue {
7474
children: vec![new_element("name", Some(self.name.clone()))],
7575
text: None,
7676
};
77-
// FIXME: Use if let some pattern here
78-
match self.description {
79-
Some(ref d) => {
80-
let s = (*d).clone();
81-
base.children
82-
.push(new_element("description", Some(s)));
83-
}
84-
None => (),
77+
78+
if let Some(d) = &self.description {
79+
let s = (*d).clone();
80+
base.children
81+
.push(new_element("description", Some(s)));
8582
};
8683

87-
match self.value {
88-
Some(ref v) => {
89-
base.children.push(new_element(
90-
"value",
91-
Some(format!("0x{:08.x}", *v)),
92-
));
93-
}
94-
None => (),
84+
if let Some(v) = &self.value {
85+
base.children.push(new_element(
86+
"value",
87+
Some(format!("0x{:08.x}", *v)),
88+
));
9589
};
9690

97-
match self.is_default {
98-
Some(ref v) => {
99-
base.children
100-
.push(new_element("isDefault", Some(format!("{}", v))));
101-
}
102-
None => (),
91+
if let Some(v) = &self.is_default {
92+
base.children.push(new_element("isDefault", Some(format!("{}", v))));
10393
};
10494

10595
Ok(base)

src/svd/enumeratedvalues.rs

Lines changed: 6 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -88,27 +88,16 @@ impl Encode for EnumeratedValues {
8888
text: None,
8989
};
9090

91-
match self.name {
92-
Some(ref d) => {
93-
base.children
94-
.push(new_element("name", Some((*d).clone())));
95-
}
96-
None => (),
91+
if let Some(d) = &self.name {
92+
base.children.push(new_element("name", Some((*d).clone())));
9793
};
9894

99-
match self.usage {
100-
Some(ref v) => {
101-
base.children.push(v.encode()?);
102-
}
103-
None => (),
95+
if let Some(v) = &self.usage {
96+
base.children.push(v.encode()?);
10497
};
10598

106-
match self.derived_from {
107-
Some(ref v) => {
108-
base.attributes
109-
.insert(String::from("derivedFrom"), (*v).clone());
110-
}
111-
None => (),
99+
if let Some(v) = &self.derived_from {
100+
base.attributes.insert(String::from("derivedFrom"), (*v).clone());
112101
}
113102

114103
for v in &self.values {

src/svd/field.rs

Lines changed: 7 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ impl Encode for Field {
8989
fn encode(&self) -> Result<Element, SVDError> {
9090
let mut children = vec![new_element("name", Some(self.name.clone()))];
9191

92-
if let Some(ref description) = self.description {
92+
if let Some(description) = &self.description {
9393
children.push(new_element("description", Some(description.clone())))
9494
}
9595

@@ -107,11 +107,8 @@ impl Encode for Field {
107107
elem.children
108108
.append(&mut self.bit_range.encode()?);
109109

110-
match self.access {
111-
Some(ref v) => {
112-
elem.children.push(v.encode()?);
113-
}
114-
None => (),
110+
if let Some(v) = &self.access {
111+
elem.children.push(v.encode()?);
115112
};
116113

117114
let enumerated_values: Result<Vec<Element>, SVDError> =
@@ -121,18 +118,12 @@ impl Encode for Field {
121118
.collect();
122119
elem.children.append(&mut enumerated_values?);
123120

124-
match self.write_constraint {
125-
Some(ref v) => {
126-
elem.children.push(v.encode()?);
127-
}
128-
None => (),
121+
if let Some(v) = &self.write_constraint {
122+
elem.children.push(v.encode()?);
129123
};
130124

131-
match self.modified_write_values {
132-
Some(ref v) => {
133-
elem.children.push(v.encode()?);
134-
}
135-
None => (),
125+
if let Some(v) = &self.modified_write_values {
126+
elem.children.push(v.encode()?);
136127
};
137128

138129
Ok(elem)

src/svd/peripheral.rs

Lines changed: 31 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -141,37 +141,23 @@ impl Encode for Peripheral {
141141
text: None,
142142
};
143143

144-
match self.version {
145-
Some(ref v) => {
146-
elem.children
147-
.push(new_element("version", Some(format!("{}", v))));
148-
}
149-
None => (),
144+
if let Some(v) = &self.version {
145+
elem.children.push(new_element("version", Some(format!("{}", v))));
150146
};
151-
match self.display_name {
152-
Some(ref v) => {
153-
elem.children.push(new_element(
154-
"displayName",
155-
Some(format!("{}", v)),
156-
));
157-
}
158-
None => (),
147+
if let Some(v) = &self.display_name {
148+
elem.children.push(new_element(
149+
"displayName",
150+
Some(format!("{}", v)),
151+
));
159152
};
160-
match self.group_name {
161-
Some(ref v) => {
162-
elem.children
163-
.push(new_element("groupName", Some(format!("{}", v))));
164-
}
165-
None => (),
153+
if let Some(v) = &self.group_name {
154+
elem.children.push(new_element("groupName", Some(format!("{}", v))));
166155
};
167-
match self.description {
168-
Some(ref v) => {
169-
elem.children.push(new_element(
170-
"description",
171-
Some(format!("{}", v)),
172-
));
173-
}
174-
None => (),
156+
if let Some(v) = &self.description {
157+
elem.children.push(new_element(
158+
"description",
159+
Some(format!("{}", v)),
160+
));
175161
};
176162
elem.children.push(new_element(
177163
"baseAddress",
@@ -180,11 +166,8 @@ impl Encode for Peripheral {
180166

181167
elem.children.extend(self.default_register_properties.encode()?);
182168

183-
match self.address_block {
184-
Some(ref v) => {
185-
elem.children.push(v.encode()?);
186-
}
187-
None => (),
169+
if let Some(v) = &self.address_block {
170+
elem.children.push(v.encode()?);
188171
};
189172

190173
let interrupts: Result<Vec<_>, _> = self.interrupt
@@ -194,30 +177,23 @@ impl Encode for Peripheral {
194177

195178
elem.children.append(&mut interrupts?);
196179

197-
match self.registers {
198-
Some(ref v) => {
199-
let children: Result<Vec<_>, _> =
200-
v.iter().map(|&ref e| e.encode()).collect();
201-
202-
elem.children.push(Element {
203-
prefix: None,
204-
namespace: None,
205-
namespaces: None,
206-
name: String::from("registers"),
207-
attributes: HashMap::new(),
208-
children: children?,
209-
text: None,
210-
});
211-
}
212-
None => (),
180+
if let Some(v) = &self.registers {
181+
let children: Result<Vec<_>, _> =
182+
v.iter().map(|e| e.encode()).collect();
183+
184+
elem.children.push(Element {
185+
prefix: None,
186+
namespace: None,
187+
namespaces: None,
188+
name: String::from("registers"),
189+
attributes: HashMap::new(),
190+
children: children?,
191+
text: None,
192+
});
213193
};
214194

215-
match self.derived_from {
216-
Some(ref v) => {
217-
elem.attributes
218-
.insert(String::from("derivedFrom"), format!("{}", v));
219-
}
220-
None => (),
195+
if let Some(v) = &self.derived_from {
196+
elem.attributes.insert(String::from("derivedFrom"), format!("{}", v));
221197
}
222198

223199
Ok(elem)

src/svd/register.rs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,9 @@ impl Deref for Register {
2525
type Target = RegisterInfo;
2626

2727
fn deref(&self) -> &RegisterInfo {
28-
match *self {
29-
Register::Single(ref info) => info,
30-
Register::Array(ref info, _) => info,
28+
match self {
29+
Register::Single(info) => info,
30+
Register::Array(info, _) => info,
3131
}
3232
}
3333
}
@@ -44,7 +44,7 @@ impl Parse for Register {
4444
if tree.get_child("dimIncrement").is_some() {
4545
let array_info = RegisterClusterArrayInfo::parse(tree)?;
4646
assert!(info.name.contains("%s"));
47-
if let Some(ref indices) = array_info.dim_index {
47+
if let Some(indices) = &array_info.dim_index {
4848
assert_eq!(array_info.dim as usize, indices.len())
4949
}
5050
Ok(Register::Array(info, array_info))
@@ -59,9 +59,9 @@ impl Encode for Register {
5959
type Error = SVDError;
6060

6161
fn encode(&self) -> Result<Element, SVDError> {
62-
match *self {
63-
Register::Single(ref info) => info.encode(),
64-
Register::Array(ref info, ref array_info) => {
62+
match self {
63+
Register::Single(info) => info.encode(),
64+
Register::Array(info, array_info) => {
6565
// TODO: is this correct? probably not, need tests
6666
let base = info.encode()?;
6767
base.merge(&array_info.encode()?);

src/svd/registercluster.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,8 +56,8 @@ impl Encode for RegisterCluster {
5656
type Error = SVDError;
5757
fn encode(&self) -> Result<Element, SVDError> {
5858
match self {
59-
&RegisterCluster::Register(ref r) => r.encode(),
60-
&RegisterCluster::Cluster(ref c) => c.encode(),
59+
RegisterCluster::Register(r) => r.encode(),
60+
RegisterCluster::Cluster(c) => c.encode(),
6161
}
6262
}
6363
}

0 commit comments

Comments
 (0)