From 9330fee127e627c0a29b13d686bb69bb558a9ea2 Mon Sep 17 00:00:00 2001 From: Lilian <30466471+hlxid@users.noreply.github.com> Date: Tue, 30 Jul 2024 19:26:51 +0200 Subject: [PATCH] Improve error handling in BLE device enumeration --- src/ble.rs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/ble.rs b/src/ble.rs index cd34227..f07d289 100644 --- a/src/ble.rs +++ b/src/ble.rs @@ -36,8 +36,13 @@ impl Device { /// This function panics if it is unable to access the Bluetooth adapter. pub async fn enumerate_duration(scan_duration: Duration) -> Result> { // Run device scan - let manager = Manager::new().await.unwrap(); - let adapter = manager.adapters().await.unwrap().pop().unwrap(); + let manager = Manager::new().await?; + let adapter = manager.adapters().await?.pop(); + if adapter.is_none() { + return Err(anyhow::anyhow!("No Bluetooth adapter found")); + } + + let adapter = adapter.unwrap(); adapter.start_scan(ScanFilter::default()).await?; task::sleep(scan_duration).await;