Skip to content

Commit 367e736

Browse files
committed
Refactor Toml::build_env_whitelist
Use nested matching to make it easier to see what's going on.
1 parent ee735a0 commit 367e736

File tree

1 file changed

+8
-15
lines changed

1 file changed

+8
-15
lines changed

src/main.rs

Lines changed: 8 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -439,21 +439,14 @@ impl Toml {
439439

440440
/// Returns the `build.env.whitelist` part of `Cross.toml`
441441
fn build_env_whitelist(&self) -> Result<Vec<&str>> {
442-
if let Some(value) = self.table.lookup("build.env.whitelist") {
443-
if let Some(arr) = value.as_slice() {
444-
arr.iter()
445-
.map(|v| {
446-
v.as_str()
447-
.ok_or_else(|| {
448-
"every build.env.whitelist element must be a string".into()
449-
})
450-
})
451-
.collect()
452-
} else {
453-
Err("build.env.whitelist must be an array".into())
454-
}
455-
} else {
456-
Ok(Vec::new())
442+
match self.table.lookup("build.env.whitelist") {
443+
Some(&Value::Array(ref vec)) => {
444+
if vec.iter().any(|val| val.as_str().is_none()) {
445+
bail!("every build.env.whitelist element must be a string");
446+
}
447+
Ok(vec.iter().map(|val| val.as_str().unwrap()).collect())
448+
},
449+
_ => Ok(Vec::new()),
457450
}
458451
}
459452

0 commit comments

Comments
 (0)