[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] testing valenxie/CS181-unit2 against 1.97.0-beta.6 for beta-1.98-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fvalenxie%2FCS181-unit2" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-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-1-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/valenxie/CS181-unit2 on toolchain 1.97.0-beta.6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.97.0-beta.6" "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.97.0-beta.6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded winit_input_helper v0.9.0
[INFO] [stderr]   Downloaded x11-dl v2.18.5
[INFO] [stderr]   Downloaded xcursor v0.3.3
[INFO] [stderr]   Downloaded dlib v0.4.2
[INFO] [stderr]   Downloaded andrew v0.3.1
[INFO] [stderr]   Downloaded ab_glyph_rasterizer v0.1.4
[INFO] [stderr]   Downloaded raw-window-handle v0.3.3
[INFO] [stderr]   Downloaded wayland-cursor v0.28.5
[INFO] [stderr]   Downloaded once_cell v1.7.0
[INFO] [stderr]   Downloaded parking_lot_core v0.8.3
[INFO] [stderr]   Downloaded weezl v0.1.4
[INFO] [stderr]   Downloaded jobserver v0.1.21
[INFO] [stderr]   Downloaded memmap2 v0.1.0
[INFO] [stderr]   Downloaded num_enum v0.5.1
[INFO] [stderr]   Downloaded thiserror-impl v1.0.24
[INFO] [stderr]   Downloaded core-graphics-types v0.1.1
[INFO] [stderr]   Downloaded wide v0.4.6
[INFO] [stderr]   Downloaded pollster v0.2.1
[INFO] [stderr]   Downloaded calloop v0.6.5
[INFO] [stderr]   Downloaded wasm-bindgen-macro v0.2.71
[INFO] [stderr]   Downloaded gfx-descriptor v0.2.0
[INFO] [stderr]   Downloaded futures-channel v0.3.13
[INFO] [stderr]   Downloaded crossbeam-utils v0.8.3
[INFO] [stderr]   Downloaded redox_syscall v0.2.5
[INFO] [stderr]   Downloaded num_enum_derive v0.5.1
[INFO] [stderr]   Downloaded inplace_it v0.3.3
[INFO] [stderr]   Downloaded d3d12 v0.3.2
[INFO] [stderr]   Downloaded futures-sink v0.3.13
[INFO] [stderr]   Downloaded dlib v0.5.0
[INFO] [stderr]   Downloaded cocoa-foundation v0.1.0
[INFO] [stderr]   Downloaded wgpu-types v0.6.1
[INFO] [stderr]   Downloaded range-alloc v0.1.2
[INFO] [stderr]   Downloaded crossbeam-epoch v0.9.3
[INFO] [stderr]   Downloaded rusttype v0.9.2
[INFO] [stderr]   Downloaded futures-io v0.3.13
[INFO] [stderr]   Downloaded tinyvec v1.1.1
[INFO] [stderr]   Downloaded wasm-bindgen-backend v0.2.71
[INFO] [stderr]   Downloaded oboe v0.4.1
[INFO] [stderr]   Downloaded gfx-memory v0.2.2
[INFO] [stderr]   Downloaded storage-map v0.3.0
[INFO] [stderr]   Downloaded futures-core v0.3.13
[INFO] [stderr]   Downloaded image v0.23.13
[INFO] [stderr]   Downloaded gfx-auxil v0.7.0
[INFO] [stderr]   Downloaded futures-task v0.3.13
[INFO] [stderr]   Downloaded wasm-bindgen-shared v0.2.71
[INFO] [stderr]   Downloaded ndk-glue v0.3.0
[INFO] [stderr]   Downloaded wayland-client v0.28.5
[INFO] [stderr]   Downloaded gfx-backend-empty v0.6.0
[INFO] [stderr]   Downloaded wasm-bindgen-futures v0.4.21
[INFO] [stderr]   Downloaded typed-arena v2.0.1
[INFO] [stderr]   Downloaded futures-macro v0.3.13
[INFO] [stderr]   Downloaded wayland-sys v0.28.5
[INFO] [stderr]   Downloaded xdg v2.2.0
[INFO] [stderr]   Downloaded wayland-commons v0.28.5
[INFO] [stderr]   Downloaded smallvec v1.6.1
[INFO] [stderr]   Downloaded core-graphics v0.22.2
[INFO] [stderr]   Downloaded jni v0.18.0
[INFO] [stderr]   Downloaded thunderdome v0.3.0
[INFO] [stderr]   Downloaded thiserror v1.0.24
[INFO] [stderr]   Downloaded wasm-bindgen-macro-support v0.2.71
[INFO] [stderr]   Downloaded wayland-scanner v0.28.5
[INFO] [stderr]   Downloaded owned_ttf_parser v0.6.0
[INFO] [stderr]   Downloaded clang-sys v1.1.1
[INFO] [stderr]   Downloaded pixels v0.2.0
[INFO] [stderr]   Downloaded gfx-backend-vulkan v0.6.5
[INFO] [stderr]   Downloaded futures v0.3.13
[INFO] [stderr]   Downloaded futures-executor v0.3.13
[INFO] [stderr]   Downloaded ultraviolet v0.4.6
[INFO] [stderr]   Downloaded bytemuck v1.5.1
[INFO] [stderr]   Downloaded libloading v0.7.0
[INFO] [stderr]   Downloaded cocoa v0.24.0
[INFO] [stderr]   Downloaded ndk v0.3.0
[INFO] [stderr]   Downloaded bytes v1.0.1
[INFO] [stderr]   Downloaded coreaudio-rs v0.10.0
[INFO] [stderr]   Downloaded spirv_headers v1.5.0
[INFO] [stderr]   Downloaded alsa v0.5.0
[INFO] [stderr]   Downloaded x11 v2.18.2
[INFO] [stderr]   Downloaded xml-rs v0.8.3
[INFO] [stderr]   Downloaded cc v1.0.67
[INFO] [stderr]   Downloaded ttf-parser v0.6.2
[INFO] [stderr]   Downloaded js-sys v0.3.48
[INFO] [stderr]   Downloaded tracing v0.1.25
[INFO] [stderr]   Downloaded gfx-hal v0.6.0
[INFO] [stderr]   Downloaded gfx-backend-dx12 v0.6.13
[INFO] [stderr]   Downloaded gfx-backend-dx11 v0.6.17
[INFO] [stderr]   Downloaded serde v1.0.123
[INFO] [stderr]   Downloaded naga v0.2.0
[INFO] [stderr]   Downloaded smithay-client-toolkit v0.12.2
[INFO] [stderr]   Downloaded cpal v0.13.2
[INFO] [stderr]   Downloaded wgpu v0.6.2
[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 gfx-backend-metal v0.6.5
[INFO] [stderr]   Downloaded futures-util v0.3.13
[INFO] [stderr]   Downloaded wayland-protocols v0.28.5
[INFO] [stderr]   Downloaded wasm-bindgen v0.2.71
[INFO] [stderr]   Downloaded bumpalo v3.6.1
[INFO] [stderr]   Downloaded regex v1.4.5
[INFO] [stderr]   Downloaded winit v0.24.0
[INFO] [stderr]   Downloaded regex-syntax v0.6.23
[INFO] [stderr]   Downloaded ash v0.31.0
[INFO] [stderr]   Downloaded libc v0.2.91
[INFO] [stderr]   Downloaded spirv_cross v0.22.2
[INFO] [stderr]   Downloaded web-sys v0.3.48
[INFO] [stderr]   Downloaded metal v0.20.0
[INFO] [stderr]   Downloaded rodio v0.13.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3d5ced03c013a94a2f102a4510f48a6e9184255caf5fd8244f58017bde7f5210" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] e3aff45bde2ef81fe7570a6ee52e7647f3f58fc369a79670ce530c79fa59c157
[INFO] running `Command { std: "docker" "start" "e3aff45bde2ef81fe7570a6ee52e7647f3f58fc369a79670ce530c79fa59c157", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "e3aff45bde2ef81fe7570a6ee52e7647f3f58fc369a79670ce530c79fa59c157", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "e3aff45bde2ef81fe7570a6ee52e7647f3f58fc369a79670ce530c79fa59c157" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "e3aff45bde2ef81fe7570a6ee52e7647f3f58fc369a79670ce530c79fa59c157", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "e3aff45bde2ef81fe7570a6ee52e7647f3f58fc369a79670ce530c79fa59c157" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.91
[INFO] [stderr]    Compiling pkg-config v0.3.19
[INFO] [stderr]    Compiling log v0.4.14
[INFO] [stderr]    Compiling smallvec v1.6.1
[INFO] [stderr]    Compiling syn v1.0.60
[INFO] [stderr]    Compiling byteorder v1.4.2
[INFO] [stderr]    Compiling xml-rs v0.8.3
[INFO] [stderr]    Compiling crossbeam-utils v0.8.3
[INFO] [stderr]    Compiling instant v0.1.9
[INFO] [stderr]    Compiling memoffset v0.6.1
[INFO] [stderr]    Compiling libloading v0.7.0
[INFO] [stderr]    Compiling libloading v0.6.7
[INFO] [stderr]    Compiling quote v1.0.9
[INFO] [stderr]    Compiling lock_api v0.4.2
[INFO] [stderr]    Compiling nom v6.1.2
[INFO] [stderr]    Compiling once_cell v1.7.0
[INFO] [stderr]    Compiling rayon-core v1.9.0
[INFO] [stderr]    Compiling dlib v0.5.0
[INFO] [stderr]    Compiling fxhash v0.2.1
[INFO] [stderr]    Compiling nix v0.18.0
[INFO] [stderr]    Compiling futures-sink v0.3.13
[INFO] [stderr]    Compiling scoped-tls v1.0.0
[INFO] [stderr]    Compiling ttf-parser v0.6.2
[INFO] [stderr]    Compiling futures-core v0.3.13
[INFO] [stderr]    Compiling downcast-rs v1.2.0
[INFO] [stderr]    Compiling rayon v1.5.0
[INFO] [stderr]    Compiling futures-task v0.3.13
[INFO] [stderr]    Compiling futures-io v0.3.13
[INFO] [stderr]    Compiling maybe-uninit v2.0.0
[INFO] [stderr]    Compiling ab_glyph_rasterizer v0.1.4
[INFO] [stderr]    Compiling arrayvec v0.5.2
[INFO] [stderr]    Compiling walkdir v2.3.1
[INFO] [stderr]    Compiling ash v0.31.0
[INFO] [stderr]    Compiling futures-channel v0.3.13
[INFO] [stderr]    Compiling spirv_headers v1.5.0
[INFO] [stderr]    Compiling wayland-sys v0.28.5
[INFO] [stderr]    Compiling x11 v2.18.2
[INFO] [stderr]    Compiling alsa-sys v0.3.1
[INFO] [stderr]    Compiling wayland-scanner v0.28.5
[INFO] [stderr]    Compiling x11-dl v2.18.5
[INFO] [stderr]    Compiling miniz_oxide v0.4.4
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.3
[INFO] [stderr]    Compiling crossbeam-channel v0.5.0
[INFO] [stderr]    Compiling tracing-core v0.1.17
[INFO] [stderr]    Compiling either v1.6.1
[INFO] [stderr]    Compiling inplace_it v0.3.3
[INFO] [stderr]    Compiling bytemuck v1.5.1
[INFO] [stderr]    Compiling xdg v2.2.0
[INFO] [stderr]    Compiling crossbeam-deque v0.8.0
[INFO] [stderr]    Compiling crc32fast v1.2.1
[INFO] [stderr]    Compiling adler32 v1.2.0
[INFO] [stderr]    Compiling wide v0.4.6
[INFO] [stderr]    Compiling tracing v0.1.25
[INFO] [stderr]    Compiling dlib v0.4.2
[INFO] [stderr]    Compiling wgpu-types v0.6.1
[INFO] [stderr]    Compiling num-rational v0.3.2
[INFO] [stderr]    Compiling num-iter v0.1.42
[INFO] [stderr]    Compiling lazycell v1.3.0
[INFO] [stderr]    Compiling cpal v0.13.2
[INFO] [stderr]    Compiling weezl v0.1.4
[INFO] [stderr]    Compiling owned_ttf_parser v0.6.0
[INFO] [stderr]    Compiling copyless v0.1.5
[INFO] [stderr]    Compiling rusttype v0.9.2
[INFO] [stderr]    Compiling tinyvec v1.1.1
[INFO] [stderr]    Compiling miniz_oxide v0.3.7
[INFO] [stderr]    Compiling deflate v0.8.6
[INFO] [stderr]    Compiling andrew v0.3.1
[INFO] [stderr]    Compiling ogg v0.8.0
[INFO] [stderr]    Compiling typed-arena v2.0.1
[INFO] [stderr]    Compiling gif v0.11.1
[INFO] [stderr]    Compiling pollster v0.2.1
[INFO] [stderr]    Compiling hound v3.4.0
[INFO] [stderr]    Compiling scoped_threadpool v0.1.9
[INFO] [stderr]    Compiling wayland-client v0.28.5
[INFO] [stderr]    Compiling nix v0.20.0
[INFO] [stderr]    Compiling raw-window-handle v0.3.3
[INFO] [stderr]    Compiling parking_lot_core v0.8.3
[INFO] [stderr]    Compiling jobserver v0.1.21
[INFO] [stderr]    Compiling parking_lot v0.11.1
[INFO] [stderr]    Compiling gfx-hal v0.6.0
[INFO] [stderr]    Compiling num_cpus v1.13.0
[INFO] [stderr]    Compiling cc v1.0.67
[INFO] [stderr]    Compiling wayland-protocols v0.28.5
[INFO] [stderr]    Compiling xcursor v0.3.3
[INFO] [stderr]    Compiling iovec v0.1.4
[INFO] [stderr]    Compiling net2 v0.2.37
[INFO] [stderr]    Compiling mio v0.6.23
[INFO] [stderr]    Compiling memmap2 v0.1.0
[INFO] [stderr]    Compiling slice-deque v0.3.0
[INFO] [stderr]    Compiling lewton v0.10.2
[INFO] [stderr]    Compiling png v0.16.8
[INFO] [stderr]    Compiling ultraviolet v0.4.6
[INFO] [stderr]    Compiling mio-extras v2.0.6
[INFO] [stderr]    Compiling claxon v0.4.3
[INFO] [stderr]    Compiling minimp3-sys v0.3.2
[INFO] [stderr]    Compiling gfx-descriptor v0.2.0
[INFO] [stderr]    Compiling gfx-backend-empty v0.6.0
[INFO] [stderr]    Compiling gfx-memory v0.2.2
[INFO] [stderr]    Compiling wayland-commons v0.28.5
[INFO] [stderr]    Compiling alsa v0.5.0
[INFO] [stderr]    Compiling thiserror-impl v1.0.24
[INFO] [stderr]    Compiling futures-macro v0.3.13
[INFO] [stderr]    Compiling futures-util v0.3.13
[INFO] [stderr]    Compiling jpeg-decoder v0.1.22
[INFO] [stderr]    Compiling calloop v0.6.5
[INFO] [stderr]    Compiling thiserror v1.0.24
[INFO] [stderr]    Compiling tiff v0.6.1
[INFO] [stderr]    Compiling naga v0.2.0
[INFO] [stderr]    Compiling minimp3 v0.5.1
[INFO] [stderr]    Compiling wayland-cursor v0.28.5
[INFO] [stderr]    Compiling rodio v0.13.1
[INFO] [stderr]    Compiling image v0.23.13
[INFO] [stderr]    Compiling gfx-backend-vulkan v0.6.5
[INFO] [stderr]    Compiling wgpu-core v0.6.5
[INFO] [stderr]    Compiling futures-executor v0.3.13
[INFO] [stderr]    Compiling futures v0.3.13
[INFO] [stderr]    Compiling wgpu v0.6.2
[INFO] [stderr]    Compiling pixels v0.2.0
[INFO] [stderr]    Compiling smithay-client-toolkit v0.12.2
[INFO] [stderr]    Compiling winit v0.24.0
[INFO] [stderr]    Compiling winit_input_helper v0.9.0
[INFO] [stderr]    Compiling 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: 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: `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: `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 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] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 06s
[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" "e3aff45bde2ef81fe7570a6ee52e7647f3f58fc369a79670ce530c79fa59c157", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "e3aff45bde2ef81fe7570a6ee52e7647f3f58fc369a79670ce530c79fa59c157" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[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] [stderr]    Compiling engine2d v0.1.0 (/opt/rustwide/workdir)
[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 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 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: `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: `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: 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: 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: 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: 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: 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: 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: 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: 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 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] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 2.40s
[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" "e3aff45bde2ef81fe7570a6ee52e7647f3f58fc369a79670ce530c79fa59c157", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "e3aff45bde2ef81fe7570a6ee52e7647f3f58fc369a79670ce530c79fa59c157" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `std::fs::File`
[INFO] [stderr]  --> src/lib.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use std::fs::File;
[INFO] [stderr]   |     ^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::io::BufReader`
[INFO] [stderr]  --> src/lib.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use std::io::BufReader;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Duration`
[INFO] [stderr]  --> src/lib.rs:3:17
[INFO] [stderr]   |
[INFO] [stderr] 3 | use std::time::{Duration, Instant};
[INFO] [stderr]   |                 ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `OutputStreamHandle` and `Source`
[INFO] [stderr]  --> src/lib.rs:5:13
[INFO] [stderr]   |
[INFO] [stderr] 5 | use rodio::{OutputStreamHandle, Source};
[INFO] [stderr]   |             ^^^^^^^^^^^^^^^^^^  ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Rect`
[INFO] [stderr]  --> src/sprite.rs:2:20
[INFO] [stderr]   |
[INFO] [stderr] 2 | use crate::types::{Rect, Vec2i};
[INFO] [stderr]   |                    ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::animation::AnimationState`
[INFO] [stderr]  --> src/graphics.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | use crate::animation::AnimationState;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::rc::Rc`
[INFO] [stderr]  --> src/graphics.rs:6:5
[INFO] [stderr]   |
[INFO] [stderr] 6 | use std::rc::Rc;
[INFO] [stderr]   |     ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `DrawText`
[INFO] [stderr]  --> src/resources.rs:4:25
[INFO] [stderr]   |
[INFO] [stderr] 4 | use crate::text::{self, DrawText};
[INFO] [stderr]   |                         ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `resources::*`
[INFO] [stderr]  --> src/collision.rs:2:13
[INFO] [stderr]   |
[INFO] [stderr] 2 | use crate::{resources::*, tiles::Tile};
[INFO] [stderr]   |             ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::rc::Rc`
[INFO] [stderr]  --> src/collision.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 4 | use std::rc::Rc; 
[INFO] [stderr]   |     ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::animation::*`
[INFO] [stderr]  --> src/collision.rs:5:5
[INFO] [stderr]   |
[INFO] [stderr] 5 | use crate::animation::*;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/collision.rs:66:13
[INFO] [stderr]    |
[INFO] [stderr] 66 |         let mut rect1 = Rect {
[INFO] [stderr]    |             ----^^^^^
[INFO] [stderr]    |             |
[INFO] [stderr]    |             help: remove this `mut`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/collision.rs:76:21
[INFO] [stderr]    |
[INFO] [stderr] 76 |                 let mut rect2 = Rect {
[INFO] [stderr]    |                     ----^^^^^
[INFO] [stderr]    |                     |
[INFO] [stderr]    |                     help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/collision.rs:94:13
[INFO] [stderr]    |
[INFO] [stderr] 94 |         let mut rect1 = Rect {
[INFO] [stderr]    |             ----^^^^^
[INFO] [stderr]    |             |
[INFO] [stderr]    |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `pos`
[INFO] [stderr]   --> src/collision.rs:93:14
[INFO] [stderr]    |
[INFO] [stderr] 93 |     for (i, (pos, sz)) in positions.iter().zip(sizes.iter()).enumerate() {
[INFO] [stderr]    |              ^^^ help: if this is intentional, prefix it with an underscore: `_pos`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `sz`
[INFO] [stderr]   --> src/collision.rs:93:19
[INFO] [stderr]    |
[INFO] [stderr] 93 |     for (i, (pos, sz)) in positions.iter().zip(sizes.iter()).enumerate() {
[INFO] [stderr]    |                   ^^ help: if this is intentional, prefix it with an underscore: `_sz`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `tmi`
[INFO] [stderr]    --> src/collision.rs:100:14
[INFO] [stderr]     |
[INFO] [stderr] 100 |         for (tmi,tm) in tilemaps.iter().enumerate(){
[INFO] [stderr]     |              ^^^ help: if this is intentional, prefix it with an underscore: `_tmi`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/collision.rs:128:13
[INFO] [stderr]     |
[INFO] [stderr] 128 |         let mut a_rect = Rect {
[INFO] [stderr]     |             ----^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: fields `image` and `animation` are never read
[INFO] [stderr]   --> src/sprite.rs:14:5
[INFO] [stderr]    |
[INFO] [stderr] 13 | pub struct Sprite {
[INFO] [stderr]    |            ------ fields in this struct
[INFO] [stderr] 14 |     image: Rc<Texture>,
[INFO] [stderr]    |     ^^^^^
[INFO] [stderr] 15 |     animation: Rc<Animation>, // Maybe better to use a type that can't have a negative origin
[INFO] [stderr]    |     ^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `engine2d` (lib) generated 19 warnings (run `cargo fix --lib -p engine2d` to apply 18 suggestions)
[INFO] [stderr] warning: `engine2d` (lib test) generated 19 warnings (19 duplicates)
[INFO] [stderr] warning: unused import: `engine2d::collision::*`
[INFO] [stderr]   --> src/bin/game1.rs:14:5
[INFO] [stderr]    |
[INFO] [stderr] 14 | use engine2d::collision::*;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Sink`
[INFO] [stderr]   --> src/bin/game1.rs:19:36
[INFO] [stderr]    |
[INFO] [stderr] 19 | use rodio::{Decoder, OutputStream, Sink};
[INFO] [stderr]    |                                    ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `SineWave`
[INFO] [stderr]   --> src/bin/game1.rs:20:21
[INFO] [stderr]    |
[INFO] [stderr] 20 | use rodio::source::{SineWave, Source};
[INFO] [stderr]    |                     ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `pm`
[INFO] [stderr]   --> src/bin/game1.rs:90:24
[INFO] [stderr]    |
[INFO] [stderr] 90 |             Mode::Play(pm) => {
[INFO] [stderr]    |                        ^^ help: if this is intentional, prefix it with an underscore: `_pm`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `temp_stream_handle`
[INFO] [stderr]    --> src/bin/game1.rs:182:29
[INFO] [stderr]     |
[INFO] [stderr] 182 |                     let (_, temp_stream_handle) = OutputStream::try_default().unwrap();
[INFO] [stderr]     |                             ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_temp_stream_handle`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `pm`
[INFO] [stderr]    --> src/bin/game1.rs:248:24
[INFO] [stderr]     |
[INFO] [stderr] 248 |             Mode::Play(pm) => {
[INFO] [stderr]     |                        ^^ help: if this is intentional, prefix it with an underscore: `_pm`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/bin/game1.rs:288:9
[INFO] [stderr]     |
[INFO] [stderr] 288 |     let mut rsrc = Resources::new();
[INFO] [stderr]     |         ----^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/bin/game1.rs:563:9
[INFO] [stderr]     |
[INFO] [stderr] 563 |     let mut game = GameState{
[INFO] [stderr]     |         ----^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `tileset1`
[INFO] [stderr]    --> src/bin/game1.rs:314:9
[INFO] [stderr]     |
[INFO] [stderr] 314 |     let tileset1 = Rc::new(Tileset::new(
[INFO] [stderr]     |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tileset1`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `frame`
[INFO] [stderr]    --> src/bin/game1.rs:641:97
[INFO] [stderr]     |
[INFO] [stderr] 641 | fn draw_game(resources:&Resources, levels: &Vec<Level>, state: &GameState, screen: &mut Screen, frame:usize) {
[INFO] [stderr]     |                                                                                                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_frame`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `resources`
[INFO] [stderr]    --> src/bin/game1.rs:651:16
[INFO] [stderr]     |
[INFO] [stderr] 651 | fn update_game(resources:&Resources, levels: &Vec<Level>, state: &mut GameState, input: &WinitInputHelper, frame: usize) {
[INFO] [stderr]     |                ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_resources`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `frame`
[INFO] [stderr]    --> src/bin/game1.rs:651:108
[INFO] [stderr]     |
[INFO] [stderr] 651 | fn update_game(resources:&Resources, levels: &Vec<Level>, state: &mut GameState, input: &WinitInputHelper, frame: usize) {
[INFO] [stderr]     |                                                                                                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_frame`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `ten_millis`
[INFO] [stderr]    --> src/bin/game1.rs:665:21
[INFO] [stderr]     |
[INFO] [stderr] 665 |                 let ten_millis = time::Duration::from_millis(500);
[INFO] [stderr]     |                     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ten_millis`
[INFO] [stderr] 
[INFO] [stderr] warning: variants `Battle` and `Menu` are never constructed
[INFO] [stderr]   --> src/bin/game1.rs:52:5
[INFO] [stderr]    |
[INFO] [stderr] 50 | enum PlayMode {
[INFO] [stderr]    |      -------- variants in this enum
[INFO] [stderr] 51 |     Map,
[INFO] [stderr] 52 |     Battle,
[INFO] [stderr]    |     ^^^^^^
[INFO] [stderr] 53 |     Menu,
[INFO] [stderr]    |     ^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `PlayMode` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: field `types` is never read
[INFO] [stderr]    --> src/bin/game1.rs:264:5
[INFO] [stderr]     |
[INFO] [stderr] 259 | struct GameState {
[INFO] [stderr]     |        --------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 264 |     types: Vec<EntityType>,
[INFO] [stderr]     |     ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `core::time`
[INFO] [stderr]  --> src/bin/game2.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use core::time;
[INFO] [stderr]   |     ^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `time::Duration`
[INFO] [stderr]  --> src/bin/game2.rs:2:48
[INFO] [stderr]   |
[INFO] [stderr] 2 | use std::{fs::File, io::BufReader, path::Path, time::Duration};
[INFO] [stderr]   |                                                ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `animation` and `texture`
[INFO] [stderr]   --> src/bin/game2.rs:10:16
[INFO] [stderr]    |
[INFO] [stderr] 10 | use engine2d::{animation, texture, types::*};
[INFO] [stderr]    |                ^^^^^^^^^  ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `self`
[INFO] [stderr]   --> src/bin/game2.rs:14:22
[INFO] [stderr]    |
[INFO] [stderr] 14 | use engine2d::text::{self, DrawText};
[INFO] [stderr]    |                      ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `engine2d::sprite::*`
[INFO] [stderr]   --> src/bin/game2.rs:15:5
[INFO] [stderr]    |
[INFO] [stderr] 15 | use engine2d::sprite::*;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `engine2d::collision::*`
[INFO] [stderr]   --> src/bin/game2.rs:17:5
[INFO] [stderr]    |
[INFO] [stderr] 17 | use engine2d::collision::*;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Sink`
[INFO] [stderr]   --> src/bin/game2.rs:22:36
[INFO] [stderr]    |
[INFO] [stderr] 22 | use rodio::{Decoder, OutputStream, Sink};
[INFO] [stderr]    |                                    ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `SineWave`
[INFO] [stderr]   --> src/bin/game2.rs:23:21
[INFO] [stderr]    |
[INFO] [stderr] 23 | use rodio::source::{SineWave, Source};
[INFO] [stderr]    |                     ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variant `lvl1Exit` should have an upper camel case name
[INFO] [stderr]   --> src/bin/game2.rs:34:5
[INFO] [stderr]    |
[INFO] [stderr] 34 |     lvl1Exit,
[INFO] [stderr]    |     ^^^^^^^^ help: convert the identifier to upper camel case: `Lvl1exit`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variant `lvl2Exit` should have an upper camel case name
[INFO] [stderr]   --> src/bin/game2.rs:35:5
[INFO] [stderr]    |
[INFO] [stderr] 35 |     lvl2Exit,
[INFO] [stderr]    |     ^^^^^^^^ help: convert the identifier to upper camel case: `Lvl2exit`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `lvl2Entrance` should have an upper camel case name
[INFO] [stderr]   --> src/bin/game2.rs:36:5
[INFO] [stderr]    |
[INFO] [stderr] 36 |     lvl2Entrance,
[INFO] [stderr]    |     ^^^^^^^^^^^^ help: convert the identifier to upper camel case: `Lvl2entrance`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `levels`
[INFO] [stderr]   --> src/bin/game2.rs:61:55
[INFO] [stderr]    |
[INFO] [stderr] 61 |     fn update(self, game:&mut GameState, input:&Input,levels: &Vec<Level>) -> Self {
[INFO] [stderr]    |                                                       ^^^^^^ help: if this is intentional, prefix it with an underscore: `_levels`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/bin/game2.rs:270:23
[INFO] [stderr]     |
[INFO] [stderr] 270 |                 for ((mut pos,mut tex),mut anim) in game.positions.iter().zip(game.textures.iter()).zip(game.anim_state.iter()) {
[INFO] [stderr]     |                       ----^^^
[INFO] [stderr]     |                       |
[INFO] [stderr]     |                       help: remove this `mut`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/bin/game2.rs:270:31
[INFO] [stderr]     |
[INFO] [stderr] 270 |                 for ((mut pos,mut tex),mut anim) in game.positions.iter().zip(game.textures.iter()).zip(game.anim_state.iter()) {
[INFO] [stderr]     |                               ----^^^
[INFO] [stderr]     |                               |
[INFO] [stderr]     |                               help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/bin/game2.rs:270:40
[INFO] [stderr]     |
[INFO] [stderr] 270 |                 for ((mut pos,mut tex),mut anim) in game.positions.iter().zip(game.textures.iter()).zip(game.anim_state.iter()) {
[INFO] [stderr]     |                                        ----^^^^
[INFO] [stderr]     |                                        |
[INFO] [stderr]     |                                        help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `enemy_anim`
[INFO] [stderr]    --> src/bin/game2.rs:753:9
[INFO] [stderr]     |
[INFO] [stderr] 753 |     let enemy_anim = Rc::new(Animation::freeze(Rect{x:0,y:0,w:16,h:32}));
[INFO] [stderr]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_enemy_anim`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `frame`
[INFO] [stderr]    --> src/bin/game2.rs:824:97
[INFO] [stderr]     |
[INFO] [stderr] 824 | fn draw_game(resources:&Resources, levels: &Vec<Level>, state: &GameState, screen: &mut Screen, frame:usize) {
[INFO] [stderr]     |                                                                                                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_frame`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `frame`
[INFO] [stderr]    --> src/bin/game2.rs:830:108
[INFO] [stderr]     |
[INFO] [stderr] 830 | fn update_game(resources:&Resources, levels: &Vec<Level>, state: &mut GameState, input: &WinitInputHelper, frame: usize) {
[INFO] [stderr]     |                                                                                                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_frame`
[INFO] [stderr] 
[INFO] [stderr] warning: `engine2d` (bin "game1" test) generated 15 warnings (run `cargo fix --bin "game1" -p engine2d --tests` to apply 13 suggestions)
[INFO] [stderr] warning: `engine2d` (bin "game2" test) generated 18 warnings (run `cargo fix --bin "game2" -p engine2d --tests` to apply 15 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.24s
[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] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/engine2d-7da53de037e7e360)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/bin/game1.rs (/opt/rustwide/target/debug/deps/game1-f27fe3a8a7a0e1ac)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/bin/game2.rs (/opt/rustwide/target/debug/deps/game2-65a71c129e13a0af)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests engine2d
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "e3aff45bde2ef81fe7570a6ee52e7647f3f58fc369a79670ce530c79fa59c157", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e3aff45bde2ef81fe7570a6ee52e7647f3f58fc369a79670ce530c79fa59c157", kill_on_drop: false }`
[INFO] [stdout] e3aff45bde2ef81fe7570a6ee52e7647f3f58fc369a79670ce530c79fa59c157
