[INFO] cloning repository https://github.com/Thomas-Neill/rsnes
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Thomas-Neill/rsnes" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FThomas-Neill%2Frsnes", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FThomas-Neill%2Frsnes'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 1787e217bd5d739a5bfe83e4b7c75d3bd5119a1f
[INFO] checking Thomas-Neill/rsnes against master#7f5a42b073dc2bee2aa625052eb066ee07072048 for pr-78991
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FThomas-Neill%2Frsnes" "/workspace/builds/worker-3/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/Thomas-Neill/rsnes on toolchain 7f5a42b073dc2bee2aa625052eb066ee07072048
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+7f5a42b073dc2bee2aa625052eb066ee07072048" "read-manifest" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/Thomas-Neill/rsnes
[INFO] finished tweaking git repo https://github.com/Thomas-Neill/rsnes
[INFO] tweaked toml for git repo https://github.com/Thomas-Neill/rsnes written to /workspace/builds/worker-3/source/Cargo.toml
[INFO] crate git repo https://github.com/Thomas-Neill/rsnes already has a lockfile, it will not be regenerated
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+7f5a42b073dc2bee2aa625052eb066ee07072048" "fetch" "--locked" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3/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" "rustops/crates-build-env@sha256:6eabd152ff4036248d66efda456a36cb33d24b7291b33f25f75140726c88da35" "/opt/rustwide/cargo-home/bin/cargo" "+7f5a42b073dc2bee2aa625052eb066ee07072048" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] [stdout] 8acb6f61f168c93f89856ddd443c921282ea2773f83c5c4d55539fe3f50194f6
[INFO] running `Command { std: "docker" "start" "-a" "8acb6f61f168c93f89856ddd443c921282ea2773f83c5c4d55539fe3f50194f6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "8acb6f61f168c93f89856ddd443c921282ea2773f83c5c4d55539fe3f50194f6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "8acb6f61f168c93f89856ddd443c921282ea2773f83c5c4d55539fe3f50194f6", kill_on_drop: false }`
[INFO] [stdout] 8acb6f61f168c93f89856ddd443c921282ea2773f83c5c4d55539fe3f50194f6
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3/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=forbid" "-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" "rustops/crates-build-env@sha256:6eabd152ff4036248d66efda456a36cb33d24b7291b33f25f75140726c88da35" "/opt/rustwide/cargo-home/bin/cargo" "+7f5a42b073dc2bee2aa625052eb066ee07072048" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 9772d14afffaba31008d9e4093826cfc36d60dce4bbe322cc47d490efaf8165b
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] running `Command { std: "docker" "start" "-a" "9772d14afffaba31008d9e4093826cfc36d60dce4bbe322cc47d490efaf8165b", kill_on_drop: false }`
[INFO] [stderr]    Compiling cfg-if v0.1.2
[INFO] [stderr]     Checking num-traits v0.2.2
[INFO] [stderr]     Checking libc v0.2.40
[INFO] [stderr]    Compiling serde v1.0.66
[INFO] [stderr]     Checking bitflags v0.7.0
[INFO] [stderr]    Compiling rsnes v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Checking byteorder v1.2.3
[INFO] [stderr]     Checking c_vec v1.3.0
[INFO] [stderr]     Checking lazy_static v0.2.11
[INFO] [stderr]    Compiling proc-macro2 v0.4.6
[INFO] [stderr]    Compiling sdl2-sys v0.31.0
[INFO] [stderr]    Compiling quote v0.6.3
[INFO] [stderr]     Checking rand v0.4.2
[INFO] [stderr]     Checking num-integer v0.1.36
[INFO] [stderr]    Compiling syn v0.14.2
[INFO] [stderr]     Checking num-iter v0.1.35
[INFO] [stderr]     Checking num v0.1.42
[INFO] [stderr]     Checking rand v0.3.22
[INFO] [stderr]     Checking sdl2 v0.31.0
[INFO] [stderr]    Compiling serde_derive v1.0.66
[INFO] [stderr]     Checking bincode v1.0.1
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/cpu.rs:57:24
[INFO] [stdout]    |
[INFO] [stdout] 57 |     mapper: Rc<RefCell<Mapper>>,
[INFO] [stdout]    |                        ^^^^^^ help: use `dyn`: `dyn Mapper`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `CPU_Serial` should have an upper camel case name
[INFO] [stdout]   --> src/cpu.rs:75:8
[INFO] [stdout]    |
[INFO] [stdout] 75 | struct CPU_Serial { //no refcells
[INFO] [stdout]    |        ^^^^^^^^^^ help: convert the identifier to upper camel case: `CpuSerial`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_camel_case_types)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/cpu.rs:137:35
[INFO] [stdout]     |
[INFO] [stdout] 137 |     pub fn new(mapper: Rc<RefCell<Mapper>>, ppu: Rc<RefCell<PPU>>) -> CPU {
[INFO] [stdout]     |                                   ^^^^^^ help: use `dyn`: `dyn Mapper`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/cpu.rs:184:14
[INFO] [stdout]     |
[INFO] [stdout] 184 |             0...0x1FFF => self.ram[location as usize& 0x7FF],
[INFO] [stdout]     |              ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(ellipsis_inclusive_range_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/cpu.rs:193:19
[INFO] [stdout]     |
[INFO] [stdout] 193 |             0x2008...0x3FFF => self.contents(location & 0x2007),
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/cpu.rs:194:19
[INFO] [stdout]     |
[INFO] [stdout] 194 |             0x4000...0x4014 => 0,
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around `if` condition
[INFO] [stdout]    --> src/cpu.rs:202:24
[INFO] [stdout]     |
[INFO] [stdout] 202 |                     if {self.strobe&1 != 0} {self.inputindex = 0;}
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^^^^ help: remove these braces
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_braces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around `if` condition
[INFO] [stdout]    --> src/cpu.rs:212:24
[INFO] [stdout]     |
[INFO] [stdout] 212 |                     if {self.strobe&1 != 0} {self.inputindex2 = 0;}
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^^^^ help: remove these braces
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/cpu.rs:216:19
[INFO] [stdout]     |
[INFO] [stdout] 216 |             0x4016...0x401F => 0,
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/cpu.rs:217:19
[INFO] [stdout]     |
[INFO] [stdout] 217 |             0x4020...0xFFFF => self.mapper.borrow_mut().contents(location),
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/cpu.rs:223:14
[INFO] [stdout]     |
[INFO] [stdout] 223 |             0...0x1FFF => self.ram[location as usize & 0x7FF] = value,
[INFO] [stdout]     |              ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/cpu.rs:232:19
[INFO] [stdout]     |
[INFO] [stdout] 232 |             0x2008...0x3FFF => self.set_contents(location & 0x2007,value),
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/cpu.rs:233:19
[INFO] [stdout]     |
[INFO] [stdout] 233 |             0x4000...0x4013 => apu_write(self.elapsed+self.cycles_delay as i32,location,value),
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around `if` condition
[INFO] [stdout]    --> src/cpu.rs:245:24
[INFO] [stdout]     |
[INFO] [stdout] 245 |                     if {self.strobe & 1 != 0} {self.inputindex = 0; self.inputindex2 = 0;}
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^^^^^^ help: remove these braces
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/cpu.rs:247:19
[INFO] [stdout]     |
[INFO] [stdout] 247 |             0x4018...0x401F => (),
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/cpu.rs:248:19
[INFO] [stdout]     |
[INFO] [stdout] 248 |             0x4020...0xFFFF => self.mapper.borrow_mut().set_contents(location,value),
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/ppu.rs:26:24
[INFO] [stdout]    |
[INFO] [stdout] 26 |     mapper: Rc<RefCell<Mapper>>,
[INFO] [stdout]    |                        ^^^^^^ help: use `dyn`: `dyn Mapper`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `PPU_Serial` should have an upper camel case name
[INFO] [stdout]   --> src/ppu.rs:92:12
[INFO] [stdout]    |
[INFO] [stdout] 92 | pub struct PPU_Serial { //PPU w/o one reference.... kms
[INFO] [stdout]    |            ^^^^^^^^^^ help: convert the identifier to upper camel case: `PpuSerial`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ppu.rs:242:34
[INFO] [stdout]     |
[INFO] [stdout] 242 |     pub fn new(mapper:Rc<RefCell<Mapper>>) -> PPU {
[INFO] [stdout]     |                                  ^^^^^^ help: use `dyn`: `dyn Mapper`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/ppu.rs:373:20
[INFO] [stdout]     |
[INFO] [stdout] 373 |             0x3F00 ... 0x3FFF => {
[INFO] [stdout]     |                    ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/ppu.rs:392:20
[INFO] [stdout]     |
[INFO] [stdout] 392 |             0x3F00 ... 0x3FFF => {
[INFO] [stdout]     |                    ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `NROM_Serial` should have an upper camel case name
[INFO] [stdout]   --> src/mappers.rs:29:8
[INFO] [stdout]    |
[INFO] [stdout] 29 | struct NROM_Serial {
[INFO] [stdout]    |        ^^^^^^^^^^^ help: convert the identifier to upper camel case: `NromSerial`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/mappers.rs:52:19
[INFO] [stdout]    |
[INFO] [stdout] 52 |             0x6000...0x7FFF => self.prgram[location - 0x6000],
[INFO] [stdout]    |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/mappers.rs:53:19
[INFO] [stdout]    |
[INFO] [stdout] 53 |             0x8000...0xFFFF => {
[INFO] [stdout]    |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/mappers.rs:62:19
[INFO] [stdout]    |
[INFO] [stdout] 62 |             0x6000...0x7FFF => self.prgram[location as usize - 0x6000] = what,
[INFO] [stdout]    |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/mappers.rs:69:14
[INFO] [stdout]    |
[INFO] [stdout] 69 |             0...0x1FFF => self.ines.chrrom[location],
[INFO] [stdout]    |              ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/mappers.rs:70:19
[INFO] [stdout]    |
[INFO] [stdout] 70 |             0x2000...0x3EFF => {
[INFO] [stdout]    |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/mappers.rs:73:22
[INFO] [stdout]    |
[INFO] [stdout] 73 |                     0...0x3FF => 0,
[INFO] [stdout]    |                      ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/mappers.rs:74:26
[INFO] [stdout]    |
[INFO] [stdout] 74 |                     0x400...0x7FF => (self.ines.vertical_mirroring) as usize,
[INFO] [stdout]    |                          ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/mappers.rs:75:26
[INFO] [stdout]    |
[INFO] [stdout] 75 |                     0x800...0xBFF => (!self.ines.vertical_mirroring) as usize,
[INFO] [stdout]    |                          ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/mappers.rs:76:26
[INFO] [stdout]    |
[INFO] [stdout] 76 |                     0xC00...0xFFF => 1,
[INFO] [stdout]    |                          ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/mappers.rs:88:14
[INFO] [stdout]    |
[INFO] [stdout] 88 |             0...0x1FFF => {
[INFO] [stdout]    |              ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/mappers.rs:91:19
[INFO] [stdout]    |
[INFO] [stdout] 91 |             0x2000...0x3EFF => {
[INFO] [stdout]    |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/mappers.rs:94:22
[INFO] [stdout]    |
[INFO] [stdout] 94 |                     0...0x3FF => 0,
[INFO] [stdout]    |                      ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/mappers.rs:95:26
[INFO] [stdout]    |
[INFO] [stdout] 95 |                     0x400...0x7FF => (self.ines.vertical_mirroring) as usize,
[INFO] [stdout]    |                          ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/mappers.rs:96:26
[INFO] [stdout]    |
[INFO] [stdout] 96 |                     0x800...0xBFF => (!self.ines.vertical_mirroring) as usize,
[INFO] [stdout]    |                          ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/mappers.rs:97:26
[INFO] [stdout]    |
[INFO] [stdout] 97 |                     0xC00...0xFFF => 1,
[INFO] [stdout]    |                          ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `MMC1_Serial` should have an upper camel case name
[INFO] [stdout]    --> src/mappers.rs:128:8
[INFO] [stdout]     |
[INFO] [stdout] 128 | struct MMC1_Serial {
[INFO] [stdout]     |        ^^^^^^^^^^^ help: convert the identifier to upper camel case: `Mmc1Serial`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:179:19
[INFO] [stdout]     |
[INFO] [stdout] 179 |             0x6000...0x7FFF =>
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:181:19
[INFO] [stdout]     |
[INFO] [stdout] 181 |             0x8000...0xFFFF => {
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:184:22
[INFO] [stdout]     |
[INFO] [stdout] 184 |                     0...1 => { //choose 32 kb bank
[INFO] [stdout]     |                      ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:209:19
[INFO] [stdout]     |
[INFO] [stdout] 209 |             0x6000...0x7FFF => {
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:212:19
[INFO] [stdout]     |
[INFO] [stdout] 212 |             0x8000...0xFFFF => {
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:222:35
[INFO] [stdout]     |
[INFO] [stdout] 222 | ...                   0x8000...0x9FFF => {
[INFO] [stdout]     |                             ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:227:35
[INFO] [stdout]     |
[INFO] [stdout] 227 | ...                   0xA000...0xBFFF => {
[INFO] [stdout]     |                             ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:230:35
[INFO] [stdout]     |
[INFO] [stdout] 230 | ...                   0xC000...0xDFFF => {
[INFO] [stdout]     |                             ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:233:35
[INFO] [stdout]     |
[INFO] [stdout] 233 | ...                   0xE000...0xFFFF => {
[INFO] [stdout]     |                             ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:249:14
[INFO] [stdout]     |
[INFO] [stdout] 249 |             0...0x1FFF => {
[INFO] [stdout]     |              ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:264:19
[INFO] [stdout]     |
[INFO] [stdout] 264 |             0x2000...0x3EFF => {
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:267:22
[INFO] [stdout]     |
[INFO] [stdout] 267 |                     0...0x3FF => (self.mirroringtype == 1) as usize,
[INFO] [stdout]     |                      ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:268:26
[INFO] [stdout]     |
[INFO] [stdout] 268 |                     0x400...0x7FF => (self.mirroringtype == 2 || self.mirroringtype == 1) as usize,
[INFO] [stdout]     |                          ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:269:26
[INFO] [stdout]     |
[INFO] [stdout] 269 |                     0x800...0xBFF => (self.mirroringtype == 1 || self.mirroringtype == 3) as usize,
[INFO] [stdout]     |                          ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:270:26
[INFO] [stdout]     |
[INFO] [stdout] 270 |                     0xC00...0xFFF => (self.mirroringtype != 0) as usize,
[INFO] [stdout]     |                          ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:282:14
[INFO] [stdout]     |
[INFO] [stdout] 282 |             0...0x1FFF if self.ines.chrrom_size == 0 => {
[INFO] [stdout]     |              ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:297:19
[INFO] [stdout]     |
[INFO] [stdout] 297 |             0x2000...0x3EFF => {
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:300:22
[INFO] [stdout]     |
[INFO] [stdout] 300 |                     0...0x3FF => (self.mirroringtype == 1) as usize,
[INFO] [stdout]     |                      ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:301:26
[INFO] [stdout]     |
[INFO] [stdout] 301 |                     0x400...0x7FF => (self.mirroringtype == 2 || self.mirroringtype == 1) as usize,
[INFO] [stdout]     |                          ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:302:26
[INFO] [stdout]     |
[INFO] [stdout] 302 |                     0x800...0xBFF => (self.mirroringtype == 1 || self.mirroringtype == 3) as usize,
[INFO] [stdout]     |                          ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:303:26
[INFO] [stdout]     |
[INFO] [stdout] 303 |                     0xC00...0xFFF => (self.mirroringtype != 0) as usize,
[INFO] [stdout]     |                          ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `MMC3_Serial` should have an upper camel case name
[INFO] [stdout]    --> src/mappers.rs:339:8
[INFO] [stdout]     |
[INFO] [stdout] 339 | struct MMC3_Serial {
[INFO] [stdout]     |        ^^^^^^^^^^^ help: convert the identifier to upper camel case: `Mmc3Serial`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:415:19
[INFO] [stdout]     |
[INFO] [stdout] 415 |             0x6000...0x7FFF => self.prgram[location - 0x6000],
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:416:19
[INFO] [stdout]     |
[INFO] [stdout] 416 |             0x8000...0x9FFF => {
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:423:19
[INFO] [stdout]     |
[INFO] [stdout] 423 |             0xA000...0xBFFF => self.ines.prgrom[0x2000*self.prgbank1 + location - 0xA000],
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:424:19
[INFO] [stdout]     |
[INFO] [stdout] 424 |             0xC000...0xDFFF => {
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:431:19
[INFO] [stdout]     |
[INFO] [stdout] 431 |             0xE000...0xFFFF => self.ines.prgrom[0x2000*(prgrom_size - 1) + location - 0xE000],
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:437:19
[INFO] [stdout]     |
[INFO] [stdout] 437 |             0x6000...0x7FFF => self.prgram[location as usize - 0x6000] = what,
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:438:19
[INFO] [stdout]     |
[INFO] [stdout] 438 |             0x8000...0x9FFF => {
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:458:19
[INFO] [stdout]     |
[INFO] [stdout] 458 |             0xA000...0xBFFF => {
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:465:19
[INFO] [stdout]     |
[INFO] [stdout] 465 |             0xC000...0xDFFF => {
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:472:19
[INFO] [stdout]     |
[INFO] [stdout] 472 |             0xE000...0xEFFF => {
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:488:16
[INFO] [stdout]     |
[INFO] [stdout] 488 |             0x0...0x7FF => self.ines.chrrom[0x800*self.chrbank0 + location],
[INFO] [stdout]     |                ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:489:18
[INFO] [stdout]     |
[INFO] [stdout] 489 |             0x800...0xFFF => self.ines.chrrom[0x800*self.chrbank1 + location - 0x800],
[INFO] [stdout]     |                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:490:19
[INFO] [stdout]     |
[INFO] [stdout] 490 |             0x1000...0x13FF => self.ines.chrrom[0x400*self.chrbank2 + location - 0x1000],
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:491:19
[INFO] [stdout]     |
[INFO] [stdout] 491 |             0x1400...0x17FF => self.ines.chrrom[0x400*self.chrbank3 + location - 0x1400],
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:492:19
[INFO] [stdout]     |
[INFO] [stdout] 492 |             0x1800...0x1BFF => self.ines.chrrom[0x400*self.chrbank4 + location - 0x1800],
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:493:19
[INFO] [stdout]     |
[INFO] [stdout] 493 |             0x1C00...0x1FFF => self.ines.chrrom[0x400*self.chrbank5 + location - 0x1C00],
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:494:19
[INFO] [stdout]     |
[INFO] [stdout] 494 |             0x2000...0x3EFF => {
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:497:22
[INFO] [stdout]     |
[INFO] [stdout] 497 |                     0...0x3FF => 0,
[INFO] [stdout]     |                      ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:498:26
[INFO] [stdout]     |
[INFO] [stdout] 498 |                     0x400...0x7FF => (!self.horizontalmirroring) as usize,
[INFO] [stdout]     |                          ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:499:26
[INFO] [stdout]     |
[INFO] [stdout] 499 |                     0x800...0xBFF => self.horizontalmirroring as usize,
[INFO] [stdout]     |                          ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:500:26
[INFO] [stdout]     |
[INFO] [stdout] 500 |                     0xC00...0xFFF => 1,
[INFO] [stdout]     |                          ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:512:16
[INFO] [stdout]     |
[INFO] [stdout] 512 |             0x0...0x7FF => self.ines.chrrom[0x800*self.chrbank0 + location] = what,
[INFO] [stdout]     |                ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:513:18
[INFO] [stdout]     |
[INFO] [stdout] 513 |             0x800...0xFFF => self.ines.chrrom[0x800*self.chrbank1 + location - 0x800] = what,
[INFO] [stdout]     |                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:514:19
[INFO] [stdout]     |
[INFO] [stdout] 514 |             0x1000...0x13FF => self.ines.chrrom[0x400*self.chrbank2 + location - 0x1000] = what,
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:515:19
[INFO] [stdout]     |
[INFO] [stdout] 515 |             0x1400...0x17FF => self.ines.chrrom[0x400*self.chrbank3 + location - 0x1400] = what,
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:516:19
[INFO] [stdout]     |
[INFO] [stdout] 516 |             0x1800...0x1BFF => self.ines.chrrom[0x400*self.chrbank4 + location - 0x1800] = what,
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:517:19
[INFO] [stdout]     |
[INFO] [stdout] 517 |             0x1C00...0x1FFF => self.ines.chrrom[0x400*self.chrbank5 + location - 0x1C00] = what,
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:518:19
[INFO] [stdout]     |
[INFO] [stdout] 518 |             0x2000...0x3EFF => {
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:521:22
[INFO] [stdout]     |
[INFO] [stdout] 521 |                     0...0x3FF => 0,
[INFO] [stdout]     |                      ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:522:26
[INFO] [stdout]     |
[INFO] [stdout] 522 |                     0x400...0x7FF => (!self.horizontalmirroring) as usize,
[INFO] [stdout]     |                          ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:523:26
[INFO] [stdout]     |
[INFO] [stdout] 523 |                     0x800...0xBFF => self.horizontalmirroring as usize,
[INFO] [stdout]     |                          ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:524:26
[INFO] [stdout]     |
[INFO] [stdout] 524 |                     0xC00...0xFFF => 1,
[INFO] [stdout]     |                          ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/mappers.rs:553:48
[INFO] [stdout]     |
[INFO] [stdout] 553 | pub fn get_mapper(mut ines:INES) -> Rc<RefCell<Mapper>> {
[INFO] [stdout]     |                                                ^^^^^^ help: use `dyn`: `dyn Mapper`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `sdl2::audio::*`
[INFO] [stdout]   --> src/nes.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 31 | use sdl2::audio::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/nes.rs:38:24
[INFO] [stdout]    |
[INFO] [stdout] 38 |     mapper: Rc<RefCell<Mapper>>,
[INFO] [stdout]    |                        ^^^^^^ help: use `dyn`: `dyn Mapper`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `NES_State` should have an upper camel case name
[INFO] [stdout]   --> src/nes.rs:47:8
[INFO] [stdout]    |
[INFO] [stdout] 47 | struct NES_State {
[INFO] [stdout]    |        ^^^^^^^^^ help: convert the identifier to upper camel case: `NesState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/nes.rs:231:54
[INFO] [stdout]     |
[INFO] [stdout] 231 | fn serialize_nes(cpu:&CPU,ppu:&PPU,mapper:Rc<RefCell<Mapper>>) -> Vec<u8> {
[INFO] [stdout]     |                                                      ^^^^^^ help: use `dyn`: `dyn Mapper`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/nes.rs:241:75
[INFO] [stdout]     |
[INFO] [stdout] 241 | fn deserialize_nes(data:&[u8],cpu:&mut CPU,ppu:&mut PPU,mapper:Rc<RefCell<Mapper>>) {
[INFO] [stdout]     |                                                                           ^^^^^^ help: use `dyn`: `dyn Mapper`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/cpu.rs:57:24
[INFO] [stdout]    |
[INFO] [stdout] 57 |     mapper: Rc<RefCell<Mapper>>,
[INFO] [stdout]    |                        ^^^^^^ help: use `dyn`: `dyn Mapper`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `CPU_Serial` should have an upper camel case name
[INFO] [stdout]   --> src/cpu.rs:75:8
[INFO] [stdout]    |
[INFO] [stdout] 75 | struct CPU_Serial { //no refcells
[INFO] [stdout]    |        ^^^^^^^^^^ help: convert the identifier to upper camel case: `CpuSerial`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_camel_case_types)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/cpu.rs:137:35
[INFO] [stdout]     |
[INFO] [stdout] 137 |     pub fn new(mapper: Rc<RefCell<Mapper>>, ppu: Rc<RefCell<PPU>>) -> CPU {
[INFO] [stdout]     |                                   ^^^^^^ help: use `dyn`: `dyn Mapper`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/cpu.rs:184:14
[INFO] [stdout]     |
[INFO] [stdout] 184 |             0...0x1FFF => self.ram[location as usize& 0x7FF],
[INFO] [stdout]     |              ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(ellipsis_inclusive_range_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/cpu.rs:193:19
[INFO] [stdout]     |
[INFO] [stdout] 193 |             0x2008...0x3FFF => self.contents(location & 0x2007),
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/cpu.rs:194:19
[INFO] [stdout]     |
[INFO] [stdout] 194 |             0x4000...0x4014 => 0,
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around `if` condition
[INFO] [stdout]    --> src/cpu.rs:202:24
[INFO] [stdout]     |
[INFO] [stdout] 202 |                     if {self.strobe&1 != 0} {self.inputindex = 0;}
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^^^^ help: remove these braces
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_braces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around `if` condition
[INFO] [stdout]    --> src/cpu.rs:212:24
[INFO] [stdout]     |
[INFO] [stdout] 212 |                     if {self.strobe&1 != 0} {self.inputindex2 = 0;}
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^^^^ help: remove these braces
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/cpu.rs:216:19
[INFO] [stdout]     |
[INFO] [stdout] 216 |             0x4016...0x401F => 0,
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/cpu.rs:217:19
[INFO] [stdout]     |
[INFO] [stdout] 217 |             0x4020...0xFFFF => self.mapper.borrow_mut().contents(location),
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/cpu.rs:223:14
[INFO] [stdout]     |
[INFO] [stdout] 223 |             0...0x1FFF => self.ram[location as usize & 0x7FF] = value,
[INFO] [stdout]     |              ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/cpu.rs:232:19
[INFO] [stdout]     |
[INFO] [stdout] 232 |             0x2008...0x3FFF => self.set_contents(location & 0x2007,value),
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/cpu.rs:233:19
[INFO] [stdout]     |
[INFO] [stdout] 233 |             0x4000...0x4013 => apu_write(self.elapsed+self.cycles_delay as i32,location,value),
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around `if` condition
[INFO] [stdout]    --> src/cpu.rs:245:24
[INFO] [stdout]     |
[INFO] [stdout] 245 |                     if {self.strobe & 1 != 0} {self.inputindex = 0; self.inputindex2 = 0;}
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^^^^^^ help: remove these braces
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/cpu.rs:247:19
[INFO] [stdout]     |
[INFO] [stdout] 247 |             0x4018...0x401F => (),
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/cpu.rs:248:19
[INFO] [stdout]     |
[INFO] [stdout] 248 |             0x4020...0xFFFF => self.mapper.borrow_mut().set_contents(location,value),
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/ppu.rs:26:24
[INFO] [stdout]    |
[INFO] [stdout] 26 |     mapper: Rc<RefCell<Mapper>>,
[INFO] [stdout]    |                        ^^^^^^ help: use `dyn`: `dyn Mapper`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `PPU_Serial` should have an upper camel case name
[INFO] [stdout]   --> src/ppu.rs:92:12
[INFO] [stdout]    |
[INFO] [stdout] 92 | pub struct PPU_Serial { //PPU w/o one reference.... kms
[INFO] [stdout]    |            ^^^^^^^^^^ help: convert the identifier to upper camel case: `PpuSerial`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ppu.rs:242:34
[INFO] [stdout]     |
[INFO] [stdout] 242 |     pub fn new(mapper:Rc<RefCell<Mapper>>) -> PPU {
[INFO] [stdout]     |                                  ^^^^^^ help: use `dyn`: `dyn Mapper`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/ppu.rs:373:20
[INFO] [stdout]     |
[INFO] [stdout] 373 |             0x3F00 ... 0x3FFF => {
[INFO] [stdout]     |                    ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/ppu.rs:392:20
[INFO] [stdout]     |
[INFO] [stdout] 392 |             0x3F00 ... 0x3FFF => {
[INFO] [stdout]     |                    ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `NROM_Serial` should have an upper camel case name
[INFO] [stdout]   --> src/mappers.rs:29:8
[INFO] [stdout]    |
[INFO] [stdout] 29 | struct NROM_Serial {
[INFO] [stdout]    |        ^^^^^^^^^^^ help: convert the identifier to upper camel case: `NromSerial`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/mappers.rs:52:19
[INFO] [stdout]    |
[INFO] [stdout] 52 |             0x6000...0x7FFF => self.prgram[location - 0x6000],
[INFO] [stdout]    |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/mappers.rs:53:19
[INFO] [stdout]    |
[INFO] [stdout] 53 |             0x8000...0xFFFF => {
[INFO] [stdout]    |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/mappers.rs:62:19
[INFO] [stdout]    |
[INFO] [stdout] 62 |             0x6000...0x7FFF => self.prgram[location as usize - 0x6000] = what,
[INFO] [stdout]    |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/mappers.rs:69:14
[INFO] [stdout]    |
[INFO] [stdout] 69 |             0...0x1FFF => self.ines.chrrom[location],
[INFO] [stdout]    |              ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/mappers.rs:70:19
[INFO] [stdout]    |
[INFO] [stdout] 70 |             0x2000...0x3EFF => {
[INFO] [stdout]    |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/mappers.rs:73:22
[INFO] [stdout]    |
[INFO] [stdout] 73 |                     0...0x3FF => 0,
[INFO] [stdout]    |                      ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/mappers.rs:74:26
[INFO] [stdout]    |
[INFO] [stdout] 74 |                     0x400...0x7FF => (self.ines.vertical_mirroring) as usize,
[INFO] [stdout]    |                          ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/mappers.rs:75:26
[INFO] [stdout]    |
[INFO] [stdout] 75 |                     0x800...0xBFF => (!self.ines.vertical_mirroring) as usize,
[INFO] [stdout]    |                          ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/mappers.rs:76:26
[INFO] [stdout]    |
[INFO] [stdout] 76 |                     0xC00...0xFFF => 1,
[INFO] [stdout]    |                          ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/mappers.rs:88:14
[INFO] [stdout]    |
[INFO] [stdout] 88 |             0...0x1FFF => {
[INFO] [stdout]    |              ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/mappers.rs:91:19
[INFO] [stdout]    |
[INFO] [stdout] 91 |             0x2000...0x3EFF => {
[INFO] [stdout]    |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/mappers.rs:94:22
[INFO] [stdout]    |
[INFO] [stdout] 94 |                     0...0x3FF => 0,
[INFO] [stdout]    |                      ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/mappers.rs:95:26
[INFO] [stdout]    |
[INFO] [stdout] 95 |                     0x400...0x7FF => (self.ines.vertical_mirroring) as usize,
[INFO] [stdout]    |                          ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/mappers.rs:96:26
[INFO] [stdout]    |
[INFO] [stdout] 96 |                     0x800...0xBFF => (!self.ines.vertical_mirroring) as usize,
[INFO] [stdout]    |                          ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]   --> src/mappers.rs:97:26
[INFO] [stdout]    |
[INFO] [stdout] 97 |                     0xC00...0xFFF => 1,
[INFO] [stdout]    |                          ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `MMC1_Serial` should have an upper camel case name
[INFO] [stdout]    --> src/mappers.rs:128:8
[INFO] [stdout]     |
[INFO] [stdout] 128 | struct MMC1_Serial {
[INFO] [stdout]     |        ^^^^^^^^^^^ help: convert the identifier to upper camel case: `Mmc1Serial`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:179:19
[INFO] [stdout]     |
[INFO] [stdout] 179 |             0x6000...0x7FFF =>
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:181:19
[INFO] [stdout]     |
[INFO] [stdout] 181 |             0x8000...0xFFFF => {
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:184:22
[INFO] [stdout]     |
[INFO] [stdout] 184 |                     0...1 => { //choose 32 kb bank
[INFO] [stdout]     |                      ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:209:19
[INFO] [stdout]     |
[INFO] [stdout] 209 |             0x6000...0x7FFF => {
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:212:19
[INFO] [stdout]     |
[INFO] [stdout] 212 |             0x8000...0xFFFF => {
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:222:35
[INFO] [stdout]     |
[INFO] [stdout] 222 | ...                   0x8000...0x9FFF => {
[INFO] [stdout]     |                             ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:227:35
[INFO] [stdout]     |
[INFO] [stdout] 227 | ...                   0xA000...0xBFFF => {
[INFO] [stdout]     |                             ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:230:35
[INFO] [stdout]     |
[INFO] [stdout] 230 | ...                   0xC000...0xDFFF => {
[INFO] [stdout]     |                             ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:233:35
[INFO] [stdout]     |
[INFO] [stdout] 233 | ...                   0xE000...0xFFFF => {
[INFO] [stdout]     |                             ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:249:14
[INFO] [stdout]     |
[INFO] [stdout] 249 |             0...0x1FFF => {
[INFO] [stdout]     |              ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:264:19
[INFO] [stdout]     |
[INFO] [stdout] 264 |             0x2000...0x3EFF => {
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:267:22
[INFO] [stdout]     |
[INFO] [stdout] 267 |                     0...0x3FF => (self.mirroringtype == 1) as usize,
[INFO] [stdout]     |                      ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:268:26
[INFO] [stdout]     |
[INFO] [stdout] 268 |                     0x400...0x7FF => (self.mirroringtype == 2 || self.mirroringtype == 1) as usize,
[INFO] [stdout]     |                          ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:269:26
[INFO] [stdout]     |
[INFO] [stdout] 269 |                     0x800...0xBFF => (self.mirroringtype == 1 || self.mirroringtype == 3) as usize,
[INFO] [stdout]     |                          ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:270:26
[INFO] [stdout]     |
[INFO] [stdout] 270 |                     0xC00...0xFFF => (self.mirroringtype != 0) as usize,
[INFO] [stdout]     |                          ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:282:14
[INFO] [stdout]     |
[INFO] [stdout] 282 |             0...0x1FFF if self.ines.chrrom_size == 0 => {
[INFO] [stdout]     |              ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:297:19
[INFO] [stdout]     |
[INFO] [stdout] 297 |             0x2000...0x3EFF => {
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:300:22
[INFO] [stdout]     |
[INFO] [stdout] 300 |                     0...0x3FF => (self.mirroringtype == 1) as usize,
[INFO] [stdout]     |                      ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:301:26
[INFO] [stdout]     |
[INFO] [stdout] 301 |                     0x400...0x7FF => (self.mirroringtype == 2 || self.mirroringtype == 1) as usize,
[INFO] [stdout]     |                          ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:302:26
[INFO] [stdout]     |
[INFO] [stdout] 302 |                     0x800...0xBFF => (self.mirroringtype == 1 || self.mirroringtype == 3) as usize,
[INFO] [stdout]     |                          ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:303:26
[INFO] [stdout]     |
[INFO] [stdout] 303 |                     0xC00...0xFFF => (self.mirroringtype != 0) as usize,
[INFO] [stdout]     |                          ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `MMC3_Serial` should have an upper camel case name
[INFO] [stdout]    --> src/mappers.rs:339:8
[INFO] [stdout]     |
[INFO] [stdout] 339 | struct MMC3_Serial {
[INFO] [stdout]     |        ^^^^^^^^^^^ help: convert the identifier to upper camel case: `Mmc3Serial`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:415:19
[INFO] [stdout]     |
[INFO] [stdout] 415 |             0x6000...0x7FFF => self.prgram[location - 0x6000],
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:416:19
[INFO] [stdout]     |
[INFO] [stdout] 416 |             0x8000...0x9FFF => {
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:423:19
[INFO] [stdout]     |
[INFO] [stdout] 423 |             0xA000...0xBFFF => self.ines.prgrom[0x2000*self.prgbank1 + location - 0xA000],
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:424:19
[INFO] [stdout]     |
[INFO] [stdout] 424 |             0xC000...0xDFFF => {
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:431:19
[INFO] [stdout]     |
[INFO] [stdout] 431 |             0xE000...0xFFFF => self.ines.prgrom[0x2000*(prgrom_size - 1) + location - 0xE000],
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:437:19
[INFO] [stdout]     |
[INFO] [stdout] 437 |             0x6000...0x7FFF => self.prgram[location as usize - 0x6000] = what,
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:438:19
[INFO] [stdout]     |
[INFO] [stdout] 438 |             0x8000...0x9FFF => {
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:458:19
[INFO] [stdout]     |
[INFO] [stdout] 458 |             0xA000...0xBFFF => {
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:465:19
[INFO] [stdout]     |
[INFO] [stdout] 465 |             0xC000...0xDFFF => {
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:472:19
[INFO] [stdout]     |
[INFO] [stdout] 472 |             0xE000...0xEFFF => {
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:488:16
[INFO] [stdout]     |
[INFO] [stdout] 488 |             0x0...0x7FF => self.ines.chrrom[0x800*self.chrbank0 + location],
[INFO] [stdout]     |                ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:489:18
[INFO] [stdout]     |
[INFO] [stdout] 489 |             0x800...0xFFF => self.ines.chrrom[0x800*self.chrbank1 + location - 0x800],
[INFO] [stdout]     |                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:490:19
[INFO] [stdout]     |
[INFO] [stdout] 490 |             0x1000...0x13FF => self.ines.chrrom[0x400*self.chrbank2 + location - 0x1000],
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:491:19
[INFO] [stdout]     |
[INFO] [stdout] 491 |             0x1400...0x17FF => self.ines.chrrom[0x400*self.chrbank3 + location - 0x1400],
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:492:19
[INFO] [stdout]     |
[INFO] [stdout] 492 |             0x1800...0x1BFF => self.ines.chrrom[0x400*self.chrbank4 + location - 0x1800],
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:493:19
[INFO] [stdout]     |
[INFO] [stdout] 493 |             0x1C00...0x1FFF => self.ines.chrrom[0x400*self.chrbank5 + location - 0x1C00],
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:494:19
[INFO] [stdout]     |
[INFO] [stdout] 494 |             0x2000...0x3EFF => {
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:497:22
[INFO] [stdout]     |
[INFO] [stdout] 497 |                     0...0x3FF => 0,
[INFO] [stdout]     |                      ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:498:26
[INFO] [stdout]     |
[INFO] [stdout] 498 |                     0x400...0x7FF => (!self.horizontalmirroring) as usize,
[INFO] [stdout]     |                          ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:499:26
[INFO] [stdout]     |
[INFO] [stdout] 499 |                     0x800...0xBFF => self.horizontalmirroring as usize,
[INFO] [stdout]     |                          ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:500:26
[INFO] [stdout]     |
[INFO] [stdout] 500 |                     0xC00...0xFFF => 1,
[INFO] [stdout]     |                          ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:512:16
[INFO] [stdout]     |
[INFO] [stdout] 512 |             0x0...0x7FF => self.ines.chrrom[0x800*self.chrbank0 + location] = what,
[INFO] [stdout]     |                ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:513:18
[INFO] [stdout]     |
[INFO] [stdout] 513 |             0x800...0xFFF => self.ines.chrrom[0x800*self.chrbank1 + location - 0x800] = what,
[INFO] [stdout]     |                  ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:514:19
[INFO] [stdout]     |
[INFO] [stdout] 514 |             0x1000...0x13FF => self.ines.chrrom[0x400*self.chrbank2 + location - 0x1000] = what,
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:515:19
[INFO] [stdout]     |
[INFO] [stdout] 515 |             0x1400...0x17FF => self.ines.chrrom[0x400*self.chrbank3 + location - 0x1400] = what,
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:516:19
[INFO] [stdout]     |
[INFO] [stdout] 516 |             0x1800...0x1BFF => self.ines.chrrom[0x400*self.chrbank4 + location - 0x1800] = what,
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:517:19
[INFO] [stdout]     |
[INFO] [stdout] 517 |             0x1C00...0x1FFF => self.ines.chrrom[0x400*self.chrbank5 + location - 0x1C00] = what,
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:518:19
[INFO] [stdout]     |
[INFO] [stdout] 518 |             0x2000...0x3EFF => {
[INFO] [stdout]     |                   ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:521:22
[INFO] [stdout]     |
[INFO] [stdout] 521 |                     0...0x3FF => 0,
[INFO] [stdout]     |                      ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:522:26
[INFO] [stdout]     |
[INFO] [stdout] 522 |                     0x400...0x7FF => (!self.horizontalmirroring) as usize,
[INFO] [stdout]     |                          ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:523:26
[INFO] [stdout]     |
[INFO] [stdout] 523 |                     0x800...0xBFF => self.horizontalmirroring as usize,
[INFO] [stdout]     |                          ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/mappers.rs:524:26
[INFO] [stdout]     |
[INFO] [stdout] 524 |                     0xC00...0xFFF => 1,
[INFO] [stdout]     |                          ^^^ help: use `..=` for an inclusive range
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/mappers.rs:553:48
[INFO] [stdout]     |
[INFO] [stdout] 553 | pub fn get_mapper(mut ines:INES) -> Rc<RefCell<Mapper>> {
[INFO] [stdout]     |                                                ^^^^^^ help: use `dyn`: `dyn Mapper`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `sdl2::audio::*`
[INFO] [stdout]   --> src/nes.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 31 | use sdl2::audio::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/nes.rs:38:24
[INFO] [stdout]    |
[INFO] [stdout] 38 |     mapper: Rc<RefCell<Mapper>>,
[INFO] [stdout]    |                        ^^^^^^ help: use `dyn`: `dyn Mapper`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `NES_State` should have an upper camel case name
[INFO] [stdout]   --> src/nes.rs:47:8
[INFO] [stdout]    |
[INFO] [stdout] 47 | struct NES_State {
[INFO] [stdout]    |        ^^^^^^^^^ help: convert the identifier to upper camel case: `NesState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/nes.rs:231:54
[INFO] [stdout]     |
[INFO] [stdout] 231 | fn serialize_nes(cpu:&CPU,ppu:&PPU,mapper:Rc<RefCell<Mapper>>) -> Vec<u8> {
[INFO] [stdout]     |                                                      ^^^^^^ help: use `dyn`: `dyn Mapper`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/nes.rs:241:75
[INFO] [stdout]     |
[INFO] [stdout] 241 | fn deserialize_nes(data:&[u8],cpu:&mut CPU,ppu:&mut PPU,mapper:Rc<RefCell<Mapper>>) {
[INFO] [stdout]     |                                                                           ^^^^^^ help: use `dyn`: `dyn Mapper`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]     --> src/instruction.rs:1414:9
[INFO] [stdout]      |
[INFO] [stdout] 1414 |         _ => panic!("Should never happen..."),
[INFO] [stdout]      |         ^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unreachable_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple patterns covering the same range
[INFO] [stdout]    --> src/cpu.rs:216:13
[INFO] [stdout]     |
[INFO] [stdout] 196 |             0x4016 => {
[INFO] [stdout]     |             ------ this range overlaps on `16406_u16`
[INFO] [stdout] ...
[INFO] [stdout] 216 |             0x4016...0x401F => 0,
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^ overlapping patterns
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(overlapping_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/cpu.rs:218:13
[INFO] [stdout]     |
[INFO] [stdout] 218 |             _ => panic!("DNE")
[INFO] [stdout]     |             ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/cpu.rs:249:13
[INFO] [stdout]     |
[INFO] [stdout] 249 |             _ => panic!("DNE")
[INFO] [stdout]     |             ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/nes.rs:195:21
[INFO] [stdout]     |
[INFO] [stdout] 195 |                     Event::KeyDown {scancode:Some(Scancode::Num8),..} => {
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/nes.rs:198:21
[INFO] [stdout]     |
[INFO] [stdout] 198 |                     Event::KeyDown {scancode:Some(Scancode::F8),..} => {
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]     --> src/instruction.rs:1414:9
[INFO] [stdout]      |
[INFO] [stdout] 1414 |         _ => panic!("Should never happen..."),
[INFO] [stdout]      |         ^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unreachable_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple patterns covering the same range
[INFO] [stdout]    --> src/cpu.rs:216:13
[INFO] [stdout]     |
[INFO] [stdout] 196 |             0x4016 => {
[INFO] [stdout]     |             ------ this range overlaps on `16406_u16`
[INFO] [stdout] ...
[INFO] [stdout] 216 |             0x4016...0x401F => 0,
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^ overlapping patterns
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(overlapping_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/cpu.rs:218:13
[INFO] [stdout]     |
[INFO] [stdout] 218 |             _ => panic!("DNE")
[INFO] [stdout]     |             ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/cpu.rs:249:13
[INFO] [stdout]     |
[INFO] [stdout] 249 |             _ => panic!("DNE")
[INFO] [stdout]     |             ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/nes.rs:195:21
[INFO] [stdout]     |
[INFO] [stdout] 195 |                     Event::KeyDown {scancode:Some(Scancode::Num8),..} => {
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/nes.rs:198:21
[INFO] [stdout]     |
[INFO] [stdout] 198 |                     Event::KeyDown {scancode:Some(Scancode::F8),..} => {
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/mappers.rs:553:19
[INFO] [stdout]     |
[INFO] [stdout] 553 | pub fn get_mapper(mut ines:INES) -> Rc<RefCell<Mapper>> {
[INFO] [stdout]     |                   ----^^^^
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function is never used: `apureset`
[INFO] [stdout]  --> src/apu.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 |     fn apureset();
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function is never used: `apu_reset`
[INFO] [stdout]   --> src/apu.rs:20:8
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn apu_reset() {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/mappers.rs:553:19
[INFO] [stdout]     |
[INFO] [stdout] 553 | pub fn get_mapper(mut ines:INES) -> Rc<RefCell<Mapper>> {
[INFO] [stdout]     |                   ----^^^^
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` block uses type `cpu::CPU`, which is not FFI-safe
[INFO] [stdout]   --> src/apu.rs:6:26
[INFO] [stdout]    |
[INFO] [stdout] 6  |     fn apuinit(read_mem: extern fn(cpu:*mut CPU,c: u32) -> i32,cpu:*mut CPU);
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not FFI-safe
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(improper_ctypes)]` on by default
[INFO] [stdout]    = help: consider adding a `#[repr(C)]` or `#[repr(transparent)]` attribute to this struct
[INFO] [stdout]    = note: this struct has unspecified layout
[INFO] [stdout] note: the type is defined here
[INFO] [stdout]   --> src/cpu.rs:51:1
[INFO] [stdout]    |
[INFO] [stdout] 51 | / pub struct CPU {
[INFO] [stdout] 52 | |     SP: u8,
[INFO] [stdout] 53 | |     P: u8,
[INFO] [stdout] 54 | |     A: u8,
[INFO] [stdout] ...  |
[INFO] [stdout] 69 | |     pub elapsed: i32
[INFO] [stdout] 70 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` block uses type `cpu::CPU`, which is not FFI-safe
[INFO] [stdout]   --> src/apu.rs:6:68
[INFO] [stdout]    |
[INFO] [stdout] 6  |     fn apuinit(read_mem: extern fn(cpu:*mut CPU,c: u32) -> i32,cpu:*mut CPU);
[INFO] [stdout]    |                                                                    ^^^^^^^^ not FFI-safe
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider adding a `#[repr(C)]` or `#[repr(transparent)]` attribute to this struct
[INFO] [stdout]    = note: this struct has unspecified layout
[INFO] [stdout] note: the type is defined here
[INFO] [stdout]   --> src/cpu.rs:51:1
[INFO] [stdout]    |
[INFO] [stdout] 51 | / pub struct CPU {
[INFO] [stdout] 52 | |     SP: u8,
[INFO] [stdout] 53 | |     P: u8,
[INFO] [stdout] 54 | |     A: u8,
[INFO] [stdout] ...  |
[INFO] [stdout] 69 | |     pub elapsed: i32
[INFO] [stdout] 70 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function is never used: `apureset`
[INFO] [stdout]  --> src/apu.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 |     fn apureset();
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function is never used: `apu_reset`
[INFO] [stdout]   --> src/apu.rs:20:8
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn apu_reset() {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 109 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` block uses type `cpu::CPU`, which is not FFI-safe
[INFO] [stdout]   --> src/apu.rs:6:26
[INFO] [stdout]    |
[INFO] [stdout] 6  |     fn apuinit(read_mem: extern fn(cpu:*mut CPU,c: u32) -> i32,cpu:*mut CPU);
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not FFI-safe
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(improper_ctypes)]` on by default
[INFO] [stdout]    = help: consider adding a `#[repr(C)]` or `#[repr(transparent)]` attribute to this struct
[INFO] [stdout]    = note: this struct has unspecified layout
[INFO] [stdout] note: the type is defined here
[INFO] [stdout]   --> src/cpu.rs:51:1
[INFO] [stdout]    |
[INFO] [stdout] 51 | / pub struct CPU {
[INFO] [stdout] 52 | |     SP: u8,
[INFO] [stdout] 53 | |     P: u8,
[INFO] [stdout] 54 | |     A: u8,
[INFO] [stdout] ...  |
[INFO] [stdout] 69 | |     pub elapsed: i32
[INFO] [stdout] 70 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` block uses type `cpu::CPU`, which is not FFI-safe
[INFO] [stdout]   --> src/apu.rs:6:68
[INFO] [stdout]    |
[INFO] [stdout] 6  |     fn apuinit(read_mem: extern fn(cpu:*mut CPU,c: u32) -> i32,cpu:*mut CPU);
[INFO] [stdout]    |                                                                    ^^^^^^^^ not FFI-safe
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider adding a `#[repr(C)]` or `#[repr(transparent)]` attribute to this struct
[INFO] [stdout]    = note: this struct has unspecified layout
[INFO] [stdout] note: the type is defined here
[INFO] [stdout]   --> src/cpu.rs:51:1
[INFO] [stdout]    |
[INFO] [stdout] 51 | / pub struct CPU {
[INFO] [stdout] 52 | |     SP: u8,
[INFO] [stdout] 53 | |     P: u8,
[INFO] [stdout] 54 | |     A: u8,
[INFO] [stdout] ...  |
[INFO] [stdout] 69 | |     pub elapsed: i32
[INFO] [stdout] 70 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 109 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 26.02s
[INFO] running `Command { std: "docker" "inspect" "9772d14afffaba31008d9e4093826cfc36d60dce4bbe322cc47d490efaf8165b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9772d14afffaba31008d9e4093826cfc36d60dce4bbe322cc47d490efaf8165b", kill_on_drop: false }`
[INFO] [stdout] 9772d14afffaba31008d9e4093826cfc36d60dce4bbe322cc47d490efaf8165b