Skip to content

Commit 75ff162

Browse files
committed
mavlink-bindgen: parser: less unwrap()
1 parent 13b52e5 commit 75ff162

File tree

1 file changed

+12
-11
lines changed

1 file changed

+12
-11
lines changed

mavlink-bindgen/src/parser.rs

+12-11
Original file line numberDiff line numberDiff line change
@@ -1200,7 +1200,7 @@ pub fn parse_profile(
12001200
}
12011201
b"display" => {
12021202
field.display =
1203-
Some(String::from_utf8(attr.value.to_vec()).unwrap());
1203+
Some(String::from_utf8_lossy(&attr.value).to_string());
12041204
}
12051205
_ => (),
12061206
}
@@ -1210,8 +1210,8 @@ pub fn parse_profile(
12101210
entry.params = Some(vec![]);
12111211
}
12121212
if attr.key.into_inner() == b"index" {
1213-
let s = std::str::from_utf8(&attr.value).unwrap();
1214-
paramid = Some(s.parse::<usize>().unwrap());
1213+
paramid =
1214+
Some(String::from_utf8_lossy(&attr.value).parse().unwrap());
12151215
}
12161216
}
12171217
_ => (),
@@ -1228,11 +1228,11 @@ pub fn parse_profile(
12281228
let attr = attr.unwrap();
12291229
match attr.key.into_inner() {
12301230
b"name" => {
1231-
entry.name = String::from_utf8(attr.value.to_vec()).unwrap();
1231+
entry.name = String::from_utf8_lossy(&attr.value).to_string();
12321232
}
12331233
b"value" => {
1234-
let s = std::str::from_utf8(&attr.value).unwrap();
1235-
entry.value = Some(s.parse().unwrap());
1234+
entry.value =
1235+
Some(String::from_utf8_lossy(&attr.value).parse().unwrap());
12361236
}
12371237
_ => (),
12381238
}
@@ -1242,7 +1242,7 @@ pub fn parse_profile(
12421242
_ => (),
12431243
},
12441244
Ok(Event::Text(bytes)) => {
1245-
let s = String::from_utf8(bytes.to_vec()).unwrap();
1245+
let s = String::from_utf8_lossy(&bytes).to_string();
12461246

12471247
use self::MavXmlElement::*;
12481248
match (stack.last(), stack.get(stack.len() - 2)) {
@@ -1259,15 +1259,16 @@ pub fn parse_profile(
12591259
entry.description = Some(s.replace('\n', " "));
12601260
}
12611261
(Some(&Param), Some(&Entry)) => {
1262-
if let Some(params) = &mut entry.params {
1262+
if let Some(params) = entry.params.as_mut() {
12631263
// Some messages can jump between values, like:
12641264
// 0, 1, 2, 7
1265-
if params.len() < paramid.unwrap() {
1266-
for index in params.len()..paramid.unwrap() {
1265+
let paramid = paramid.unwrap();
1266+
if params.len() < paramid {
1267+
for index in params.len()..paramid {
12671268
params.insert(index, String::from("The use of this parameter (if any), must be defined in the requested message. By default assumed not used (0)."));
12681269
}
12691270
}
1270-
params[paramid.unwrap() - 1] = s;
1271+
params[paramid - 1] = s;
12711272
}
12721273
}
12731274
(Some(&Include), Some(&Mavlink)) => {

0 commit comments

Comments
 (0)