In general, Rust 1.64 added a forced panic to std::mem::transmute_copy if the destination struct is larger than the source, as it is technically UB. InputBot was using this mechanism to convert keyboard or mouse input to the INPUT_u union, which ALWAYS triggers the panic.
This fixes everything as far as I can tell, BUT it is the first unsafe code I've ever written, so please please please don't merge unless someone else is also confident it doesn't explode! This does seem like the intended method the winapi crate wants people to use, though
Fixes #64
In general, Rust 1.64 added a forced panic to
std::mem::transmute_copy
if the destination struct is larger than the source, as it is technically UB. InputBot was using this mechanism to convert keyboard or mouse input to the INPUT_u union, which ALWAYS triggers the panic.This fixes everything as far as I can tell, BUT it is the first unsafe code I've ever written, so please please please don't merge unless someone else is also confident it doesn't explode! This does seem like the intended method the winapi crate wants people to use, though