[INFO] fetching crate willhook 0.6.3...
[INFO] testing willhook-0.6.3 against beta-2025-09-21 for beta-1.91-3
[INFO] extracting crate willhook 0.6.3 into /workspace/builds/worker-7-tc2/source
[INFO] started tweaking crates.io crate willhook 0.6.3
[INFO] removed 0 missing examples
[INFO] finished tweaking crates.io crate willhook 0.6.3
[INFO] tweaked toml for crates.io crate willhook 0.6.3 written to /workspace/builds/worker-7-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate willhook 0.6.3 on toolchain beta-2025-09-21
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2025-09-21" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate willhook 0.6.3 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2025-09-21" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-09-21" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 567e5fde47d1908084dbb41dda97c174d47895ad3efd85bfdde15d1659497222
[INFO] running `Command { std: "docker" "start" "-a" "567e5fde47d1908084dbb41dda97c174d47895ad3efd85bfdde15d1659497222", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "567e5fde47d1908084dbb41dda97c174d47895ad3efd85bfdde15d1659497222", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "567e5fde47d1908084dbb41dda97c174d47895ad3efd85bfdde15d1659497222", kill_on_drop: false }`
[INFO] [stdout] 567e5fde47d1908084dbb41dda97c174d47895ad3efd85bfdde15d1659497222
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-09-21" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] e17f9ac48713ee1b6b520b49d8e2e2d6dcaa857e4bc536b871c4f9b215b3085f
[INFO] running `Command { std: "docker" "start" "-a" "e17f9ac48713ee1b6b520b49d8e2e2d6dcaa857e4bc536b871c4f9b215b3085f", kill_on_drop: false }`
[INFO] [stderr]    Compiling once_cell v1.17.0
[INFO] [stderr]    Compiling willhook v0.6.3 (/opt/rustwide/workdir)
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `winapi`
[INFO] [stdout]  --> src/hook/inner/raw.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use winapi::shared::minwindef::DWORD;
[INFO] [stdout]   |     ^^^^^^ use of unresolved module or unlinked crate `winapi`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `winapi`, use `cargo add winapi` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `winapi`
[INFO] [stdout]  --> src/hook/inner/raw.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use winapi::shared::windef::HHOOK;
[INFO] [stdout]   |     ^^^^^^ use of unresolved module or unlinked crate `winapi`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `winapi`, use `cargo add winapi` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `winapi`
[INFO] [stdout]  --> src/hook/inner/raw.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use winapi::shared::ntdef::NULL;
[INFO] [stdout]   |     ^^^^^^ use of unresolved module or unlinked crate `winapi`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `winapi`, use `cargo add winapi` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `winapi`
[INFO] [stdout]  --> src/hook/inner/low_level.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use winapi::{shared::{minwindef::*, windef::*}, um::winuser::{CallNextHookEx, KBDLLHOOKSTRUCT, MSLLHOOKSTRUCT, HC_ACTION}};
[INFO] [stdout]   |     ^^^^^^ use of unresolved module or unlinked crate `winapi`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `winapi`, use `cargo add winapi` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `winapi`
[INFO] [stdout]   --> src/hook/inner.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use winapi::{shared::{
[INFO] [stdout]    |     ^^^^^^ use of unresolved module or unlinked crate `winapi`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `winapi`, use `cargo add winapi` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `winapi`
[INFO] [stdout]   --> src/hook/inner.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | use winapi::um::{
[INFO] [stdout]    |     ^^^^^^ use of unresolved module or unlinked crate `winapi`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `winapi`, use `cargo add winapi` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `winapi`
[INFO] [stdout]  --> src/event/details.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use winapi::shared::windef::*;
[INFO] [stdout]   |     ^^^^^^ use of unresolved module or unlinked crate `winapi`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `winapi`, use `cargo add winapi` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `winapi`
[INFO] [stdout]  --> src/event/details.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use winapi::shared::minwindef::*;
[INFO] [stdout]   |     ^^^^^^ use of unresolved module or unlinked crate `winapi`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `winapi`, use `cargo add winapi` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `winapi`
[INFO] [stdout]  --> src/event/details.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use winapi::um::winuser::*;
[INFO] [stdout]   |     ^^^^^^ use of unresolved module or unlinked crate `winapi`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `winapi`, use `cargo add winapi` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved imports `crate::hook::inner::GLOBAL_CHANNEL`, `winapi::shared::minwindef::*`, `winapi::shared::windef::*`, `winapi::um::winuser::CallNextHookEx`, `winapi::um::winuser::KBDLLHOOKSTRUCT`, `winapi::um::winuser::MSLLHOOKSTRUCT`, `winapi::um::winuser::HC_ACTION`, `winapi::shared::ntdef::NULL`, `winapi::shared::minwindef::*`, `winapi::shared::windef::*`, `winapi::um::processthreadsapi::GetCurrentThreadId`, `winapi::um::winuser::HOOKPROC`, `winapi::um::winuser::LPMSG`, `winapi::um::winuser::SetWindowsHookExA`, `winapi::um::winuser::UnhookWindowsHookEx`, `winapi::um::winuser::GetMessageA`, `winapi::um::winuser::PostThreadMessageA`, `winapi::um::winuser::WM_QUIT`, `winapi::um::winuser::WH_KEYBOARD_LL`, `winapi::um::winuser::WH_MOUSE_LL`, `winapi::shared::windef::*`, `winapi::shared::minwindef::*`, `winapi::um::winuser::*`
[INFO] [stdout]   --> src/hook/inner.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 |     ntdef::NULL,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 17 |     minwindef::*,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 18 |     windef::*
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 21 |         processthreadsapi::GetCurrentThreadId,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 22 |     winuser::{
[INFO] [stdout] 23 |     HOOKPROC, LPMSG,
[INFO] [stdout]    |     ^^^^^^^^  ^^^^^
[INFO] [stdout] 24 |     SetWindowsHookExA, UnhookWindowsHookEx, GetMessageA, PostThreadMessageA,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 25 |     WM_QUIT,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 26 |     WH_KEYBOARD_LL, WH_MOUSE_LL,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/hook/inner/low_level.rs:3:5
[INFO] [stdout]    |
[INFO] [stdout]  3 | use crate::hook::inner::GLOBAL_CHANNEL;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  7 | use winapi::{shared::{minwindef::*, windef::*}, um::winuser::{CallNextHookEx, KBDLLHOOKSTRUCT, MSLLHOOKSTRUCT, HC_ACTION}};
[INFO] [stdout]    |                       ^^^^^^^^^^^^  ^^^^^^^^^                 ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/event/details.rs:4:5
[INFO] [stdout]    |
[INFO] [stdout]  4 | use winapi::shared::windef::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]  5 | use winapi::shared::minwindef::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]  6 | use winapi::um::winuser::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0408]: variable `WM_LBUTTONUP` is not bound in all patterns
[INFO] [stdout]    --> src/event/details.rs:238:17
[INFO] [stdout]     |
[INFO] [stdout] 238 |                 WM_LBUTTONDOWN | WM_LBUTTONUP | WM_LBUTTONDBLCLK => Press(MousePressEvent::new(wm_mouse_param, ms_ll_hook_struct)),
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^   ------------   ^^^^^^^^^^^^^^^^ pattern doesn't bind `WM_LBUTTONUP`
[INFO] [stdout]     |                 |                |
[INFO] [stdout]     |                 |                variable not in all patterns
[INFO] [stdout]     |                 pattern doesn't bind `WM_LBUTTONUP`
[INFO] [stdout]     |
[INFO] [stdout] help: if you meant to match on a unit struct, unit variant or a `const` item, consider making the path in the pattern qualified: `path::to::ModOrType::WM_LBUTTONUP`
[INFO] [stdout]    --> src/event/details.rs:238:34
[INFO] [stdout]     |
[INFO] [stdout] 238 |                 WM_LBUTTONDOWN | WM_LBUTTONUP | WM_LBUTTONDBLCLK => Press(MousePressEvent::new(wm_mouse_param, ms_ll_hook_struct)),
[INFO] [stdout]     |                                  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0408]: variable `WM_LBUTTONDBLCLK` is not bound in all patterns
[INFO] [stdout]    --> src/event/details.rs:238:17
[INFO] [stdout]     |
[INFO] [stdout] 238 |                 WM_LBUTTONDOWN | WM_LBUTTONUP | WM_LBUTTONDBLCLK => Press(MousePressEvent::new(wm_mouse_param, ms_ll_hook_struct)),
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^   ^^^^^^^^^^^^   ---------------- variable not in all patterns
[INFO] [stdout]     |                 |                |
[INFO] [stdout]     |                 |                pattern doesn't bind `WM_LBUTTONDBLCLK`
[INFO] [stdout]     |                 pattern doesn't bind `WM_LBUTTONDBLCLK`
[INFO] [stdout]     |
[INFO] [stdout] help: if you meant to match on a unit struct, unit variant or a `const` item, consider making the path in the pattern qualified: `path::to::ModOrType::WM_LBUTTONDBLCLK`
[INFO] [stdout]    --> src/event/details.rs:238:49
[INFO] [stdout]     |
[INFO] [stdout] 238 |                 WM_LBUTTONDOWN | WM_LBUTTONUP | WM_LBUTTONDBLCLK => Press(MousePressEvent::new(wm_mouse_param, ms_ll_hook_struct)),
[INFO] [stdout]     |                                                 ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0408]: variable `WM_LBUTTONDOWN` is not bound in all patterns
[INFO] [stdout]    --> src/event/details.rs:238:34
[INFO] [stdout]     |
[INFO] [stdout] 238 |                 WM_LBUTTONDOWN | WM_LBUTTONUP | WM_LBUTTONDBLCLK => Press(MousePressEvent::new(wm_mouse_param, ms_ll_hook_struct)),
[INFO] [stdout]     |                 --------------   ^^^^^^^^^^^^   ^^^^^^^^^^^^^^^^ pattern doesn't bind `WM_LBUTTONDOWN`
[INFO] [stdout]     |                 |                |
[INFO] [stdout]     |                 |                pattern doesn't bind `WM_LBUTTONDOWN`
[INFO] [stdout]     |                 variable not in all patterns
[INFO] [stdout]     |
[INFO] [stdout] help: if you meant to match on a unit struct, unit variant or a `const` item, consider making the path in the pattern qualified: `path::to::ModOrType::WM_LBUTTONDOWN`
[INFO] [stdout]    --> src/event/details.rs:238:17
[INFO] [stdout]     |
[INFO] [stdout] 238 |                 WM_LBUTTONDOWN | WM_LBUTTONUP | WM_LBUTTONDBLCLK => Press(MousePressEvent::new(wm_mouse_param, ms_ll_hook_struct)),
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0408]: variable `WM_RBUTTONUP` is not bound in all patterns
[INFO] [stdout]    --> src/event/details.rs:239:17
[INFO] [stdout]     |
[INFO] [stdout] 239 |                 WM_RBUTTONDOWN | WM_RBUTTONUP | WM_RBUTTONDBLCLK => Press(MousePressEvent::new(wm_mouse_param, ms_ll_hook_struct)),
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^   ------------   ^^^^^^^^^^^^^^^^ pattern doesn't bind `WM_RBUTTONUP`
[INFO] [stdout]     |                 |                |
[INFO] [stdout]     |                 |                variable not in all patterns
[INFO] [stdout]     |                 pattern doesn't bind `WM_RBUTTONUP`
[INFO] [stdout]     |
[INFO] [stdout] help: if you meant to match on a unit struct, unit variant or a `const` item, consider making the path in the pattern qualified: `path::to::ModOrType::WM_RBUTTONUP`
[INFO] [stdout]    --> src/event/details.rs:239:34
[INFO] [stdout]     |
[INFO] [stdout] 239 |                 WM_RBUTTONDOWN | WM_RBUTTONUP | WM_RBUTTONDBLCLK => Press(MousePressEvent::new(wm_mouse_param, ms_ll_hook_struct)),
[INFO] [stdout]     |                                  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0408]: variable `WM_RBUTTONDBLCLK` is not bound in all patterns
[INFO] [stdout]    --> src/event/details.rs:239:17
[INFO] [stdout]     |
[INFO] [stdout] 239 |                 WM_RBUTTONDOWN | WM_RBUTTONUP | WM_RBUTTONDBLCLK => Press(MousePressEvent::new(wm_mouse_param, ms_ll_hook_struct)),
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^   ^^^^^^^^^^^^   ---------------- variable not in all patterns
[INFO] [stdout]     |                 |                |
[INFO] [stdout]     |                 |                pattern doesn't bind `WM_RBUTTONDBLCLK`
[INFO] [stdout]     |                 pattern doesn't bind `WM_RBUTTONDBLCLK`
[INFO] [stdout]     |
[INFO] [stdout] help: if you meant to match on a unit struct, unit variant or a `const` item, consider making the path in the pattern qualified: `path::to::ModOrType::WM_RBUTTONDBLCLK`
[INFO] [stdout]    --> src/event/details.rs:239:49
[INFO] [stdout]     |
[INFO] [stdout] 239 |                 WM_RBUTTONDOWN | WM_RBUTTONUP | WM_RBUTTONDBLCLK => Press(MousePressEvent::new(wm_mouse_param, ms_ll_hook_struct)),
[INFO] [stdout]     |                                                 ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0408]: variable `WM_RBUTTONDOWN` is not bound in all patterns
[INFO] [stdout]    --> src/event/details.rs:239:34
[INFO] [stdout]     |
[INFO] [stdout] 239 |                 WM_RBUTTONDOWN | WM_RBUTTONUP | WM_RBUTTONDBLCLK => Press(MousePressEvent::new(wm_mouse_param, ms_ll_hook_struct)),
[INFO] [stdout]     |                 --------------   ^^^^^^^^^^^^   ^^^^^^^^^^^^^^^^ pattern doesn't bind `WM_RBUTTONDOWN`
[INFO] [stdout]     |                 |                |
[INFO] [stdout]     |                 |                pattern doesn't bind `WM_RBUTTONDOWN`
[INFO] [stdout]     |                 variable not in all patterns
[INFO] [stdout]     |
[INFO] [stdout] help: if you meant to match on a unit struct, unit variant or a `const` item, consider making the path in the pattern qualified: `path::to::ModOrType::WM_RBUTTONDOWN`
[INFO] [stdout]    --> src/event/details.rs:239:17
[INFO] [stdout]     |
[INFO] [stdout] 239 |                 WM_RBUTTONDOWN | WM_RBUTTONUP | WM_RBUTTONDBLCLK => Press(MousePressEvent::new(wm_mouse_param, ms_ll_hook_struct)),
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0408]: variable `WM_MBUTTONUP` is not bound in all patterns
[INFO] [stdout]    --> src/event/details.rs:240:17
[INFO] [stdout]     |
[INFO] [stdout] 240 |                 WM_MBUTTONDOWN | WM_MBUTTONUP | WM_MBUTTONDBLCLK => Press(MousePressEvent::new(wm_mouse_param, ms_ll_hook_struct)),
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^   ------------   ^^^^^^^^^^^^^^^^ pattern doesn't bind `WM_MBUTTONUP`
[INFO] [stdout]     |                 |                |
[INFO] [stdout]     |                 |                variable not in all patterns
[INFO] [stdout]     |                 pattern doesn't bind `WM_MBUTTONUP`
[INFO] [stdout]     |
[INFO] [stdout] help: if you meant to match on a unit struct, unit variant or a `const` item, consider making the path in the pattern qualified: `path::to::ModOrType::WM_MBUTTONUP`
[INFO] [stdout]    --> src/event/details.rs:240:34
[INFO] [stdout]     |
[INFO] [stdout] 240 |                 WM_MBUTTONDOWN | WM_MBUTTONUP | WM_MBUTTONDBLCLK => Press(MousePressEvent::new(wm_mouse_param, ms_ll_hook_struct)),
[INFO] [stdout]     |                                  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0408]: variable `WM_MBUTTONDBLCLK` is not bound in all patterns
[INFO] [stdout]    --> src/event/details.rs:240:17
[INFO] [stdout]     |
[INFO] [stdout] 240 |                 WM_MBUTTONDOWN | WM_MBUTTONUP | WM_MBUTTONDBLCLK => Press(MousePressEvent::new(wm_mouse_param, ms_ll_hook_struct)),
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^   ^^^^^^^^^^^^   ---------------- variable not in all patterns
[INFO] [stdout]     |                 |                |
[INFO] [stdout]     |                 |                pattern doesn't bind `WM_MBUTTONDBLCLK`
[INFO] [stdout]     |                 pattern doesn't bind `WM_MBUTTONDBLCLK`
[INFO] [stdout]     |
[INFO] [stdout] help: if you meant to match on a unit struct, unit variant or a `const` item, consider making the path in the pattern qualified: `path::to::ModOrType::WM_MBUTTONDBLCLK`
[INFO] [stdout]    --> src/event/details.rs:240:49
[INFO] [stdout]     |
[INFO] [stdout] 240 |                 WM_MBUTTONDOWN | WM_MBUTTONUP | WM_MBUTTONDBLCLK => Press(MousePressEvent::new(wm_mouse_param, ms_ll_hook_struct)),
[INFO] [stdout]     |                                                 ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0408]: variable `WM_MBUTTONDOWN` is not bound in all patterns
[INFO] [stdout]    --> src/event/details.rs:240:34
[INFO] [stdout]     |
[INFO] [stdout] 240 |                 WM_MBUTTONDOWN | WM_MBUTTONUP | WM_MBUTTONDBLCLK => Press(MousePressEvent::new(wm_mouse_param, ms_ll_hook_struct)),
[INFO] [stdout]     |                 --------------   ^^^^^^^^^^^^   ^^^^^^^^^^^^^^^^ pattern doesn't bind `WM_MBUTTONDOWN`
[INFO] [stdout]     |                 |                |
[INFO] [stdout]     |                 |                pattern doesn't bind `WM_MBUTTONDOWN`
[INFO] [stdout]     |                 variable not in all patterns
[INFO] [stdout]     |
[INFO] [stdout] help: if you meant to match on a unit struct, unit variant or a `const` item, consider making the path in the pattern qualified: `path::to::ModOrType::WM_MBUTTONDOWN`
[INFO] [stdout]    --> src/event/details.rs:240:17
[INFO] [stdout]     |
[INFO] [stdout] 240 |                 WM_MBUTTONDOWN | WM_MBUTTONUP | WM_MBUTTONDBLCLK => Press(MousePressEvent::new(wm_mouse_param, ms_ll_hook_struct)),
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0408]: variable `WM_XBUTTONUP` is not bound in all patterns
[INFO] [stdout]    --> src/event/details.rs:241:17
[INFO] [stdout]     |
[INFO] [stdout] 241 |                 WM_XBUTTONDOWN | WM_XBUTTONUP | WM_XBUTTONDBLCLK => Press(MousePressEvent::new(wm_mouse_param, ms_ll_hook_struct)),
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^   ------------   ^^^^^^^^^^^^^^^^ pattern doesn't bind `WM_XBUTTONUP`
[INFO] [stdout]     |                 |                |
[INFO] [stdout]     |                 |                variable not in all patterns
[INFO] [stdout]     |                 pattern doesn't bind `WM_XBUTTONUP`
[INFO] [stdout]     |
[INFO] [stdout] help: if you meant to match on a unit struct, unit variant or a `const` item, consider making the path in the pattern qualified: `path::to::ModOrType::WM_XBUTTONUP`
[INFO] [stdout]    --> src/event/details.rs:241:34
[INFO] [stdout]     |
[INFO] [stdout] 241 |                 WM_XBUTTONDOWN | WM_XBUTTONUP | WM_XBUTTONDBLCLK => Press(MousePressEvent::new(wm_mouse_param, ms_ll_hook_struct)),
[INFO] [stdout]     |                                  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0408]: variable `WM_XBUTTONDBLCLK` is not bound in all patterns
[INFO] [stdout]    --> src/event/details.rs:241:17
[INFO] [stdout]     |
[INFO] [stdout] 241 |                 WM_XBUTTONDOWN | WM_XBUTTONUP | WM_XBUTTONDBLCLK => Press(MousePressEvent::new(wm_mouse_param, ms_ll_hook_struct)),
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^   ^^^^^^^^^^^^   ---------------- variable not in all patterns
[INFO] [stdout]     |                 |                |
[INFO] [stdout]     |                 |                pattern doesn't bind `WM_XBUTTONDBLCLK`
[INFO] [stdout]     |                 pattern doesn't bind `WM_XBUTTONDBLCLK`
[INFO] [stdout]     |
[INFO] [stdout] help: if you meant to match on a unit struct, unit variant or a `const` item, consider making the path in the pattern qualified: `path::to::ModOrType::WM_XBUTTONDBLCLK`
[INFO] [stdout]    --> src/event/details.rs:241:49
[INFO] [stdout]     |
[INFO] [stdout] 241 |                 WM_XBUTTONDOWN | WM_XBUTTONUP | WM_XBUTTONDBLCLK => Press(MousePressEvent::new(wm_mouse_param, ms_ll_hook_struct)),
[INFO] [stdout]     |                                                 ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0408]: variable `WM_XBUTTONDOWN` is not bound in all patterns
[INFO] [stdout]    --> src/event/details.rs:241:34
[INFO] [stdout]     |
[INFO] [stdout] 241 |                 WM_XBUTTONDOWN | WM_XBUTTONUP | WM_XBUTTONDBLCLK => Press(MousePressEvent::new(wm_mouse_param, ms_ll_hook_struct)),
[INFO] [stdout]     |                 --------------   ^^^^^^^^^^^^   ^^^^^^^^^^^^^^^^ pattern doesn't bind `WM_XBUTTONDOWN`
[INFO] [stdout]     |                 |                |
[INFO] [stdout]     |                 |                pattern doesn't bind `WM_XBUTTONDOWN`
[INFO] [stdout]     |                 variable not in all patterns
[INFO] [stdout]     |
[INFO] [stdout] help: if you meant to match on a unit struct, unit variant or a `const` item, consider making the path in the pattern qualified: `path::to::ModOrType::WM_XBUTTONDOWN`
[INFO] [stdout]    --> src/event/details.rs:241:17
[INFO] [stdout]     |
[INFO] [stdout] 241 |                 WM_XBUTTONDOWN | WM_XBUTTONUP | WM_XBUTTONDBLCLK => Press(MousePressEvent::new(wm_mouse_param, ms_ll_hook_struct)),
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0408]: variable `WM_MOUSEHWHEEL` is not bound in all patterns
[INFO] [stdout]    --> src/event/details.rs:247:17
[INFO] [stdout]     |
[INFO] [stdout] 247 |                 WM_MOUSEWHEEL | WM_MOUSEHWHEEL => Wheel(MouseWheelEvent::new(wm_mouse_param, ms_ll_hook_struct)),
[INFO] [stdout]     |                 ^^^^^^^^^^^^^   -------------- variable not in all patterns
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 pattern doesn't bind `WM_MOUSEHWHEEL`
[INFO] [stdout]     |
[INFO] [stdout] help: if you meant to match on a unit struct, unit variant or a `const` item, consider making the path in the pattern qualified: `path::to::ModOrType::WM_MOUSEHWHEEL`
[INFO] [stdout]    --> src/event/details.rs:247:33
[INFO] [stdout]     |
[INFO] [stdout] 247 |                 WM_MOUSEWHEEL | WM_MOUSEHWHEEL => Wheel(MouseWheelEvent::new(wm_mouse_param, ms_ll_hook_struct)),
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0408]: variable `WM_MOUSEWHEEL` is not bound in all patterns
[INFO] [stdout]    --> src/event/details.rs:247:33
[INFO] [stdout]     |
[INFO] [stdout] 247 |                 WM_MOUSEWHEEL | WM_MOUSEHWHEEL => Wheel(MouseWheelEvent::new(wm_mouse_param, ms_ll_hook_struct)),
[INFO] [stdout]     |                 -------------   ^^^^^^^^^^^^^^ pattern doesn't bind `WM_MOUSEWHEEL`
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 variable not in all patterns
[INFO] [stdout]     |
[INFO] [stdout] help: if you meant to match on a unit struct, unit variant or a `const` item, consider making the path in the pattern qualified: `path::to::ModOrType::WM_MOUSEWHEEL`
[INFO] [stdout]    --> src/event/details.rs:247:17
[INFO] [stdout]     |
[INFO] [stdout] 247 |                 WM_MOUSEWHEEL | WM_MOUSEHWHEEL => Wheel(MouseWheelEvent::new(wm_mouse_param, ms_ll_hook_struct)),
[INFO] [stdout]     |                 ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0408]: variable `WM_RBUTTONDOWN` is not bound in all patterns
[INFO] [stdout]    --> src/event/details.rs:334:21
[INFO] [stdout]     |
[INFO] [stdout] 334 |                     WM_LBUTTONDOWN| WM_RBUTTONDOWN| WM_MBUTTONDOWN | WM_XBUTTONDOWN => Down,
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^  --------------  ^^^^^^^^^^^^^^   ^^^^^^^^^^^^^^ pattern doesn't bind `WM_RBUTTONDOWN`
[INFO] [stdout]     |                     |               |               |
[INFO] [stdout]     |                     |               |               pattern doesn't bind `WM_RBUTTONDOWN`
[INFO] [stdout]     |                     |               variable not in all patterns
[INFO] [stdout]     |                     pattern doesn't bind `WM_RBUTTONDOWN`
[INFO] [stdout]     |
[INFO] [stdout] help: if you meant to match on a unit struct, unit variant or a `const` item, consider making the path in the pattern qualified: `path::to::ModOrType::WM_RBUTTONDOWN`
[INFO] [stdout]    --> src/event/details.rs:334:37
[INFO] [stdout]     |
[INFO] [stdout] 334 |                     WM_LBUTTONDOWN| WM_RBUTTONDOWN| WM_MBUTTONDOWN | WM_XBUTTONDOWN => Down,
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0408]: variable `WM_MBUTTONDOWN` is not bound in all patterns
[INFO] [stdout]    --> src/event/details.rs:334:21
[INFO] [stdout]     |
[INFO] [stdout] 334 |                     WM_LBUTTONDOWN| WM_RBUTTONDOWN| WM_MBUTTONDOWN | WM_XBUTTONDOWN => Down,
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^  --------------   ^^^^^^^^^^^^^^ pattern doesn't bind `WM_MBUTTONDOWN`
[INFO] [stdout]     |                     |               |               |
[INFO] [stdout]     |                     |               |               variable not in all patterns
[INFO] [stdout]     |                     |               pattern doesn't bind `WM_MBUTTONDOWN`
[INFO] [stdout]     |                     pattern doesn't bind `WM_MBUTTONDOWN`
[INFO] [stdout]     |
[INFO] [stdout] help: if you meant to match on a unit struct, unit variant or a `const` item, consider making the path in the pattern qualified: `path::to::ModOrType::WM_MBUTTONDOWN`
[INFO] [stdout]    --> src/event/details.rs:334:53
[INFO] [stdout]     |
[INFO] [stdout] 334 |                     WM_LBUTTONDOWN| WM_RBUTTONDOWN| WM_MBUTTONDOWN | WM_XBUTTONDOWN => Down,
[INFO] [stdout]     |                                                     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0408]: variable `WM_XBUTTONDOWN` is not bound in all patterns
[INFO] [stdout]    --> src/event/details.rs:334:21
[INFO] [stdout]     |
[INFO] [stdout] 334 |                     WM_LBUTTONDOWN| WM_RBUTTONDOWN| WM_MBUTTONDOWN | WM_XBUTTONDOWN => Down,
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^   -------------- variable not in all patterns
[INFO] [stdout]     |                     |               |               |
[INFO] [stdout]     |                     |               |               pattern doesn't bind `WM_XBUTTONDOWN`
[INFO] [stdout]     |                     |               pattern doesn't bind `WM_XBUTTONDOWN`
[INFO] [stdout]     |                     pattern doesn't bind `WM_XBUTTONDOWN`
[INFO] [stdout]     |
[INFO] [stdout] help: if you meant to match on a unit struct, unit variant or a `const` item, consider making the path in the pattern qualified: `path::to::ModOrType::WM_XBUTTONDOWN`
[INFO] [stdout]    --> src/event/details.rs:334:70
[INFO] [stdout]     |
[INFO] [stdout] 334 |                     WM_LBUTTONDOWN| WM_RBUTTONDOWN| WM_MBUTTONDOWN | WM_XBUTTONDOWN => Down,
[INFO] [stdout]     |                                                                      ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0408]: variable `WM_LBUTTONDOWN` is not bound in all patterns
[INFO] [stdout]    --> src/event/details.rs:334:37
[INFO] [stdout]     |
[INFO] [stdout] 334 |                     WM_LBUTTONDOWN| WM_RBUTTONDOWN| WM_MBUTTONDOWN | WM_XBUTTONDOWN => Down,
[INFO] [stdout]     |                     --------------  ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^   ^^^^^^^^^^^^^^ pattern doesn't bind `WM_LBUTTONDOWN`
[INFO] [stdout]     |                     |               |               |
[INFO] [stdout]     |                     |               |               pattern doesn't bind `WM_LBUTTONDOWN`
[INFO] [stdout]     |                     |               pattern doesn't bind `WM_LBUTTONDOWN`
[INFO] [stdout]     |                     variable not in all patterns
[INFO] [stdout]     |
[INFO] [stdout] help: if you meant to match on a unit struct, unit variant or a `const` item, consider making the path in the pattern qualified: `path::to::ModOrType::WM_LBUTTONDOWN`
[INFO] [stdout]    --> src/event/details.rs:334:21
[INFO] [stdout]     |
[INFO] [stdout] 334 |                     WM_LBUTTONDOWN| WM_RBUTTONDOWN| WM_MBUTTONDOWN | WM_XBUTTONDOWN => Down,
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0408]: variable `WM_LBUTTONUP` is not bound in all patterns
[INFO] [stdout]    --> src/event/details.rs:335:21
[INFO] [stdout]     |
[INFO] [stdout] 335 |                     WM_RBUTTONUP | WM_LBUTTONUP | WM_MBUTTONUP | WM_XBUTTONUP => Up,
[INFO] [stdout]     |                     ^^^^^^^^^^^^   ------------   ^^^^^^^^^^^^   ^^^^^^^^^^^^ pattern doesn't bind `WM_LBUTTONUP`
[INFO] [stdout]     |                     |              |              |
[INFO] [stdout]     |                     |              |              pattern doesn't bind `WM_LBUTTONUP`
[INFO] [stdout]     |                     |              variable not in all patterns
[INFO] [stdout]     |                     pattern doesn't bind `WM_LBUTTONUP`
[INFO] [stdout]     |
[INFO] [stdout] help: if you meant to match on a unit struct, unit variant or a `const` item, consider making the path in the pattern qualified: `path::to::ModOrType::WM_LBUTTONUP`
[INFO] [stdout]    --> src/event/details.rs:335:36
[INFO] [stdout]     |
[INFO] [stdout] 335 |                     WM_RBUTTONUP | WM_LBUTTONUP | WM_MBUTTONUP | WM_XBUTTONUP => Up,
[INFO] [stdout]     |                                    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0408]: variable `WM_MBUTTONUP` is not bound in all patterns
[INFO] [stdout]    --> src/event/details.rs:335:21
[INFO] [stdout]     |
[INFO] [stdout] 335 |                     WM_RBUTTONUP | WM_LBUTTONUP | WM_MBUTTONUP | WM_XBUTTONUP => Up,
[INFO] [stdout]     |                     ^^^^^^^^^^^^   ^^^^^^^^^^^^   ------------   ^^^^^^^^^^^^ pattern doesn't bind `WM_MBUTTONUP`
[INFO] [stdout]     |                     |              |              |
[INFO] [stdout]     |                     |              |              variable not in all patterns
[INFO] [stdout]     |                     |              pattern doesn't bind `WM_MBUTTONUP`
[INFO] [stdout]     |                     pattern doesn't bind `WM_MBUTTONUP`
[INFO] [stdout]     |
[INFO] [stdout] help: if you meant to match on a unit struct, unit variant or a `const` item, consider making the path in the pattern qualified: `path::to::ModOrType::WM_MBUTTONUP`
[INFO] [stdout]    --> src/event/details.rs:335:51
[INFO] [stdout]     |
[INFO] [stdout] 335 |                     WM_RBUTTONUP | WM_LBUTTONUP | WM_MBUTTONUP | WM_XBUTTONUP => Up,
[INFO] [stdout]     |                                                   ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0408]: variable `WM_XBUTTONUP` is not bound in all patterns
[INFO] [stdout]    --> src/event/details.rs:335:21
[INFO] [stdout]     |
[INFO] [stdout] 335 |                     WM_RBUTTONUP | WM_LBUTTONUP | WM_MBUTTONUP | WM_XBUTTONUP => Up,
[INFO] [stdout]     |                     ^^^^^^^^^^^^   ^^^^^^^^^^^^   ^^^^^^^^^^^^   ------------ variable not in all patterns
[INFO] [stdout]     |                     |              |              |
[INFO] [stdout]     |                     |              |              pattern doesn't bind `WM_XBUTTONUP`
[INFO] [stdout]     |                     |              pattern doesn't bind `WM_XBUTTONUP`
[INFO] [stdout]     |                     pattern doesn't bind `WM_XBUTTONUP`
[INFO] [stdout]     |
[INFO] [stdout] help: if you meant to match on a unit struct, unit variant or a `const` item, consider making the path in the pattern qualified: `path::to::ModOrType::WM_XBUTTONUP`
[INFO] [stdout]    --> src/event/details.rs:335:66
[INFO] [stdout]     |
[INFO] [stdout] 335 |                     WM_RBUTTONUP | WM_LBUTTONUP | WM_MBUTTONUP | WM_XBUTTONUP => Up,
[INFO] [stdout]     |                                                                  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0408]: variable `WM_RBUTTONUP` is not bound in all patterns
[INFO] [stdout]    --> src/event/details.rs:335:36
[INFO] [stdout]     |
[INFO] [stdout] 335 |                     WM_RBUTTONUP | WM_LBUTTONUP | WM_MBUTTONUP | WM_XBUTTONUP => Up,
[INFO] [stdout]     |                     ------------   ^^^^^^^^^^^^   ^^^^^^^^^^^^   ^^^^^^^^^^^^ pattern doesn't bind `WM_RBUTTONUP`
[INFO] [stdout]     |                     |              |              |
[INFO] [stdout]     |                     |              |              pattern doesn't bind `WM_RBUTTONUP`
[INFO] [stdout]     |                     |              pattern doesn't bind `WM_RBUTTONUP`
[INFO] [stdout]     |                     variable not in all patterns
[INFO] [stdout]     |
[INFO] [stdout] help: if you meant to match on a unit struct, unit variant or a `const` item, consider making the path in the pattern qualified: `path::to::ModOrType::WM_RBUTTONUP`
[INFO] [stdout]    --> src/event/details.rs:335:21
[INFO] [stdout]     |
[INFO] [stdout] 335 |                     WM_RBUTTONUP | WM_LBUTTONUP | WM_MBUTTONUP | WM_XBUTTONUP => Up,
[INFO] [stdout]     |                     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0408]: variable `WM_RBUTTONDOWN` is not bound in all patterns
[INFO] [stdout]    --> src/event/details.rs:350:21
[INFO] [stdout]     |
[INFO] [stdout] 350 |                     WM_LBUTTONDOWN | WM_RBUTTONDOWN | WM_MBUTTONDOWN | WM_XBUTTONDOWN => SingleClick,
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^   --------------   ^^^^^^^^^^^^^^   ^^^^^^^^^^^^^^ pattern doesn't bind `WM_RBUTTONDOWN`
[INFO] [stdout]     |                     |                |                |
[INFO] [stdout]     |                     |                |                pattern doesn't bind `WM_RBUTTONDOWN`
[INFO] [stdout]     |                     |                variable not in all patterns
[INFO] [stdout]     |                     pattern doesn't bind `WM_RBUTTONDOWN`
[INFO] [stdout]     |
[INFO] [stdout] help: if you meant to match on a unit struct, unit variant or a `const` item, consider making the path in the pattern qualified: `path::to::ModOrType::WM_RBUTTONDOWN`
[INFO] [stdout]    --> src/event/details.rs:350:38
[INFO] [stdout]     |
[INFO] [stdout] 350 |                     WM_LBUTTONDOWN | WM_RBUTTONDOWN | WM_MBUTTONDOWN | WM_XBUTTONDOWN => SingleClick,
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0408]: variable `WM_MBUTTONDOWN` is not bound in all patterns
[INFO] [stdout]    --> src/event/details.rs:350:21
[INFO] [stdout]     |
[INFO] [stdout] 350 |                     WM_LBUTTONDOWN | WM_RBUTTONDOWN | WM_MBUTTONDOWN | WM_XBUTTONDOWN => SingleClick,
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^   ^^^^^^^^^^^^^^   --------------   ^^^^^^^^^^^^^^ pattern doesn't bind `WM_MBUTTONDOWN`
[INFO] [stdout]     |                     |                |                |
[INFO] [stdout]     |                     |                |                variable not in all patterns
[INFO] [stdout]     |                     |                pattern doesn't bind `WM_MBUTTONDOWN`
[INFO] [stdout]     |                     pattern doesn't bind `WM_MBUTTONDOWN`
[INFO] [stdout]     |
[INFO] [stdout] help: if you meant to match on a unit struct, unit variant or a `const` item, consider making the path in the pattern qualified: `path::to::ModOrType::WM_MBUTTONDOWN`
[INFO] [stdout]    --> src/event/details.rs:350:55
[INFO] [stdout]     |
[INFO] [stdout] 350 |                     WM_LBUTTONDOWN | WM_RBUTTONDOWN | WM_MBUTTONDOWN | WM_XBUTTONDOWN => SingleClick,
[INFO] [stdout]     |                                                       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0408]: variable `WM_XBUTTONDOWN` is not bound in all patterns
[INFO] [stdout]    --> src/event/details.rs:350:21
[INFO] [stdout]     |
[INFO] [stdout] 350 |                     WM_LBUTTONDOWN | WM_RBUTTONDOWN | WM_MBUTTONDOWN | WM_XBUTTONDOWN => SingleClick,
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^   ^^^^^^^^^^^^^^   ^^^^^^^^^^^^^^   -------------- variable not in all patterns
[INFO] [stdout]     |                     |                |                |
[INFO] [stdout]     |                     |                |                pattern doesn't bind `WM_XBUTTONDOWN`
[INFO] [stdout]     |                     |                pattern doesn't bind `WM_XBUTTONDOWN`
[INFO] [stdout]     |                     pattern doesn't bind `WM_XBUTTONDOWN`
[INFO] [stdout]     |
[INFO] [stdout] help: if you meant to match on a unit struct, unit variant or a `const` item, consider making the path in the pattern qualified: `path::to::ModOrType::WM_XBUTTONDOWN`
[INFO] [stdout]    --> src/event/details.rs:350:72
[INFO] [stdout]     |
[INFO] [stdout] 350 |                     WM_LBUTTONDOWN | WM_RBUTTONDOWN | WM_MBUTTONDOWN | WM_XBUTTONDOWN => SingleClick,
[INFO] [stdout]     |                                                                        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0408]: variable `WM_LBUTTONDOWN` is not bound in all patterns
[INFO] [stdout]    --> src/event/details.rs:350:38
[INFO] [stdout]     |
[INFO] [stdout] 350 |                     WM_LBUTTONDOWN | WM_RBUTTONDOWN | WM_MBUTTONDOWN | WM_XBUTTONDOWN => SingleClick,
[INFO] [stdout]     |                     --------------   ^^^^^^^^^^^^^^   ^^^^^^^^^^^^^^   ^^^^^^^^^^^^^^ pattern doesn't bind `WM_LBUTTONDOWN`
[INFO] [stdout]     |                     |                |                |
[INFO] [stdout]     |                     |                |                pattern doesn't bind `WM_LBUTTONDOWN`
[INFO] [stdout]     |                     |                pattern doesn't bind `WM_LBUTTONDOWN`
[INFO] [stdout]     |                     variable not in all patterns
[INFO] [stdout]     |
[INFO] [stdout] help: if you meant to match on a unit struct, unit variant or a `const` item, consider making the path in the pattern qualified: `path::to::ModOrType::WM_LBUTTONDOWN`
[INFO] [stdout]    --> src/event/details.rs:350:21
[INFO] [stdout]     |
[INFO] [stdout] 350 |                     WM_LBUTTONDOWN | WM_RBUTTONDOWN | WM_MBUTTONDOWN | WM_XBUTTONDOWN => SingleClick,
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0408]: variable `WM_RBUTTONUP` is not bound in all patterns
[INFO] [stdout]    --> src/event/details.rs:351:21
[INFO] [stdout]     |
[INFO] [stdout] 351 |                     WM_LBUTTONUP | WM_RBUTTONUP | WM_MBUTTONUP | WM_XBUTTONUP => SingleClick,
[INFO] [stdout]     |                     ^^^^^^^^^^^^   ------------   ^^^^^^^^^^^^   ^^^^^^^^^^^^ pattern doesn't bind `WM_RBUTTONUP`
[INFO] [stdout]     |                     |              |              |
[INFO] [stdout]     |                     |              |              pattern doesn't bind `WM_RBUTTONUP`
[INFO] [stdout]     |                     |              variable not in all patterns
[INFO] [stdout]     |                     pattern doesn't bind `WM_RBUTTONUP`
[INFO] [stdout]     |
[INFO] [stdout] help: if you meant to match on a unit struct, unit variant or a `const` item, consider making the path in the pattern qualified: `path::to::ModOrType::WM_RBUTTONUP`
[INFO] [stdout]    --> src/event/details.rs:351:36
[INFO] [stdout]     |
[INFO] [stdout] 351 |                     WM_LBUTTONUP | WM_RBUTTONUP | WM_MBUTTONUP | WM_XBUTTONUP => SingleClick,
[INFO] [stdout]     |                                    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0408]: variable `WM_MBUTTONUP` is not bound in all patterns
[INFO] [stdout]    --> src/event/details.rs:351:21
[INFO] [stdout]     |
[INFO] [stdout] 351 |                     WM_LBUTTONUP | WM_RBUTTONUP | WM_MBUTTONUP | WM_XBUTTONUP => SingleClick,
[INFO] [stdout]     |                     ^^^^^^^^^^^^   ^^^^^^^^^^^^   ------------   ^^^^^^^^^^^^ pattern doesn't bind `WM_MBUTTONUP`
[INFO] [stdout]     |                     |              |              |
[INFO] [stdout]     |                     |              |              variable not in all patterns
[INFO] [stdout]     |                     |              pattern doesn't bind `WM_MBUTTONUP`
[INFO] [stdout]     |                     pattern doesn't bind `WM_MBUTTONUP`
[INFO] [stdout]     |
[INFO] [stdout] help: if you meant to match on a unit struct, unit variant or a `const` item, consider making the path in the pattern qualified: `path::to::ModOrType::WM_MBUTTONUP`
[INFO] [stdout]    --> src/event/details.rs:351:51
[INFO] [stdout]     |
[INFO] [stdout] 351 |                     WM_LBUTTONUP | WM_RBUTTONUP | WM_MBUTTONUP | WM_XBUTTONUP => SingleClick,
[INFO] [stdout]     |                                                   ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0408]: variable `WM_XBUTTONUP` is not bound in all patterns
[INFO] [stdout]    --> src/event/details.rs:351:21
[INFO] [stdout]     |
[INFO] [stdout] 351 |                     WM_LBUTTONUP | WM_RBUTTONUP | WM_MBUTTONUP | WM_XBUTTONUP => SingleClick,
[INFO] [stdout]     |                     ^^^^^^^^^^^^   ^^^^^^^^^^^^   ^^^^^^^^^^^^   ------------ variable not in all patterns
[INFO] [stdout]     |                     |              |              |
[INFO] [stdout]     |                     |              |              pattern doesn't bind `WM_XBUTTONUP`
[INFO] [stdout]     |                     |              pattern doesn't bind `WM_XBUTTONUP`
[INFO] [stdout]     |                     pattern doesn't bind `WM_XBUTTONUP`
[INFO] [stdout]     |
[INFO] [stdout] help: if you meant to match on a unit struct, unit variant or a `const` item, consider making the path in the pattern qualified: `path::to::ModOrType::WM_XBUTTONUP`
[INFO] [stdout]    --> src/event/details.rs:351:66
[INFO] [stdout]     |
[INFO] [stdout] 351 |                     WM_LBUTTONUP | WM_RBUTTONUP | WM_MBUTTONUP | WM_XBUTTONUP => SingleClick,
[INFO] [stdout]     |                                                                  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0408]: variable `WM_LBUTTONUP` is not bound in all patterns
[INFO] [stdout]    --> src/event/details.rs:351:36
[INFO] [stdout]     |
[INFO] [stdout] 351 |                     WM_LBUTTONUP | WM_RBUTTONUP | WM_MBUTTONUP | WM_XBUTTONUP => SingleClick,
[INFO] [stdout]     |                     ------------   ^^^^^^^^^^^^   ^^^^^^^^^^^^   ^^^^^^^^^^^^ pattern doesn't bind `WM_LBUTTONUP`
[INFO] [stdout]     |                     |              |              |
[INFO] [stdout]     |                     |              |              pattern doesn't bind `WM_LBUTTONUP`
[INFO] [stdout]     |                     |              pattern doesn't bind `WM_LBUTTONUP`
[INFO] [stdout]     |                     variable not in all patterns
[INFO] [stdout]     |
[INFO] [stdout] help: if you meant to match on a unit struct, unit variant or a `const` item, consider making the path in the pattern qualified: `path::to::ModOrType::WM_LBUTTONUP`
[INFO] [stdout]    --> src/event/details.rs:351:21
[INFO] [stdout]     |
[INFO] [stdout] 351 |                     WM_LBUTTONUP | WM_RBUTTONUP | WM_MBUTTONUP | WM_XBUTTONUP => SingleClick,
[INFO] [stdout]     |                     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0408]: variable `WM_RBUTTONDBLCLK` is not bound in all patterns
[INFO] [stdout]    --> src/event/details.rs:352:21
[INFO] [stdout]     |
[INFO] [stdout] 352 |                     WM_LBUTTONDBLCLK | WM_RBUTTONDBLCLK | WM_MBUTTONDBLCLK | WM_XBUTTONDBLCLK => DoubleClick,
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^   ----------------   ^^^^^^^^^^^^^^^^   ^^^^^^^^^^^^^^^^ pattern doesn't bind `WM_RBUTTONDBLCLK`
[INFO] [stdout]     |                     |                  |                  |
[INFO] [stdout]     |                     |                  |                  pattern doesn't bind `WM_RBUTTONDBLCLK`
[INFO] [stdout]     |                     |                  variable not in all patterns
[INFO] [stdout]     |                     pattern doesn't bind `WM_RBUTTONDBLCLK`
[INFO] [stdout]     |
[INFO] [stdout] help: if you meant to match on a unit struct, unit variant or a `const` item, consider making the path in the pattern qualified: `path::to::ModOrType::WM_RBUTTONDBLCLK`
[INFO] [stdout]    --> src/event/details.rs:352:40
[INFO] [stdout]     |
[INFO] [stdout] 352 |                     WM_LBUTTONDBLCLK | WM_RBUTTONDBLCLK | WM_MBUTTONDBLCLK | WM_XBUTTONDBLCLK => DoubleClick,
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0408]: variable `WM_MBUTTONDBLCLK` is not bound in all patterns
[INFO] [stdout]    --> src/event/details.rs:352:21
[INFO] [stdout]     |
[INFO] [stdout] 352 |                     WM_LBUTTONDBLCLK | WM_RBUTTONDBLCLK | WM_MBUTTONDBLCLK | WM_XBUTTONDBLCLK => DoubleClick,
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^   ^^^^^^^^^^^^^^^^   ----------------   ^^^^^^^^^^^^^^^^ pattern doesn't bind `WM_MBUTTONDBLCLK`
[INFO] [stdout]     |                     |                  |                  |
[INFO] [stdout]     |                     |                  |                  variable not in all patterns
[INFO] [stdout]     |                     |                  pattern doesn't bind `WM_MBUTTONDBLCLK`
[INFO] [stdout]     |                     pattern doesn't bind `WM_MBUTTONDBLCLK`
[INFO] [stdout]     |
[INFO] [stdout] help: if you meant to match on a unit struct, unit variant or a `const` item, consider making the path in the pattern qualified: `path::to::ModOrType::WM_MBUTTONDBLCLK`
[INFO] [stdout]    --> src/event/details.rs:352:59
[INFO] [stdout]     |
[INFO] [stdout] 352 |                     WM_LBUTTONDBLCLK | WM_RBUTTONDBLCLK | WM_MBUTTONDBLCLK | WM_XBUTTONDBLCLK => DoubleClick,
[INFO] [stdout]     |                                                           ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0408]: variable `WM_XBUTTONDBLCLK` is not bound in all patterns
[INFO] [stdout]    --> src/event/details.rs:352:21
[INFO] [stdout]     |
[INFO] [stdout] 352 |                     WM_LBUTTONDBLCLK | WM_RBUTTONDBLCLK | WM_MBUTTONDBLCLK | WM_XBUTTONDBLCLK => DoubleClick,
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^   ^^^^^^^^^^^^^^^^   ^^^^^^^^^^^^^^^^   ---------------- variable not in all patterns
[INFO] [stdout]     |                     |                  |                  |
[INFO] [stdout]     |                     |                  |                  pattern doesn't bind `WM_XBUTTONDBLCLK`
[INFO] [stdout]     |                     |                  pattern doesn't bind `WM_XBUTTONDBLCLK`
[INFO] [stdout]     |                     pattern doesn't bind `WM_XBUTTONDBLCLK`
[INFO] [stdout]     |
[INFO] [stdout] help: if you meant to match on a unit struct, unit variant or a `const` item, consider making the path in the pattern qualified: `path::to::ModOrType::WM_XBUTTONDBLCLK`
[INFO] [stdout]    --> src/event/details.rs:352:78
[INFO] [stdout]     |
[INFO] [stdout] 352 |                     WM_LBUTTONDBLCLK | WM_RBUTTONDBLCLK | WM_MBUTTONDBLCLK | WM_XBUTTONDBLCLK => DoubleClick,
[INFO] [stdout]     |                                                                              ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0408]: variable `WM_LBUTTONDBLCLK` is not bound in all patterns
[INFO] [stdout]    --> src/event/details.rs:352:40
[INFO] [stdout]     |
[INFO] [stdout] 352 |                     WM_LBUTTONDBLCLK | WM_RBUTTONDBLCLK | WM_MBUTTONDBLCLK | WM_XBUTTONDBLCLK => DoubleClick,
[INFO] [stdout]     |                     ----------------   ^^^^^^^^^^^^^^^^   ^^^^^^^^^^^^^^^^   ^^^^^^^^^^^^^^^^ pattern doesn't bind `WM_LBUTTONDBLCLK`
[INFO] [stdout]     |                     |                  |                  |
[INFO] [stdout]     |                     |                  |                  pattern doesn't bind `WM_LBUTTONDBLCLK`
[INFO] [stdout]     |                     |                  pattern doesn't bind `WM_LBUTTONDBLCLK`
[INFO] [stdout]     |                     variable not in all patterns
[INFO] [stdout]     |
[INFO] [stdout] help: if you meant to match on a unit struct, unit variant or a `const` item, consider making the path in the pattern qualified: `path::to::ModOrType::WM_LBUTTONDBLCLK`
[INFO] [stdout]    --> src/event/details.rs:352:21
[INFO] [stdout]     |
[INFO] [stdout] 352 |                     WM_LBUTTONDBLCLK | WM_RBUTTONDBLCLK | WM_MBUTTONDBLCLK | WM_XBUTTONDBLCLK => DoubleClick,
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0408]: variable `WM_LBUTTONUP` is not bound in all patterns
[INFO] [stdout]    --> src/event/details.rs:370:21
[INFO] [stdout]     |
[INFO] [stdout] 370 |                     WM_LBUTTONDOWN | WM_LBUTTONUP | WM_LBUTTONDBLCLK => Left(click),
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^   ------------   ^^^^^^^^^^^^^^^^ pattern doesn't bind `WM_LBUTTONUP`
[INFO] [stdout]     |                     |                |
[INFO] [stdout]     |                     |                variable not in all patterns
[INFO] [stdout]     |                     pattern doesn't bind `WM_LBUTTONUP`
[INFO] [stdout]     |
[INFO] [stdout] help: if you meant to match on a unit struct, unit variant or a `const` item, consider making the path in the pattern qualified: `path::to::ModOrType::WM_LBUTTONUP`
[INFO] [stdout]    --> src/event/details.rs:370:38
[INFO] [stdout]     |
[INFO] [stdout] 370 |                     WM_LBUTTONDOWN | WM_LBUTTONUP | WM_LBUTTONDBLCLK => Left(click),
[INFO] [stdout]     |                                      ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0408]: variable `WM_LBUTTONDBLCLK` is not bound in all patterns
[INFO] [stdout]    --> src/event/details.rs:370:21
[INFO] [stdout]     |
[INFO] [stdout] 370 |                     WM_LBUTTONDOWN | WM_LBUTTONUP | WM_LBUTTONDBLCLK => Left(click),
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^   ^^^^^^^^^^^^   ---------------- variable not in all patterns
[INFO] [stdout]     |                     |                |
[INFO] [stdout]     |                     |                pattern doesn't bind `WM_LBUTTONDBLCLK`
[INFO] [stdout]     |                     pattern doesn't bind `WM_LBUTTONDBLCLK`
[INFO] [stdout]     |
[INFO] [stdout] help: if you meant to match on a unit struct, unit variant or a `const` item, consider making the path in the pattern qualified: `path::to::ModOrType::WM_LBUTTONDBLCLK`
[INFO] [stdout]    --> src/event/details.rs:370:53
[INFO] [stdout]     |
[INFO] [stdout] 370 |                     WM_LBUTTONDOWN | WM_LBUTTONUP | WM_LBUTTONDBLCLK => Left(click),
[INFO] [stdout]     |                                                     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0408]: variable `WM_LBUTTONDOWN` is not bound in all patterns
[INFO] [stdout]    --> src/event/details.rs:370:38
[INFO] [stdout]     |
[INFO] [stdout] 370 |                     WM_LBUTTONDOWN | WM_LBUTTONUP | WM_LBUTTONDBLCLK => Left(click),
[INFO] [stdout]     |                     --------------   ^^^^^^^^^^^^   ^^^^^^^^^^^^^^^^ pattern doesn't bind `WM_LBUTTONDOWN`
[INFO] [stdout]     |                     |                |
[INFO] [stdout]     |                     |                pattern doesn't bind `WM_LBUTTONDOWN`
[INFO] [stdout]     |                     variable not in all patterns
[INFO] [stdout]     |
[INFO] [stdout] help: if you meant to match on a unit struct, unit variant or a `const` item, consider making the path in the pattern qualified: `path::to::ModOrType::WM_LBUTTONDOWN`
[INFO] [stdout]    --> src/event/details.rs:370:21
[INFO] [stdout]     |
[INFO] [stdout] 370 |                     WM_LBUTTONDOWN | WM_LBUTTONUP | WM_LBUTTONDBLCLK => Left(click),
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0408]: variable `WM_RBUTTONUP` is not bound in all patterns
[INFO] [stdout]    --> src/event/details.rs:371:21
[INFO] [stdout]     |
[INFO] [stdout] 371 |                     WM_RBUTTONDOWN | WM_RBUTTONUP | WM_RBUTTONDBLCLK => Right(click),
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^   ------------   ^^^^^^^^^^^^^^^^ pattern doesn't bind `WM_RBUTTONUP`
[INFO] [stdout]     |                     |                |
[INFO] [stdout]     |                     |                variable not in all patterns
[INFO] [stdout]     |                     pattern doesn't bind `WM_RBUTTONUP`
[INFO] [stdout]     |
[INFO] [stdout] help: if you meant to match on a unit struct, unit variant or a `const` item, consider making the path in the pattern qualified: `path::to::ModOrType::WM_RBUTTONUP`
[INFO] [stdout]    --> src/event/details.rs:371:38
[INFO] [stdout]     |
[INFO] [stdout] 371 |                     WM_RBUTTONDOWN | WM_RBUTTONUP | WM_RBUTTONDBLCLK => Right(click),
[INFO] [stdout]     |                                      ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0408]: variable `WM_RBUTTONDBLCLK` is not bound in all patterns
[INFO] [stdout]    --> src/event/details.rs:371:21
[INFO] [stdout]     |
[INFO] [stdout] 371 |                     WM_RBUTTONDOWN | WM_RBUTTONUP | WM_RBUTTONDBLCLK => Right(click),
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^   ^^^^^^^^^^^^   ---------------- variable not in all patterns
[INFO] [stdout]     |                     |                |
[INFO] [stdout]     |                     |                pattern doesn't bind `WM_RBUTTONDBLCLK`
[INFO] [stdout]     |                     pattern doesn't bind `WM_RBUTTONDBLCLK`
[INFO] [stdout]     |
[INFO] [stdout] help: if you meant to match on a unit struct, unit variant or a `const` item, consider making the path in the pattern qualified: `path::to::ModOrType::WM_RBUTTONDBLCLK`
[INFO] [stdout]    --> src/event/details.rs:371:53
[INFO] [stdout]     |
[INFO] [stdout] 371 |                     WM_RBUTTONDOWN | WM_RBUTTONUP | WM_RBUTTONDBLCLK => Right(click),
[INFO] [stdout]     |                                                     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0408]: variable `WM_RBUTTONDOWN` is not bound in all patterns
[INFO] [stdout]    --> src/event/details.rs:371:38
[INFO] [stdout]     |
[INFO] [stdout] 371 |                     WM_RBUTTONDOWN | WM_RBUTTONUP | WM_RBUTTONDBLCLK => Right(click),
[INFO] [stdout]     |                     --------------   ^^^^^^^^^^^^   ^^^^^^^^^^^^^^^^ pattern doesn't bind `WM_RBUTTONDOWN`
[INFO] [stdout]     |                     |                |
[INFO] [stdout]     |                     |                pattern doesn't bind `WM_RBUTTONDOWN`
[INFO] [stdout]     |                     variable not in all patterns
[INFO] [stdout]     |
[INFO] [stdout] help: if you meant to match on a unit struct, unit variant or a `const` item, consider making the path in the pattern qualified: `path::to::ModOrType::WM_RBUTTONDOWN`
[INFO] [stdout]    --> src/event/details.rs:371:21
[INFO] [stdout]     |
[INFO] [stdout] 371 |                     WM_RBUTTONDOWN | WM_RBUTTONUP | WM_RBUTTONDBLCLK => Right(click),
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0408]: variable `WM_MBUTTONUP` is not bound in all patterns
[INFO] [stdout]    --> src/event/details.rs:372:21
[INFO] [stdout]     |
[INFO] [stdout] 372 |                     WM_MBUTTONDOWN | WM_MBUTTONUP | WM_MBUTTONDBLCLK=> Middle(click),
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^   ------------   ^^^^^^^^^^^^^^^^ pattern doesn't bind `WM_MBUTTONUP`
[INFO] [stdout]     |                     |                |
[INFO] [stdout]     |                     |                variable not in all patterns
[INFO] [stdout]     |                     pattern doesn't bind `WM_MBUTTONUP`
[INFO] [stdout]     |
[INFO] [stdout] help: if you meant to match on a unit struct, unit variant or a `const` item, consider making the path in the pattern qualified: `path::to::ModOrType::WM_MBUTTONUP`
[INFO] [stdout]    --> src/event/details.rs:372:38
[INFO] [stdout]     |
[INFO] [stdout] 372 |                     WM_MBUTTONDOWN | WM_MBUTTONUP | WM_MBUTTONDBLCLK=> Middle(click),
[INFO] [stdout]     |                                      ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0408]: variable `WM_MBUTTONDBLCLK` is not bound in all patterns
[INFO] [stdout]    --> src/event/details.rs:372:21
[INFO] [stdout]     |
[INFO] [stdout] 372 |                     WM_MBUTTONDOWN | WM_MBUTTONUP | WM_MBUTTONDBLCLK=> Middle(click),
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^   ^^^^^^^^^^^^   ---------------- variable not in all patterns
[INFO] [stdout]     |                     |                |
[INFO] [stdout]     |                     |                pattern doesn't bind `WM_MBUTTONDBLCLK`
[INFO] [stdout]     |                     pattern doesn't bind `WM_MBUTTONDBLCLK`
[INFO] [stdout]     |
[INFO] [stdout] help: if you meant to match on a unit struct, unit variant or a `const` item, consider making the path in the pattern qualified: `path::to::ModOrType::WM_MBUTTONDBLCLK`
[INFO] [stdout]    --> src/event/details.rs:372:53
[INFO] [stdout]     |
[INFO] [stdout] 372 |                     WM_MBUTTONDOWN | WM_MBUTTONUP | WM_MBUTTONDBLCLK=> Middle(click),
[INFO] [stdout]     |                                                     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0408]: variable `WM_MBUTTONDOWN` is not bound in all patterns
[INFO] [stdout]    --> src/event/details.rs:372:38
[INFO] [stdout]     |
[INFO] [stdout] 372 |                     WM_MBUTTONDOWN | WM_MBUTTONUP | WM_MBUTTONDBLCLK=> Middle(click),
[INFO] [stdout]     |                     --------------   ^^^^^^^^^^^^   ^^^^^^^^^^^^^^^^ pattern doesn't bind `WM_MBUTTONDOWN`
[INFO] [stdout]     |                     |                |
[INFO] [stdout]     |                     |                pattern doesn't bind `WM_MBUTTONDOWN`
[INFO] [stdout]     |                     variable not in all patterns
[INFO] [stdout]     |
[INFO] [stdout] help: if you meant to match on a unit struct, unit variant or a `const` item, consider making the path in the pattern qualified: `path::to::ModOrType::WM_MBUTTONDOWN`
[INFO] [stdout]    --> src/event/details.rs:372:21
[INFO] [stdout]     |
[INFO] [stdout] 372 |                     WM_MBUTTONDOWN | WM_MBUTTONUP | WM_MBUTTONDBLCLK=> Middle(click),
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0408]: variable `WM_XBUTTONUP` is not bound in all patterns
[INFO] [stdout]    --> src/event/details.rs:373:21
[INFO] [stdout]     |
[INFO] [stdout] 373 |                     WM_XBUTTONDOWN | WM_XBUTTONUP | WM_XBUTTONDBLCLK => {
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^   ------------   ^^^^^^^^^^^^^^^^ pattern doesn't bind `WM_XBUTTONUP`
[INFO] [stdout]     |                     |                |
[INFO] [stdout]     |                     |                variable not in all patterns
[INFO] [stdout]     |                     pattern doesn't bind `WM_XBUTTONUP`
[INFO] [stdout]     |
[INFO] [stdout] help: if you meant to match on a unit struct, unit variant or a `const` item, consider making the path in the pattern qualified: `path::to::ModOrType::WM_XBUTTONUP`
[INFO] [stdout]    --> src/event/details.rs:373:38
[INFO] [stdout]     |
[INFO] [stdout] 373 |                     WM_XBUTTONDOWN | WM_XBUTTONUP | WM_XBUTTONDBLCLK => {
[INFO] [stdout]     |                                      ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0408]: variable `WM_XBUTTONDBLCLK` is not bound in all patterns
[INFO] [stdout]    --> src/event/details.rs:373:21
[INFO] [stdout]     |
[INFO] [stdout] 373 |                     WM_XBUTTONDOWN | WM_XBUTTONUP | WM_XBUTTONDBLCLK => {
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^   ^^^^^^^^^^^^   ---------------- variable not in all patterns
[INFO] [stdout]     |                     |                |
[INFO] [stdout]     |                     |                pattern doesn't bind `WM_XBUTTONDBLCLK`
[INFO] [stdout]     |                     pattern doesn't bind `WM_XBUTTONDBLCLK`
[INFO] [stdout]     |
[INFO] [stdout] help: if you meant to match on a unit struct, unit variant or a `const` item, consider making the path in the pattern qualified: `path::to::ModOrType::WM_XBUTTONDBLCLK`
[INFO] [stdout]    --> src/event/details.rs:373:53
[INFO] [stdout]     |
[INFO] [stdout] 373 |                     WM_XBUTTONDOWN | WM_XBUTTONUP | WM_XBUTTONDBLCLK => {
[INFO] [stdout]     |                                                     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0408]: variable `WM_XBUTTONDOWN` is not bound in all patterns
[INFO] [stdout]    --> src/event/details.rs:373:38
[INFO] [stdout]     |
[INFO] [stdout] 373 |                     WM_XBUTTONDOWN | WM_XBUTTONUP | WM_XBUTTONDBLCLK => {
[INFO] [stdout]     |                     --------------   ^^^^^^^^^^^^   ^^^^^^^^^^^^^^^^ pattern doesn't bind `WM_XBUTTONDOWN`
[INFO] [stdout]     |                     |                |
[INFO] [stdout]     |                     |                pattern doesn't bind `WM_XBUTTONDOWN`
[INFO] [stdout]     |                     variable not in all patterns
[INFO] [stdout]     |
[INFO] [stdout] help: if you meant to match on a unit struct, unit variant or a `const` item, consider making the path in the pattern qualified: `path::to::ModOrType::WM_XBUTTONDOWN`
[INFO] [stdout]    --> src/event/details.rs:373:21
[INFO] [stdout]     |
[INFO] [stdout] 373 |                     WM_XBUTTONDOWN | WM_XBUTTONUP | WM_XBUTTONDBLCLK => {
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `HHOOK` in this scope
[INFO] [stdout]   --> src/hook/inner/low_level.rs:11:31
[INFO] [stdout]    |
[INFO] [stdout] 11 | unsafe fn call_next_hook(hhk: HHOOK, n_code: INT, w_param: WPARAM, l_param: LPARAM) -> LRESULT {
[INFO] [stdout]    |                               ^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `INT` in this scope
[INFO] [stdout]   --> src/hook/inner/low_level.rs:11:46
[INFO] [stdout]    |
[INFO] [stdout] 11 | unsafe fn call_next_hook(hhk: HHOOK, n_code: INT, w_param: WPARAM, l_param: LPARAM) -> LRESULT {
[INFO] [stdout]    |                                              ^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `WPARAM` in this scope
[INFO] [stdout]   --> src/hook/inner/low_level.rs:11:60
[INFO] [stdout]    |
[INFO] [stdout] 11 | unsafe fn call_next_hook(hhk: HHOOK, n_code: INT, w_param: WPARAM, l_param: LPARAM) -> LRESULT {
[INFO] [stdout]    |                                                            ^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `LPARAM` in this scope
[INFO] [stdout]   --> src/hook/inner/low_level.rs:11:77
[INFO] [stdout]    |
[INFO] [stdout] 11 | unsafe fn call_next_hook(hhk: HHOOK, n_code: INT, w_param: WPARAM, l_param: LPARAM) -> LRESULT {
[INFO] [stdout]    |                                                                             ^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `LRESULT` in this scope
[INFO] [stdout]   --> src/hook/inner/low_level.rs:11:88
[INFO] [stdout]    |
[INFO] [stdout] 11 | unsafe fn call_next_hook(hhk: HHOOK, n_code: INT, w_param: WPARAM, l_param: LPARAM) -> LRESULT {
[INFO] [stdout]    |                                                                                        ^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `INT` in this scope
[INFO] [stdout]   --> src/hook/inner/low_level.rs:35:11
[INFO] [stdout]    |
[INFO] [stdout] 35 |     code: INT,
[INFO] [stdout]    |           ^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `WPARAM` in this scope
[INFO] [stdout]   --> src/hook/inner/low_level.rs:36:18
[INFO] [stdout]    |
[INFO] [stdout] 36 |     wm_key_code: WPARAM,
[INFO] [stdout]    |                  ^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `LPARAM` in this scope
[INFO] [stdout]   --> src/hook/inner/low_level.rs:37:22
[INFO] [stdout]    |
[INFO] [stdout] 37 |     win_hook_struct: LPARAM,
[INFO] [stdout]    |                      ^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `LRESULT` in this scope
[INFO] [stdout]   --> src/hook/inner/low_level.rs:38:6
[INFO] [stdout]    |
[INFO] [stdout] 38 | ) -> LRESULT {
[INFO] [stdout]    |      ^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `HHOOK` in this scope
[INFO] [stdout]   --> src/hook/inner/low_level.rs:45:45
[INFO] [stdout]    |
[INFO] [stdout] 45 |         return call_next_hook(null_mut() as HHOOK, code, wm_key_code, win_hook_struct);
[INFO] [stdout]    |                                             ^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `HHOOK` in this scope
[INFO] [stdout]   --> src/hook/inner/low_level.rs:53:34
[INFO] [stdout]    |
[INFO] [stdout] 53 |     call_next_hook(null_mut() as HHOOK, code, wm_key_code, win_hook_struct)
[INFO] [stdout]    |                                  ^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `INT` in this scope
[INFO] [stdout]    --> src/hook/inner/low_level.rs:154:11
[INFO] [stdout]     |
[INFO] [stdout] 154 |     code: INT,
[INFO] [stdout]     |           ^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `WPARAM` in this scope
[INFO] [stdout]    --> src/hook/inner/low_level.rs:155:21
[INFO] [stdout]     |
[INFO] [stdout] 155 |     wm_mouse_param: WPARAM,
[INFO] [stdout]     |                     ^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `LPARAM` in this scope
[INFO] [stdout]    --> src/hook/inner/low_level.rs:156:22
[INFO] [stdout]     |
[INFO] [stdout] 156 |     win_hook_struct: LPARAM,
[INFO] [stdout]     |                      ^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `LRESULT` in this scope
[INFO] [stdout]    --> src/hook/inner/low_level.rs:157:6
[INFO] [stdout]     |
[INFO] [stdout] 157 | ) -> LRESULT {
[INFO] [stdout]     |      ^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `HHOOK` in this scope
[INFO] [stdout]    --> src/hook/inner/low_level.rs:163:49
[INFO] [stdout]     |
[INFO] [stdout] 163 |             return CallNextHookEx(null_mut() as HHOOK, code, wm_mouse_param, win_hook_struct);
[INFO] [stdout]     |                                                 ^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `HHOOK` in this scope
[INFO] [stdout]    --> src/hook/inner/low_level.rs:171:34
[INFO] [stdout]     |
[INFO] [stdout] 171 |     CallNextHookEx(null_mut() as HHOOK, code, wm_mouse_param, win_hook_struct)
[INFO] [stdout]     |                                  ^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `HHOOK` in this scope
[INFO] [stdout]   --> src/hook/inner.rs:73:37
[INFO] [stdout]    |
[INFO] [stdout] 73 |         if winapi_handle == NULL as HHOOK || thread_id == NULL as DWORD {
[INFO] [stdout]    |                                     ^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `DWORD` in this scope
[INFO] [stdout]   --> src/hook/inner.rs:73:67
[INFO] [stdout]    |
[INFO] [stdout] 73 |         if winapi_handle == NULL as HHOOK || thread_id == NULL as DWORD {
[INFO] [stdout]    |                                                                   ^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `WPARAM` in this scope
[INFO] [stdout]   --> src/hook/inner.rs:87:68
[INFO] [stdout]    |
[INFO] [stdout] 87 |             if 0 == PostThreadMessageA(thread_id, WM_QUIT, NULL as WPARAM, NULL as LPARAM) {
[INFO] [stdout]    |                                                                    ^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `LPARAM` in this scope
[INFO] [stdout]   --> src/hook/inner.rs:87:84
[INFO] [stdout]    |
[INFO] [stdout] 87 |             if 0 == PostThreadMessageA(thread_id, WM_QUIT, NULL as WPARAM, NULL as LPARAM) {
[INFO] [stdout]    |                                                                                    ^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `INT` in this scope
[INFO] [stdout]    --> src/hook/inner.rs:103:25
[INFO] [stdout]     |
[INFO] [stdout] 103 |     pub fn new(hook_id: INT, handler: HOOKPROC) -> InnerHook {
[INFO] [stdout]     |                         ^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `HINSTANCE` in this scope
[INFO] [stdout]    --> src/hook/inner.rs:120:69
[INFO] [stdout]     |
[INFO] [stdout] 120 |                 hhook = SetWindowsHookExA(hook_id, handler, NULL as HINSTANCE, NULL as DWORD);
[INFO] [stdout]     |                                                                     ^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `DWORD` in this scope
[INFO] [stdout]    --> src/hook/inner.rs:120:88
[INFO] [stdout]     |
[INFO] [stdout] 120 |                 hhook = SetWindowsHookExA(hook_id, handler, NULL as HINSTANCE, NULL as DWORD);
[INFO] [stdout]     |                                                                                        ^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `HHOOK` in this scope
[INFO] [stdout]    --> src/hook/inner.rs:124:33
[INFO] [stdout]     |
[INFO] [stdout] 124 |             if hhook != NULL as HHOOK {
[INFO] [stdout]     |                                 ^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `HWND` in this scope
[INFO] [stdout]    --> src/hook/inner.rs:148:32
[INFO] [stdout]     |
[INFO] [stdout] 148 |                     -1isize as HWND,  // -1 => Wait only for message to this thread specifically
[INFO] [stdout]     |                                ^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `UINT` in this scope
[INFO] [stdout]    --> src/hook/inner.rs:149:29
[INFO] [stdout]     |
[INFO] [stdout] 149 |                     NULL as UINT,
[INFO] [stdout]     |                             ^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `UINT` in this scope
[INFO] [stdout]    --> src/hook/inner.rs:150:29
[INFO] [stdout]     |
[INFO] [stdout] 150 |                     NULL as UINT,
[INFO] [stdout]     |                             ^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `WPARAM` in this scope
[INFO] [stdout]   --> src/event/details.rs:11:36
[INFO] [stdout]    |
[INFO] [stdout] 11 |     pub unsafe fn new(wm_key_code: WPARAM, kbd_hook_struct: *const KBDLLHOOKSTRUCT) -> Self {
[INFO] [stdout]    |                                    ^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `KBDLLHOOKSTRUCT` in this scope
[INFO] [stdout]   --> src/event/details.rs:11:68
[INFO] [stdout]    |
[INFO] [stdout] 11 |     pub unsafe fn new(wm_key_code: WPARAM, kbd_hook_struct: *const KBDLLHOOKSTRUCT) -> Self {
[INFO] [stdout]    |                                                                    ^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `KBDLLHOOKSTRUCT` in this scope
[INFO] [stdout]   --> src/event/details.rs:21:54
[INFO] [stdout]    |
[INFO] [stdout] 21 |     unsafe fn optionally_from_keyboard(value: *const KBDLLHOOKSTRUCT) -> Option<Self> {
[INFO] [stdout]    |                                                      ^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `MSLLHOOKSTRUCT` in this scope
[INFO] [stdout]   --> src/event/details.rs:29:51
[INFO] [stdout]    |
[INFO] [stdout] 29 |     unsafe fn optionally_from_mouse(value: *const MSLLHOOKSTRUCT) -> Option<Self> {
[INFO] [stdout]    |                                                   ^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `DWORD` in this scope
[INFO] [stdout]   --> src/event/details.rs:37:32
[INFO] [stdout]    |
[INFO] [stdout] 37 |     fn from_mouse_flags(value: DWORD) -> Self {
[INFO] [stdout]    |                                ^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `LLMHF_INJECTED` in this scope
[INFO] [stdout]   --> src/event/details.rs:38:31
[INFO] [stdout]    |
[INFO] [stdout] 38 |         let i1 = 0 != value & LLMHF_INJECTED;
[INFO] [stdout]    |                               ^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `LLMHF_LOWER_IL_INJECTED` in this scope
[INFO] [stdout]   --> src/event/details.rs:39:31
[INFO] [stdout]    |
[INFO] [stdout] 39 |         let i2 = 0 != value & LLMHF_LOWER_IL_INJECTED;
[INFO] [stdout]    |                               ^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `DWORD` in this scope
[INFO] [stdout]   --> src/event/details.rs:47:35
[INFO] [stdout]    |
[INFO] [stdout] 47 |     fn from_keyboard_flags(value: DWORD) -> Self {
[INFO] [stdout]    |                                   ^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `LLKHF_INJECTED` in this scope
[INFO] [stdout]   --> src/event/details.rs:48:31
[INFO] [stdout]    |
[INFO] [stdout] 48 |         let i1 = 0 != value & LLKHF_INJECTED;
[INFO] [stdout]    |                               ^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `LLKHF_LOWER_IL_INJECTED` in this scope
[INFO] [stdout]   --> src/event/details.rs:49:31
[INFO] [stdout]    |
[INFO] [stdout] 49 |         let i2 = 0 != value & LLKHF_LOWER_IL_INJECTED;
[INFO] [stdout]    |                               ^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `WPARAM` in this scope
[INFO] [stdout]   --> src/event/details.rs:58:11
[INFO] [stdout]    |
[INFO] [stdout] 58 | impl From<WPARAM> for KeyPress {
[INFO] [stdout]    |           ^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: you might be missing a type parameter
[INFO] [stdout]    |
[INFO] [stdout] 58 | impl<WPARAM> From<WPARAM> for KeyPress {
[INFO] [stdout]    |     ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `WPARAM` in this scope
[INFO] [stdout]   --> src/event/details.rs:59:19
[INFO] [stdout]    |
[INFO] [stdout] 59 |     fn from(code: WPARAM) -> Self {
[INFO] [stdout]    |                   ^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `DWORD` in this scope
[INFO] [stdout]   --> src/event/details.rs:95:11
[INFO] [stdout]    |
[INFO] [stdout] 95 | impl From<DWORD> for KeyboardKey {
[INFO] [stdout]    |           ^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: you might be missing a type parameter
[INFO] [stdout]    |
[INFO] [stdout] 95 | impl<DWORD> From<DWORD> for KeyboardKey {
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `DWORD` in this scope
[INFO] [stdout]   --> src/event/details.rs:96:19
[INFO] [stdout]    |
[INFO] [stdout] 96 |     fn from(code: DWORD) -> Self {
[INFO] [stdout]    |                   ^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `KBDLLHOOKSTRUCT` in this scope
[INFO] [stdout]    --> src/event/details.rs:222:49
[INFO] [stdout]     |
[INFO] [stdout] 222 |     pub unsafe fn optionally_from(value: *const KBDLLHOOKSTRUCT) -> Option<Self> {
[INFO] [stdout]     |                                                 ^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `WPARAM` in this scope
[INFO] [stdout]    --> src/event/details.rs:232:39
[INFO] [stdout]     |
[INFO] [stdout] 232 |     pub unsafe fn new(wm_mouse_param: WPARAM, ms_ll_hook_struct: *const MSLLHOOKSTRUCT) -> Self {
[INFO] [stdout]     |                                       ^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `MSLLHOOKSTRUCT` in this scope
[INFO] [stdout]    --> src/event/details.rs:232:73
[INFO] [stdout]     |
[INFO] [stdout] 232 |     pub unsafe fn new(wm_mouse_param: WPARAM, ms_ll_hook_struct: *const MSLLHOOKSTRUCT) -> Self {
[INFO] [stdout]     |                                                                         ^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `WPARAM` in this scope
[INFO] [stdout]    --> src/event/details.rs:256:39
[INFO] [stdout]     |
[INFO] [stdout] 256 |     pub unsafe fn new(wm_mouse_param: WPARAM, ms_ll_hook_struct: *const MSLLHOOKSTRUCT) -> MousePressEvent {
[INFO] [stdout]     |                                       ^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `MSLLHOOKSTRUCT` in this scope
[INFO] [stdout]    --> src/event/details.rs:256:73
[INFO] [stdout]     |
[INFO] [stdout] 256 |     pub unsafe fn new(wm_mouse_param: WPARAM, ms_ll_hook_struct: *const MSLLHOOKSTRUCT) -> MousePressEvent {
[INFO] [stdout]     |                                                                         ^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `POINT` in this scope
[INFO] [stdout]    --> src/event/details.rs:264:11
[INFO] [stdout]     |
[INFO] [stdout] 264 | impl From<POINT> for Point {
[INFO] [stdout]     |           ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/event.rs:291:1
[INFO] [stdout]     |
[INFO] [stdout] 291 | pub struct Point {
[INFO] [stdout]     | ---------------- similarly named struct `Point` defined here
[INFO] [stdout]     |
[INFO] [stdout] help: a struct with a similar name exists
[INFO] [stdout]     |
[INFO] [stdout] 264 - impl From<POINT> for Point {
[INFO] [stdout] 264 + impl From<Point> for Point {
[INFO] [stdout]     |
[INFO] [stdout] help: you might be missing a type parameter
[INFO] [stdout]     |
[INFO] [stdout] 264 | impl<POINT> From<POINT> for Point {
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `POINT` in this scope
[INFO] [stdout]    --> src/event/details.rs:265:20
[INFO] [stdout]     |
[INFO] [stdout] 265 |     fn from(value: POINT) -> Self {
[INFO] [stdout]     |                    ^^^^^ help: a struct with a similar name exists: `Point`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/event.rs:291:1
[INFO] [stdout]     |
[INFO] [stdout] 291 | pub struct Point {
[INFO] [stdout]     | ---------------- similarly named struct `Point` defined here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `WPARAM` in this scope
[INFO] [stdout]    --> src/event/details.rs:271:32
[INFO] [stdout]     |
[INFO] [stdout] 271 |     pub fn new(wm_mouse_param: WPARAM) -> MouseWheel {
[INFO] [stdout]     |                                ^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `WPARAM` in this scope
[INFO] [stdout]    --> src/event/details.rs:287:39
[INFO] [stdout]     |
[INFO] [stdout] 287 |     pub unsafe fn new(wm_mouse_param: WPARAM, ms_ll_hook_struct: *const MSLLHOOKSTRUCT) -> MouseWheelEvent {
[INFO] [stdout]     |                                       ^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `MSLLHOOKSTRUCT` in this scope
[INFO] [stdout]    --> src/event/details.rs:287:73
[INFO] [stdout]     |
[INFO] [stdout] 287 |     pub unsafe fn new(wm_mouse_param: WPARAM, ms_ll_hook_struct: *const MSLLHOOKSTRUCT) -> MouseWheelEvent {
[INFO] [stdout]     |                                                                         ^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `MSLLHOOKSTRUCT` in this scope
[INFO] [stdout]    --> src/event/details.rs:297:61
[INFO] [stdout]     |
[INFO] [stdout] 297 |     pub unsafe fn optionally_from(ms_ll_hook_struct: *const MSLLHOOKSTRUCT) -> Option<MouseWheelDirection>{
[INFO] [stdout]     |                                                             ^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `MSLLHOOKSTRUCT` in this scope
[INFO] [stdout]    --> src/event/details.rs:305:32
[INFO] [stdout]     |
[INFO] [stdout] 305 |     fn new(ms_ll_hook_struct: &MSLLHOOKSTRUCT) -> MouseWheelDirection {
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `WPARAM` in this scope
[INFO] [stdout]    --> src/event/details.rs:307:75
[INFO] [stdout]     |
[INFO] [stdout] 307 |         let delta = GET_WHEEL_DELTA_WPARAM(ms_ll_hook_struct.mouseData as WPARAM);
[INFO] [stdout]     |                                                                           ^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `MSLLHOOKSTRUCT` in this scope
[INFO] [stdout]    --> src/event/details.rs:317:49
[INFO] [stdout]     |
[INFO] [stdout] 317 |     pub unsafe fn new(ms_ll_hook_struct: *const MSLLHOOKSTRUCT) -> MouseMoveEvent {
[INFO] [stdout]     |                                                 ^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `WPARAM` in this scope
[INFO] [stdout]    --> src/event/details.rs:328:11
[INFO] [stdout]     |
[INFO] [stdout] 328 | impl From<WPARAM> for MouseButtonPress {
[INFO] [stdout]     |           ^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: you might be missing a type parameter
[INFO] [stdout]     |
[INFO] [stdout] 328 | impl<WPARAM> From<WPARAM> for MouseButtonPress {
[INFO] [stdout]     |     ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `WPARAM` in this scope
[INFO] [stdout]    --> src/event/details.rs:329:20
[INFO] [stdout]     |
[INFO] [stdout] 329 |     fn from(value: WPARAM) -> Self {
[INFO] [stdout]     |                    ^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `WPARAM` in this scope
[INFO] [stdout]    --> src/event/details.rs:344:11
[INFO] [stdout]     |
[INFO] [stdout] 344 | impl From<WPARAM> for MouseClick {
[INFO] [stdout]     |           ^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: you might be missing a type parameter
[INFO] [stdout]     |
[INFO] [stdout] 344 | impl<WPARAM> From<WPARAM> for MouseClick {
[INFO] [stdout]     |     ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `WPARAM` in this scope
[INFO] [stdout]    --> src/event/details.rs:345:20
[INFO] [stdout]     |
[INFO] [stdout] 345 |     fn from(value: WPARAM) -> Self {
[INFO] [stdout]     |                    ^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `WPARAM` in this scope
[INFO] [stdout]    --> src/event/details.rs:363:40
[INFO] [stdout]     |
[INFO] [stdout] 363 |     pub unsafe fn from(wm_mouse_param: WPARAM, ms_ll_hook_struct: *const MSLLHOOKSTRUCT) -> Self {
[INFO] [stdout]     |                                        ^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `MSLLHOOKSTRUCT` in this scope
[INFO] [stdout]    --> src/event/details.rs:363:74
[INFO] [stdout]     |
[INFO] [stdout] 363 |     pub unsafe fn from(wm_mouse_param: WPARAM, ms_ll_hook_struct: *const MSLLHOOKSTRUCT) -> Self {
[INFO] [stdout]     |                                                                          ^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `MSLLHOOKSTRUCT` in this scope
[INFO] [stdout]    --> src/event/details.rs:389:58
[INFO] [stdout]     |
[INFO] [stdout] 389 |     fn into_extra(click: MouseClick, ms_ll_hook_struct: &MSLLHOOKSTRUCT) -> Self {
[INFO] [stdout]     |                                                          ^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function, tuple struct or tuple variant `GET_WHEEL_DELTA_WPARAM` in this scope
[INFO] [stdout]    --> src/event/details.rs:307:21
[INFO] [stdout]     |
[INFO] [stdout] 307 |         let delta = GET_WHEEL_DELTA_WPARAM(ms_ll_hook_struct.mouseData as WPARAM);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function, tuple struct or tuple variant `GET_XBUTTON_WPARAM` in this scope
[INFO] [stdout]    --> src/event/details.rs:391:15
[INFO] [stdout]     |
[INFO] [stdout] 391 |         match GET_XBUTTON_WPARAM(ms_ll_hook_struct.mouseData.try_into().expect("")) {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0408, E0412, E0425, E0432, E0433.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0408`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `willhook` (lib) due to 121 previous errors
[INFO] running `Command { std: "docker" "inspect" "e17f9ac48713ee1b6b520b49d8e2e2d6dcaa857e4bc536b871c4f9b215b3085f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e17f9ac48713ee1b6b520b49d8e2e2d6dcaa857e4bc536b871c4f9b215b3085f", kill_on_drop: false }`
[INFO] [stdout] e17f9ac48713ee1b6b520b49d8e2e2d6dcaa857e4bc536b871c4f9b215b3085f
