summary refs log tree commit diff
path: root/usb_util
diff options
context:
space:
mode:
authorDavid Tolnay <dtolnay@chromium.org>2019-03-08 16:56:14 -0800
committerchrome-bot <chrome-bot@chromium.org>2019-04-08 02:51:37 -0700
commitfdac5ede468e0fddfe527d6108430ee932b02fc3 (patch)
tree398c2ace79eea2babb4439810c43b793068fd8cc /usb_util
parent98895ac05d42ed346a161035134600b0d0e0bb87 (diff)
downloadcrosvm-fdac5ede468e0fddfe527d6108430ee932b02fc3.tar
crosvm-fdac5ede468e0fddfe527d6108430ee932b02fc3.tar.gz
crosvm-fdac5ede468e0fddfe527d6108430ee932b02fc3.tar.bz2
crosvm-fdac5ede468e0fddfe527d6108430ee932b02fc3.tar.lz
crosvm-fdac5ede468e0fddfe527d6108430ee932b02fc3.tar.xz
crosvm-fdac5ede468e0fddfe527d6108430ee932b02fc3.tar.zst
crosvm-fdac5ede468e0fddfe527d6108430ee932b02fc3.zip
edition: Use dyn syntax for trait objects
Found by running: `cargo rustc -- -D bare_trait_objects`

Bare trait objects like `&Trait` and `Box<Trait>` are soft-deprecated in
2018 edition and will start warning at some point.

As part of this, I replaced `Box<Trait + 'static>` with `Box<dyn Trait>`
because the 'static bound is implied for boxed trait objects.

TEST=cargo check --all-features
TEST=cargo check --target aarch64-unknown-linux-gnu
TEST=local kokoro

Change-Id: I41c4f13530bece8a34a8ed1c1afd7035b8f86f19
Reviewed-on: https://chromium-review.googlesource.com/1513059
Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com>
Tested-by: David Tolnay <dtolnay@chromium.org>
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: David Tolnay <dtolnay@chromium.org>
Diffstat (limited to 'usb_util')
-rw-r--r--usb_util/src/hotplug.rs2
-rw-r--r--usb_util/src/libusb_context.rs4
-rw-r--r--usb_util/src/usb_transfer.rs2
3 files changed, 4 insertions, 4 deletions
diff --git a/usb_util/src/hotplug.rs b/usb_util/src/hotplug.rs
index ea78c71..d35a757 100644
--- a/usb_util/src/hotplug.rs
+++ b/usb_util/src/hotplug.rs
@@ -38,7 +38,7 @@ pub trait UsbHotplugHandler: Send + Sync + 'static {
 /// user_data to libusb_hotplug_register_callback.
 pub struct UsbHotplugHandlerHolder {
     context: Arc<LibUsbContextInner>,
-    handler: Box<UsbHotplugHandler>,
+    handler: Box<dyn UsbHotplugHandler>,
 }
 
 impl UsbHotplugHandlerHolder {
diff --git a/usb_util/src/libusb_context.rs b/usb_util/src/libusb_context.rs
index 0afaf7e..a1bab32 100644
--- a/usb_util/src/libusb_context.rs
+++ b/usb_util/src/libusb_context.rs
@@ -139,7 +139,7 @@ impl LibUsbContext {
     }
 
     /// Set a handler that could handle pollfd change events.
-    pub fn set_pollfd_notifiers(&self, handler: Box<LibUsbPollfdChangeHandler>) {
+    pub fn set_pollfd_notifiers(&self, handler: Box<dyn LibUsbPollfdChangeHandler>) {
         // LibUsbContext is alive when any libusb related function is called. It owns the handler,
         // thus the handler memory is always valid when callback is invoked.
         let holder = Box::new(PollfdChangeHandlerHolder { handler });
@@ -262,7 +262,7 @@ pub trait LibUsbPollfdChangeHandler: Send + Sync + 'static {
 // This struct owns LibUsbPollfdChangeHandler. We need it because it's not possible to cast void
 // pointer to trait pointer.
 struct PollfdChangeHandlerHolder {
-    handler: Box<LibUsbPollfdChangeHandler>,
+    handler: Box<dyn LibUsbPollfdChangeHandler>,
 }
 
 // This function is safe when user_data points to valid PollfdChangeHandlerHolder.
diff --git a/usb_util/src/usb_transfer.rs b/usb_util/src/usb_transfer.rs
index d3354ef..4dfe3e5 100644
--- a/usb_util/src/usb_transfer.rs
+++ b/usb_util/src/usb_transfer.rs
@@ -130,7 +130,7 @@ impl UsbTransferBuffer for BulkTransferBuffer {
     }
 }
 
-type UsbTransferCompletionCallback<T> = Fn(UsbTransfer<T>) + Send + 'static;
+type UsbTransferCompletionCallback<T> = dyn Fn(UsbTransfer<T>) + Send + 'static;
 
 // This wraps libusb_transfer pointer.
 struct LibUsbTransfer {