diff --git a/src-tauri/src/fido/hid.rs b/src-tauri/src/fido/hid.rs index 68e8c21..66b688e 100644 --- a/src-tauri/src/fido/hid.rs +++ b/src-tauri/src/fido/hid.rs @@ -4,6 +4,8 @@ use anyhow::{Result, anyhow}; use rand::Rng; use std::time::Duration; +use crate::error::PFError; + // HID Transport Constants const HID_REPORT_SIZE: usize = 64; const HID_USAGE_PAGE_FIDO: u16 = 0xF1D0; @@ -35,7 +37,7 @@ impl HidTransport { .find(|d| d.usage_page() == HID_USAGE_PAGE_FIDO) .ok_or_else(|| { log::warn!("No FIDO device found with Usage Page 0xF1D0."); - anyhow!("No FIDO device found. Is it plugged in?") + PFError::NoDevice })?; log::debug!( diff --git a/src-tauri/src/fido/mod.rs b/src-tauri/src/fido/mod.rs index 1e10359..41bbb3a 100644 --- a/src-tauri/src/fido/mod.rs +++ b/src-tauri/src/fido/mod.rs @@ -149,8 +149,12 @@ pub fn read_device_details() -> Result { log::info!("Starting FIDO device details read..."); let transport = HidTransport::open().map_err(|e| { - log::error!("Failed to open HID transport: {}", e); - PFError::Device(e.to_string()) + if let Some(PFError::NoDevice) = e.downcast_ref::() { + PFError::NoDevice + } else { + log::error!("Failed to open HID transport: {}", e); + PFError::Device(e.to_string()) + } })?; // --- 1. Get Info ---