-
Notifications
You must be signed in to change notification settings - Fork 47
Open
Description
I'm trying to create a descriptor for a joystick with 10 buttons:
#[gen_hid_descriptor(
(collection = APPLICATION, usage_page = GENERIC_DESKTOP, usage = JOYSTICK) = {
(usage = X,) = {x=input;};
(usage = Y,) = {y=input;};
(usage_page = BUTTON, usage_min = BUTTON_1, usage_max = 10) = {
#[packed_bits 10] #[item_settings data,variable,absolute] buttons=input;
};
}
)]
struct InputReport {
x: u8,
y: u8,
buttons: u16,
}
This yields the following warning:
warning: borrow of packed field is unsafe and requires unsafe function or block (error E0133)
--> targets\stm32f072-disco\src\main.rs:23:1
|
23 | / #[gen_hid_descriptor(
24 | | (collection = APPLICATION, usage_page = GENERIC_DESKTOP, usage = JOYSTICK) = {
25 | | (usage = X,) = {x=input;};
26 | | (usage = Y,) = {y=input;};
... |
30 | | }
31 | | )]
| |__^
|
= note: `#[warn(safe_packed_borrows)]` on by default
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
= note: for more information, see issue #46043 <https://github.com/rust-lang/rust/issues/46043>
= note: fields of packed structs might be misaligned: dereferencing a misaligned pointer or even just creating a misaligned reference is undefined behavior
= note: this warning originates in an attribute macro (in Nightly builds, run with -Z macro-backtrace for more info)
Metadata
Metadata
Assignees
Labels
No labels