[INFO] cloning repository https://github.com/dwrdx/chip8emu-rs
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/dwrdx/chip8emu-rs" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdwrdx%2Fchip8emu-rs", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdwrdx%2Fchip8emu-rs'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 5b45b072e0a193463b8cb4cde308a535f6a8ace8
[INFO] testing dwrdx/chip8emu-rs against beta-2026-03-05 for beta-1.95-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdwrdx%2Fchip8emu-rs" "/workspace/builds/worker-7-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/dwrdx/chip8emu-rs
[INFO] finished tweaking git repo https://github.com/dwrdx/chip8emu-rs
[INFO] tweaked toml for git repo https://github.com/dwrdx/chip8emu-rs written to /workspace/builds/worker-7-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/dwrdx/chip8emu-rs on toolchain beta-2026-03-05
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2026-03-05" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/dwrdx/chip8emu-rs 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-2026-03-05" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[ERROR] error running command: no output for 300 seconds
[INFO] testing dwrdx/chip8emu-rs against beta-2026-03-05 for beta-1.95-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdwrdx%2Fchip8emu-rs" "/workspace/builds/worker-7-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/dwrdx/chip8emu-rs
[INFO] finished tweaking git repo https://github.com/dwrdx/chip8emu-rs
[INFO] tweaked toml for git repo https://github.com/dwrdx/chip8emu-rs written to /workspace/builds/worker-7-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/dwrdx/chip8emu-rs on toolchain beta-2026-03-05
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2026-03-05" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/dwrdx/chip8emu-rs 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-2026-03-05" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded version-compare v0.1.1
[INFO] [stderr]   Downloaded sdl2 v0.35.2
[INFO] [stderr]   Downloaded libc v0.2.162
[INFO] [stderr]   Downloaded sdl2-sys v0.35.2
[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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-03-05" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 4e2dde25b0f567b7853302396dd9081f59d3de6ca09acfb8ef58b05a8772e21c
[INFO] running `Command { std: "docker" "start" "-a" "4e2dde25b0f567b7853302396dd9081f59d3de6ca09acfb8ef58b05a8772e21c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "4e2dde25b0f567b7853302396dd9081f59d3de6ca09acfb8ef58b05a8772e21c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4e2dde25b0f567b7853302396dd9081f59d3de6ca09acfb8ef58b05a8772e21c", kill_on_drop: false }`
[INFO] [stdout] 4e2dde25b0f567b7853302396dd9081f59d3de6ca09acfb8ef58b05a8772e21c
[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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-03-05" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 52fc50f26e62d14716326344bbf1540c3624e948aa2d9eec3a8f173a54c04f18
[INFO] running `Command { std: "docker" "start" "-a" "52fc50f26e62d14716326344bbf1540c3624e948aa2d9eec3a8f173a54c04f18", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.89
[INFO] [stderr]    Compiling libc v0.2.162
[INFO] [stderr]    Compiling unicode-ident v1.0.13
[INFO] [stderr]    Compiling version-compare v0.1.1
[INFO] [stderr]    Compiling byteorder v1.5.0
[INFO] [stderr]    Compiling sdl2 v0.35.2
[INFO] [stderr]    Compiling chip8emu-rs v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling sdl2-sys v0.35.2
[INFO] [stderr]    Compiling quote v1.0.37
[INFO] [stderr]    Compiling getrandom v0.2.15
[INFO] [stderr]    Compiling syn v2.0.87
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling zerocopy-derive v0.7.35
[INFO] [stderr]    Compiling zerocopy v0.7.35
[INFO] [stderr]    Compiling ppv-lite86 v0.2.20
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stdout] warning: unused import: `sdl2::version::revision_number`
[INFO] [stdout]  --> src/frontend.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use sdl2::version::revision_number;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Duration`
[INFO] [stdout]   --> src/frontend.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::time::Duration;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::frontend::Screen`
[INFO] [stdout]  --> src/chip8.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::frontend::Screen;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::frontend::ScreenTrait`
[INFO] [stdout]  --> src/chip8.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::frontend::ScreenTrait;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `w`
[INFO] [stdout]   --> src/frontend.rs:47:14
[INFO] [stdout]    |
[INFO] [stdout] 47 |         let (w, h) = self.canvas.output_size().unwrap();
[INFO] [stdout]    |              ^ help: if this is intentional, prefix it with an underscore: `_w`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `h`
[INFO] [stdout]   --> src/frontend.rs:47:17
[INFO] [stdout]    |
[INFO] [stdout] 47 |         let (w, h) = self.canvas.output_size().unwrap();
[INFO] [stdout]    |                 ^ help: if this is intentional, prefix it with an underscore: `_h`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]    --> src/chip8.rs:503:51
[INFO] [stdout]     |
[INFO] [stdout] 503 |     fn store_binary_coded_decimal_Fx33(&mut self, value: u16) {
[INFO] [stdout]     |                                                   ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]    --> src/chip8.rs:508:40
[INFO] [stdout]     |
[INFO] [stdout] 508 |     fn store_registers_Fx55(&mut self, value: u16) {
[INFO] [stdout]     |                                        ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `draw` is never used
[INFO] [stdout]   --> src/frontend.rs:32:8
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub trait ScreenTrait {
[INFO] [stdout]    |           ----------- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 32 |     fn draw(&mut self, text : &str);
[INFO] [stdout]    |        ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `window` is never used
[INFO] [stdout]    --> src/frontend.rs:142:12
[INFO] [stdout]     |
[INFO] [stdout] 122 | impl Screen {
[INFO] [stdout]     | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 142 |     pub fn window(&self) -> &Window {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]   --> src/chip8.rs:52:8
[INFO] [stdout]    |
[INFO] [stdout] 41 | trait InstructionSet {
[INFO] [stdout]    |       -------------- methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 52 |     fn skip_if_reg_eq_5xy0(&mut self, value: u16);
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 55 |     fn store_reg_8xy0(&mut self, value: u16);
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 56 |     fn or_reg_8xy1(&mut self, value: u16);
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 57 |     fn and_reg_8xy2(&mut self, value: u16);
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 58 |     fn xor_reg_8xy3(&mut self, value: u16);
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 59 |     fn add_reg_8xy4(&mut self, value: u16);
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 60 |     fn sub_reg_8xy5(&mut self, value: u16);
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 61 |     fn shift_right_8xy6(&mut self, value: u16);
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 62 |     fn sub_reg_8xy7(&mut self, value: u16);
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 63 |     fn shift_left_8xyE(&mut self, value: u16);
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 64 |     fn skip_if_reg_neq_9xy0(&mut self, value: u16);
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 65 |     fn load_value_to_index_reg_Annn(&mut self, value: u16);
[INFO] [stdout] 66 |     fn jump_to_location_Bnnn(&mut self, value: u16);
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 67 |     fn random_number_Cxkk(&mut self, value: u16);
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `reset` is never used
[INFO] [stdout]    --> src/chip8.rs:123:12
[INFO] [stdout]     |
[INFO] [stdout]  97 | impl CPU {
[INFO] [stdout]     | -------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 123 |     pub fn reset(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/main.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 |     file.read_to_end(&mut data);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 18 |     let _ = file.read_to_end(&mut data);
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `V` should have a snake case name
[INFO] [stdout]   --> src/chip8.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 |     V: [u8; 16],   //  Vx where x = 0..F`
[INFO] [stdout]    |     ^ help: convert the identifier to snake case (notice the capitalization): `v`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `I` should have a snake case name
[INFO] [stdout]   --> src/chip8.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 23 |     I: u16,        //  I to store memory address
[INFO] [stdout]    |     ^ help: convert the identifier to snake case (notice the capitalization): `i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `PC` should have a snake case name
[INFO] [stdout]   --> src/chip8.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 |     PC: u16,       //  Program Counter
[INFO] [stdout]    |     ^^ help: convert the identifier to snake case: `pc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `SP` should have a snake case name
[INFO] [stdout]   --> src/chip8.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 25 |     SP: u8,        //  Stack Pointer
[INFO] [stdout]    |     ^^ help: convert the identifier to snake case: `sp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `DT` should have a snake case name
[INFO] [stdout]   --> src/chip8.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 26 |     DT: u8,        //  Delay Timer
[INFO] [stdout]    |     ^^ help: convert the identifier to snake case: `dt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `ST` should have a snake case name
[INFO] [stdout]   --> src/chip8.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 27 |     ST: u8,        //  Sound Timer
[INFO] [stdout]    |     ^^ help: convert the identifier to snake case: `st`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait method `clear_display_00E0` should have a snake case name
[INFO] [stdout]   --> src/chip8.rs:46:8
[INFO] [stdout]    |
[INFO] [stdout] 46 |     fn clear_display_00E0(&mut self);
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `clear_display_00_e0`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait method `return_from_subroutine_00EE` should have a snake case name
[INFO] [stdout]   --> src/chip8.rs:47:8
[INFO] [stdout]    |
[INFO] [stdout] 47 |     fn return_from_subroutine_00EE(&mut self);
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `return_from_subroutine_00_ee`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait method `shift_left_8xyE` should have a snake case name
[INFO] [stdout]   --> src/chip8.rs:63:8
[INFO] [stdout]    |
[INFO] [stdout] 63 |     fn shift_left_8xyE(&mut self, value: u16);
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `shift_left_8xy_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait method `load_value_to_index_reg_Annn` should have a snake case name
[INFO] [stdout]   --> src/chip8.rs:65:8
[INFO] [stdout]    |
[INFO] [stdout] 65 |     fn load_value_to_index_reg_Annn(&mut self, value: u16);
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `load_value_to_index_reg_annn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait method `jump_to_location_Bnnn` should have a snake case name
[INFO] [stdout]   --> src/chip8.rs:66:8
[INFO] [stdout]    |
[INFO] [stdout] 66 |     fn jump_to_location_Bnnn(&mut self, value: u16);
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `jump_to_location_bnnn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait method `random_number_Cxkk` should have a snake case name
[INFO] [stdout]   --> src/chip8.rs:67:8
[INFO] [stdout]    |
[INFO] [stdout] 67 |     fn random_number_Cxkk(&mut self, value: u16);
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `random_number_cxkk`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait method `draw_sprite_Dxyn` should have a snake case name
[INFO] [stdout]   --> src/chip8.rs:68:8
[INFO] [stdout]    |
[INFO] [stdout] 68 |     fn draw_sprite_Dxyn(&mut self, value: u16);
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `draw_sprite_dxyn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait method `skip_if_key_pressed_Ex9E` should have a snake case name
[INFO] [stdout]   --> src/chip8.rs:69:8
[INFO] [stdout]    |
[INFO] [stdout] 69 |     fn skip_if_key_pressed_Ex9E(&mut self, value: u16);
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `skip_if_key_pressed_ex9_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait method `skip_if_key_not_pressed_ExA1` should have a snake case name
[INFO] [stdout]   --> src/chip8.rs:70:8
[INFO] [stdout]    |
[INFO] [stdout] 70 |     fn skip_if_key_not_pressed_ExA1(&mut self, value: u16);
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `skip_if_key_not_pressed_ex_a1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait method `load_delay_timer_Fx07` should have a snake case name
[INFO] [stdout]   --> src/chip8.rs:71:8
[INFO] [stdout]    |
[INFO] [stdout] 71 |     fn load_delay_timer_Fx07(&mut self, value: u16);
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `load_delay_timer_fx07`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait method `wait_for_key_press_Fx0A` should have a snake case name
[INFO] [stdout]   --> src/chip8.rs:72:8
[INFO] [stdout]    |
[INFO] [stdout] 72 |     fn wait_for_key_press_Fx0A(&mut self, value: u16);
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `wait_for_key_press_fx0_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait method `load_reg_to_delay_timer_Fx15` should have a snake case name
[INFO] [stdout]   --> src/chip8.rs:73:8
[INFO] [stdout]    |
[INFO] [stdout] 73 |     fn load_reg_to_delay_timer_Fx15(&mut self, value: u16);
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `load_reg_to_delay_timer_fx15`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait method `load_reg_to_sound_timer_Fx18` should have a snake case name
[INFO] [stdout]   --> src/chip8.rs:74:8
[INFO] [stdout]    |
[INFO] [stdout] 74 |     fn load_reg_to_sound_timer_Fx18(&mut self, value: u16);
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `load_reg_to_sound_timer_fx18`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait method `add_to_index_reg_Fx1E` should have a snake case name
[INFO] [stdout]   --> src/chip8.rs:75:8
[INFO] [stdout]    |
[INFO] [stdout] 75 |     fn add_to_index_reg_Fx1E(&mut self, value: u16);
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `add_to_index_reg_fx1_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait method `set_index_reg_to_sprite_Fx29` should have a snake case name
[INFO] [stdout]   --> src/chip8.rs:76:8
[INFO] [stdout]    |
[INFO] [stdout] 76 |     fn set_index_reg_to_sprite_Fx29(&mut self, value: u16);
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `set_index_reg_to_sprite_fx29`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait method `store_binary_coded_decimal_Fx33` should have a snake case name
[INFO] [stdout]   --> src/chip8.rs:77:8
[INFO] [stdout]    |
[INFO] [stdout] 77 |     fn store_binary_coded_decimal_Fx33(&mut self, value: u16);
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `store_binary_coded_decimal_fx33`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait method `store_registers_Fx55` should have a snake case name
[INFO] [stdout]   --> src/chip8.rs:78:8
[INFO] [stdout]    |
[INFO] [stdout] 78 |     fn store_registers_Fx55(&mut self, value: u16);
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `store_registers_fx55`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait method `load_registers_Fx65` should have a snake case name
[INFO] [stdout]   --> src/chip8.rs:79:8
[INFO] [stdout]    |
[INFO] [stdout] 79 |     fn load_registers_Fx65(&mut self, value: u16);
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `load_registers_fx65`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/chip8.rs:354:26
[INFO] [stdout]     |
[INFO] [stdout] 354 |         self.V[0xF] = if self.V[x as usize] + self.V[y as usize] > 255 { 1 } else { 0 };
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: linking with `cc` failed: exit status: 1
[INFO] [stdout]   |
[INFO] [stdout]   = note:  "cc" "-m64" "/opt/rustwide/target/debug/deps/rustc4sMHtH/symbols.o" "<6 object files omitted>" "-Wl,--as-needed" "-Wl,-Bstatic" "/opt/rustwide/target/debug/deps/{librand-6a4680c71841f149,librand_chacha-73f48e6009fe9f94,libppv_lite86-03555de0e50b2454,libzerocopy-2535faa8d8a68954,libbyteorder-9f6ac6743e38a88c,librand_core-653c03e9267042e8,libgetrandom-7ef2a76f511f069d,libcfg_if-3e7fc4e38d4a72b5,libsdl2-232540961f78c0b1,libsdl2_sys-503ad54a63c98c86,libbitflags-dde12b0d7d495b50,liblazy_static-3674be3f4245d19b,liblibc-08a40c93f878a6e2}.rlib" "<sysroot>/lib/rustlib/x86_64-unknown-linux-gnu/lib/{libstd-*,libpanic_unwind-*,libobject-*,libmemchr-*,libaddr2line-*,libgimli-*,libcfg_if-*,librustc_demangle-*,libstd_detect-*,libhashbrown-*,librustc_std_workspace_alloc-*,libminiz_oxide-*,libadler2-*,libunwind-*,liblibc-*,librustc_std_workspace_core-*,liballoc-*,libcore-*,libcompiler_builtins-*}.rlib" "-Wl,-Bdynamic" "-lSDL2" "-lSDL2_ttf" "-lgcc_s" "-lutil" "-lrt" "-lpthread" "-lm" "-ldl" "-lc" "-L" "/opt/rustwide/target/debug/deps/rustc4sMHtH/raw-dylibs" "-B<sysroot>/lib/rustlib/x86_64-unknown-linux-gnu/bin/gcc-ld" "-fuse-ld=lld" "-Wl,--eh-frame-hdr" "-Wl,-z,noexecstack" "-L" "/opt/homebrew/Cellar/sdl2/2.30.9/lib" "-L" "/opt/homebrew/Cellar/sdl2_ttf/2.22.0/lib" "-L" "<sysroot>/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-o" "/opt/rustwide/target/debug/deps/chip8emu_rs-09ff6c7522c99a7c" "-Wl,--gc-sections" "-pie" "-Wl,-z,relro,-z,now" "-nodefaultlibs"
[INFO] [stdout]   = note: some arguments are omitted. use `--verbose` to show all linker arguments
[INFO] [stdout]   = note: rust-lld: error: unable to find library -lSDL2_ttf
[INFO] [stdout]           collect2: error: ld returned 1 exit status
[INFO] [stdout]           
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `chip8emu-rs` (bin "chip8emu-rs") due to 1 previous error; 38 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "52fc50f26e62d14716326344bbf1540c3624e948aa2d9eec3a8f173a54c04f18", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "52fc50f26e62d14716326344bbf1540c3624e948aa2d9eec3a8f173a54c04f18", kill_on_drop: false }`
[INFO] [stdout] 52fc50f26e62d14716326344bbf1540c3624e948aa2d9eec3a8f173a54c04f18
