diff --git a/src/utils/pipewire.rs b/src/utils/pipewire.rs index 6e47df2..fe0b21c 100644 --- a/src/utils/pipewire.rs +++ b/src/utils/pipewire.rs @@ -208,20 +208,18 @@ pub async fn get_all_devices() -> Result<(Vec, Vec), B } pub async fn get_device(device_name: &str) -> Result> { - let (mut input_devices, output_devices) = get_all_devices().await?; - input_devices.extend(output_devices); + let (input_devices, output_devices) = get_all_devices().await?; - for device in input_devices { - if device.name == device_name - || device.nick == device_name - || device.name.contains(device_name) - || device.nick.contains(device_name) - { - return Ok(device); - } - } - - Err("Device not found".into()) + input_devices + .into_iter() + .chain(output_devices) + .find(|device| { + device.name == device_name + || device.nick == device_name + || device.name.contains(device_name) + || device.nick.contains(device_name) + }) + .ok_or_else(|| "Device not found".into()) } pub fn create_virtual_mic() -> Result, Box> {