From dd0acea70362cb1365c0386ccf6cd9cfa9f41d2e Mon Sep 17 00:00:00 2001 From: ryan kurte Date: Sun, 21 Nov 2021 13:01:23 +1300 Subject: [PATCH 1/2] Implement AsRawFd for Device provides compatibility with `smol::Async` for async use. --- src/device.rs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/device.rs b/src/device.rs index 244bdbe9..39c9d999 100644 --- a/src/device.rs +++ b/src/device.rs @@ -789,6 +789,12 @@ impl Device { } } +impl AsRawFd for Device { + fn as_raw_fd(&self) -> std::os::unix::prelude::RawFd { + self.file.as_raw_fd() + } +} + impl Drop for Device { fn drop(&mut self) { unsafe { From 6979af14e13dbb4b584597a4212a145c94f1bad9 Mon Sep 17 00:00:00 2001 From: ryan kurte Date: Sun, 21 Nov 2021 14:02:31 +1300 Subject: [PATCH 2/2] add sync so this device is useful --- src/device.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/device.rs b/src/device.rs index 39c9d999..10a2b937 100644 --- a/src/device.rs +++ b/src/device.rs @@ -527,6 +527,7 @@ pub struct Device { } unsafe impl Send for Device {} +unsafe impl Sync for Device {} impl DeviceWrapper for Device { fn raw(&self) -> *mut raw::libevdev {