[INFO] cloning repository https://github.com/valenxie/CS181-unit2
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/valenxie/CS181-unit2" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fvalenxie%2FCS181-unit2", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fvalenxie%2FCS181-unit2'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 4d0fc787d51e4f05323702b9d126a04dbf4db668
[INFO] checking valenxie/CS181-unit2 against 1.95.0 for pr-155915
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fvalenxie%2FCS181-unit2" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/valenxie/CS181-unit2
[INFO] finished tweaking git repo https://github.com/valenxie/CS181-unit2
[INFO] tweaked toml for git repo https://github.com/valenxie/CS181-unit2 written to /workspace/builds/worker-6-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/valenxie/CS181-unit2 on toolchain 1.95.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.95.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/valenxie/CS181-unit2 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.95.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded minimp3 v0.5.1
[INFO] [stderr]   Downloaded winit_input_helper v0.9.0
[INFO] [stderr]   Downloaded range-alloc v0.1.2
[INFO] [stderr]   Downloaded gfx-memory v0.2.2
[INFO] [stderr]   Downloaded ndk-glue v0.3.0
[INFO] [stderr]   Downloaded wasm-bindgen-shared v0.2.71
[INFO] [stderr]   Downloaded num_enum_derive v0.5.1
[INFO] [stderr]   Downloaded wasm-bindgen-futures v0.4.21
[INFO] [stderr]   Downloaded inplace_it v0.3.3
[INFO] [stderr]   Downloaded gfx-auxil v0.7.0
[INFO] [stderr]   Downloaded num_enum v0.5.1
[INFO] [stderr]   Downloaded wgpu-types v0.6.1
[INFO] [stderr]   Downloaded thunderdome v0.3.0
[INFO] [stderr]   Downloaded pollster v0.2.1
[INFO] [stderr]   Downloaded wasm-bindgen-macro v0.2.71
[INFO] [stderr]   Downloaded pixels v0.2.0
[INFO] [stderr]   Downloaded oboe v0.4.1
[INFO] [stderr]   Downloaded wasm-bindgen-macro-support v0.2.71
[INFO] [stderr]   Downloaded gif v0.11.1
[INFO] [stderr]   Downloaded bytemuck v1.5.1
[INFO] [stderr]   Downloaded wide v0.4.6
[INFO] [stderr]   Downloaded weezl v0.1.4
[INFO] [stderr]   Downloaded smithay-client-toolkit v0.12.2
[INFO] [stderr]   Downloaded gfx-backend-dx11 v0.6.17
[INFO] [stderr]   Downloaded gfx-backend-dx12 v0.6.13
[INFO] [stderr]   Downloaded syn v1.0.60
[INFO] [stderr]   Downloaded gfx-backend-metal v0.6.5
[INFO] [stderr]   Downloaded wasm-bindgen v0.2.71
[INFO] [stderr]   Downloaded oboe-sys v0.4.0
[INFO] [stderr]   Downloaded combine v4.5.2
[INFO] [stderr]   Downloaded wgpu-core v0.6.5
[INFO] [stderr]   Downloaded cpal v0.13.2
[INFO] [stderr]   Downloaded jni v0.18.0
[INFO] [stderr]   Downloaded image v0.23.13
[INFO] [stderr]   Downloaded js-sys v0.3.48
[INFO] [stderr]   Downloaded alsa v0.5.0
[INFO] [stderr]   Downloaded clang-sys v1.1.1
[INFO] [stderr]   Downloaded wasm-bindgen-backend v0.2.71
[INFO] [stderr]   Downloaded ultraviolet v0.4.6
[INFO] [stderr]   Downloaded gfx-backend-vulkan v0.6.5
[INFO] [stderr]   Downloaded ndk v0.3.0
[INFO] [stderr]   Downloaded spirv_cross v0.22.2
[INFO] [stderr]   Downloaded libc v0.2.91
[INFO] [stderr]   Downloaded web-sys v0.3.48
[INFO] [stderr]   Downloaded rodio v0.13.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 8f79f94097633fe5181b5627c42f52c39bf09025146a861023bf65c63402bf87
[INFO] running `Command { std: "docker" "start" "-a" "8f79f94097633fe5181b5627c42f52c39bf09025146a861023bf65c63402bf87", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "8f79f94097633fe5181b5627c42f52c39bf09025146a861023bf65c63402bf87", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "8f79f94097633fe5181b5627c42f52c39bf09025146a861023bf65c63402bf87", kill_on_drop: false }`
[INFO] [stdout] 8f79f94097633fe5181b5627c42f52c39bf09025146a861023bf65c63402bf87
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/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" "RUSTDOCFLAGS=--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" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 3dffa015b3a14d92f3e68600c8bb651fd6792c49b132f25f31fefbd6db38ab3e
[INFO] running `Command { std: "docker" "start" "-a" "3dffa015b3a14d92f3e68600c8bb651fd6792c49b132f25f31fefbd6db38ab3e", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.91
[INFO] [stderr]    Compiling syn v1.0.60
[INFO] [stderr]    Compiling num-traits v0.2.14
[INFO] [stderr]    Compiling quote v1.0.9
[INFO] [stderr]    Compiling crossbeam-utils v0.8.3
[INFO] [stderr]    Compiling memoffset v0.6.1
[INFO] [stderr]    Compiling nom v6.1.2
[INFO] [stderr]    Compiling x11 v2.18.2
[INFO] [stderr]     Checking futures-sink v0.3.13
[INFO] [stderr]     Checking futures-core v0.3.13
[INFO] [stderr]    Compiling wayland-scanner v0.28.5
[INFO] [stderr]     Checking futures-channel v0.3.13
[INFO] [stderr]    Compiling alsa-sys v0.3.1
[INFO] [stderr]     Checking futures-task v0.3.13
[INFO] [stderr]     Checking futures-io v0.3.13
[INFO] [stderr]     Checking bit-set v0.5.2
[INFO] [stderr]     Checking crossbeam-epoch v0.9.3
[INFO] [stderr]     Checking crossbeam-channel v0.5.0
[INFO] [stderr]     Checking spirv_headers v1.5.0
[INFO] [stderr]     Checking crossbeam-deque v0.8.0
[INFO] [stderr]     Checking walkdir v2.3.1
[INFO] [stderr]     Checking raw-window-handle v0.3.3
[INFO] [stderr]     Checking nix v0.20.0
[INFO] [stderr]     Checking parking_lot_core v0.8.3
[INFO] [stderr]     Checking gfx-hal v0.6.0
[INFO] [stderr]    Compiling wayland-client v0.28.5
[INFO] [stderr]     Checking parking_lot v0.11.1
[INFO] [stderr]    Compiling jobserver v0.1.21
[INFO] [stderr]    Compiling wayland-protocols v0.28.5
[INFO] [stderr]     Checking num_cpus v1.13.0
[INFO] [stderr]     Checking rayon-core v1.9.0
[INFO] [stderr]     Checking xcursor v0.3.3
[INFO] [stderr]    Compiling cc v1.0.67
[INFO] [stderr]     Checking iovec v0.1.4
[INFO] [stderr]     Checking net2 v0.2.37
[INFO] [stderr]     Checking nix v0.18.0
[INFO] [stderr]     Checking ash v0.31.0
[INFO] [stderr]    Compiling minimp3-sys v0.3.2
[INFO] [stderr]    Compiling miniz_oxide v0.4.4
[INFO] [stderr]     Checking bytemuck v1.5.1
[INFO] [stderr]    Compiling wide v0.4.6
[INFO] [stderr]     Checking inplace_it v0.3.3
[INFO] [stderr]     Checking rayon v1.5.0
[INFO] [stderr]     Checking andrew v0.3.1
[INFO] [stderr]     Checking gfx-descriptor v0.2.0
[INFO] [stderr]     Checking gfx-backend-empty v0.6.0
[INFO] [stderr]     Checking gfx-memory v0.2.2
[INFO] [stderr]     Checking tracing v0.1.25
[INFO] [stderr]     Checking wayland-commons v0.28.5
[INFO] [stderr]     Checking num-integer v0.1.44
[INFO] [stderr]     Checking mio v0.6.23
[INFO] [stderr]     Checking memmap2 v0.1.0
[INFO] [stderr]     Checking wgpu-types v0.6.1
[INFO] [stderr]    Compiling num-iter v0.1.42
[INFO] [stderr]    Compiling num-rational v0.3.2
[INFO] [stderr]     Checking calloop v0.6.5
[INFO] [stderr]    Compiling cpal v0.13.2
[INFO] [stderr]     Checking wayland-cursor v0.28.5
[INFO] [stderr]     Checking weezl v0.1.4
[INFO] [stderr]     Checking mio-extras v2.0.6
[INFO] [stderr]     Checking x11-dl v2.18.5
[INFO] [stderr]     Checking alsa v0.5.0
[INFO] [stderr]     Checking jpeg-decoder v0.1.22
[INFO] [stderr]     Checking miniz_oxide v0.3.7
[INFO] [stderr]     Checking deflate v0.8.6
[INFO] [stderr]     Checking slice-deque v0.3.0
[INFO] [stderr]     Checking typed-arena v2.0.1
[INFO] [stderr]     Checking png v0.16.8
[INFO] [stderr]     Checking gif v0.11.1
[INFO] [stderr]     Checking lewton v0.10.2
[INFO] [stderr]     Checking tiff v0.6.1
[INFO] [stderr]    Compiling thiserror-impl v1.0.24
[INFO] [stderr]    Compiling futures-macro v0.3.13
[INFO] [stderr]     Checking ultraviolet v0.4.6
[INFO] [stderr]     Checking scoped_threadpool v0.1.9
[INFO] [stderr]     Checking pollster v0.2.1
[INFO] [stderr]     Checking futures-util v0.3.13
[INFO] [stderr]     Checking image v0.23.13
[INFO] [stderr]     Checking thiserror v1.0.24
[INFO] [stderr]     Checking naga v0.2.0
[INFO] [stderr]     Checking minimp3 v0.5.1
[INFO] [stderr]     Checking rodio v0.13.1
[INFO] [stderr]     Checking gfx-backend-vulkan v0.6.5
[INFO] [stderr]     Checking wgpu-core v0.6.5
[INFO] [stderr]     Checking futures-executor v0.3.13
[INFO] [stderr]     Checking futures v0.3.13
[INFO] [stderr]     Checking wgpu v0.6.2
[INFO] [stderr]     Checking pixels v0.2.0
[INFO] [stderr]     Checking smithay-client-toolkit v0.12.2
[INFO] [stderr]     Checking winit v0.24.0
[INFO] [stderr]     Checking winit_input_helper v0.9.0
[INFO] [stderr]     Checking engine2d v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::fs::File`
[INFO] [stdout]  --> src/lib.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::fs::File;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::BufReader`
[INFO] [stdout]  --> src/lib.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::io::BufReader;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Duration`
[INFO] [stdout]  --> src/lib.rs:3:17
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::time::{Duration, Instant};
[INFO] [stdout]   |                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `OutputStreamHandle` and `Source`
[INFO] [stdout]  --> src/lib.rs:5:13
[INFO] [stdout]   |
[INFO] [stdout] 5 | use rodio::{OutputStreamHandle, Source};
[INFO] [stdout]   |             ^^^^^^^^^^^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Rect`
[INFO] [stdout]  --> src/sprite.rs:2:20
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::types::{Rect, Vec2i};
[INFO] [stdout]   |                    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::animation::AnimationState`
[INFO] [stdout]  --> src/graphics.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::animation::AnimationState;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::rc::Rc`
[INFO] [stdout]  --> src/graphics.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::rc::Rc;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DrawText`
[INFO] [stdout]  --> src/resources.rs:4:25
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::text::{self, DrawText};
[INFO] [stdout]   |                         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `resources::*`
[INFO] [stdout]  --> src/collision.rs:2:13
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::{resources::*, tiles::Tile};
[INFO] [stdout]   |             ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::rc::Rc`
[INFO] [stdout]  --> src/collision.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::rc::Rc; 
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::animation::*`
[INFO] [stdout]  --> src/collision.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::animation::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fs::File`
[INFO] [stdout]  --> src/lib.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::fs::File;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::BufReader`
[INFO] [stdout]  --> src/lib.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::io::BufReader;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Duration`
[INFO] [stdout]  --> src/lib.rs:3:17
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::time::{Duration, Instant};
[INFO] [stdout]   |                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `OutputStreamHandle` and `Source`
[INFO] [stdout]  --> src/lib.rs:5:13
[INFO] [stdout]   |
[INFO] [stdout] 5 | use rodio::{OutputStreamHandle, Source};
[INFO] [stdout]   |             ^^^^^^^^^^^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Rect`
[INFO] [stdout]  --> src/sprite.rs:2:20
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::types::{Rect, Vec2i};
[INFO] [stdout]   |                    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::animation::AnimationState`
[INFO] [stdout]  --> src/graphics.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::animation::AnimationState;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::rc::Rc`
[INFO] [stdout]  --> src/graphics.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::rc::Rc;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DrawText`
[INFO] [stdout]  --> src/resources.rs:4:25
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::text::{self, DrawText};
[INFO] [stdout]   |                         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `resources::*`
[INFO] [stdout]  --> src/collision.rs:2:13
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::{resources::*, tiles::Tile};
[INFO] [stdout]   |             ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::rc::Rc`
[INFO] [stdout]  --> src/collision.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::rc::Rc; 
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::animation::*`
[INFO] [stdout]  --> src/collision.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::animation::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/collision.rs:66:13
[INFO] [stdout]    |
[INFO] [stdout] 66 |         let mut rect1 = Rect {
[INFO] [stdout]    |             ----^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/collision.rs:76:21
[INFO] [stdout]    |
[INFO] [stdout] 76 |                 let mut rect2 = Rect {
[INFO] [stdout]    |                     ----^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/collision.rs:94:13
[INFO] [stdout]    |
[INFO] [stdout] 94 |         let mut rect1 = Rect {
[INFO] [stdout]    |             ----^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pos`
[INFO] [stdout]   --> src/collision.rs:93:14
[INFO] [stdout]    |
[INFO] [stdout] 93 |     for (i, (pos, sz)) in positions.iter().zip(sizes.iter()).enumerate() {
[INFO] [stdout]    |              ^^^ help: if this is intentional, prefix it with an underscore: `_pos`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sz`
[INFO] [stdout]   --> src/collision.rs:93:19
[INFO] [stdout]    |
[INFO] [stdout] 93 |     for (i, (pos, sz)) in positions.iter().zip(sizes.iter()).enumerate() {
[INFO] [stdout]    |                   ^^ help: if this is intentional, prefix it with an underscore: `_sz`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tmi`
[INFO] [stdout]    --> src/collision.rs:100:14
[INFO] [stdout]     |
[INFO] [stdout] 100 |         for (tmi,tm) in tilemaps.iter().enumerate(){
[INFO] [stdout]     |              ^^^ help: if this is intentional, prefix it with an underscore: `_tmi`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/collision.rs:128:13
[INFO] [stdout]     |
[INFO] [stdout] 128 |         let mut a_rect = Rect {
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `image` and `animation` are never read
[INFO] [stdout]   --> src/sprite.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct Sprite {
[INFO] [stdout]    |            ------ fields in this struct
[INFO] [stdout] 14 |     image: Rc<Texture>,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 15 |     animation: Rc<Animation>, // Maybe better to use a type that can't have a negative origin
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/collision.rs:66:13
[INFO] [stdout]    |
[INFO] [stdout] 66 |         let mut rect1 = Rect {
[INFO] [stdout]    |             ----^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/collision.rs:76:21
[INFO] [stdout]    |
[INFO] [stdout] 76 |                 let mut rect2 = Rect {
[INFO] [stdout]    |                     ----^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/collision.rs:94:13
[INFO] [stdout]    |
[INFO] [stdout] 94 |         let mut rect1 = Rect {
[INFO] [stdout]    |             ----^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pos`
[INFO] [stdout]   --> src/collision.rs:93:14
[INFO] [stdout]    |
[INFO] [stdout] 93 |     for (i, (pos, sz)) in positions.iter().zip(sizes.iter()).enumerate() {
[INFO] [stdout]    |              ^^^ help: if this is intentional, prefix it with an underscore: `_pos`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sz`
[INFO] [stdout]   --> src/collision.rs:93:19
[INFO] [stdout]    |
[INFO] [stdout] 93 |     for (i, (pos, sz)) in positions.iter().zip(sizes.iter()).enumerate() {
[INFO] [stdout]    |                   ^^ help: if this is intentional, prefix it with an underscore: `_sz`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tmi`
[INFO] [stdout]    --> src/collision.rs:100:14
[INFO] [stdout]     |
[INFO] [stdout] 100 |         for (tmi,tm) in tilemaps.iter().enumerate(){
[INFO] [stdout]     |              ^^^ help: if this is intentional, prefix it with an underscore: `_tmi`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/collision.rs:128:13
[INFO] [stdout]     |
[INFO] [stdout] 128 |         let mut a_rect = Rect {
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `image` and `animation` are never read
[INFO] [stdout]   --> src/sprite.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct Sprite {
[INFO] [stdout]    |            ------ fields in this struct
[INFO] [stdout] 14 |     image: Rc<Texture>,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 15 |     animation: Rc<Animation>, // Maybe better to use a type that can't have a negative origin
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::time`
[INFO] [stdout]  --> src/bin/game2.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use core::time;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `time::Duration`
[INFO] [stdout]  --> src/bin/game2.rs:2:48
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::{fs::File, io::BufReader, path::Path, time::Duration};
[INFO] [stdout]   |                                                ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `animation` and `texture`
[INFO] [stdout]   --> src/bin/game2.rs:10:16
[INFO] [stdout]    |
[INFO] [stdout] 10 | use engine2d::{animation, texture, types::*};
[INFO] [stdout]    |                ^^^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]   --> src/bin/game2.rs:14:22
[INFO] [stdout]    |
[INFO] [stdout] 14 | use engine2d::text::{self, DrawText};
[INFO] [stdout]    |                      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `engine2d::sprite::*`
[INFO] [stdout]   --> src/bin/game2.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use engine2d::sprite::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `engine2d::collision::*`
[INFO] [stdout]   --> src/bin/game2.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | use engine2d::collision::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Sink`
[INFO] [stdout]   --> src/bin/game2.rs:22:36
[INFO] [stdout]    |
[INFO] [stdout] 22 | use rodio::{Decoder, OutputStream, Sink};
[INFO] [stdout]    |                                    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SineWave`
[INFO] [stdout]   --> src/bin/game2.rs:23:21
[INFO] [stdout]    |
[INFO] [stdout] 23 | use rodio::source::{SineWave, Source};
[INFO] [stdout]    |                     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `lvl1Exit` should have an upper camel case name
[INFO] [stdout]   --> src/bin/game2.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 34 |     lvl1Exit,
[INFO] [stdout]    |     ^^^^^^^^ help: convert the identifier to upper camel case: `Lvl1exit`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `lvl2Exit` should have an upper camel case name
[INFO] [stdout]   --> src/bin/game2.rs:35:5
[INFO] [stdout]    |
[INFO] [stdout] 35 |     lvl2Exit,
[INFO] [stdout]    |     ^^^^^^^^ help: convert the identifier to upper camel case: `Lvl2exit`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `lvl2Entrance` should have an upper camel case name
[INFO] [stdout]   --> src/bin/game2.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 36 |     lvl2Entrance,
[INFO] [stdout]    |     ^^^^^^^^^^^^ help: convert the identifier to upper camel case: `Lvl2entrance`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `engine2d::collision::*`
[INFO] [stdout]   --> src/bin/game1.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use engine2d::collision::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Sink`
[INFO] [stdout]   --> src/bin/game1.rs:19:36
[INFO] [stdout]    |
[INFO] [stdout] 19 | use rodio::{Decoder, OutputStream, Sink};
[INFO] [stdout]    |                                    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SineWave`
[INFO] [stdout]   --> src/bin/game1.rs:20:21
[INFO] [stdout]    |
[INFO] [stdout] 20 | use rodio::source::{SineWave, Source};
[INFO] [stdout]    |                     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::time`
[INFO] [stdout]  --> src/bin/game2.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use core::time;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `time::Duration`
[INFO] [stdout]  --> src/bin/game2.rs:2:48
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::{fs::File, io::BufReader, path::Path, time::Duration};
[INFO] [stdout]   |                                                ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `animation` and `texture`
[INFO] [stdout]   --> src/bin/game2.rs:10:16
[INFO] [stdout]    |
[INFO] [stdout] 10 | use engine2d::{animation, texture, types::*};
[INFO] [stdout]    |                ^^^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]   --> src/bin/game2.rs:14:22
[INFO] [stdout]    |
[INFO] [stdout] 14 | use engine2d::text::{self, DrawText};
[INFO] [stdout]    |                      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `engine2d::sprite::*`
[INFO] [stdout]   --> src/bin/game2.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use engine2d::sprite::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `engine2d::collision::*`
[INFO] [stdout]   --> src/bin/game2.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | use engine2d::collision::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Sink`
[INFO] [stdout]   --> src/bin/game2.rs:22:36
[INFO] [stdout]    |
[INFO] [stdout] 22 | use rodio::{Decoder, OutputStream, Sink};
[INFO] [stdout]    |                                    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SineWave`
[INFO] [stdout]   --> src/bin/game2.rs:23:21
[INFO] [stdout]    |
[INFO] [stdout] 23 | use rodio::source::{SineWave, Source};
[INFO] [stdout]    |                     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `lvl1Exit` should have an upper camel case name
[INFO] [stdout]   --> src/bin/game2.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 34 |     lvl1Exit,
[INFO] [stdout]    |     ^^^^^^^^ help: convert the identifier to upper camel case: `Lvl1exit`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `lvl2Exit` should have an upper camel case name
[INFO] [stdout]   --> src/bin/game2.rs:35:5
[INFO] [stdout]    |
[INFO] [stdout] 35 |     lvl2Exit,
[INFO] [stdout]    |     ^^^^^^^^ help: convert the identifier to upper camel case: `Lvl2exit`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `lvl2Entrance` should have an upper camel case name
[INFO] [stdout]   --> src/bin/game2.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 36 |     lvl2Entrance,
[INFO] [stdout]    |     ^^^^^^^^^^^^ help: convert the identifier to upper camel case: `Lvl2entrance`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `levels`
[INFO] [stdout]   --> src/bin/game2.rs:61:55
[INFO] [stdout]    |
[INFO] [stdout] 61 |     fn update(self, game:&mut GameState, input:&Input,levels: &Vec<Level>) -> Self {
[INFO] [stdout]    |                                                       ^^^^^^ help: if this is intentional, prefix it with an underscore: `_levels`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/bin/game2.rs:270:23
[INFO] [stdout]     |
[INFO] [stdout] 270 |                 for ((mut pos,mut tex),mut anim) in game.positions.iter().zip(game.textures.iter()).zip(game.anim_state.iter()) {
[INFO] [stdout]     |                       ----^^^
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/bin/game2.rs:270:31
[INFO] [stdout]     |
[INFO] [stdout] 270 |                 for ((mut pos,mut tex),mut anim) in game.positions.iter().zip(game.textures.iter()).zip(game.anim_state.iter()) {
[INFO] [stdout]     |                               ----^^^
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/bin/game2.rs:270:40
[INFO] [stdout]     |
[INFO] [stdout] 270 |                 for ((mut pos,mut tex),mut anim) in game.positions.iter().zip(game.textures.iter()).zip(game.anim_state.iter()) {
[INFO] [stdout]     |                                        ----^^^^
[INFO] [stdout]     |                                        |
[INFO] [stdout]     |                                        help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `enemy_anim`
[INFO] [stdout]    --> src/bin/game2.rs:753:9
[INFO] [stdout]     |
[INFO] [stdout] 753 |     let enemy_anim = Rc::new(Animation::freeze(Rect{x:0,y:0,w:16,h:32}));
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_enemy_anim`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `frame`
[INFO] [stdout]    --> src/bin/game2.rs:824:97
[INFO] [stdout]     |
[INFO] [stdout] 824 | fn draw_game(resources:&Resources, levels: &Vec<Level>, state: &GameState, screen: &mut Screen, frame:usize) {
[INFO] [stdout]     |                                                                                                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_frame`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `frame`
[INFO] [stdout]    --> src/bin/game2.rs:830:108
[INFO] [stdout]     |
[INFO] [stdout] 830 | fn update_game(resources:&Resources, levels: &Vec<Level>, state: &mut GameState, input: &WinitInputHelper, frame: usize) {
[INFO] [stdout]     |                                                                                                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_frame`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pm`
[INFO] [stdout]   --> src/bin/game1.rs:90:24
[INFO] [stdout]    |
[INFO] [stdout] 90 |             Mode::Play(pm) => {
[INFO] [stdout]    |                        ^^ help: if this is intentional, prefix it with an underscore: `_pm`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `temp_stream_handle`
[INFO] [stdout]    --> src/bin/game1.rs:182:29
[INFO] [stdout]     |
[INFO] [stdout] 182 |                     let (_, temp_stream_handle) = OutputStream::try_default().unwrap();
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_temp_stream_handle`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pm`
[INFO] [stdout]    --> src/bin/game1.rs:248:24
[INFO] [stdout]     |
[INFO] [stdout] 248 |             Mode::Play(pm) => {
[INFO] [stdout]     |                        ^^ help: if this is intentional, prefix it with an underscore: `_pm`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/bin/game1.rs:288:9
[INFO] [stdout]     |
[INFO] [stdout] 288 |     let mut rsrc = Resources::new();
[INFO] [stdout]     |         ----^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/bin/game1.rs:563:9
[INFO] [stdout]     |
[INFO] [stdout] 563 |     let mut game = GameState{
[INFO] [stdout]     |         ----^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tileset1`
[INFO] [stdout]    --> src/bin/game1.rs:314:9
[INFO] [stdout]     |
[INFO] [stdout] 314 |     let tileset1 = Rc::new(Tileset::new(
[INFO] [stdout]     |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tileset1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `frame`
[INFO] [stdout]    --> src/bin/game1.rs:641:97
[INFO] [stdout]     |
[INFO] [stdout] 641 | fn draw_game(resources:&Resources, levels: &Vec<Level>, state: &GameState, screen: &mut Screen, frame:usize) {
[INFO] [stdout]     |                                                                                                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_frame`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `resources`
[INFO] [stdout]    --> src/bin/game1.rs:651:16
[INFO] [stdout]     |
[INFO] [stdout] 651 | fn update_game(resources:&Resources, levels: &Vec<Level>, state: &mut GameState, input: &WinitInputHelper, frame: usize) {
[INFO] [stdout]     |                ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_resources`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `frame`
[INFO] [stdout]    --> src/bin/game1.rs:651:108
[INFO] [stdout]     |
[INFO] [stdout] 651 | fn update_game(resources:&Resources, levels: &Vec<Level>, state: &mut GameState, input: &WinitInputHelper, frame: usize) {
[INFO] [stdout]     |                                                                                                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_frame`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ten_millis`
[INFO] [stdout]    --> src/bin/game1.rs:665:21
[INFO] [stdout]     |
[INFO] [stdout] 665 |                 let ten_millis = time::Duration::from_millis(500);
[INFO] [stdout]     |                     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ten_millis`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Battle` and `Menu` are never constructed
[INFO] [stdout]   --> src/bin/game1.rs:52:5
[INFO] [stdout]    |
[INFO] [stdout] 50 | enum PlayMode {
[INFO] [stdout]    |      -------- variants in this enum
[INFO] [stdout] 51 |     Map,
[INFO] [stdout] 52 |     Battle,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 53 |     Menu,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PlayMode` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `types` is never read
[INFO] [stdout]    --> src/bin/game1.rs:264:5
[INFO] [stdout]     |
[INFO] [stdout] 259 | struct GameState {
[INFO] [stdout]     |        --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 264 |     types: Vec<EntityType>,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `engine2d::collision::*`
[INFO] [stdout]   --> src/bin/game1.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use engine2d::collision::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Sink`
[INFO] [stdout]   --> src/bin/game1.rs:19:36
[INFO] [stdout]    |
[INFO] [stdout] 19 | use rodio::{Decoder, OutputStream, Sink};
[INFO] [stdout]    |                                    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SineWave`
[INFO] [stdout]   --> src/bin/game1.rs:20:21
[INFO] [stdout]    |
[INFO] [stdout] 20 | use rodio::source::{SineWave, Source};
[INFO] [stdout]    |                     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `levels`
[INFO] [stdout]   --> src/bin/game2.rs:61:55
[INFO] [stdout]    |
[INFO] [stdout] 61 |     fn update(self, game:&mut GameState, input:&Input,levels: &Vec<Level>) -> Self {
[INFO] [stdout]    |                                                       ^^^^^^ help: if this is intentional, prefix it with an underscore: `_levels`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/bin/game2.rs:270:23
[INFO] [stdout]     |
[INFO] [stdout] 270 |                 for ((mut pos,mut tex),mut anim) in game.positions.iter().zip(game.textures.iter()).zip(game.anim_state.iter()) {
[INFO] [stdout]     |                       ----^^^
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/bin/game2.rs:270:31
[INFO] [stdout]     |
[INFO] [stdout] 270 |                 for ((mut pos,mut tex),mut anim) in game.positions.iter().zip(game.textures.iter()).zip(game.anim_state.iter()) {
[INFO] [stdout]     |                               ----^^^
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/bin/game2.rs:270:40
[INFO] [stdout]     |
[INFO] [stdout] 270 |                 for ((mut pos,mut tex),mut anim) in game.positions.iter().zip(game.textures.iter()).zip(game.anim_state.iter()) {
[INFO] [stdout]     |                                        ----^^^^
[INFO] [stdout]     |                                        |
[INFO] [stdout]     |                                        help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `enemy_anim`
[INFO] [stdout]    --> src/bin/game2.rs:753:9
[INFO] [stdout]     |
[INFO] [stdout] 753 |     let enemy_anim = Rc::new(Animation::freeze(Rect{x:0,y:0,w:16,h:32}));
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_enemy_anim`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `frame`
[INFO] [stdout]    --> src/bin/game2.rs:824:97
[INFO] [stdout]     |
[INFO] [stdout] 824 | fn draw_game(resources:&Resources, levels: &Vec<Level>, state: &GameState, screen: &mut Screen, frame:usize) {
[INFO] [stdout]     |                                                                                                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_frame`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `frame`
[INFO] [stdout]    --> src/bin/game2.rs:830:108
[INFO] [stdout]     |
[INFO] [stdout] 830 | fn update_game(resources:&Resources, levels: &Vec<Level>, state: &mut GameState, input: &WinitInputHelper, frame: usize) {
[INFO] [stdout]     |                                                                                                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_frame`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pm`
[INFO] [stdout]   --> src/bin/game1.rs:90:24
[INFO] [stdout]    |
[INFO] [stdout] 90 |             Mode::Play(pm) => {
[INFO] [stdout]    |                        ^^ help: if this is intentional, prefix it with an underscore: `_pm`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `temp_stream_handle`
[INFO] [stdout]    --> src/bin/game1.rs:182:29
[INFO] [stdout]     |
[INFO] [stdout] 182 |                     let (_, temp_stream_handle) = OutputStream::try_default().unwrap();
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_temp_stream_handle`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pm`
[INFO] [stdout]    --> src/bin/game1.rs:248:24
[INFO] [stdout]     |
[INFO] [stdout] 248 |             Mode::Play(pm) => {
[INFO] [stdout]     |                        ^^ help: if this is intentional, prefix it with an underscore: `_pm`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/bin/game1.rs:288:9
[INFO] [stdout]     |
[INFO] [stdout] 288 |     let mut rsrc = Resources::new();
[INFO] [stdout]     |         ----^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/bin/game1.rs:563:9
[INFO] [stdout]     |
[INFO] [stdout] 563 |     let mut game = GameState{
[INFO] [stdout]     |         ----^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tileset1`
[INFO] [stdout]    --> src/bin/game1.rs:314:9
[INFO] [stdout]     |
[INFO] [stdout] 314 |     let tileset1 = Rc::new(Tileset::new(
[INFO] [stdout]     |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tileset1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `frame`
[INFO] [stdout]    --> src/bin/game1.rs:641:97
[INFO] [stdout]     |
[INFO] [stdout] 641 | fn draw_game(resources:&Resources, levels: &Vec<Level>, state: &GameState, screen: &mut Screen, frame:usize) {
[INFO] [stdout]     |                                                                                                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_frame`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `resources`
[INFO] [stdout]    --> src/bin/game1.rs:651:16
[INFO] [stdout]     |
[INFO] [stdout] 651 | fn update_game(resources:&Resources, levels: &Vec<Level>, state: &mut GameState, input: &WinitInputHelper, frame: usize) {
[INFO] [stdout]     |                ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_resources`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `frame`
[INFO] [stdout]    --> src/bin/game1.rs:651:108
[INFO] [stdout]     |
[INFO] [stdout] 651 | fn update_game(resources:&Resources, levels: &Vec<Level>, state: &mut GameState, input: &WinitInputHelper, frame: usize) {
[INFO] [stdout]     |                                                                                                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_frame`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ten_millis`
[INFO] [stdout]    --> src/bin/game1.rs:665:21
[INFO] [stdout]     |
[INFO] [stdout] 665 |                 let ten_millis = time::Duration::from_millis(500);
[INFO] [stdout]     |                     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ten_millis`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Battle` and `Menu` are never constructed
[INFO] [stdout]   --> src/bin/game1.rs:52:5
[INFO] [stdout]    |
[INFO] [stdout] 50 | enum PlayMode {
[INFO] [stdout]    |      -------- variants in this enum
[INFO] [stdout] 51 |     Map,
[INFO] [stdout] 52 |     Battle,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 53 |     Menu,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PlayMode` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `types` is never read
[INFO] [stdout]    --> src/bin/game1.rs:264:5
[INFO] [stdout]     |
[INFO] [stdout] 259 | struct GameState {
[INFO] [stdout]     |        --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 264 |     types: Vec<EntityType>,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 16s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: nom v6.1.2, wgpu-core v0.6.5
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 2`
[INFO] running `Command { std: "docker" "inspect" "3dffa015b3a14d92f3e68600c8bb651fd6792c49b132f25f31fefbd6db38ab3e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3dffa015b3a14d92f3e68600c8bb651fd6792c49b132f25f31fefbd6db38ab3e", kill_on_drop: false }`
[INFO] [stdout] 3dffa015b3a14d92f3e68600c8bb651fd6792c49b132f25f31fefbd6db38ab3e
