[INFO] updating cached repository https://github.com/patallen/RIP-8
[INFO] running `"git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "-c" "remote.origin.fetch=refs/heads/*:refs/heads/*" "fetch" "origin" "--force" "--prune"`
[INFO] running `"git" "rev-parse" "HEAD"`
[INFO] [stdout] 418e27bc9f00fb6353adaac0d313ce8ca545af10
[INFO] checking patallen/RIP-8 against master#bf1f2eedda4fa02b7c9347dd849ed73ddd43dedc for pr-70917
[INFO] running `"git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpatallen%2FRIP-8" "/workspace/builds/worker-14/source"`
[INFO] [stderr] Cloning into '/workspace/builds/worker-14/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/patallen/RIP-8 on toolchain bf1f2eedda4fa02b7c9347dd849ed73ddd43dedc
[INFO] running `"/workspace/cargo-home/bin/cargo" "+bf1f2eedda4fa02b7c9347dd849ed73ddd43dedc" "read-manifest" "--manifest-path" "Cargo.toml"`
[INFO] started tweaking git repo https://github.com/patallen/RIP-8
[INFO] finished tweaking git repo https://github.com/patallen/RIP-8
[INFO] tweaked toml for git repo https://github.com/patallen/RIP-8 written to /workspace/builds/worker-14/source/Cargo.toml
[INFO] crate git repo https://github.com/patallen/RIP-8 already has a lockfile, it will not be regenerated
[INFO] running `"/workspace/cargo-home/bin/cargo" "+bf1f2eedda4fa02b7c9347dd849ed73ddd43dedc" "fetch" "--locked" "--manifest-path" "Cargo.toml"`
[INFO] running `"docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-14/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-14/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" "MAP_USER_ID=0" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--network" "none" "rustops/crates-build-env" "/opt/rustwide/cargo-home/bin/cargo" "+bf1f2eedda4fa02b7c9347dd849ed73ddd43dedc" "check" "--frozen" "--all" "--all-targets"`
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] [stdout] de9a693cc1624f9dd84153a89fd90f5338c6869012d7f35582c3566c8da433b0
[INFO] running `"docker" "start" "-a" "de9a693cc1624f9dd84153a89fd90f5338c6869012d7f35582c3566c8da433b0"`
[INFO] [stderr]    Compiling sdl2-sys v0.27.2
[INFO] [stderr]     Checking quick-error v1.1.0
[INFO] [stderr]     Checking termion v1.3.0
[INFO] [stderr]    Compiling miniz-sys v0.1.9
[INFO] [stderr]     Checking serde_json v0.9.9
[INFO] [stderr]     Checking serde_yaml v0.6.2
[INFO] [stderr]     Checking ordered-float v0.4.0
[INFO] [stderr]     Checking humantime v1.0.0
[INFO] [stderr]     Checking serde-value v0.4.0
[INFO] [stderr]     Checking sdl2 v0.27.3
[INFO] [stderr]     Checking flate2 v0.2.17
[INFO] [stderr]     Checking log4rs v0.6.2
[INFO] [stderr]     Checking chip8 v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr] warning: variant `SysAddressJump_0x0NNN` should have an upper camel case name
[INFO] [stderr]  --> src/opcodes.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 |     SysAddressJump_0x0NNN,          // Jump to address NNN
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `SysAddressJump0x0nnn`
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(non_camel_case_types)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variant `ClearDisplay_0x00E0` should have an upper camel case name
[INFO] [stderr]  --> src/opcodes.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 4 |     ClearDisplay_0x00E0,            // Clear the display
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `ClearDisplay0x00e0`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `RetFromSubroutine_0x00EE` should have an upper camel case name
[INFO] [stderr]  --> src/opcodes.rs:5:5
[INFO] [stderr]   |
[INFO] [stderr] 5 |     RetFromSubroutine_0x00EE,       // Return from Subroutine
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `RetFromSubroutine0x00ee`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `JumpLocation_0x1NNN` should have an upper camel case name
[INFO] [stderr]  --> src/opcodes.rs:6:5
[INFO] [stderr]   |
[INFO] [stderr] 6 |     JumpLocation_0x1NNN,            // Jump to address: Set PC to 0xNNN
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `JumpLocation0x1nnn`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `CallSubroutine_0x2NNN` should have an upper camel case name
[INFO] [stderr]  --> src/opcodes.rs:7:5
[INFO] [stderr]   |
[INFO] [stderr] 7 |     CallSubroutine_0x2NNN,          // Call Subroutine: Set PC to 0xNNN, set sp += 1, set pc = NNN
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `CallSubroutine0x2nnn`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `SkipInstrIfVxEqPL_0x3XNN` should have an upper camel case name
[INFO] [stderr]  --> src/opcodes.rs:8:5
[INFO] [stderr]   |
[INFO] [stderr] 8 |     SkipInstrIfVxEqPL_0x3XNN,       // Skip Instruction if v[x] == 0xNN
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `SkipInstrIfVxEqPl0x3xnn`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `SkipInstrIfVxNotEqPL_0x4XNN` should have an upper camel case name
[INFO] [stderr]  --> src/opcodes.rs:9:5
[INFO] [stderr]   |
[INFO] [stderr] 9 |     SkipInstrIfVxNotEqPL_0x4XNN,    // Skip Instruction if v[x] != 0xNN
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `SkipInstrIfVxNotEqPl0x4xnn`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `SkipInstrIfVxVy_0x5XY0` should have an upper camel case name
[INFO] [stderr]   --> src/opcodes.rs:10:5
[INFO] [stderr]    |
[INFO] [stderr] 10 |     SkipInstrIfVxVy_0x5XY0,         // Skip Instruction if v[x] == v[y]
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `SkipInstrIfVxVy0x5xy0`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `SetVxToPL_0x6XNN` should have an upper camel case name
[INFO] [stderr]   --> src/opcodes.rs:11:5
[INFO] [stderr]    |
[INFO] [stderr] 11 |     SetVxToPL_0x6XNN,               // Set v[x] to 0xNN
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `SetVxToPl0x6xnn`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `IncrementVxByPL_0x7XNN` should have an upper camel case name
[INFO] [stderr]   --> src/opcodes.rs:12:5
[INFO] [stderr]    |
[INFO] [stderr] 12 |     IncrementVxByPL_0x7XNN,         // Increment v[x] by 0xNN
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `IncrementVxByPl0x7xnn`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `SetVxToVy_0x8XY0` should have an upper camel case name
[INFO] [stderr]   --> src/opcodes.rs:13:5
[INFO] [stderr]    |
[INFO] [stderr] 13 |     SetVxToVy_0x8XY0,               // Set v[x] to v[y](xx)
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `SetVxToVy0x8xy0`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `SetVxToVxORVy_0x8XY1` should have an upper camel case name
[INFO] [stderr]   --> src/opcodes.rs:14:5
[INFO] [stderr]    |
[INFO] [stderr] 14 |     SetVxToVxORVy_0x8XY1,           // Set v[x] to v[x] | v[y]
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `SetVxToVxOrvy0x8xy1`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `SetVxToVxANDVy_0x8XY2` should have an upper camel case name
[INFO] [stderr]   --> src/opcodes.rs:15:5
[INFO] [stderr]    |
[INFO] [stderr] 15 |     SetVxToVxANDVy_0x8XY2,          // Set v[x] to v[x] & v[y]
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `SetVxToVxAndvy0x8xy2`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `SetVxToVxXORVy_0x8XY3` should have an upper camel case name
[INFO] [stderr]   --> src/opcodes.rs:16:5
[INFO] [stderr]    |
[INFO] [stderr] 16 |     SetVxToVxXORVy_0x8XY3,          // Set v[x] to v[x] ^ v[y]
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `SetVxToVxXorvy0x8xy3`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `IncrementVxByVyAndCarry_0x8XY4` should have an upper camel case name
[INFO] [stderr]   --> src/opcodes.rs:17:5
[INFO] [stderr]    |
[INFO] [stderr] 17 |     IncrementVxByVyAndCarry_0x8XY4, // Increment v[x](xx) by v[y](yy) and set v[F] = 1 if overflow
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `IncrementVxByVyAndCarry0x8xy4`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `DecrementVxByVyNoBorrow_0x8XY5` should have an upper camel case name
[INFO] [stderr]   --> src/opcodes.rs:18:5
[INFO] [stderr]    |
[INFO] [stderr] 18 |     DecrementVxByVyNoBorrow_0x8XY5, // Decrement v[x](xx) by v[y](yy) and set v[F] = 1 if v[x] > v[y]
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `DecrementVxByVyNoBorrow0x8xy5`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `ShiftAndRotateVxRight_0x8XY6` should have an upper camel case name
[INFO] [stderr]   --> src/opcodes.rs:19:5
[INFO] [stderr]    |
[INFO] [stderr] 19 |     ShiftAndRotateVxRight_0x8XY6,   // Shift and rotate v[x] right
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `ShiftAndRotateVxRight0x8xy6`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `DecrementVyByVxNoBorrow_0x8XY7` should have an upper camel case name
[INFO] [stderr]   --> src/opcodes.rs:20:5
[INFO] [stderr]    |
[INFO] [stderr] 20 |     DecrementVyByVxNoBorrow_0x8XY7, // Decrement v[y](yy) by v[x](xx) and set v[F] = 1 if v[y] > v[x]
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `DecrementVyByVxNoBorrow0x8xy7`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `ShiftAndRotateVxLeft_0x8XYE` should have an upper camel case name
[INFO] [stderr]   --> src/opcodes.rs:21:5
[INFO] [stderr]    |
[INFO] [stderr] 21 |     ShiftAndRotateVxLeft_0x8XYE,    // Shift and rotate v[x] left
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `ShiftAndRotateVxLeft0x8xye`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `SkipInstrIfVxNotVy_0x9XY0` should have an upper camel case name
[INFO] [stderr]   --> src/opcodes.rs:22:5
[INFO] [stderr]    |
[INFO] [stderr] 22 |     SkipInstrIfVxNotVy_0x9XY0,      // Skip instruction if v[x](xx) != v[y](yy)
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `SkipInstrIfVxNotVy0x9xy0`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `SetIndexRegToPL_0xANNN` should have an upper camel case name
[INFO] [stderr]   --> src/opcodes.rs:23:5
[INFO] [stderr]    |
[INFO] [stderr] 23 |     SetIndexRegToPL_0xANNN,         // Set index to 0xNNN
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `SetIndexRegToPl0xAnnn`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `JumpToV0PlusPL_0xBNNN` should have an upper camel case name
[INFO] [stderr]   --> src/opcodes.rs:24:5
[INFO] [stderr]    |
[INFO] [stderr] 24 |     JumpToV0PlusPL_0xBNNN,          // Jump to v[0] + 0xNNN: Set PC to 0xXXX
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `JumpToV0plusPl0xBnnn`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `SetVxRandByteANDPL_0xCXNN` should have an upper camel case name
[INFO] [stderr]   --> src/opcodes.rs:25:5
[INFO] [stderr]    |
[INFO] [stderr] 25 |     SetVxRandByteANDPL_0xCXNN,      // Set v[x] to randbyte(0xNNN) & 0xNN
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `SetVxRandByteAndpl0xCxnn`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `DisplaySpriteSetVfColl_0xDXYN` should have an upper camel case name
[INFO] [stderr]   --> src/opcodes.rs:26:5
[INFO] [stderr]    |
[INFO] [stderr] 26 |     DisplaySpriteSetVfColl_0xDXYN,  // Display N-byte sprite and set v[F] = 1 if collision
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `DisplaySpriteSetVfColl0xDxyn`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `SkipInstrIfVxPressed_0xEX9E` should have an upper camel case name
[INFO] [stderr]   --> src/opcodes.rs:27:5
[INFO] [stderr]    |
[INFO] [stderr] 27 |     SkipInstrIfVxPressed_0xEX9E,    // Skip instruction if v[x](keycode) pressed
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `SkipInstrIfVxPressed0xEx9e`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `SkipInstrIfVxNotPressed_0xEXA1` should have an upper camel case name
[INFO] [stderr]   --> src/opcodes.rs:28:5
[INFO] [stderr]    |
[INFO] [stderr] 28 |     SkipInstrIfVxNotPressed_0xEXA1, // Skip instruction if v[x](keycode) not pressed
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `SkipInstrIfVxNotPressed0xExa1`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `SetVxToDelayTimerVal_0xFX07` should have an upper camel case name
[INFO] [stderr]   --> src/opcodes.rs:29:5
[INFO] [stderr]    |
[INFO] [stderr] 29 |     SetVxToDelayTimerVal_0xFX07,    // Set v[x] to value of delay timer (xxx)
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `SetVxToDelayTimerVal0xFx07`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `WaitForKeyStoreInVx_0xFX0A` should have an upper camel case name
[INFO] [stderr]   --> src/opcodes.rs:30:5
[INFO] [stderr]    |
[INFO] [stderr] 30 |     WaitForKeyStoreInVx_0xFX0A,     // Wait for key and store it's value in v[x]
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `WaitForKeyStoreInVx0xFx0a`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `SetDelayTimerToVx_0xFX15` should have an upper camel case name
[INFO] [stderr]   --> src/opcodes.rs:31:5
[INFO] [stderr]    |
[INFO] [stderr] 31 |     SetDelayTimerToVx_0xFX15,       // Set delay timer to v[x](xx)
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `SetDelayTimerToVx0xFx15`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `SetSoundTimerToVx_0xFX18` should have an upper camel case name
[INFO] [stderr]   --> src/opcodes.rs:32:5
[INFO] [stderr]    |
[INFO] [stderr] 32 |     SetSoundTimerToVx_0xFX18,       // Set sound timer to v[x](xx)
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `SetSoundTimerToVx0xFx18`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `IncrementIndexRegByVx_0xFX1E` should have an upper camel case name
[INFO] [stderr]   --> src/opcodes.rs:33:5
[INFO] [stderr]    |
[INFO] [stderr] 33 |     IncrementIndexRegByVx_0xFX1E,   // Set index = index(xx) + v[x](xx)
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `IncrementIndexRegByVx0xFx1e`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `SetIndexRegToVxSprite_0xFX29` should have an upper camel case name
[INFO] [stderr]   --> src/opcodes.rs:34:5
[INFO] [stderr]    |
[INFO] [stderr] 34 |     SetIndexRegToVxSprite_0xFX29,   // Set index equal to the v[x]th sprite (v[x] * 5)
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `SetIndexRegToVxSprite0xFx29`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `StoreBCDOfVxIn3Bytes_0xFX33` should have an upper camel case name
[INFO] [stderr]   --> src/opcodes.rs:35:5
[INFO] [stderr]    |
[INFO] [stderr] 35 |     StoreBCDOfVxIn3Bytes_0xFX33,    // Store BCD of v[x](xxx) in mem[i], mem[i+1], mem[i+2]
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `StoreBcdofVxIn3bytes0xFx33`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `StoreRegsUptoVx_0xFX55` should have an upper camel case name
[INFO] [stderr]   --> src/opcodes.rs:36:5
[INFO] [stderr]    |
[INFO] [stderr] 36 |     StoreRegsUptoVx_0xFX55,         // Store v[0] through v[x] in mem[i] through mem[i + x]
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `StoreRegsUptoVx0xFx55`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `ReadRegsUptoVx_0xFX65` should have an upper camel case name
[INFO] [stderr]   --> src/opcodes.rs:37:5
[INFO] [stderr]    |
[INFO] [stderr] 37 |     ReadRegsUptoVx_0xFX65,          // Store mem[i] through mem[i+x] in v[0] through v[x]
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `ReadRegsUptoVx0xFx65`
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `debugger::Debugger`
[INFO] [stderr]   --> src/main.rs:15:5
[INFO] [stderr]    |
[INFO] [stderr] 15 | use debugger::Debugger;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::time::Duration`
[INFO] [stderr]   --> src/main.rs:18:5
[INFO] [stderr]    |
[INFO] [stderr] 18 | use std::time::Duration;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variant `SysAddressJump_0x0NNN` should have an upper camel case name
[INFO] [stderr]  --> src/opcodes.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 |     SysAddressJump_0x0NNN,          // Jump to address NNN
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `SysAddressJump0x0nnn`
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(non_camel_case_types)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variant `ClearDisplay_0x00E0` should have an upper camel case name
[INFO] [stderr]  --> src/opcodes.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 4 |     ClearDisplay_0x00E0,            // Clear the display
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `ClearDisplay0x00e0`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `RetFromSubroutine_0x00EE` should have an upper camel case name
[INFO] [stderr]  --> src/opcodes.rs:5:5
[INFO] [stderr]   |
[INFO] [stderr] 5 |     RetFromSubroutine_0x00EE,       // Return from Subroutine
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `RetFromSubroutine0x00ee`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `JumpLocation_0x1NNN` should have an upper camel case name
[INFO] [stderr]  --> src/opcodes.rs:6:5
[INFO] [stderr]   |
[INFO] [stderr] 6 |     JumpLocation_0x1NNN,            // Jump to address: Set PC to 0xNNN
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `JumpLocation0x1nnn`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `CallSubroutine_0x2NNN` should have an upper camel case name
[INFO] [stderr]  --> src/opcodes.rs:7:5
[INFO] [stderr]   |
[INFO] [stderr] 7 |     CallSubroutine_0x2NNN,          // Call Subroutine: Set PC to 0xNNN, set sp += 1, set pc = NNN
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `CallSubroutine0x2nnn`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `SkipInstrIfVxEqPL_0x3XNN` should have an upper camel case name
[INFO] [stderr]  --> src/opcodes.rs:8:5
[INFO] [stderr]   |
[INFO] [stderr] 8 |     SkipInstrIfVxEqPL_0x3XNN,       // Skip Instruction if v[x] == 0xNN
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `SkipInstrIfVxEqPl0x3xnn`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `SkipInstrIfVxNotEqPL_0x4XNN` should have an upper camel case name
[INFO] [stderr]  --> src/opcodes.rs:9:5
[INFO] [stderr]   |
[INFO] [stderr] 9 |     SkipInstrIfVxNotEqPL_0x4XNN,    // Skip Instruction if v[x] != 0xNN
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `SkipInstrIfVxNotEqPl0x4xnn`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `SkipInstrIfVxVy_0x5XY0` should have an upper camel case name
[INFO] [stderr]   --> src/opcodes.rs:10:5
[INFO] [stderr]    |
[INFO] [stderr] 10 |     SkipInstrIfVxVy_0x5XY0,         // Skip Instruction if v[x] == v[y]
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `SkipInstrIfVxVy0x5xy0`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `SetVxToPL_0x6XNN` should have an upper camel case name
[INFO] [stderr]   --> src/opcodes.rs:11:5
[INFO] [stderr]    |
[INFO] [stderr] 11 |     SetVxToPL_0x6XNN,               // Set v[x] to 0xNN
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `SetVxToPl0x6xnn`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `IncrementVxByPL_0x7XNN` should have an upper camel case name
[INFO] [stderr]   --> src/opcodes.rs:12:5
[INFO] [stderr]    |
[INFO] [stderr] 12 |     IncrementVxByPL_0x7XNN,         // Increment v[x] by 0xNN
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `IncrementVxByPl0x7xnn`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `SetVxToVy_0x8XY0` should have an upper camel case name
[INFO] [stderr]   --> src/opcodes.rs:13:5
[INFO] [stderr]    |
[INFO] [stderr] 13 |     SetVxToVy_0x8XY0,               // Set v[x] to v[y](xx)
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `SetVxToVy0x8xy0`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `SetVxToVxORVy_0x8XY1` should have an upper camel case name
[INFO] [stderr]   --> src/opcodes.rs:14:5
[INFO] [stderr]    |
[INFO] [stderr] 14 |     SetVxToVxORVy_0x8XY1,           // Set v[x] to v[x] | v[y]
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `SetVxToVxOrvy0x8xy1`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `SetVxToVxANDVy_0x8XY2` should have an upper camel case name
[INFO] [stderr]   --> src/opcodes.rs:15:5
[INFO] [stderr]    |
[INFO] [stderr] 15 |     SetVxToVxANDVy_0x8XY2,          // Set v[x] to v[x] & v[y]
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `SetVxToVxAndvy0x8xy2`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `SetVxToVxXORVy_0x8XY3` should have an upper camel case name
[INFO] [stderr]   --> src/opcodes.rs:16:5
[INFO] [stderr]    |
[INFO] [stderr] 16 |     SetVxToVxXORVy_0x8XY3,          // Set v[x] to v[x] ^ v[y]
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `SetVxToVxXorvy0x8xy3`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `IncrementVxByVyAndCarry_0x8XY4` should have an upper camel case name
[INFO] [stderr]   --> src/opcodes.rs:17:5
[INFO] [stderr]    |
[INFO] [stderr] 17 |     IncrementVxByVyAndCarry_0x8XY4, // Increment v[x](xx) by v[y](yy) and set v[F] = 1 if overflow
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `IncrementVxByVyAndCarry0x8xy4`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `DecrementVxByVyNoBorrow_0x8XY5` should have an upper camel case name
[INFO] [stderr]   --> src/opcodes.rs:18:5
[INFO] [stderr]    |
[INFO] [stderr] 18 |     DecrementVxByVyNoBorrow_0x8XY5, // Decrement v[x](xx) by v[y](yy) and set v[F] = 1 if v[x] > v[y]
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `DecrementVxByVyNoBorrow0x8xy5`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `ShiftAndRotateVxRight_0x8XY6` should have an upper camel case name
[INFO] [stderr]   --> src/opcodes.rs:19:5
[INFO] [stderr]    |
[INFO] [stderr] 19 |     ShiftAndRotateVxRight_0x8XY6,   // Shift and rotate v[x] right
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `ShiftAndRotateVxRight0x8xy6`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `DecrementVyByVxNoBorrow_0x8XY7` should have an upper camel case name
[INFO] [stderr]   --> src/opcodes.rs:20:5
[INFO] [stderr]    |
[INFO] [stderr] 20 |     DecrementVyByVxNoBorrow_0x8XY7, // Decrement v[y](yy) by v[x](xx) and set v[F] = 1 if v[y] > v[x]
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `DecrementVyByVxNoBorrow0x8xy7`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `ShiftAndRotateVxLeft_0x8XYE` should have an upper camel case name
[INFO] [stderr]   --> src/opcodes.rs:21:5
[INFO] [stderr]    |
[INFO] [stderr] 21 |     ShiftAndRotateVxLeft_0x8XYE,    // Shift and rotate v[x] left
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `ShiftAndRotateVxLeft0x8xye`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `SkipInstrIfVxNotVy_0x9XY0` should have an upper camel case name
[INFO] [stderr]   --> src/opcodes.rs:22:5
[INFO] [stderr]    |
[INFO] [stderr] 22 |     SkipInstrIfVxNotVy_0x9XY0,      // Skip instruction if v[x](xx) != v[y](yy)
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `SkipInstrIfVxNotVy0x9xy0`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `SetIndexRegToPL_0xANNN` should have an upper camel case name
[INFO] [stderr]   --> src/opcodes.rs:23:5
[INFO] [stderr]    |
[INFO] [stderr] 23 |     SetIndexRegToPL_0xANNN,         // Set index to 0xNNN
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `SetIndexRegToPl0xAnnn`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `JumpToV0PlusPL_0xBNNN` should have an upper camel case name
[INFO] [stderr]   --> src/opcodes.rs:24:5
[INFO] [stderr]    |
[INFO] [stderr] 24 |     JumpToV0PlusPL_0xBNNN,          // Jump to v[0] + 0xNNN: Set PC to 0xXXX
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `JumpToV0plusPl0xBnnn`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `SetVxRandByteANDPL_0xCXNN` should have an upper camel case name
[INFO] [stderr]   --> src/opcodes.rs:25:5
[INFO] [stderr]    |
[INFO] [stderr] 25 |     SetVxRandByteANDPL_0xCXNN,      // Set v[x] to randbyte(0xNNN) & 0xNN
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `SetVxRandByteAndpl0xCxnn`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `DisplaySpriteSetVfColl_0xDXYN` should have an upper camel case name
[INFO] [stderr]   --> src/opcodes.rs:26:5
[INFO] [stderr]    |
[INFO] [stderr] 26 |     DisplaySpriteSetVfColl_0xDXYN,  // Display N-byte sprite and set v[F] = 1 if collision
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `DisplaySpriteSetVfColl0xDxyn`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `SkipInstrIfVxPressed_0xEX9E` should have an upper camel case name
[INFO] [stderr]   --> src/opcodes.rs:27:5
[INFO] [stderr]    |
[INFO] [stderr] 27 |     SkipInstrIfVxPressed_0xEX9E,    // Skip instruction if v[x](keycode) pressed
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `SkipInstrIfVxPressed0xEx9e`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `SkipInstrIfVxNotPressed_0xEXA1` should have an upper camel case name
[INFO] [stderr]   --> src/opcodes.rs:28:5
[INFO] [stderr]    |
[INFO] [stderr] 28 |     SkipInstrIfVxNotPressed_0xEXA1, // Skip instruction if v[x](keycode) not pressed
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `SkipInstrIfVxNotPressed0xExa1`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `SetVxToDelayTimerVal_0xFX07` should have an upper camel case name
[INFO] [stderr]   --> src/opcodes.rs:29:5
[INFO] [stderr]    |
[INFO] [stderr] 29 |     SetVxToDelayTimerVal_0xFX07,    // Set v[x] to value of delay timer (xxx)
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `SetVxToDelayTimerVal0xFx07`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `WaitForKeyStoreInVx_0xFX0A` should have an upper camel case name
[INFO] [stderr]   --> src/opcodes.rs:30:5
[INFO] [stderr]    |
[INFO] [stderr] 30 |     WaitForKeyStoreInVx_0xFX0A,     // Wait for key and store it's value in v[x]
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `WaitForKeyStoreInVx0xFx0a`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `SetDelayTimerToVx_0xFX15` should have an upper camel case name
[INFO] [stderr]   --> src/opcodes.rs:31:5
[INFO] [stderr]    |
[INFO] [stderr] 31 |     SetDelayTimerToVx_0xFX15,       // Set delay timer to v[x](xx)
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `SetDelayTimerToVx0xFx15`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `SetSoundTimerToVx_0xFX18` should have an upper camel case name
[INFO] [stderr]   --> src/opcodes.rs:32:5
[INFO] [stderr]    |
[INFO] [stderr] 32 |     SetSoundTimerToVx_0xFX18,       // Set sound timer to v[x](xx)
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `SetSoundTimerToVx0xFx18`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `IncrementIndexRegByVx_0xFX1E` should have an upper camel case name
[INFO] [stderr]   --> src/opcodes.rs:33:5
[INFO] [stderr]    |
[INFO] [stderr] 33 |     IncrementIndexRegByVx_0xFX1E,   // Set index = index(xx) + v[x](xx)
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `IncrementIndexRegByVx0xFx1e`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `SetIndexRegToVxSprite_0xFX29` should have an upper camel case name
[INFO] [stderr]   --> src/opcodes.rs:34:5
[INFO] [stderr]    |
[INFO] [stderr] 34 |     SetIndexRegToVxSprite_0xFX29,   // Set index equal to the v[x]th sprite (v[x] * 5)
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `SetIndexRegToVxSprite0xFx29`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `StoreBCDOfVxIn3Bytes_0xFX33` should have an upper camel case name
[INFO] [stderr]   --> src/opcodes.rs:35:5
[INFO] [stderr]    |
[INFO] [stderr] 35 |     StoreBCDOfVxIn3Bytes_0xFX33,    // Store BCD of v[x](xxx) in mem[i], mem[i+1], mem[i+2]
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `StoreBcdofVxIn3bytes0xFx33`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `StoreRegsUptoVx_0xFX55` should have an upper camel case name
[INFO] [stderr]   --> src/opcodes.rs:36:5
[INFO] [stderr]    |
[INFO] [stderr] 36 |     StoreRegsUptoVx_0xFX55,         // Store v[0] through v[x] in mem[i] through mem[i + x]
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `StoreRegsUptoVx0xFx55`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `ReadRegsUptoVx_0xFX65` should have an upper camel case name
[INFO] [stderr]   --> src/opcodes.rs:37:5
[INFO] [stderr]    |
[INFO] [stderr] 37 |     ReadRegsUptoVx_0xFX65,          // Store mem[i] through mem[i+x] in v[0] through v[x]
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `ReadRegsUptoVx0xFx65`
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `debugger::Debugger`
[INFO] [stderr]   --> src/main.rs:15:5
[INFO] [stderr]    |
[INFO] [stderr] 15 | use debugger::Debugger;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::time::Duration`
[INFO] [stderr]   --> src/main.rs:18:5
[INFO] [stderr]    |
[INFO] [stderr] 18 | use std::time::Duration;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `s`
[INFO] [stderr]   --> src/device.rs:68:73
[INFO] [stderr]    |
[INFO] [stderr] 68 |         let beep = audio_subsystem.open_playback(None, &desired_spec, | s | {
[INFO] [stderr]    |                                                                         ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `cpu`
[INFO] [stderr]    --> src/debugger/mod.rs:164:55
[INFO] [stderr]     |
[INFO] [stderr] 164 |     pub fn disassemble_opcode(&self, opcode: &Opcode, cpu: &CPU) -> String {
[INFO] [stderr]     |                                                       ^^^ help: if this is intentional, prefix it with an underscore: `_cpu`
[INFO] [stderr] 
[INFO] [stderr] error[E0609]: no field `sp` on type `cpu::CPU<'_>`
[INFO] [stderr]    --> src/cpu.rs:464:20
[INFO] [stderr]     |
[INFO] [stderr] 464 |     assert_eq!(cpu.sp, 1);
[INFO] [stderr]     |                    ^^ unknown field
[INFO] [stderr]     |
[INFO] [stderr]     = note: available fields are: `hz`, `program_delay`, `mem`, `regs`, `index` ... and 6 others
[INFO] [stderr] 
[INFO] [stderr] error[E0609]: no field `sp` on type `cpu::CPU<'_>`
[INFO] [stderr]    --> src/cpu.rs:465:30
[INFO] [stderr]     |
[INFO] [stderr] 465 |     assert_eq!(cpu.stack[cpu.sp as usize], 0x202);
[INFO] [stderr]     |                              ^^ unknown field
[INFO] [stderr]     |
[INFO] [stderr]     = note: available fields are: `hz`, `program_delay`, `mem`, `regs`, `index` ... and 6 others
[INFO] [stderr] 
[INFO] [stderr] error[E0609]: no field `sp` on type `cpu::CPU<'_>`
[INFO] [stderr]    --> src/cpu.rs:479:20
[INFO] [stderr]     |
[INFO] [stderr] 479 |     assert_eq!(cpu.sp, 0);
[INFO] [stderr]     |                    ^^ unknown field
[INFO] [stderr]     |
[INFO] [stderr]     = note: available fields are: `hz`, `program_delay`, `mem`, `regs`, `index` ... and 6 others
[INFO] [stderr] 
[INFO] [stderr] error[E0061]: this function takes 1 argument but 0 arguments were supplied
[INFO] [stderr]    --> src/display.rs:120:20
[INFO] [stderr]     |
[INFO] [stderr] 23  |     pub fn new(context: sdl2::Sdl) -> Display<'d> {
[INFO] [stderr]     |     --------------------------------------------- defined here
[INFO] [stderr] ...
[INFO] [stderr] 120 |     let mut disp = Display::new();
[INFO] [stderr]     |                    ^^^^^^^^^^^^-- supplied 0 arguments
[INFO] [stderr]     |                    |
[INFO] [stderr]     |                    expected 1 argument
[INFO] [stderr] 
[INFO] [stderr] error[E0061]: this function takes 1 argument but 0 arguments were supplied
[INFO] [stderr]    --> src/display.rs:132:20
[INFO] [stderr]     |
[INFO] [stderr] 23  |     pub fn new(context: sdl2::Sdl) -> Display<'d> {
[INFO] [stderr]     |     --------------------------------------------- defined here
[INFO] [stderr] ...
[INFO] [stderr] 132 |     let mut disp = Display::new();
[INFO] [stderr]     |                    ^^^^^^^^^^^^-- supplied 0 arguments
[INFO] [stderr]     |                    |
[INFO] [stderr]     |                    expected 1 argument
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no method named `write_byte` found for struct `display::Display<'_>` in the current scope
[INFO] [stderr]    --> src/display.rs:133:20
[INFO] [stderr]     |
[INFO] [stderr] 16  | pub struct Display<'d> {
[INFO] [stderr]     | ---------------------- method `write_byte` not found for this
[INFO] [stderr] ...
[INFO] [stderr] 133 |     let res = disp.write_byte(byte, x, y);
[INFO] [stderr]     |                    ^^^^^^^^^^ help: there is an associated function with a similar name: `write_bytes`
[INFO] [stderr] 
[INFO] [stderr] error[E0308]: mismatched types
[INFO] [stderr]    --> src/display.rs:135:36
[INFO] [stderr]     |
[INFO] [stderr] 135 |     let arr: [u8; 8] = get_sub_arr(&disp.pixels, x, y);
[INFO] [stderr]     |                                    ^^^^^^^^^^^^ expected `u8`, found `bool`
[INFO] [stderr]     |
[INFO] [stderr]     = note: expected reference `&[u8; 2048]`
[INFO] [stderr]                found reference `&[bool; 2048]`
[INFO] [stderr] 
[INFO] [stderr] warning: method is never used: `reset`
[INFO] [stderr]   --> src/cpu.rs:69:5
[INFO] [stderr]    |
[INFO] [stderr] 69 |     pub fn reset(&mut self) {
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: method is never used: `initialize`
[INFO] [stderr]   --> src/cpu.rs:79:5
[INFO] [stderr]    |
[INFO] [stderr] 79 |     pub fn initialize(&mut self) {
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method is never used: `set_speed_hz`
[INFO] [stderr]   --> src/cpu.rs:92:5
[INFO] [stderr]    |
[INFO] [stderr] 92 |     pub fn set_speed_hz(&mut self, hertz: u32) {
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function is never used: `get_sub_arr`
[INFO] [stderr]    --> src/cpu.rs:441:8
[INFO] [stderr]     |
[INFO] [stderr] 441 | pub fn get_sub_arr(arr: &[u8; 4096], start: usize) -> [u8; 8] {
[INFO] [stderr]     |        ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method is never used: `byte_to_digits`
[INFO] [stderr]   --> src/display.rs:56:5
[INFO] [stderr]    |
[INFO] [stderr] 56 |     fn byte_to_digits(&self, byte: u8) -> [u8; 8] {
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function is never used: `get_sub_arr`
[INFO] [stderr]    --> src/display.rs:109:8
[INFO] [stderr]     |
[INFO] [stderr] 109 | pub fn get_sub_arr(arr: &[u8; 2048], x: usize, y: usize) -> [u8; 8] {
[INFO] [stderr]     |        ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method is never used: `current_index`
[INFO] [stderr]   --> src/utils.rs:57:5
[INFO] [stderr]    |
[INFO] [stderr] 57 |     pub fn current_index(&self) -> Option<usize> {
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method is never used: `peek`
[INFO] [stderr]   --> src/utils.rs:84:5
[INFO] [stderr]    |
[INFO] [stderr] 84 |     pub fn peek(&self, index: usize) -> u16 {
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method is never used: `clear`
[INFO] [stderr]   --> src/utils.rs:87:5
[INFO] [stderr]    |
[INFO] [stderr] 87 |     pub fn clear(&mut self) {
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `OPTION_MENU`
[INFO] [stderr]  --> src/debugger/view.rs:8:1
[INFO] [stderr]   |
[INFO] [stderr] 8 | const OPTION_MENU: &'static str = "| Instructions <Left | Right> | State <P> (Pause/Play) | Quit <ESC> | Speed <UP | DWN> |";
[INFO] [stderr]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] error[E0061]: this function takes 1 argument but 0 arguments were supplied
[INFO] [stderr]    --> src/display.rs:142:20
[INFO] [stderr]     |
[INFO] [stderr] 23  |     pub fn new(context: sdl2::Sdl) -> Display<'d> {
[INFO] [stderr]     |     --------------------------------------------- defined here
[INFO] [stderr] ...
[INFO] [stderr] 142 |     let mut disp = Display::new();
[INFO] [stderr]     |                    ^^^^^^^^^^^^-- supplied 0 arguments
[INFO] [stderr]     |                    |
[INFO] [stderr]     |                    expected 1 argument
[INFO] [stderr] 
[INFO] [stderr] warning: struct is never constructed: `View`
[INFO] [stderr]   --> src/debugger/view.rs:10:12
[INFO] [stderr]    |
[INFO] [stderr] 10 | pub struct View<'view> {
[INFO] [stderr]    |            ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method is never used: `new`
[INFO] [stderr]   --> src/debugger/view.rs:20:5
[INFO] [stderr]    |
[INFO] [stderr] 20 |     pub fn new() -> View<'view> {
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method is never used: `initialize`
[INFO] [stderr]   --> src/debugger/view.rs:33:5
[INFO] [stderr]    |
[INFO] [stderr] 33 |     pub fn initialize(&mut self) {
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method is never used: `render`
[INFO] [stderr]   --> src/debugger/view.rs:38:5
[INFO] [stderr]    |
[INFO] [stderr] 38 | /     pub fn render<I>(&mut self, lines: I, info:Vec<String>)
[INFO] [stderr] 39 | |         where I: IntoIterator,
[INFO] [stderr] 40 | |               I::Item: fmt::Display,
[INFO] [stderr] 41 | |     {
[INFO] [stderr] ...  |
[INFO] [stderr] 50 | |         }
[INFO] [stderr] 51 | |     }
[INFO] [stderr]    | |_____^
[INFO] [stderr] 
[INFO] [stderr] warning: method is never used: `clear`
[INFO] [stderr]   --> src/debugger/view.rs:52:5
[INFO] [stderr]    |
[INFO] [stderr] 52 |     pub fn clear(&mut self) {
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method is never used: `paint_lines`
[INFO] [stderr]   --> src/debugger/view.rs:55:5
[INFO] [stderr]    |
[INFO] [stderr] 55 | /     fn paint_lines<I>(&mut self, lines: I)
[INFO] [stderr] 56 | |         where I: IntoIterator,
[INFO] [stderr] 57 | |               I::Item: fmt::Display,
[INFO] [stderr] 58 | |     {
[INFO] [stderr] ...  |
[INFO] [stderr] 73 | |         }
[INFO] [stderr] 74 | |     }
[INFO] [stderr]    | |_____^
[INFO] [stderr] 
[INFO] [stderr] warning: method is never used: `paint_menu`
[INFO] [stderr]   --> src/debugger/view.rs:75:5
[INFO] [stderr]    |
[INFO] [stderr] 75 |     fn paint_menu(&mut self) {
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method is never used: `paint_info`
[INFO] [stderr]   --> src/debugger/view.rs:82:5
[INFO] [stderr]    |
[INFO] [stderr] 82 |     fn paint_info(&mut self, info: Vec<String>) {
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method is never used: `update`
[INFO] [stderr]   --> src/debugger/view.rs:89:5
[INFO] [stderr]    |
[INFO] [stderr] 89 |     fn update(&mut self) {
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function is never used: `blank_string`
[INFO] [stderr]   --> src/debugger/view.rs:97:4
[INFO] [stderr]    |
[INFO] [stderr] 97 | fn blank_string(size: usize) -> String {
[INFO] [stderr]    |    ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variant is never constructed: `PlayToggle`
[INFO] [stderr]   --> src/debugger/mod.rs:16:5
[INFO] [stderr]    |
[INFO] [stderr] 16 |     PlayToggle,
[INFO] [stderr]    |     ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variant is never constructed: `Step`
[INFO] [stderr]   --> src/debugger/mod.rs:17:5
[INFO] [stderr]    |
[INFO] [stderr] 17 |     Step,
[INFO] [stderr]    |     ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variant is never constructed: `Back`
[INFO] [stderr]   --> src/debugger/mod.rs:18:5
[INFO] [stderr]    |
[INFO] [stderr] 18 |     Back,
[INFO] [stderr]    |     ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variant is never constructed: `Next`
[INFO] [stderr]   --> src/debugger/mod.rs:19:5
[INFO] [stderr]    |
[INFO] [stderr] 19 |     Next,
[INFO] [stderr]    |     ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variant is never constructed: `Quit`
[INFO] [stderr]   --> src/debugger/mod.rs:20:5
[INFO] [stderr]    |
[INFO] [stderr] 20 |     Quit,
[INFO] [stderr]    |     ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variant is never constructed: `Reset`
[INFO] [stderr]   --> src/debugger/mod.rs:21:5
[INFO] [stderr]    |
[INFO] [stderr] 21 |     Reset,
[INFO] [stderr]    |     ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variant is never constructed: `ChangeSpeed`
[INFO] [stderr]   --> src/debugger/mod.rs:22:5
[INFO] [stderr]    |
[INFO] [stderr] 22 |     ChangeSpeed(i32)
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variant is never constructed: `Quitting`
[INFO] [stderr]   --> src/debugger/mod.rs:27:5
[INFO] [stderr]    |
[INFO] [stderr] 27 |     Quitting,
[INFO] [stderr]    |     ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variant is never constructed: `Paused`
[INFO] [stderr]   --> src/debugger/mod.rs:28:5
[INFO] [stderr]    |
[INFO] [stderr] 28 |     Paused,
[INFO] [stderr]    |     ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variant is never constructed: `Running`
[INFO] [stderr]   --> src/debugger/mod.rs:29:5
[INFO] [stderr]    |
[INFO] [stderr] 29 |     Running,
[INFO] [stderr]    |     ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct is never constructed: `Debugger`
[INFO] [stderr]   --> src/debugger/mod.rs:32:12
[INFO] [stderr]    |
[INFO] [stderr] 32 | pub struct Debugger<'a> {
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method is never used: `new`
[INFO] [stderr]   --> src/debugger/mod.rs:42:5
[INFO] [stderr]    |
[INFO] [stderr] 42 |     pub fn new() -> Debugger<'a> {
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method is never used: `dump_instr`
[INFO] [stderr]   --> src/debugger/mod.rs:52:5
[INFO] [stderr]    |
[INFO] [stderr] 52 |     fn dump_instr(&self) -> String {
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method is never used: `reset`
[INFO] [stderr]   --> src/debugger/mod.rs:58:5
[INFO] [stderr]    |
[INFO] [stderr] 58 |     fn reset(&mut self) {
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method is never used: `load_rom`
[INFO] [stderr]   --> src/debugger/mod.rs:65:5
[INFO] [stderr]    |
[INFO] [stderr] 65 |     pub fn load_rom(&mut self, rom: &str) {
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method is never used: `step`
[INFO] [stderr]   --> src/debugger/mod.rs:68:5
[INFO] [stderr]    |
[INFO] [stderr] 68 |     fn step(&mut self, distance: i32) {
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method is never used: `cycle`
[INFO] [stderr]   --> src/debugger/mod.rs:74:5
[INFO] [stderr]    |
[INFO] [stderr] 74 |     fn cycle(&mut self) {
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method is never used: `render`
[INFO] [stderr]   --> src/debugger/mod.rs:78:5
[INFO] [stderr]    |
[INFO] [stderr] 78 |     fn render(&mut self) {
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method is never used: `toggle_play`
[INFO] [stderr]    --> src/debugger/mod.rs:109:5
[INFO] [stderr]     |
[INFO] [stderr] 109 |     fn toggle_play(&mut self) {
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method is never used: `quit`
[INFO] [stderr]    --> src/debugger/mod.rs:115:5
[INFO] [stderr]     |
[INFO] [stderr] 115 |     fn quit(&mut self) {
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method is never used: `change_speed`
[INFO] [stderr]    --> src/debugger/mod.rs:118:5
[INFO] [stderr]     |
[INFO] [stderr] 118 |     fn change_speed(&mut self, hertz: i32) {
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method is never used: `handle_command`
[INFO] [stderr]    --> src/debugger/mod.rs:122:5
[INFO] [stderr]     |
[INFO] [stderr] 122 |     fn handle_command(&mut self) {
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no method named `write_byte` found for struct `display::Display<'_>` in the current scope
[INFO] [stderr]    --> src/display.rs:143:20
[INFO] [stderr]     |
[INFO] [stderr] 16  | pub struct Display<'d> {
[INFO] [stderr]     | ---------------------- method `write_byte` not found for this
[INFO] [stderr] ...
[INFO] [stderr] 143 |     let res = disp.write_byte(0b10101010, 60, 1);
[INFO] [stderr]     |                    ^^^^^^^^^^ help: there is an associated function with a similar name: `write_bytes`
[INFO] [stderr] 
[INFO] [stderr] warning: method is never used: `run`
[INFO] [stderr]    --> src/debugger/mod.rs:134:5
[INFO] [stderr]     |
[INFO] [stderr] 134 |     pub fn run(&mut self) {
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method is never used: `disassemble_opcode`
[INFO] [stderr]    --> src/debugger/mod.rs:164:5
[INFO] [stderr]     |
[INFO] [stderr] 164 |     pub fn disassemble_opcode(&self, opcode: &Opcode, cpu: &CPU) -> String {
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: this method call currently resolves to `<&[T] as IntoIterator>::into_iter` (due to autoref coercions), but that might change in the future when `IntoIterator` impls for arrays are added.
[INFO] [stderr]    --> src/cpu.rs:120:35
[INFO] [stderr]     |
[INFO] [stderr] 120 |         for (i, byte) in FONT_SET.into_iter().enumerate() {
[INFO] [stderr]     |                                   ^^^^^^^^^ help: use `.iter()` instead of `.into_iter()` to avoid ambiguity: `iter`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(array_into_iter)]` on by default
[INFO] [stderr]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]     = note: for more information, see issue #66145 <https://github.com/rust-lang/rust/issues/66145>
[INFO] [stderr] 
[INFO] [stderr] warning: this method call currently resolves to `<&[T] as IntoIterator>::into_iter` (due to autoref coercions), but that might change in the future when `IntoIterator` impls for arrays are added.
[INFO] [stderr]   --> src/display.rs:69:37
[INFO] [stderr]    |
[INFO] [stderr] 69 |         for (idx, p) in self.pixels.into_iter().enumerate() {
[INFO] [stderr]    |                                     ^^^^^^^^^ help: use `.iter()` instead of `.into_iter()` to avoid ambiguity: `iter`
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]    = note: for more information, see issue #66145 <https://github.com/rust-lang/rust/issues/66145>
[INFO] [stderr] 
[INFO] [stderr] warning: this method call currently resolves to `<&[T; N] as IntoIterator>::into_iter` (due to autoref coercions), but that might change in the future when `IntoIterator` impls for arrays are added.
[INFO] [stderr]    --> src/keyboard.rs:155:32
[INFO] [stderr]     |
[INFO] [stderr] 155 |         for key in self.keys().into_iter() {
[INFO] [stderr]     |                                ^^^^^^^^^ help: use `.iter()` instead of `.into_iter()` to avoid ambiguity: `iter`
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]     = note: for more information, see issue #66145 <https://github.com/rust-lang/rust/issues/66145>
[INFO] [stderr] 
[INFO] [stderr] warning: this method call currently resolves to `<&[T; N] as IntoIterator>::into_iter` (due to autoref coercions), but that might change in the future when `IntoIterator` impls for arrays are added.
[INFO] [stderr]    --> src/keyboard.rs:164:32
[INFO] [stderr]     |
[INFO] [stderr] 164 |         for key in self.keys().into_iter() {
[INFO] [stderr]     |                                ^^^^^^^^^ help: use `.iter()` instead of `.into_iter()` to avoid ambiguity: `iter`
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]     = note: for more information, see issue #66145 <https://github.com/rust-lang/rust/issues/66145>
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]    --> src/cpu.rs:113:9
[INFO] [stderr]     |
[INFO] [stderr] 113 |         file.read_to_end(&mut rom);
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_must_use)]` on by default
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]   --> src/display.rs:74:17
[INFO] [stderr]    |
[INFO] [stderr] 74 |                 self.renderer.fill_rect(pixel.to_sdl());
[INFO] [stderr]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]   --> src/debugger/view.rs:34:9
[INFO] [stderr]    |
[INFO] [stderr] 34 |         self.stdout.flush();
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]   --> src/debugger/view.rs:47:13
[INFO] [stderr]    |
[INFO] [stderr] 47 |             self.stdout.flush();
[INFO] [stderr]    |             ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]   --> src/debugger/view.rs:53:9
[INFO] [stderr]    |
[INFO] [stderr] 53 |         write!(self.stdout, "{}", clear::All);
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr]    = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]   --> src/debugger/view.rs:86:13
[INFO] [stderr]    |
[INFO] [stderr] 86 |             write!(self.stdout, "{}{}", cursor::Goto(x, (y + i) as u16), s);
[INFO] [stderr]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr]    = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] error[E0308]: mismatched types
[INFO] [stderr]    --> src/display.rs:148:19
[INFO] [stderr]     |
[INFO] [stderr] 148 |         list[i] = disp.pixels[i + start];
[INFO] [stderr]     |                   ^^^^^^^^^^^^^^^^^^^^^^ expected `u8`, found `bool`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no variant or associated item named `SysAddressJump_0x0000` found for enum `opcodes::Instruction` in the current scope
[INFO] [stderr]    --> src/opcodes.rs:140:31
[INFO] [stderr]     |
[INFO] [stderr] 2   | pub enum Instruction {
[INFO] [stderr]     | -------------------- variant or associated item `SysAddressJump_0x0000` not found here
[INFO] [stderr] ...
[INFO] [stderr] 140 |         (0x0000, Instruction::SysAddressJump_0x0000),
[INFO] [stderr]     |                               ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |                               |
[INFO] [stderr]     |                               variant or associated item not found in `opcodes::Instruction`
[INFO] [stderr]     |                               help: there is a variant with a similar name: `SysAddressJump_0x0NNN`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no variant or associated item named `JumpLocation_0x1000` found for enum `opcodes::Instruction` in the current scope
[INFO] [stderr]    --> src/opcodes.rs:141:31
[INFO] [stderr]     |
[INFO] [stderr] 2   | pub enum Instruction {
[INFO] [stderr]     | -------------------- variant or associated item `JumpLocation_0x1000` not found here
[INFO] [stderr] ...
[INFO] [stderr] 141 |         (0x1000, Instruction::JumpLocation_0x1000),
[INFO] [stderr]     |                               ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |                               |
[INFO] [stderr]     |                               variant or associated item not found in `opcodes::Instruction`
[INFO] [stderr]     |                               help: there is a variant with a similar name: `JumpLocation_0x1NNN`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no variant or associated item named `CallSubroutine_0x2000` found for enum `opcodes::Instruction` in the current scope
[INFO] [stderr]    --> src/opcodes.rs:142:31
[INFO] [stderr]     |
[INFO] [stderr] 2   | pub enum Instruction {
[INFO] [stderr]     | -------------------- variant or associated item `CallSubroutine_0x2000` not found here
[INFO] [stderr] ...
[INFO] [stderr] 142 |         (0x2000, Instruction::CallSubroutine_0x2000),
[INFO] [stderr]     |                               ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |                               |
[INFO] [stderr]     |                               variant or associated item not found in `opcodes::Instruction`
[INFO] [stderr]     |                               help: there is a variant with a similar name: `CallSubroutine_0x2NNN`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no variant or associated item named `SkipInstrIfVxEqPL_0x3000` found for enum `opcodes::Instruction` in the current scope
[INFO] [stderr]    --> src/opcodes.rs:143:31
[INFO] [stderr]     |
[INFO] [stderr] 2   | pub enum Instruction {
[INFO] [stderr]     | -------------------- variant or associated item `SkipInstrIfVxEqPL_0x3000` not found here
[INFO] [stderr] ...
[INFO] [stderr] 143 |         (0x3000, Instruction::SkipInstrIfVxEqPL_0x3000),
[INFO] [stderr]     |                               ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |                               |
[INFO] [stderr]     |                               variant or associated item not found in `opcodes::Instruction`
[INFO] [stderr]     |                               help: there is a variant with a similar name: `SkipInstrIfVxEqPL_0x3XNN`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no variant or associated item named `SkipInstrIfVxNotEqPL_0x4000` found for enum `opcodes::Instruction` in the current scope
[INFO] [stderr]    --> src/opcodes.rs:144:31
[INFO] [stderr]     |
[INFO] [stderr] 2   | pub enum Instruction {
[INFO] [stderr]     | -------------------- variant or associated item `SkipInstrIfVxNotEqPL_0x4000` not found here
[INFO] [stderr] ...
[INFO] [stderr] 144 |         (0x4000, Instruction::SkipInstrIfVxNotEqPL_0x4000),
[INFO] [stderr]     |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |                               |
[INFO] [stderr]     |                               variant or associated item not found in `opcodes::Instruction`
[INFO] [stderr]     |                               help: there is a variant with a similar name: `SkipInstrIfVxNotEqPL_0x4XNN`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no variant or associated item named `SkipInstrIfVxVy_0x5000` found for enum `opcodes::Instruction` in the current scope
[INFO] [stderr]    --> src/opcodes.rs:145:31
[INFO] [stderr]     |
[INFO] [stderr] 2   | pub enum Instruction {
[INFO] [stderr]     | -------------------- variant or associated item `SkipInstrIfVxVy_0x5000` not found here
[INFO] [stderr] ...
[INFO] [stderr] 145 |         (0x5000, Instruction::SkipInstrIfVxVy_0x5000),
[INFO] [stderr]     |                               ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |                               |
[INFO] [stderr]     |                               variant or associated item not found in `opcodes::Instruction`
[INFO] [stderr]     |                               help: there is a variant with a similar name: `SkipInstrIfVxVy_0x5XY0`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no variant or associated item named `SetVxToPL_0x6000` found for enum `opcodes::Instruction` in the current scope
[INFO] [stderr]    --> src/opcodes.rs:146:31
[INFO] [stderr]     |
[INFO] [stderr] 2   | pub enum Instruction {
[INFO] [stderr]     | -------------------- variant or associated item `SetVxToPL_0x6000` not found here
[INFO] [stderr] ...
[INFO] [stderr] 146 |         (0x6000, Instruction::SetVxToPL_0x6000),
[INFO] [stderr]     |                               ^^^^^^^^^^^^^^^^
[INFO] [stderr]     |                               |
[INFO] [stderr]     |                               variant or associated item not found in `opcodes::Instruction`
[INFO] [stderr]     |                               help: there is a variant with a similar name: `SetVxToPL_0x6XNN`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no variant or associated item named `IncrementVxByPL_0x7000` found for enum `opcodes::Instruction` in the current scope
[INFO] [stderr]    --> src/opcodes.rs:147:31
[INFO] [stderr]     |
[INFO] [stderr] 2   | pub enum Instruction {
[INFO] [stderr]     | -------------------- variant or associated item `IncrementVxByPL_0x7000` not found here
[INFO] [stderr] ...
[INFO] [stderr] 147 |         (0x7000, Instruction::IncrementVxByPL_0x7000),
[INFO] [stderr]     |                               ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |                               |
[INFO] [stderr]     |                               variant or associated item not found in `opcodes::Instruction`
[INFO] [stderr]     |                               help: there is a variant with a similar name: `IncrementVxByPL_0x7XNN`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no variant or associated item named `SetVxToVy_0x8000` found for enum `opcodes::Instruction` in the current scope
[INFO] [stderr]    --> src/opcodes.rs:148:31
[INFO] [stderr]     |
[INFO] [stderr] 2   | pub enum Instruction {
[INFO] [stderr]     | -------------------- variant or associated item `SetVxToVy_0x8000` not found here
[INFO] [stderr] ...
[INFO] [stderr] 148 |         (0x8FF0, Instruction::SetVxToVy_0x8000),
[INFO] [stderr]     |                               ^^^^^^^^^^^^^^^^
[INFO] [stderr]     |                               |
[INFO] [stderr]     |                               variant or associated item not found in `opcodes::Instruction`
[INFO] [stderr]     |                               help: there is a variant with a similar name: `SetVxToVy_0x8XY0`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no variant or associated item named `SetVxToVxORVy_0x8001` found for enum `opcodes::Instruction` in the current scope
[INFO] [stderr]    --> src/opcodes.rs:149:31
[INFO] [stderr]     |
[INFO] [stderr] 2   | pub enum Instruction {
[INFO] [stderr]     | -------------------- variant or associated item `SetVxToVxORVy_0x8001` not found here
[INFO] [stderr] ...
[INFO] [stderr] 149 |         (0x8FF1, Instruction::SetVxToVxORVy_0x8001),
[INFO] [stderr]     |                               ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |                               |
[INFO] [stderr]     |                               variant or associated item not found in `opcodes::Instruction`
[INFO] [stderr]     |                               help: there is a variant with a similar name: `SetVxToVxORVy_0x8XY1`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no variant or associated item named `SetVxToVxANDVy_0x8002` found for enum `opcodes::Instruction` in the current scope
[INFO] [stderr]    --> src/opcodes.rs:150:31
[INFO] [stderr]     |
[INFO] [stderr] 2   | pub enum Instruction {
[INFO] [stderr]     | -------------------- variant or associated item `SetVxToVxANDVy_0x8002` not found here
[INFO] [stderr] ...
[INFO] [stderr] 150 |         (0x8FF2, Instruction::SetVxToVxANDVy_0x8002),
[INFO] [stderr]     |                               ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |                               |
[INFO] [stderr]     |                               variant or associated item not found in `opcodes::Instruction`
[INFO] [stderr]     |                               help: there is a variant with a similar name: `SetVxToVxANDVy_0x8XY2`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no variant or associated item named `SetVxToVxXORVy_0x8003` found for enum `opcodes::Instruction` in the current scope
[INFO] [stderr]    --> src/opcodes.rs:151:31
[INFO] [stderr]     |
[INFO] [stderr] 2   | pub enum Instruction {
[INFO] [stderr]     | -------------------- variant or associated item `SetVxToVxXORVy_0x8003` not found here
[INFO] [stderr] ...
[INFO] [stderr] 151 |         (0x8FF3, Instruction::SetVxToVxXORVy_0x8003),
[INFO] [stderr]     |                               ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |                               |
[INFO] [stderr]     |                               variant or associated item not found in `opcodes::Instruction`
[INFO] [stderr]     |                               help: there is a variant with a similar name: `SetVxToVxXORVy_0x8XY3`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no variant or associated item named `IncrementVxByVyAndCarry_0x8004` found for enum `opcodes::Instruction` in the current scope
[INFO] [stderr]    --> src/opcodes.rs:152:31
[INFO] [stderr]     |
[INFO] [stderr] 2   | pub enum Instruction {
[INFO] [stderr]     | -------------------- variant or associated item `IncrementVxByVyAndCarry_0x8004` not found here
[INFO] [stderr] ...
[INFO] [stderr] 152 |         (0x8FF4, Instruction::IncrementVxByVyAndCarry_0x8004),
[INFO] [stderr]     |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |                               |
[INFO] [stderr]     |                               variant or associated item not found in `opcodes::Instruction`
[INFO] [stderr]     |                               help: there is a variant with a similar name: `IncrementVxByVyAndCarry_0x8XY4`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no variant or associated item named `DecrementVxByVyNoBorrow_0x8005` found for enum `opcodes::Instruction` in the current scope
[INFO] [stderr]    --> src/opcodes.rs:153:31
[INFO] [stderr]     |
[INFO] [stderr] 2   | pub enum Instruction {
[INFO] [stderr]     | -------------------- variant or associated item `DecrementVxByVyNoBorrow_0x8005` not found here
[INFO] [stderr] ...
[INFO] [stderr] 153 |         (0x8FF5, Instruction::DecrementVxByVyNoBorrow_0x8005),
[INFO] [stderr]     |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |                               |
[INFO] [stderr]     |                               variant or associated item not found in `opcodes::Instruction`
[INFO] [stderr]     |                               help: there is a variant with a similar name: `DecrementVxByVyNoBorrow_0x8XY5`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no variant or associated item named `ShiftAndRotateVxRight_0x8006` found for enum `opcodes::Instruction` in the current scope
[INFO] [stderr]    --> src/opcodes.rs:154:31
[INFO] [stderr]     |
[INFO] [stderr] 2   | pub enum Instruction {
[INFO] [stderr]     | -------------------- variant or associated item `ShiftAndRotateVxRight_0x8006` not found here
[INFO] [stderr] ...
[INFO] [stderr] 154 |         (0x8FF6, Instruction::ShiftAndRotateVxRight_0x8006),
[INFO] [stderr]     |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |                               |
[INFO] [stderr]     |                               variant or associated item not found in `opcodes::Instruction`
[INFO] [stderr]     |                               help: there is a variant with a similar name: `ShiftAndRotateVxRight_0x8XY6`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no variant or associated item named `DecrementVyByVxNoBorrow_0x8007` found for enum `opcodes::Instruction` in the current scope
[INFO] [stderr]    --> src/opcodes.rs:155:31
[INFO] [stderr]     |
[INFO] [stderr] 2   | pub enum Instruction {
[INFO] [stderr]     | -------------------- variant or associated item `DecrementVyByVxNoBorrow_0x8007` not found here
[INFO] [stderr] ...
[INFO] [stderr] 155 |         (0x8FF7, Instruction::DecrementVyByVxNoBorrow_0x8007),
[INFO] [stderr]     |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |                               |
[INFO] [stderr]     |                               variant or associated item not found in `opcodes::Instruction`
[INFO] [stderr]     |                               help: there is a variant with a similar name: `DecrementVyByVxNoBorrow_0x8XY7`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no variant or associated item named `ShiftAndRotateVxLeft_0x800E` found for enum `opcodes::Instruction` in the current scope
[INFO] [stderr]    --> src/opcodes.rs:156:31
[INFO] [stderr]     |
[INFO] [stderr] 2   | pub enum Instruction {
[INFO] [stderr]     | -------------------- variant or associated item `ShiftAndRotateVxLeft_0x800E` not found here
[INFO] [stderr] ...
[INFO] [stderr] 156 |         (0x8FFE, Instruction::ShiftAndRotateVxLeft_0x800E),
[INFO] [stderr]     |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |                               |
[INFO] [stderr]     |                               variant or associated item not found in `opcodes::Instruction`
[INFO] [stderr]     |                               help: there is a variant with a similar name: `ShiftAndRotateVxLeft_0x8XYE`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no variant or associated item named `SkipInstrIfVxNotVy_0x9000` found for enum `opcodes::Instruction` in the current scope
[INFO] [stderr]    --> src/opcodes.rs:157:31
[INFO] [stderr]     |
[INFO] [stderr] 2   | pub enum Instruction {
[INFO] [stderr]     | -------------------- variant or associated item `SkipInstrIfVxNotVy_0x9000` not found here
[INFO] [stderr] ...
[INFO] [stderr] 157 |         (0x9000, Instruction::SkipInstrIfVxNotVy_0x9000),
[INFO] [stderr]     |                               ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |                               |
[INFO] [stderr]     |                               variant or associated item not found in `opcodes::Instruction`
[INFO] [stderr]     |                               help: there is a variant with a similar name: `SkipInstrIfVxNotVy_0x9XY0`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no variant or associated item named `SetIndexRegToPL_0xA000` found for enum `opcodes::Instruction` in the current scope
[INFO] [stderr]    --> src/opcodes.rs:158:31
[INFO] [stderr]     |
[INFO] [stderr] 2   | pub enum Instruction {
[INFO] [stderr]     | -------------------- variant or associated item `SetIndexRegToPL_0xA000` not found here
[INFO] [stderr] ...
[INFO] [stderr] 158 |         (0xA000, Instruction::SetIndexRegToPL_0xA000),
[INFO] [stderr]     |                               ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |                               |
[INFO] [stderr]     |                               variant or associated item not found in `opcodes::Instruction`
[INFO] [stderr]     |                               help: there is a variant with a similar name: `SetIndexRegToPL_0xANNN`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no variant or associated item named `JumpToV0PlusPL_0xB000` found for enum `opcodes::Instruction` in the current scope
[INFO] [stderr]    --> src/opcodes.rs:159:31
[INFO] [stderr]     |
[INFO] [stderr] 2   | pub enum Instruction {
[INFO] [stderr]     | -------------------- variant or associated item `JumpToV0PlusPL_0xB000` not found here
[INFO] [stderr] ...
[INFO] [stderr] 159 |         (0xB000, Instruction::JumpToV0PlusPL_0xB000),
[INFO] [stderr]     |                               ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |                               |
[INFO] [stderr]     |                               variant or associated item not found in `opcodes::Instruction`
[INFO] [stderr]     |                               help: there is a variant with a similar name: `JumpToV0PlusPL_0xBNNN`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no variant or associated item named `SetVxRandByteANDPL_0xC000` found for enum `opcodes::Instruction` in the current scope
[INFO] [stderr]    --> src/opcodes.rs:160:31
[INFO] [stderr]     |
[INFO] [stderr] 2   | pub enum Instruction {
[INFO] [stderr]     | -------------------- variant or associated item `SetVxRandByteANDPL_0xC000` not found here
[INFO] [stderr] ...
[INFO] [stderr] 160 |         (0xC000, Instruction::SetVxRandByteANDPL_0xC000),
[INFO] [stderr]     |                               ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |                               |
[INFO] [stderr]     |                               variant or associated item not found in `opcodes::Instruction`
[INFO] [stderr]     |                               help: there is a variant with a similar name: `SetVxRandByteANDPL_0xCXNN`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no variant or associated item named `DisplaySpriteSetVfColl_0xD000` found for enum `opcodes::Instruction` in the current scope
[INFO] [stderr]    --> src/opcodes.rs:161:31
[INFO] [stderr]     |
[INFO] [stderr] 2   | pub enum Instruction {
[INFO] [stderr]     | -------------------- variant or associated item `DisplaySpriteSetVfColl_0xD000` not found here
[INFO] [stderr] ...
[INFO] [stderr] 161 |         (0xD000, Instruction::DisplaySpriteSetVfColl_0xD000),
[INFO] [stderr]     |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |                               |
[INFO] [stderr]     |                               variant or associated item not found in `opcodes::Instruction`
[INFO] [stderr]     |                               help: there is a variant with a similar name: `DisplaySpriteSetVfColl_0xDXYN`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no variant or associated item named `SkipInstrIfVxPressed_0xE09E` found for enum `opcodes::Instruction` in the current scope
[INFO] [stderr]    --> src/opcodes.rs:162:31
[INFO] [stderr]     |
[INFO] [stderr] 2   | pub enum Instruction {
[INFO] [stderr]     | -------------------- variant or associated item `SkipInstrIfVxPressed_0xE09E` not found here
[INFO] [stderr] ...
[INFO] [stderr] 162 |         (0xEF9E, Instruction::SkipInstrIfVxPressed_0xE09E),
[INFO] [stderr]     |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |                               |
[INFO] [stderr]     |                               variant or associated item not found in `opcodes::Instruction`
[INFO] [stderr]     |                               help: there is a variant with a similar name: `SkipInstrIfVxPressed_0xEX9E`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no variant or associated item named `SkipInstrIfVxNotPressed_0xE0A1` found for enum `opcodes::Instruction` in the current scope
[INFO] [stderr]    --> src/opcodes.rs:163:31
[INFO] [stderr]     |
[INFO] [stderr] 2   | pub enum Instruction {
[INFO] [stderr]     | -------------------- variant or associated item `SkipInstrIfVxNotPressed_0xE0A1` not found here
[INFO] [stderr] ...
[INFO] [stderr] 163 |         (0xEFA1, Instruction::SkipInstrIfVxNotPressed_0xE0A1),
[INFO] [stderr]     |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |                               |
[INFO] [stderr]     |                               variant or associated item not found in `opcodes::Instruction`
[INFO] [stderr]     |                               help: there is a variant with a similar name: `SkipInstrIfVxNotPressed_0xEXA1`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no variant or associated item named `SetVxToDelayTimerVal_0xF007` found for enum `opcodes::Instruction` in the current scope
[INFO] [stderr]    --> src/opcodes.rs:164:31
[INFO] [stderr]     |
[INFO] [stderr] 2   | pub enum Instruction {
[INFO] [stderr]     | -------------------- variant or associated item `SetVxToDelayTimerVal_0xF007` not found here
[INFO] [stderr] ...
[INFO] [stderr] 164 |         (0xFF07, Instruction::SetVxToDelayTimerVal_0xF007),
[INFO] [stderr]     |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |                               |
[INFO] [stderr]     |                               variant or associated item not found in `opcodes::Instruction`
[INFO] [stderr]     |                               help: there is a variant with a similar name: `SetVxToDelayTimerVal_0xFX07`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no variant or associated item named `WaitForKeyStoreInVx_0xF00A` found for enum `opcodes::Instruction` in the current scope
[INFO] [stderr]    --> src/opcodes.rs:165:31
[INFO] [stderr]     |
[INFO] [stderr] 2   | pub enum Instruction {
[INFO] [stderr]     | -------------------- variant or associated item `WaitForKeyStoreInVx_0xF00A` not found here
[INFO] [stderr] ...
[INFO] [stderr] 165 |         (0xFF0A, Instruction::WaitForKeyStoreInVx_0xF00A),
[INFO] [stderr]     |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |                               |
[INFO] [stderr]     |                               variant or associated item not found in `opcodes::Instruction`
[INFO] [stderr]     |                               help: there is a variant with a similar name: `WaitForKeyStoreInVx_0xFX0A`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no variant or associated item named `SetDelayTimerToVx_0xF015` found for enum `opcodes::Instruction` in the current scope
[INFO] [stderr]    --> src/opcodes.rs:166:31
[INFO] [stderr]     |
[INFO] [stderr] 2   | pub enum Instruction {
[INFO] [stderr]     | -------------------- variant or associated item `SetDelayTimerToVx_0xF015` not found here
[INFO] [stderr] ...
[INFO] [stderr] 166 |         (0xFF15, Instruction::SetDelayTimerToVx_0xF015),
[INFO] [stderr]     |                               ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |                               |
[INFO] [stderr]     |                               variant or associated item not found in `opcodes::Instruction`
[INFO] [stderr]     |                               help: there is a variant with a similar name: `SetDelayTimerToVx_0xFX15`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no variant or associated item named `SetSoundTimerToVx_0xF018` found for enum `opcodes::Instruction` in the current scope
[INFO] [stderr]    --> src/opcodes.rs:167:31
[INFO] [stderr]     |
[INFO] [stderr] 2   | pub enum Instruction {
[INFO] [stderr]     | -------------------- variant or associated item `SetSoundTimerToVx_0xF018` not found here
[INFO] [stderr] ...
[INFO] [stderr] 167 |         (0xFF18, Instruction::SetSoundTimerToVx_0xF018),
[INFO] [stderr]     |                               ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |                               |
[INFO] [stderr]     |                               variant or associated item not found in `opcodes::Instruction`
[INFO] [stderr]     |                               help: there is a variant with a similar name: `SetSoundTimerToVx_0xFX18`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no variant or associated item named `IncrementIndexRegByVx_0xF01E` found for enum `opcodes::Instruction` in the current scope
[INFO] [stderr]    --> src/opcodes.rs:168:31
[INFO] [stderr]     |
[INFO] [stderr] 2   | pub enum Instruction {
[INFO] [stderr]     | -------------------- variant or associated item `IncrementIndexRegByVx_0xF01E` not found here
[INFO] [stderr] ...
[INFO] [stderr] 168 |         (0xFF1E, Instruction::IncrementIndexRegByVx_0xF01E),
[INFO] [stderr]     |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |                               |
[INFO] [stderr]     |                               variant or associated item not found in `opcodes::Instruction`
[INFO] [stderr]     |                               help: there is a variant with a similar name: `IncrementIndexRegByVx_0xFX1E`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no variant or associated item named `SetIndexRegToVxSprite_0xF029` found for enum `opcodes::Instruction` in the current scope
[INFO] [stderr]    --> src/opcodes.rs:169:31
[INFO] [stderr]     |
[INFO] [stderr] 2   | pub enum Instruction {
[INFO] [stderr]     | -------------------- variant or associated item `SetIndexRegToVxSprite_0xF029` not found here
[INFO] [stderr] ...
[INFO] [stderr] 169 |         (0xFF29, Instruction::SetIndexRegToVxSprite_0xF029),
[INFO] [stderr]     |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |                               |
[INFO] [stderr]     |                               variant or associated item not found in `opcodes::Instruction`
[INFO] [stderr]     |                               help: there is a variant with a similar name: `SetIndexRegToVxSprite_0xFX29`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no variant or associated item named `StoreBCDOfVxIn3Bytes_0xF033` found for enum `opcodes::Instruction` in the current scope
[INFO] [stderr]    --> src/opcodes.rs:170:31
[INFO] [stderr]     |
[INFO] [stderr] 2   | pub enum Instruction {
[INFO] [stderr]     | -------------------- variant or associated item `StoreBCDOfVxIn3Bytes_0xF033` not found here
[INFO] [stderr] ...
[INFO] [stderr] 170 |         (0xFF33, Instruction::StoreBCDOfVxIn3Bytes_0xF033),
[INFO] [stderr]     |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |                               |
[INFO] [stderr]     |                               variant or associated item not found in `opcodes::Instruction`
[INFO] [stderr]     |                               help: there is a variant with a similar name: `StoreBCDOfVxIn3Bytes_0xFX33`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no variant or associated item named `StoreRegsUptoVx_0xF055` found for enum `opcodes::Instruction` in the current scope
[INFO] [stderr]    --> src/opcodes.rs:171:31
[INFO] [stderr]     |
[INFO] [stderr] 2   | pub enum Instruction {
[INFO] [stderr]     | -------------------- variant or associated item `StoreRegsUptoVx_0xF055` not found here
[INFO] [stderr] ...
[INFO] [stderr] 171 |         (0xFF55, Instruction::StoreRegsUptoVx_0xF055),
[INFO] [stderr]     |                               ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |                               |
[INFO] [stderr]     |                               variant or associated item not found in `opcodes::Instruction`
[INFO] [stderr]     |                               help: there is a variant with a similar name: `StoreRegsUptoVx_0xFX55`
[INFO] [stderr] 
[INFO] [stderr] error[E0599]: no variant or associated item named `ReadRegsUptoVx_0xF065` found for enum `opcodes::Instruction` in the current scope
[INFO] [stderr]    --> src/opcodes.rs:172:31
[INFO] [stderr]     |
[INFO] [stderr] 2   | pub enum Instruction {
[INFO] [stderr]     | -------------------- variant or associated item `ReadRegsUptoVx_0xF065` not found here
[INFO] [stderr] ...
[INFO] [stderr] 172 |         (0xFF65, Instruction::ReadRegsUptoVx_0xF065),
[INFO] [stderr]     |                               ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |                               |
[INFO] [stderr]     |                               variant or associated item not found in `opcodes::Instruction`
[INFO] [stderr]     |                               help: there is a variant with a similar name: `ReadRegsUptoVx_0xFX65`
[INFO] [stderr] 
[INFO] [stderr] error: aborting due to 43 previous errors
[INFO] [stderr] 
[INFO] [stderr] Some errors have detailed explanations: E0061, E0308, E0599, E0609.
[INFO] [stderr] For more information about an error, try `rustc --explain E0061`.
[INFO] [stderr] error: could not compile `chip8`.
[INFO] [stderr] 
[INFO] [stderr] To learn more, run the command again with --verbose.
[INFO] running `"docker" "inspect" "de9a693cc1624f9dd84153a89fd90f5338c6869012d7f35582c3566c8da433b0"`
[INFO] running `"docker" "rm" "-f" "de9a693cc1624f9dd84153a89fd90f5338c6869012d7f35582c3566c8da433b0"`
[INFO] [stdout] de9a693cc1624f9dd84153a89fd90f5338c6869012d7f35582c3566c8da433b0
