spice_client_glib/
usb_device.rs1use glib::translate::*;
2
3use crate::UsbDevice;
4
5#[derive(Clone, Debug)]
6pub struct FakeUsbContext;
7
8impl rusb::UsbContext for FakeUsbContext {
9 fn as_raw(&self) -> *mut rusb::ffi::libusb_context {
10 unimplemented!()
11 }
12}
13
14impl UsbDevice {
15 #[doc(alias = "spice_usb_device_get_libusb_device")]
16 #[doc(alias = "get_libusb_device")]
17 pub fn libusb_device(&self) -> Option<rusb::Device<FakeUsbContext>> {
18 let ptr = unsafe { ffi::spice_usb_device_get_libusb_device(self.to_glib_none().0) };
19 std::ptr::NonNull::new(ptr as *mut _)
20 .map(|ptr| unsafe { rusb::Device::from_libusb(FakeUsbContext {}, ptr) })
21 }
22}