diff --git a/src/backend/udev.rs b/src/backend/udev.rs index f88972f..cc41ca4 100644 --- a/src/backend/udev.rs +++ b/src/backend/udev.rs @@ -176,22 +176,19 @@ pub fn primary_gpu>(seat: S) -> IoResult> { if let Some(path) = enumerator .scan_devices()? - .filter_map(|device| { - if device + .filter(|device| { + let seat_name = device .property_value("ID_SEAT") .map(|x| x.to_os_string()) - .unwrap_or_else(|| OsString::from("seat0")) - == *seat.as_ref() - { + .unwrap_or_else(|| OsString::from("seat0")); + if seat_name == *seat.as_ref() { if let Ok(Some(pci)) = device.parent_with_subsystem(Path::new("pci")) { if let Some(id) = pci.attribute_value("boot_vga") { - if id == "1" { - return Some(device); - } + return id == "1"; } } - }; - None + } + false }) .flat_map(|device| device.devnode().map(PathBuf::from)) .next()