[INFO] fetching crate hazeveil 1.0.0...
[INFO] checking hazeveil-1.0.0 against eca445e5ae4a6679cc27d3a09106ce245e13a5a6 for pr-162478
[INFO] extracting crate hazeveil 1.0.0 into /workspace/builds/worker-2-tc1/source
[INFO] started tweaking crates.io crate hazeveil 1.0.0
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate hazeveil 1.0.0
[INFO] tweaked toml for crates.io crate hazeveil 1.0.0 written to /workspace/builds/worker-2-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate hazeveil 1.0.0 on toolchain eca445e5ae4a6679cc27d3a09106ce245e13a5a6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+eca445e5ae4a6679cc27d3a09106ce245e13a5a6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate hazeveil 1.0.0 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" "+eca445e5ae4a6679cc27d3a09106ce245e13a5a6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: explicit `package.readme` can be inferred
[INFO] [stderr]   --> Cargo.toml:81:1
[INFO] [stderr]    |
[INFO] [stderr] 81 | readme = "README.md"
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::manual_readme` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.readme`
[INFO] [stderr] warning: `hazeveil` (manifest) generated 1 warning
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded env_logger v0.11.9
[INFO] [stderr]   Downloaded env_filter v1.0.0
[INFO] [stderr]   Downloaded chacha20poly1305 v0.10.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:8683fc1fc2eb5c9ac98e0d076ab094b2ffac7f99da555d2b6a2e27f346de2ec7" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] ba5d706207f352d61f9eda97310922fc4f9e88c9b0bdbaa9ebcfdd0ca472e142
[INFO] running `Command { std: "docker" "start" "ba5d706207f352d61f9eda97310922fc4f9e88c9b0bdbaa9ebcfdd0ca472e142", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "ba5d706207f352d61f9eda97310922fc4f9e88c9b0bdbaa9ebcfdd0ca472e142", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "ba5d706207f352d61f9eda97310922fc4f9e88c9b0bdbaa9ebcfdd0ca472e142" "/opt/rustwide/cargo-home/bin/cargo" "+eca445e5ae4a6679cc27d3a09106ce245e13a5a6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "ba5d706207f352d61f9eda97310922fc4f9e88c9b0bdbaa9ebcfdd0ca472e142", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "ba5d706207f352d61f9eda97310922fc4f9e88c9b0bdbaa9ebcfdd0ca472e142" "/opt/rustwide/cargo-home/bin/cargo" "+eca445e5ae4a6679cc27d3a09106ce245e13a5a6" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr] warning: explicit `package.readme` can be inferred
[INFO] [stderr]   --> Cargo.toml:81:1
[INFO] [stderr]    |
[INFO] [stderr] 81 | readme = "README.md"
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::manual_readme` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.readme`
[INFO] [stderr] warning: `hazeveil` (manifest) generated 1 warning
[INFO] [stderr]    Compiling libc v0.2.182
[INFO] [stderr]    Compiling zerocopy v0.8.40
[INFO] [stderr]    Compiling cfg_aliases v0.2.1
[INFO] [stderr]     Checking aho-corasick v1.1.4
[INFO] [stderr]     Checking log v0.4.29
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]     Checking inout v0.1.4
[INFO] [stderr]    Compiling getrandom v0.4.1
[INFO] [stderr]     Checking jiff v0.2.21
[INFO] [stderr]    Compiling hazeveil v1.0.0 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling nix v0.30.1
[INFO] [stderr]     Checking rustix v1.1.4
[INFO] [stderr] warning: hazeveil@1.0.0: Building on kernel: 6.17.0-1013-gcp
[INFO] [stderr] warning: hazeveil@1.0.0: Kernel 6: OK.
[INFO] [stderr]     Checking regex-automata v0.4.14
[INFO] [stderr]     Checking getrandom v0.2.17
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]     Checking errno v0.3.14
[INFO] [stderr]     Checking dirs-sys v0.4.1
[INFO] [stderr]     Checking socket2 v0.6.2
[INFO] [stderr]     Checking mio v1.1.1
[INFO] [stderr]     Checking nix v0.27.1
[INFO] [stderr]     Checking tempfile v3.26.0
[INFO] [stderr]     Checking signal-hook-registry v1.4.8
[INFO] [stderr]     Checking dirs v5.0.1
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]     Checking crypto-common v0.1.7
[INFO] [stderr]     Checking password-hash v0.5.0
[INFO] [stderr]     Checking universal-hash v0.5.1
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]     Checking aead v0.5.2
[INFO] [stderr]     Checking poly1305 v0.8.0
[INFO] [stderr]     Checking blake2 v0.10.6
[INFO] [stderr]     Checking ctrlc v3.5.1
[INFO] [stderr]     Checking argon2 v0.5.3
[INFO] [stderr]     Checking regex v1.12.3
[INFO] [stderr]     Checking env_filter v1.0.0
[INFO] [stderr]     Checking env_logger v0.11.9
[INFO] [stderr]    Compiling zeroize_derive v1.4.3
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling tokio-macros v2.6.0
[INFO] [stderr]    Compiling clap_derive v4.5.55
[INFO] [stderr]     Checking zeroize v1.8.2
[INFO] [stderr]     Checking tokio v1.49.0
[INFO] [stderr]     Checking cipher v0.4.4
[INFO] [stderr]     Checking chacha20 v0.9.1
[INFO] [stderr]     Checking chacha20poly1305 v0.10.1
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking clap v4.5.60
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking serde v1.0.228
[INFO] [stdout] warning: field `level` is never read
[INFO] [stdout]   --> src/touchpad_engine.rs:16:44
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct TouchpadEngine { rng: SmallRng, level: u8 }
[INFO] [stdout]    |            --------------                  ^^^^^
[INFO] [stdout]    |            |
[INFO] [stdout]    |            field in this struct
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `level` is never read
[INFO] [stdout]   --> src/touchpad_engine.rs:16:44
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct TouchpadEngine { rng: SmallRng, level: u8 }
[INFO] [stdout]    |            --------------                  ^^^^^
[INFO] [stdout]    |            |
[INFO] [stdout]    |            field in this struct
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_configured` is never used
[INFO] [stdout]   --> src/config.rs:59:8
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub fn is_configured() -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mark_configured` is never used
[INFO] [stdout]   --> src/config.rs:63:8
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub fn mark_configured() -> Result<()> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `interactive_config` is never used
[INFO] [stdout]   --> src/config.rs:69:8
[INFO] [stdout]    |
[INFO] [stdout] 69 | pub fn interactive_config() -> Result<()> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `stop` is never used
[INFO] [stdout]    --> src/core_engine.rs:103:12
[INFO] [stdout]     |
[INFO] [stdout]  33 | impl CoreEngine {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 103 |     pub fn stop(&self) { self.running.store(false, Ordering::SeqCst); }
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `keycode` and `delay_us` are never read
[INFO] [stdout]  --> src/keyboard_engine.rs:8:13
[INFO] [stdout]   |
[INFO] [stdout] 8 |     Press { keycode: u32, delay_us: u64 },
[INFO] [stdout]   |     -----   ^^^^^^^       ^^^^^^^^
[INFO] [stdout]   |     |
[INFO] [stdout]   |     fields in this variant
[INFO] [stdout]   |
[INFO] [stdout]   = note: `KeyEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `keycode` and `dwell_us` are never read
[INFO] [stdout]  --> src/keyboard_engine.rs:9:15
[INFO] [stdout]   |
[INFO] [stdout] 9 |     Release { keycode: u32, dwell_us: u64 },
[INFO] [stdout]   |     -------   ^^^^^^^       ^^^^^^^^
[INFO] [stdout]   |     |
[INFO] [stdout]   |     fields in this variant
[INFO] [stdout]   |
[INFO] [stdout]   = note: `KeyEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `keycode` is never read
[INFO] [stdout]   --> src/keyboard_engine.rs:10:13
[INFO] [stdout]    |
[INFO] [stdout] 10 |     Ghost { keycode: u32 },
[INFO] [stdout]    |     -----   ^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `KeyEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `id`, `x`, `y`, and `pressure` are never read
[INFO] [stdout]  --> src/touchpad_engine.rs:6:29
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct TouchPoint { pub id: u8, pub x: f64, pub y: f64, pub pressure: f64 }
[INFO] [stdout]   |            ----------       ^^          ^           ^           ^^^^^^^^
[INFO] [stdout]   |            |
[INFO] [stdout]   |            fields in this struct
[INFO] [stdout]   |
[INFO] [stdout]   = note: `TouchPoint` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/touchpad_engine.rs:10:15
[INFO] [stdout]    |
[INFO] [stdout] 10 |     SingleTap(TouchPoint),
[INFO] [stdout]    |     --------- ^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Gesture` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 10 -     SingleTap(TouchPoint),
[INFO] [stdout] 10 +     SingleTap(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `dx`, `dy`, and `pressure` are never read
[INFO] [stdout]   --> src/touchpad_engine.rs:11:23
[INFO] [stdout]    |
[INFO] [stdout] 11 |     TwoFingerScroll { dx: f64, dy: f64, pressure: f64 },
[INFO] [stdout]    |     ---------------   ^^       ^^       ^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     fields in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Gesture` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `scale` and `center` are never read
[INFO] [stdout]   --> src/touchpad_engine.rs:12:13
[INFO] [stdout]    |
[INFO] [stdout] 12 |     Pinch { scale: f64, center: (f64, f64) },
[INFO] [stdout]    |     -----   ^^^^^       ^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     fields in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Gesture` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `dx` and `dy` are never read
[INFO] [stdout]   --> src/touchpad_engine.rs:13:24
[INFO] [stdout]    |
[INFO] [stdout] 13 |     ThreeFingerSwipe { dx: f64, dy: f64 },
[INFO] [stdout]    |     ----------------   ^^       ^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     fields in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Gesture` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `level` is never read
[INFO] [stdout]   --> src/touchpad_engine.rs:16:44
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct TouchpadEngine { rng: SmallRng, level: u8 }
[INFO] [stdout]    |            --------------                  ^^^^^
[INFO] [stdout]    |            |
[INFO] [stdout]    |            field in this struct
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `dx` and `dy` are never read
[INFO] [stdout]  --> src/scroll_engine.rs:7:30
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct ScrollEvent { pub dx: f64, pub dy: f64, pub velocity: f64 }
[INFO] [stdout]   |            -----------       ^^           ^^
[INFO] [stdout]   |            |
[INFO] [stdout]   |            fields in this struct
[INFO] [stdout]   |
[INFO] [stdout]   = note: `ScrollEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `poisson_delay` and `level` are never used
[INFO] [stdout]   --> src/timing_engine.rs:29:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl TimingEngine {
[INFO] [stdout]    | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 29 |     pub fn poisson_delay(&mut self) -> Duration {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 50 |     pub fn level(&self) -> u8 { self.level }
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `focus_delay` is never used
[INFO] [stdout]   --> src/window_engine.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout]  9 | impl WindowEngine {
[INFO] [stdout]    | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 12 |     pub fn focus_delay(&mut self, pattern: &BehaviorPattern) -> Duration {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `delay_ms` is never read
[INFO] [stdout]  --> src/clipboard_engine.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 |     Copy { delay_ms: u64 },
[INFO] [stdout]   |     ----   ^^^^^^^^
[INFO] [stdout]   |     |
[INFO] [stdout]   |     field in this variant
[INFO] [stdout]   |
[INFO] [stdout]   = note: `ClipboardOp` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `delay_ms` is never read
[INFO] [stdout]  --> src/clipboard_engine.rs:9:13
[INFO] [stdout]   |
[INFO] [stdout] 9 |     Paste { delay_ms: u64 },
[INFO] [stdout]   |     -----   ^^^^^^^^
[INFO] [stdout]   |     |
[INFO] [stdout]   |     field in this variant
[INFO] [stdout]   |
[INFO] [stdout]   = note: `ClipboardOp` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `delay_ms` is never read
[INFO] [stdout]   --> src/clipboard_engine.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 |     Cut { delay_ms: u64 },
[INFO] [stdout]    |     ---   ^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ClipboardOp` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Banking`, `Game`, `VideoEditor`, `TextEditor`, and `Other` are never constructed
[INFO] [stdout]  --> src/context_detector.rs:7:23
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub enum AppContext { Banking, Browser, Terminal, Game, VideoEditor, TextEditor, Other(String) }
[INFO] [stdout]   |          ----------   ^^^^^^^                     ^^^^  ^^^^^^^^^^^  ^^^^^^^^^^  ^^^^^
[INFO] [stdout]   |          |
[INFO] [stdout]   |          variants in this enum
[INFO] [stdout]   |
[INFO] [stdout]   = note: `AppContext` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `display_server` and `app_context` are never read
[INFO] [stdout]   --> src/context_detector.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub struct ContextDetector {
[INFO] [stdout]    |            --------------- fields in this struct
[INFO] [stdout] 10 |     pub display_server: DisplayServer,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 11 |     pub app_context: AppContext,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `display_server` is never used
[INFO] [stdout]   --> src/context_detector.rs:59:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl ContextDetector {
[INFO] [stdout]    | -------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 59 |     pub fn display_server(&self) -> &DisplayServer { &self.display_server }
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `secure_zero` is never used
[INFO] [stdout]   --> src/utils.rs:52:8
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub fn secure_zero(data: &mut Vec<u8>) {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PerfTimer` is never constructed
[INFO] [stdout]   --> src/utils.rs:56:12
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub struct PerfTimer {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `elapsed_us` are never used
[INFO] [stdout]   --> src/utils.rs:61:12
[INFO] [stdout]    |
[INFO] [stdout] 60 | impl PerfTimer {
[INFO] [stdout]    | -------------- associated items in this implementation
[INFO] [stdout] 61 |     pub fn new() -> Self { Self { start: std::time::Instant::now() } }
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 62 |     pub fn elapsed_us(&self) -> u128 { self.start.elapsed().as_micros() }
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CONFIG_FILENAME` is never used
[INFO] [stdout]  --> src/config.rs:7:7
[INFO] [stdout]   |
[INFO] [stdout] 7 | const CONFIG_FILENAME: &str = "config.enc";
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SALT_FILENAME` is never used
[INFO] [stdout]  --> src/config.rs:8:7
[INFO] [stdout]   |
[INFO] [stdout] 8 | const SALT_FILENAME: &str = "salt.bin";
[INFO] [stdout]   |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_PASSWORD` is never used
[INFO] [stdout]  --> src/config.rs:9:7
[INFO] [stdout]   |
[INFO] [stdout] 9 | const DEFAULT_PASSWORD: &[u8] = b"hazeveil-default-local-key-v1";
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HazeVeilConfig` is never constructed
[INFO] [stdout]   --> src/config.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct HazeVeilConfig {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load` is never used
[INFO] [stdout]   --> src/config.rs:38:8
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub fn load() -> Result<HazeVeilConfig> {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `save` is never used
[INFO] [stdout]   --> src/config.rs:49:8
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub fn save(cfg: &HazeVeilConfig) -> Result<()> {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_configured` is never used
[INFO] [stdout]   --> src/config.rs:59:8
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub fn is_configured() -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mark_configured` is never used
[INFO] [stdout]   --> src/config.rs:63:8
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub fn mark_configured() -> Result<()> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `interactive_config` is never used
[INFO] [stdout]   --> src/config.rs:69:8
[INFO] [stdout]    |
[INFO] [stdout] 69 | pub fn interactive_config() -> Result<()> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `config_path` is never used
[INFO] [stdout]   --> src/config.rs:78:4
[INFO] [stdout]    |
[INFO] [stdout] 78 | fn config_path() -> Result<PathBuf> { Ok(config_dir()?.join(CONFIG_FILENAME)) }
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `salt_path` is never used
[INFO] [stdout]   --> src/config.rs:79:4
[INFO] [stdout]    |
[INFO] [stdout] 79 | fn salt_path() -> Result<PathBuf> { Ok(config_dir()?.join(SALT_FILENAME)) }
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_salt` is never used
[INFO] [stdout]   --> src/config.rs:81:4
[INFO] [stdout]    |
[INFO] [stdout] 81 | fn load_salt() -> Result<[u8; 16]> {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_or_create_salt` is never used
[INFO] [stdout]   --> src/config.rs:89:4
[INFO] [stdout]    |
[INFO] [stdout] 89 | fn load_or_create_salt() -> Result<[u8; 16]> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `stop` is never used
[INFO] [stdout]    --> src/core_engine.rs:103:12
[INFO] [stdout]     |
[INFO] [stdout]  33 | impl CoreEngine {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 103 |     pub fn stop(&self) { self.running.store(false, Ordering::SeqCst); }
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `keycode` and `delay_us` are never read
[INFO] [stdout]  --> src/keyboard_engine.rs:8:13
[INFO] [stdout]   |
[INFO] [stdout] 8 |     Press { keycode: u32, delay_us: u64 },
[INFO] [stdout]   |     -----   ^^^^^^^       ^^^^^^^^
[INFO] [stdout]   |     |
[INFO] [stdout]   |     fields in this variant
[INFO] [stdout]   |
[INFO] [stdout]   = note: `KeyEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `keycode` and `dwell_us` are never read
[INFO] [stdout]  --> src/keyboard_engine.rs:9:15
[INFO] [stdout]   |
[INFO] [stdout] 9 |     Release { keycode: u32, dwell_us: u64 },
[INFO] [stdout]   |     -------   ^^^^^^^       ^^^^^^^^
[INFO] [stdout]   |     |
[INFO] [stdout]   |     fields in this variant
[INFO] [stdout]   |
[INFO] [stdout]   = note: `KeyEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `keycode` is never read
[INFO] [stdout]   --> src/keyboard_engine.rs:10:13
[INFO] [stdout]    |
[INFO] [stdout] 10 |     Ghost { keycode: u32 },
[INFO] [stdout]    |     -----   ^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `KeyEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `id`, `x`, `y`, and `pressure` are never read
[INFO] [stdout]  --> src/touchpad_engine.rs:6:29
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct TouchPoint { pub id: u8, pub x: f64, pub y: f64, pub pressure: f64 }
[INFO] [stdout]   |            ----------       ^^          ^           ^           ^^^^^^^^
[INFO] [stdout]   |            |
[INFO] [stdout]   |            fields in this struct
[INFO] [stdout]   |
[INFO] [stdout]   = note: `TouchPoint` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/touchpad_engine.rs:10:15
[INFO] [stdout]    |
[INFO] [stdout] 10 |     SingleTap(TouchPoint),
[INFO] [stdout]    |     --------- ^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Gesture` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 10 -     SingleTap(TouchPoint),
[INFO] [stdout] 10 +     SingleTap(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `dx`, `dy`, and `pressure` are never read
[INFO] [stdout]   --> src/touchpad_engine.rs:11:23
[INFO] [stdout]    |
[INFO] [stdout] 11 |     TwoFingerScroll { dx: f64, dy: f64, pressure: f64 },
[INFO] [stdout]    |     ---------------   ^^       ^^       ^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     fields in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Gesture` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `scale` and `center` are never read
[INFO] [stdout]   --> src/touchpad_engine.rs:12:13
[INFO] [stdout]    |
[INFO] [stdout] 12 |     Pinch { scale: f64, center: (f64, f64) },
[INFO] [stdout]    |     -----   ^^^^^       ^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     fields in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Gesture` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `dx` and `dy` are never read
[INFO] [stdout]   --> src/touchpad_engine.rs:13:24
[INFO] [stdout]    |
[INFO] [stdout] 13 |     ThreeFingerSwipe { dx: f64, dy: f64 },
[INFO] [stdout]    |     ----------------   ^^       ^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     fields in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Gesture` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `level` is never read
[INFO] [stdout]   --> src/touchpad_engine.rs:16:44
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct TouchpadEngine { rng: SmallRng, level: u8 }
[INFO] [stdout]    |            --------------                  ^^^^^
[INFO] [stdout]    |            |
[INFO] [stdout]    |            field in this struct
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `pressure_curve` is never used
[INFO] [stdout]   --> src/touchpad_engine.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl TouchpadEngine {
[INFO] [stdout]    | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 21 |     pub fn pressure_curve(&mut self) -> Vec<f64> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `dx`, `dy`, and `velocity` are never read
[INFO] [stdout]  --> src/scroll_engine.rs:7:30
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct ScrollEvent { pub dx: f64, pub dy: f64, pub velocity: f64 }
[INFO] [stdout]   |            -----------       ^^           ^^           ^^^^^^^^
[INFO] [stdout]   |            |
[INFO] [stdout]   |            fields in this struct
[INFO] [stdout]   |
[INFO] [stdout]   = note: `ScrollEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `poisson_delay`, `gaussian_jitter_us`, and `level` are never used
[INFO] [stdout]   --> src/timing_engine.rs:29:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl TimingEngine {
[INFO] [stdout]    | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 29 |     pub fn poisson_delay(&mut self) -> Duration {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub fn gaussian_jitter_us(&mut self, sigma: f64) -> f64 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 50 |     pub fn level(&self) -> u8 { self.level }
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `focus_delay` is never used
[INFO] [stdout]   --> src/window_engine.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout]  9 | impl WindowEngine {
[INFO] [stdout]    | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 12 |     pub fn focus_delay(&mut self, pattern: &BehaviorPattern) -> Duration {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `delay_ms` is never read
[INFO] [stdout]  --> src/clipboard_engine.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 |     Copy { delay_ms: u64 },
[INFO] [stdout]   |     ----   ^^^^^^^^
[INFO] [stdout]   |     |
[INFO] [stdout]   |     field in this variant
[INFO] [stdout]   |
[INFO] [stdout]   = note: `ClipboardOp` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `delay_ms` is never read
[INFO] [stdout]  --> src/clipboard_engine.rs:9:13
[INFO] [stdout]   |
[INFO] [stdout] 9 |     Paste { delay_ms: u64 },
[INFO] [stdout]   |     -----   ^^^^^^^^
[INFO] [stdout]   |     |
[INFO] [stdout]   |     field in this variant
[INFO] [stdout]   |
[INFO] [stdout]   = note: `ClipboardOp` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `delay_ms` is never read
[INFO] [stdout]   --> src/clipboard_engine.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 |     Cut { delay_ms: u64 },
[INFO] [stdout]    |     ---   ^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ClipboardOp` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Banking`, `Game`, `VideoEditor`, `TextEditor`, and `Other` are never constructed
[INFO] [stdout]  --> src/context_detector.rs:7:23
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub enum AppContext { Banking, Browser, Terminal, Game, VideoEditor, TextEditor, Other(String) }
[INFO] [stdout]   |          ----------   ^^^^^^^                     ^^^^  ^^^^^^^^^^^  ^^^^^^^^^^  ^^^^^
[INFO] [stdout]   |          |
[INFO] [stdout]   |          variants in this enum
[INFO] [stdout]   |
[INFO] [stdout]   = note: `AppContext` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `display_server` and `app_context` are never read
[INFO] [stdout]   --> src/context_detector.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub struct ContextDetector {
[INFO] [stdout]    |            --------------- fields in this struct
[INFO] [stdout] 10 |     pub display_server: DisplayServer,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 11 |     pub app_context: AppContext,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `display_server` is never used
[INFO] [stdout]   --> src/context_detector.rs:59:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl ContextDetector {
[INFO] [stdout]    | -------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 59 |     pub fn display_server(&self) -> &DisplayServer { &self.display_server }
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `derive_key` is never used
[INFO] [stdout]   --> src/utils.rs:17:8
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub fn derive_key(password: &[u8], salt: &[u8; 16]) -> Result<Vec<u8>> {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `encrypt` is never used
[INFO] [stdout]   --> src/utils.rs:27:8
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub fn encrypt(key: &[u8], plaintext: &[u8]) -> Result<Vec<u8>> {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `decrypt` is never used
[INFO] [stdout]   --> src/utils.rs:40:8
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub fn decrypt(key: &[u8], data: &[u8]) -> Result<Vec<u8>> {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `secure_zero` is never used
[INFO] [stdout]   --> src/utils.rs:52:8
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub fn secure_zero(data: &mut Vec<u8>) {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PerfTimer` is never constructed
[INFO] [stdout]   --> src/utils.rs:56:12
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub struct PerfTimer {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `elapsed_us` are never used
[INFO] [stdout]   --> src/utils.rs:61:12
[INFO] [stdout]    |
[INFO] [stdout] 60 | impl PerfTimer {
[INFO] [stdout]    | -------------- associated items in this implementation
[INFO] [stdout] 61 |     pub fn new() -> Self { Self { start: std::time::Instant::now() } }
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 62 |     pub fn elapsed_us(&self) -> u128 { self.start.elapsed().as_micros() }
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 29.85s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: nix v0.30.1
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 2`
[INFO] running `Command { std: "docker" "inspect" "ba5d706207f352d61f9eda97310922fc4f9e88c9b0bdbaa9ebcfdd0ca472e142", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ba5d706207f352d61f9eda97310922fc4f9e88c9b0bdbaa9ebcfdd0ca472e142", kill_on_drop: false }`
[INFO] [stdout] ba5d706207f352d61f9eda97310922fc4f9e88c9b0bdbaa9ebcfdd0ca472e142
