From 0ca4d02aa0b196cdd3504abb806438b32202d0bb Mon Sep 17 00:00:00 2001 From: thegecko Date: Wed, 7 Oct 2026 19:07:03 +0100 Subject: [PATCH 1/2] Use nusb getters for device strings --- src/webusb_device.rs | 51 +++++++++++--------------------------------- 1 file changed, 12 insertions(+), 39 deletions(-) diff --git a/src/webusb_device.rs b/src/webusb_device.rs index 0511527..df9df56 100644 --- a/src/webusb_device.rs +++ b/src/webusb_device.rs @@ -668,53 +668,26 @@ impl UsbDevice { #[napi(getter)] pub unsafe fn manufacturerName(&mut self) -> Result> { - match &self.device_info.manufacturer_string() { - Some(str) => Ok(Some(str.to_string())), - None => { - let device = match self.device.as_ref() { - Some(device) => device.clone(), - None => self._open()?, - }; - - get_string( - &device, - device.device_descriptor().manufacturer_string_index(), - ) - } - } + self.device_info + .get_manufacturer_string() + .wait() + .map_err(|e| napi::Error::from_reason(format!("getString error: {e}"))) } #[napi(getter)] pub unsafe fn productName(&mut self) -> Result> { - match &self.device_info.product_string() { - Some(str) => Ok(Some(str.to_string())), - None => { - let device = match self.device.as_ref() { - Some(device) => device.clone(), - None => self._open()?, - }; - - get_string(&device, device.device_descriptor().product_string_index()) - } - } + self.device_info + .get_product_string() + .wait() + .map_err(|e| napi::Error::from_reason(format!("getString error: {e}"))) } #[napi(getter)] pub unsafe fn serialNumber(&mut self) -> Result> { - match &self.device_info.serial_number() { - Some(str) => Ok(Some(str.to_string())), - None => { - let device = match self.device.as_ref() { - Some(device) => device.clone(), - None => self._open()?, - }; - - get_string( - &device, - device.device_descriptor().serial_number_string_index(), - ) - } - } + self.device_info + .get_serial_number_string() + .wait() + .map_err(|e| napi::Error::from_reason(format!("getString error: {e}"))) } #[napi(getter)] From 6c2b8c88e2c1cbafedca0d1ab53e532f64ad5549 Mon Sep 17 00:00:00 2001 From: thegecko Date: Fri, 16 Oct 2026 19:08:27 +0100 Subject: [PATCH 2/2] Update nusb to 0.2.8 --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 0bb3e9e..565ff0f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -299,9 +299,9 @@ checksum = "2bf50223579dc7cdcfb3bfcacf7069ff68243f8c363f62ffa99cf000a6b9c451" [[package]] name = "nusb" -version = "0.2.7" +version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18ef13beb3b3a8fc16fd7aea912ebd3d45dde00a9a5b968d0742297468065845" +checksum = "03fba503685f5c3e9f6a11ff9711c16086ab6beacaa6ad3df9e217a91a8d4c82" dependencies = [ "core-foundation", "core-foundation-sys", diff --git a/Cargo.toml b/Cargo.toml index 696c521..2742fc0 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -12,7 +12,7 @@ crate-type = ["cdylib"] futures-lite = "2.6.1" napi = { version = "3.9.0", features = ["tokio_rt"] } napi-derive = "3.5.6" -nusb = "=0.2.7" +nusb = "=0.2.8" tokio = { version = "1.52.3", features = ["rt", "time", "fs", "macros"] } [build-dependencies]