Skip to content

Commit 8ff983b

Browse files
authored
Merge pull request #86 from node-usb/detect-empty-string
Use nusb getters for device strings
2 parents a95ba52 + ad688c7 commit 8ff983b

3 files changed

Lines changed: 15 additions & 42 deletions

File tree

‎Cargo.lock‎

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎Cargo.toml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ crate-type = ["cdylib"]
1212
futures-lite = "2.6.1"
1313
napi = { version = "3.9.0", features = ["tokio_rt"] }
1414
napi-derive = "3.5.6"
15-
nusb = "=0.2.7"
15+
nusb = "=0.2.8"
1616
tokio = { version = "1.52.3", features = ["rt", "time", "fs", "macros"] }
1717

1818
[build-dependencies]

‎src/webusb_device.rs‎

Lines changed: 12 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -680,53 +680,26 @@ impl UsbDevice {
680680

681681
#[napi(getter)]
682682
pub unsafe fn manufacturerName(&mut self) -> Result<Option<String>> {
683-
match &self.device_info.manufacturer_string() {
684-
Some(str) => Ok(Some(str.to_string())),
685-
None => {
686-
let device = match self.device_guard().as_ref() {
687-
Some(device) => device.clone(),
688-
None => self._open()?,
689-
};
690-
691-
get_string(
692-
&device,
693-
device.device_descriptor().manufacturer_string_index(),
694-
)
695-
}
696-
}
683+
self.device_info
684+
.get_manufacturer_string()
685+
.wait()
686+
.map_err(|e| napi::Error::from_reason(format!("getString error: {e}")))
697687
}
698688

699689
#[napi(getter)]
700690
pub unsafe fn productName(&mut self) -> Result<Option<String>> {
701-
match &self.device_info.product_string() {
702-
Some(str) => Ok(Some(str.to_string())),
703-
None => {
704-
let device = match self.device_guard().as_ref() {
705-
Some(device) => device.clone(),
706-
None => self._open()?,
707-
};
708-
709-
get_string(&device, device.device_descriptor().product_string_index())
710-
}
711-
}
691+
self.device_info
692+
.get_product_string()
693+
.wait()
694+
.map_err(|e| napi::Error::from_reason(format!("getString error: {e}")))
712695
}
713696

714697
#[napi(getter)]
715698
pub unsafe fn serialNumber(&mut self) -> Result<Option<String>> {
716-
match &self.device_info.serial_number() {
717-
Some(str) => Ok(Some(str.to_string())),
718-
None => {
719-
let device = match self.device_guard().as_ref() {
720-
Some(device) => device.clone(),
721-
None => self._open()?,
722-
};
723-
724-
get_string(
725-
&device,
726-
device.device_descriptor().serial_number_string_index(),
727-
)
728-
}
729-
}
699+
self.device_info
700+
.get_serial_number_string()
701+
.wait()
702+
.map_err(|e| napi::Error::from_reason(format!("getString error: {e}")))
730703
}
731704

732705
#[napi(getter)]

0 commit comments

Comments
 (0)