[INFO] cloning repository https://github.com/lprib/bimp
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/lprib/bimp" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Flprib%2Fbimp", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Flprib%2Fbimp'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] e48ef6e94880acb006e8720cd547741f2130078e
[INFO] checking lprib/bimp against 1.95.0 for pr-155915
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Flprib%2Fbimp" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/lprib/bimp
[INFO] finished tweaking git repo https://github.com/lprib/bimp
[INFO] tweaked toml for git repo https://github.com/lprib/bimp written to /workspace/builds/worker-2-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/lprib/bimp 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/lprib/bimp 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 wayland-cursor v0.28.6
[INFO] [stderr]   Downloaded wayland-sys v0.28.6
[INFO] [stderr]   Downloaded wayland-commons v0.28.6
[INFO] [stderr]   Downloaded wayland-scanner v0.28.6
[INFO] [stderr]   Downloaded gpu-alloc-types v0.2.0
[INFO] [stderr]   Downloaded lyon v0.17.10
[INFO] [stderr]   Downloaded renderdoc-sys v0.7.1
[INFO] [stderr]   Downloaded ab_glyph_rasterizer v0.1.5
[INFO] [stderr]   Downloaded smithay-client-toolkit v0.12.3
[INFO] [stderr]   Downloaded find_folder v0.3.0
[INFO] [stderr]   Downloaded nannou_mesh v0.18.0
[INFO] [stderr]   Downloaded sid v0.6.1
[INFO] [stderr]   Downloaded nannou_core v0.18.0
[INFO] [stderr]   Downloaded ndk v0.3.0
[INFO] [stderr]   Downloaded lyon_algorithms v0.17.7
[INFO] [stderr]   Downloaded calloop v0.6.5
[INFO] [stderr]   Downloaded bytemuck v1.9.1
[INFO] [stderr]   Downloaded nannou_wgpu v0.18.0
[INFO] [stderr]   Downloaded euclid v0.22.7
[INFO] [stderr]   Downloaded palette v0.5.0
[INFO] [stderr]   Downloaded wayland-protocols v0.28.6
[INFO] [stderr]   Downloaded ttf-parser v0.6.2
[INFO] [stderr]   Downloaded wgpu-core v0.11.3
[INFO] [stderr]   Downloaded wgpu v0.11.1
[INFO] [stderr]   Downloaded lyon_tessellation v0.17.10
[INFO] [stderr]   Downloaded wgpu-hal v0.11.5
[INFO] [stderr]   Downloaded lyon_geom v0.17.6
[INFO] [stderr]   Downloaded noise v0.7.0
[INFO] [stderr]   Downloaded winit v0.25.0
[INFO] [stderr]   Downloaded nannou v0.18.1
[INFO] [stderr]   Downloaded wgpu-types v0.11.0
[INFO] [stderr]   Downloaded owned_ttf_parser v0.6.0
[INFO] [stderr]   Downloaded weezl v0.1.6
[INFO] [stderr]   Downloaded lyon_path v0.17.7
[INFO] [stderr]   Downloaded ash v0.33.3+1.2.191
[INFO] [stderr]   Downloaded naga v0.7.3
[INFO] [stderr]   Downloaded gpu-alloc v0.5.3
[INFO] [stderr]   Downloaded wayland-client v0.28.6
[INFO] [stderr]   Downloaded pennereq v0.3.1
[INFO] [stderr]   Downloaded gpu-descriptor-types v0.1.1
[INFO] [stderr]   Downloaded rusttype v0.9.2
[INFO] [stderr]   Downloaded notosans v0.1.0
[INFO] [stderr]   Downloaded andrew v0.3.1
[INFO] [stderr]   Downloaded wasm-bindgen-futures v0.4.30
[INFO] [stderr]   Downloaded d3d12 v0.4.1
[INFO] [stderr]   Downloaded inplace_it v0.3.3
[INFO] [stderr]   Downloaded palette_derive v0.5.0
[INFO] [stderr]   Downloaded gpu-descriptor v0.2.2
[INFO] [stderr]   Downloaded mio-misc v1.2.2
[INFO] [stderr]   Downloaded metal v0.23.1
[INFO] [stderr]   Downloaded ndk-glue v0.3.0
[INFO] [stderr]   Downloaded profiling v1.0.6
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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] d0f263f430de242c012249babff8a8c4d45bfecb05dfc39e5e93a6fcb7f51110
[INFO] running `Command { std: "docker" "start" "-a" "d0f263f430de242c012249babff8a8c4d45bfecb05dfc39e5e93a6fcb7f51110", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "d0f263f430de242c012249babff8a8c4d45bfecb05dfc39e5e93a6fcb7f51110", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d0f263f430de242c012249babff8a8c4d45bfecb05dfc39e5e93a6fcb7f51110", kill_on_drop: false }`
[INFO] [stdout] d0f263f430de242c012249babff8a8c4d45bfecb05dfc39e5e93a6fcb7f51110
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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] c2792965c136c872faab5161cfe9481b82bc9e549dbe9771dfc063008b996a76
[INFO] running `Command { std: "docker" "start" "-a" "c2792965c136c872faab5161cfe9481b82bc9e549dbe9771dfc063008b996a76", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.126
[INFO] [stderr]    Compiling proc-macro2 v1.0.39
[INFO] [stderr]    Compiling unicode-ident v1.0.0
[INFO] [stderr]    Compiling num-traits v0.2.15
[INFO] [stderr]    Compiling syn v1.0.96
[INFO] [stderr]    Compiling crossbeam-utils v0.8.8
[INFO] [stderr]     Checking once_cell v1.12.0
[INFO] [stderr]    Compiling memoffset v0.6.5
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.8
[INFO] [stderr]     Checking smallvec v1.8.0
[INFO] [stderr]     Checking libloading v0.7.3
[INFO] [stderr]    Compiling xml-rs v0.8.4
[INFO] [stderr]    Compiling rayon-core v1.9.3
[INFO] [stderr]    Compiling ahash v0.7.6
[INFO] [stderr]    Compiling serde_derive v1.0.137
[INFO] [stderr]    Compiling wayland-sys v0.28.6
[INFO] [stderr]    Compiling lock_api v0.4.7
[INFO] [stderr]    Compiling serde v1.0.137
[INFO] [stderr]    Compiling parking_lot_core v0.8.5
[INFO] [stderr]     Checking dlib v0.5.0
[INFO] [stderr]     Checking instant v0.1.12
[INFO] [stderr]    Compiling rayon v1.5.3
[INFO] [stderr]    Compiling num-integer v0.1.45
[INFO] [stderr]    Compiling indexmap v1.8.2
[INFO] [stderr]    Compiling futures-core v0.3.21
[INFO] [stderr]     Checking cty v0.2.2
[INFO] [stderr]    Compiling miniz_oxide v0.4.4
[INFO] [stderr]     Checking adler32 v1.2.0
[INFO] [stderr]     Checking unicode-width v0.1.9
[INFO] [stderr]     Checking raw-window-handle v0.4.3
[INFO] [stderr]    Compiling futures-channel v0.3.21
[INFO] [stderr]    Compiling khronos-egl v4.1.0
[INFO] [stderr]     Checking either v1.6.1
[INFO] [stderr]    Compiling futures-task v0.3.21
[INFO] [stderr]     Checking codespan-reporting v0.11.1
[INFO] [stderr]     Checking bit-set v0.5.2
[INFO] [stderr]     Checking gpu-descriptor-types v0.1.1
[INFO] [stderr]    Compiling quote v1.0.18
[INFO] [stderr]     Checking gpu-alloc-types v0.2.0
[INFO] [stderr]     Checking fxhash v0.2.1
[INFO] [stderr]    Compiling crossbeam-utils v0.7.2
[INFO] [stderr]    Compiling num-rational v0.3.2
[INFO] [stderr]    Compiling memoffset v0.5.6
[INFO] [stderr]    Compiling num-iter v0.1.43
[INFO] [stderr]    Compiling crossbeam-queue v0.3.5
[INFO] [stderr]     Checking weezl v0.1.6
[INFO] [stderr]     Checking futures-sink v0.3.21
[INFO] [stderr]     Checking scoped-tls v1.0.0
[INFO] [stderr]    Compiling nix v0.18.0
[INFO] [stderr]    Compiling futures-util v0.3.21
[INFO] [stderr]     Checking ttf-parser v0.6.2
[INFO] [stderr]    Compiling wgpu-core v0.11.3
[INFO] [stderr]     Checking gpu-alloc v0.5.3
[INFO] [stderr]     Checking crossbeam-channel v0.5.4
[INFO] [stderr]    Compiling wayland-scanner v0.28.6
[INFO] [stderr]     Checking deflate v0.8.6
[INFO] [stderr]     Checking miniz_oxide v0.3.7
[INFO] [stderr]     Checking ash v0.33.3+1.2.191
[INFO] [stderr]     Checking wgpu-types v0.11.0
[INFO] [stderr]    Compiling crossbeam-epoch v0.8.2
[INFO] [stderr]     Checking arrayvec v0.7.2
[INFO] [stderr]     Checking profiling v1.0.6
[INFO] [stderr]     Checking crossbeam-deque v0.8.1
[INFO] [stderr]     Checking ab_glyph_rasterizer v0.1.5
[INFO] [stderr]     Checking futures-io v0.3.21
[INFO] [stderr]     Checking inplace_it v0.3.3
[INFO] [stderr]     Checking renderdoc-sys v0.7.1
[INFO] [stderr]    Compiling palette v0.5.0
[INFO] [stderr]     Checking glow v0.11.2
[INFO] [stderr]     Checking gif v0.11.3
[INFO] [stderr]     Checking xcursor v0.3.4
[INFO] [stderr]     Checking libloading v0.6.7
[INFO] [stderr]     Checking owned_ttf_parser v0.6.0
[INFO] [stderr]     Checking euclid v0.22.7
[INFO] [stderr]     Checking spirv v0.2.0+1.5.4
[INFO] [stderr]     Checking approx v0.3.2
[INFO] [stderr]     Checking rusttype v0.9.2
[INFO] [stderr]     Checking png v0.16.8
[INFO] [stderr]    Compiling x11-dl v2.19.1
[INFO] [stderr]     Checking copyless v0.1.5
[INFO] [stderr]     Checking bytemuck v1.9.1
[INFO] [stderr]     Checking scoped_threadpool v0.1.9
[INFO] [stderr]     Checking crossbeam v0.8.1
[INFO] [stderr]     Checking dlib v0.4.2
[INFO] [stderr]     Checking float_next_after v0.1.5
[INFO] [stderr]     Checking getrandom v0.2.6
[INFO] [stderr]     Checking num_cpus v1.13.1
[INFO] [stderr]     Checking nix v0.20.0
[INFO] [stderr]     Checking getrandom v0.1.16
[INFO] [stderr]     Checking dirs-sys v0.3.7
[INFO] [stderr]     Checking raw-window-handle v0.3.4
[INFO] [stderr]     Checking parking_lot v0.11.2
[INFO] [stderr]     Checking rand_core v0.6.3
[INFO] [stderr]     Checking rand_core v0.5.1
[INFO] [stderr]     Checking dirs v4.0.0
[INFO] [stderr]     Checking xdg v2.4.1
[INFO] [stderr]     Checking hashbrown v0.11.2
[INFO] [stderr]     Checking mio v0.7.14
[INFO] [stderr]     Checking rand_chacha v0.2.2
[INFO] [stderr]     Checking memmap2 v0.1.0
[INFO] [stderr]     Checking sid v0.6.1
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]    Compiling wayland-client v0.28.6
[INFO] [stderr]    Compiling wayland-protocols v0.28.6
[INFO] [stderr]    Compiling winit v0.25.0
[INFO] [stderr]     Checking andrew v0.3.1
[INFO] [stderr]     Checking rand_xorshift v0.2.0
[INFO] [stderr]     Checking crossbeam-deque v0.7.4
[INFO] [stderr]     Checking ordered-float v1.1.1
[INFO] [stderr]     Checking gpu-descriptor v0.2.2
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking rand v0.7.3
[INFO] [stderr]     Checking stb_truetype v0.3.1
[INFO] [stderr]     Checking ryu v1.0.10
[INFO] [stderr]     Checking linked-hash-map v0.5.4
[INFO] [stderr]     Checking mio-misc v1.2.2
[INFO] [stderr]     Checking lyon_geom v0.17.6
[INFO] [stderr]     Checking pennereq v0.3.1
[INFO] [stderr]     Checking find_folder v0.3.0
[INFO] [stderr]     Checking notosans v0.1.0
[INFO] [stderr]     Checking rusttype v0.8.3
[INFO] [stderr]     Checking lyon_path v0.17.7
[INFO] [stderr]     Checking lyon_tessellation v0.17.10
[INFO] [stderr]     Checking lyon_algorithms v0.17.7
[INFO] [stderr]     Checking lyon v0.17.10
[INFO] [stderr]     Checking wayland-commons v0.28.6
[INFO] [stderr]     Checking calloop v0.6.5
[INFO] [stderr]     Checking jpeg-decoder v0.1.22
[INFO] [stderr]    Compiling thiserror-impl v1.0.31
[INFO] [stderr]    Compiling futures-macro v0.3.21
[INFO] [stderr]    Compiling palette_derive v0.5.0
[INFO] [stderr]     Checking tiff v0.6.1
[INFO] [stderr]     Checking wayland-cursor v0.28.6
[INFO] [stderr]     Checking image v0.23.14
[INFO] [stderr]     Checking thiserror v1.0.31
[INFO] [stderr]     Checking naga v0.7.3
[INFO] [stderr]     Checking noise v0.7.0
[INFO] [stderr]     Checking futures-executor v0.3.21
[INFO] [stderr]     Checking futures v0.3.21
[INFO] [stderr]     Checking wgpu-hal v0.11.5
[INFO] [stderr]     Checking glam v0.17.3
[INFO] [stderr]     Checking toml v0.5.9
[INFO] [stderr]     Checking serde_json v1.0.81
[INFO] [stderr]     Checking wgpu v0.11.1
[INFO] [stderr]     Checking nannou_core v0.18.0
[INFO] [stderr]     Checking nannou_mesh v0.18.0
[INFO] [stderr]     Checking nannou_wgpu v0.18.0
[INFO] [stderr]     Checking smithay-client-toolkit v0.12.3
[INFO] [stderr]     Checking nannou v0.18.1
[INFO] [stderr]     Checking bimp v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `CoordIter`
[INFO] [stdout]  --> src/grid.rs:4:27
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::coord::{Coord, CoordIter};
[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: `rotation::*`
[INFO] [stdout]  --> src/main.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use rotation::*;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CartesianIter`
[INFO] [stdout]   --> src/main.rs:11:22
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::ndcoord::{CartesianIter, Coord};
[INFO] [stdout]    |                      ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CoordIter`
[INFO] [stdout]  --> src/grid.rs:4:27
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::coord::{Coord, CoordIter};
[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: `rotation::*`
[INFO] [stdout]  --> src/main.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use rotation::*;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CartesianIter`
[INFO] [stdout]   --> src/main.rs:11:22
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::ndcoord::{CartesianIter, Coord};
[INFO] [stdout]    |                      ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `other`
[INFO] [stdout]   --> src/grid.rs:16:49
[INFO] [stdout]    |
[INFO] [stdout] 16 |     fn matches<TOther: GridView<TItem, TCoord>>(other: TOther) -> bool {
[INFO] [stdout]    |                                                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
[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/main.rs:268:9
[INFO] [stdout]     |
[INFO] [stdout] 268 |     let mut i = Coord::new_3d(1, 1, 1).iter_volume(&Coord::new_3d(3, 3, 3));
[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: `model`
[INFO] [stdout]    --> src/main.rs:348:31
[INFO] [stdout]     |
[INFO] [stdout] 348 | fn key_pressed_fn(_app: &App, model: &mut Model, _k: Key) {
[INFO] [stdout]     |                               ^^^^^ help: if this is intentional, prefix it with an underscore: `_model`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Model` is never constructed
[INFO] [stdout]   --> src/main.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | struct Model {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Tile` is never used
[INFO] [stdout]   --> src/main.rs:20:6
[INFO] [stdout]    |
[INFO] [stdout] 20 | enum Tile {
[INFO] [stdout]    |      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Colorable` is never used
[INFO] [stdout]   --> src/main.rs:39:7
[INFO] [stdout]    |
[INFO] [stdout] 39 | trait Colorable {
[INFO] [stdout]    |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Grid` is never constructed
[INFO] [stdout]   --> src/main.rs:85:8
[INFO] [stdout]    |
[INFO] [stdout] 85 | struct Grid<T, const W: usize, const H: usize> {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PatchOrientation` is never constructed
[INFO] [stdout]   --> src/main.rs:99:8
[INFO] [stdout]    |
[INFO] [stdout] 99 | struct PatchOrientation {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ReplacementRule` is never constructed
[INFO] [stdout]    --> src/main.rs:104:8
[INFO] [stdout]     |
[INFO] [stdout] 104 | struct ReplacementRule<T, const S: usize> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `check_patch_at`, `get_patch_matches`, `replace_at`, `single_random_replace`, and `priority_random_repace` are never used
[INFO] [stdout]    --> src/main.rs:110:8
[INFO] [stdout]     |
[INFO] [stdout] 109 | impl<T: Eq + Copy, const W: usize, const H: usize> Grid<T, W, H> {
[INFO] [stdout]     | ---------------------------------------------------------------- methods in this implementation
[INFO] [stdout] 110 |     fn check_patch_at<const S: usize>(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 144 |     fn get_patch_matches<const S: usize>(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 165 |     fn replace_at<const S: usize>(
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 182 |     fn single_random_replace<const S: usize>(&mut self, rule: &ReplacementRule<T, S>) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 192 |     fn priority_random_repace<const S: usize>(&mut self, rules: &[ReplacementRule<T, S>]) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `transform_indices` and `rotate` are never used
[INFO] [stdout]    --> src/main.rs:205:8
[INFO] [stdout]     |
[INFO] [stdout] 202 | impl<T: Default + Copy, const S: usize> Grid<T, S, S> {
[INFO] [stdout]     | ----------------------------------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 205 |     fn transform_indices<R1, R2>(&self, x_transform: R1, y_transform: R2) -> Self
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 221 |     fn rotate(&self, times: usize) -> Self {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `draw` is never used
[INFO] [stdout]    --> src/main.rs:238:8
[INFO] [stdout]     |
[INFO] [stdout] 237 | impl<T: Colorable, const W: usize, const H: usize> Grid<T, W, H> {
[INFO] [stdout]     | ---------------------------------------------------------------- method in this implementation
[INFO] [stdout] 238 |     fn draw(&self, draw: &Draw, rect: Rect) {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `model` is never used
[INFO] [stdout]    --> src/main.rs:272:4
[INFO] [stdout]     |
[INFO] [stdout] 272 | fn model(app: &App) -> Model {
[INFO] [stdout]     |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `event` is never used
[INFO] [stdout]    --> src/main.rs:340:4
[INFO] [stdout]     |
[INFO] [stdout] 340 | fn event(_app: &App, _model: &mut Model, _event: Event) {}
[INFO] [stdout]     |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `update` is never used
[INFO] [stdout]    --> src/main.rs:342:4
[INFO] [stdout]     |
[INFO] [stdout] 342 | fn update(_app: &App, model: &mut Model, _update: Update) {
[INFO] [stdout]     |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `key_pressed_fn` is never used
[INFO] [stdout]    --> src/main.rs:348:4
[INFO] [stdout]     |
[INFO] [stdout] 348 | fn key_pressed_fn(_app: &App, model: &mut Model, _k: Key) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `view` is never used
[INFO] [stdout]    --> src/main.rs:352:4
[INFO] [stdout]     |
[INFO] [stdout] 352 | fn view(app: &App, model: &Model, frame: Frame) {
[INFO] [stdout]     |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Coord` is never used
[INFO] [stdout]  --> src/coord.rs:2:11
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub trait Coord: Sized + Copy {
[INFO] [stdout]   |           ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CoordIter` is never constructed
[INFO] [stdout]   --> src/coord.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub struct CoordIter<C: Coord> {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Grid` is never constructed
[INFO] [stdout]  --> src/grid.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | struct Grid<TItem, TCoord: Coord> {
[INFO] [stdout]   |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `GridView` is never used
[INFO] [stdout]   --> src/grid.rs:12:7
[INFO] [stdout]    |
[INFO] [stdout] 12 | trait GridView<TItem, TCoord: Coord>: Index<TCoord, Output = TItem> {
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `with_rotation` are never used
[INFO] [stdout]   --> src/grid.rs:23:8
[INFO] [stdout]    |
[INFO] [stdout] 22 | impl<TItem, TCoord: Coord> Grid<TItem, TCoord> {
[INFO] [stdout]    | ---------------------------------------------- associated items in this implementation
[INFO] [stdout] 23 |     fn new(items: Vec<TItem>, size: TCoord) -> Self {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     fn with_rotation(&self, times: usize) -> RotatedGridView<TItem, TCoord> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_default` is never used
[INFO] [stdout]   --> src/grid.rs:37:8
[INFO] [stdout]    |
[INFO] [stdout] 36 | impl<TItem: Default, TCoord: Coord> Grid<TItem, TCoord> {
[INFO] [stdout]    | ------------------------------------------------------- associated function in this implementation
[INFO] [stdout] 37 |     fn from_default(size: TCoord) -> Self {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RotatedGridView` is never constructed
[INFO] [stdout]   --> src/grid.rs:67:8
[INFO] [stdout]    |
[INFO] [stdout] 67 | struct RotatedGridView<'grid, TItem, TCoord: Coord> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `ZERO` and `volume` are never used
[INFO] [stdout]   --> src/ndcoord.rs:9:11
[INFO] [stdout]    |
[INFO] [stdout]  8 | impl<const D: usize> Coord<D> {
[INFO] [stdout]    | ----------------------------- associated items in this implementation
[INFO] [stdout]  9 |     const ZERO: Self = Self { axes: [0; D] };
[INFO] [stdout]    |           ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 16 |     pub fn volume(&self) -> usize {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new_1d` is never used
[INFO] [stdout]   --> src/ndcoord.rs:36:27
[INFO] [stdout]    |
[INFO] [stdout] 28 |         impl $typename<$dim> {
[INFO] [stdout]    |         -------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 36 | impl_coord_new!(Coord, 1, new_1d, [x]);
[INFO] [stdout]    |                           ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `impl_coord_new` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new_2d` is never used
[INFO] [stdout]   --> src/ndcoord.rs:37:27
[INFO] [stdout]    |
[INFO] [stdout] 28 |         impl $typename<$dim> {
[INFO] [stdout]    |         -------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 37 | impl_coord_new!(Coord, 2, new_2d, [x, y]);
[INFO] [stdout]    |                           ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `impl_coord_new` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new_4d` is never used
[INFO] [stdout]   --> src/ndcoord.rs:39:27
[INFO] [stdout]    |
[INFO] [stdout] 28 |         impl $typename<$dim> {
[INFO] [stdout]    |         -------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 39 | impl_coord_new!(Coord, 4, new_4d, [x, y, z, w]);
[INFO] [stdout]    |                           ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `impl_coord_new` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NGrid` is never constructed
[INFO] [stdout]  --> src/ndgrid.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | struct NGrid<T, const D: usize> {
[INFO] [stdout]   |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]  --> src/ndgrid.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | impl<T, const D: usize> NGrid<T, D> {
[INFO] [stdout]   | ----------------------------------- associated function in this implementation
[INFO] [stdout] 9 |     fn new(items: Vec<T>, size: Coord<D>) -> Self {
[INFO] [stdout]   |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RotatedCartesianIter` is never constructed
[INFO] [stdout]   --> src/ndgrid.rs:15:8
[INFO] [stdout]    |
[INFO] [stdout] 15 | struct RotatedCartesianIter<const D: usize> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `AxisId` is never used
[INFO] [stdout]  --> src/rotation.rs:4:6
[INFO] [stdout]   |
[INFO] [stdout] 4 | type AxisId = usize;
[INFO] [stdout]   |      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TransformedAxis` is never constructed
[INFO] [stdout]  --> src/rotation.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct TransformedAxis {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AxisPermutation` is never constructed
[INFO] [stdout]   --> src/rotation.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct AxisPermutation {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `RotationConfiguration` is never used
[INFO] [stdout]   --> src/rotation.rs:24:6
[INFO] [stdout]    |
[INFO] [stdout] 24 | type RotationConfiguration = Vec<TransformedAxis>;
[INFO] [stdout]    |      ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rotation_permutations` is never used
[INFO] [stdout]   --> src/rotation.rs:27:8
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub fn rotation_permutations(dimension: usize) -> Vec<RotationConfiguration> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_permutation` is never used
[INFO] [stdout]   --> src/rotation.rs:56:4
[INFO] [stdout]    |
[INFO] [stdout] 56 | fn is_permutation(arr: &[AxisId]) -> bool {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parity` is never used
[INFO] [stdout]   --> src/rotation.rs:64:8
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub fn parity(arr: &[AxisId]) -> bool {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `enumerate_negations` is never used
[INFO] [stdout]   --> src/rotation.rs:92:4
[INFO] [stdout]    |
[INFO] [stdout] 92 | fn enumerate_negations(permutation: AxisPermutation) -> Vec<RotationConfiguration> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bit` is never used
[INFO] [stdout]    --> src/rotation.rs:129:4
[INFO] [stdout]     |
[INFO] [stdout] 129 | fn bit(n: u32, index: u32) -> bool {
[INFO] [stdout]     |    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/grid.rs:28:22
[INFO] [stdout]    |
[INFO] [stdout] 28 |     fn with_rotation(&self, times: usize) -> RotatedGridView<TItem, TCoord> {
[INFO] [stdout]    |                      ^^^^^                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                      |
[INFO] [stdout]    |                      the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 28 |     fn with_rotation(&self, times: usize) -> RotatedGridView<'_, TItem, TCoord> {
[INFO] [stdout]    |                                                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `other`
[INFO] [stdout]   --> src/grid.rs:16:49
[INFO] [stdout]    |
[INFO] [stdout] 16 |     fn matches<TOther: GridView<TItem, TCoord>>(other: TOther) -> bool {
[INFO] [stdout]    |                                                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
[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/main.rs:268:9
[INFO] [stdout]     |
[INFO] [stdout] 268 |     let mut i = Coord::new_3d(1, 1, 1).iter_volume(&Coord::new_3d(3, 3, 3));
[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: `model`
[INFO] [stdout]    --> src/main.rs:348:31
[INFO] [stdout]     |
[INFO] [stdout] 348 | fn key_pressed_fn(_app: &App, model: &mut Model, _k: Key) {
[INFO] [stdout]     |                               ^^^^^ help: if this is intentional, prefix it with an underscore: `_model`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Model` is never constructed
[INFO] [stdout]   --> src/main.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | struct Model {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Tile` is never used
[INFO] [stdout]   --> src/main.rs:20:6
[INFO] [stdout]    |
[INFO] [stdout] 20 | enum Tile {
[INFO] [stdout]    |      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Colorable` is never used
[INFO] [stdout]   --> src/main.rs:39:7
[INFO] [stdout]    |
[INFO] [stdout] 39 | trait Colorable {
[INFO] [stdout]    |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Grid` is never constructed
[INFO] [stdout]   --> src/main.rs:85:8
[INFO] [stdout]    |
[INFO] [stdout] 85 | struct Grid<T, const W: usize, const H: usize> {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PatchOrientation` is never constructed
[INFO] [stdout]   --> src/main.rs:99:8
[INFO] [stdout]    |
[INFO] [stdout] 99 | struct PatchOrientation {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ReplacementRule` is never constructed
[INFO] [stdout]    --> src/main.rs:104:8
[INFO] [stdout]     |
[INFO] [stdout] 104 | struct ReplacementRule<T, const S: usize> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `check_patch_at`, `get_patch_matches`, `replace_at`, `single_random_replace`, and `priority_random_repace` are never used
[INFO] [stdout]    --> src/main.rs:110:8
[INFO] [stdout]     |
[INFO] [stdout] 109 | impl<T: Eq + Copy, const W: usize, const H: usize> Grid<T, W, H> {
[INFO] [stdout]     | ---------------------------------------------------------------- methods in this implementation
[INFO] [stdout] 110 |     fn check_patch_at<const S: usize>(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 144 |     fn get_patch_matches<const S: usize>(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 165 |     fn replace_at<const S: usize>(
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 182 |     fn single_random_replace<const S: usize>(&mut self, rule: &ReplacementRule<T, S>) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 192 |     fn priority_random_repace<const S: usize>(&mut self, rules: &[ReplacementRule<T, S>]) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `transform_indices` and `rotate` are never used
[INFO] [stdout]    --> src/main.rs:205:8
[INFO] [stdout]     |
[INFO] [stdout] 202 | impl<T: Default + Copy, const S: usize> Grid<T, S, S> {
[INFO] [stdout]     | ----------------------------------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 205 |     fn transform_indices<R1, R2>(&self, x_transform: R1, y_transform: R2) -> Self
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 221 |     fn rotate(&self, times: usize) -> Self {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `draw` is never used
[INFO] [stdout]    --> src/main.rs:238:8
[INFO] [stdout]     |
[INFO] [stdout] 237 | impl<T: Colorable, const W: usize, const H: usize> Grid<T, W, H> {
[INFO] [stdout]     | ---------------------------------------------------------------- method in this implementation
[INFO] [stdout] 238 |     fn draw(&self, draw: &Draw, rect: Rect) {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `model` is never used
[INFO] [stdout]    --> src/main.rs:272:4
[INFO] [stdout]     |
[INFO] [stdout] 272 | fn model(app: &App) -> Model {
[INFO] [stdout]     |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `event` is never used
[INFO] [stdout]    --> src/main.rs:340:4
[INFO] [stdout]     |
[INFO] [stdout] 340 | fn event(_app: &App, _model: &mut Model, _event: Event) {}
[INFO] [stdout]     |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `update` is never used
[INFO] [stdout]    --> src/main.rs:342:4
[INFO] [stdout]     |
[INFO] [stdout] 342 | fn update(_app: &App, model: &mut Model, _update: Update) {
[INFO] [stdout]     |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `key_pressed_fn` is never used
[INFO] [stdout]    --> src/main.rs:348:4
[INFO] [stdout]     |
[INFO] [stdout] 348 | fn key_pressed_fn(_app: &App, model: &mut Model, _k: Key) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `view` is never used
[INFO] [stdout]    --> src/main.rs:352:4
[INFO] [stdout]     |
[INFO] [stdout] 352 | fn view(app: &App, model: &Model, frame: Frame) {
[INFO] [stdout]     |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `ZERO`, `NUM_ROTATIONS`, `rotated`, `canonical_rotation_times`, and `cartesian_iter` are never used
[INFO] [stdout]   --> src/coord.rs:3:11
[INFO] [stdout]    |
[INFO] [stdout]  2 | pub trait Coord: Sized + Copy {
[INFO] [stdout]    |           ----- associated items in this trait
[INFO] [stdout]  3 |     const ZERO: Self;
[INFO] [stdout]    |           ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 10 |     const NUM_ROTATIONS: usize;
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 13 |     fn rotated(self, times: usize, grid_size: Self) -> Self;
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 14 |
[INFO] [stdout] 15 |     fn canonical_rotation_times(times: usize) -> usize {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 19 |     fn cartesian_iter(self) -> CoordIter<Self> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CoordIter` is never constructed
[INFO] [stdout]   --> src/coord.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub struct CoordIter<C: Coord> {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `GridView` is never used
[INFO] [stdout]   --> src/grid.rs:12:7
[INFO] [stdout]    |
[INFO] [stdout] 12 | trait GridView<TItem, TCoord: Coord>: Index<TCoord, Output = TItem> {
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `with_rotation` is never used
[INFO] [stdout]   --> src/grid.rs:28:8
[INFO] [stdout]    |
[INFO] [stdout] 22 | impl<TItem, TCoord: Coord> Grid<TItem, TCoord> {
[INFO] [stdout]    | ---------------------------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 28 |     fn with_rotation(&self, times: usize) -> RotatedGridView<TItem, TCoord> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_default` is never used
[INFO] [stdout]   --> src/grid.rs:37:8
[INFO] [stdout]    |
[INFO] [stdout] 36 | impl<TItem: Default, TCoord: Coord> Grid<TItem, TCoord> {
[INFO] [stdout]    | ------------------------------------------------------- associated function in this implementation
[INFO] [stdout] 37 |     fn from_default(size: TCoord) -> Self {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RotatedGridView` is never constructed
[INFO] [stdout]   --> src/grid.rs:67:8
[INFO] [stdout]    |
[INFO] [stdout] 67 | struct RotatedGridView<'grid, TItem, TCoord: Coord> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `ZERO` and `volume` are never used
[INFO] [stdout]   --> src/ndcoord.rs:9:11
[INFO] [stdout]    |
[INFO] [stdout]  8 | impl<const D: usize> Coord<D> {
[INFO] [stdout]    | ----------------------------- associated items in this implementation
[INFO] [stdout]  9 |     const ZERO: Self = Self { axes: [0; D] };
[INFO] [stdout]    |           ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 16 |     pub fn volume(&self) -> usize {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new_1d` is never used
[INFO] [stdout]   --> src/ndcoord.rs:36:27
[INFO] [stdout]    |
[INFO] [stdout] 28 |         impl $typename<$dim> {
[INFO] [stdout]    |         -------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 36 | impl_coord_new!(Coord, 1, new_1d, [x]);
[INFO] [stdout]    |                           ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `impl_coord_new` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new_2d` is never used
[INFO] [stdout]   --> src/ndcoord.rs:37:27
[INFO] [stdout]    |
[INFO] [stdout] 28 |         impl $typename<$dim> {
[INFO] [stdout]    |         -------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 37 | impl_coord_new!(Coord, 2, new_2d, [x, y]);
[INFO] [stdout]    |                           ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `impl_coord_new` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NGrid` is never constructed
[INFO] [stdout]  --> src/ndgrid.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | struct NGrid<T, const D: usize> {
[INFO] [stdout]   |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]  --> src/ndgrid.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | impl<T, const D: usize> NGrid<T, D> {
[INFO] [stdout]   | ----------------------------------- associated function in this implementation
[INFO] [stdout] 9 |     fn new(items: Vec<T>, size: Coord<D>) -> Self {
[INFO] [stdout]   |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RotatedCartesianIter` is never constructed
[INFO] [stdout]   --> src/ndgrid.rs:15:8
[INFO] [stdout]    |
[INFO] [stdout] 15 | struct RotatedCartesianIter<const D: usize> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `AxisId` is never used
[INFO] [stdout]  --> src/rotation.rs:4:6
[INFO] [stdout]   |
[INFO] [stdout] 4 | type AxisId = usize;
[INFO] [stdout]   |      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TransformedAxis` is never constructed
[INFO] [stdout]  --> src/rotation.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct TransformedAxis {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AxisPermutation` is never constructed
[INFO] [stdout]   --> src/rotation.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct AxisPermutation {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `RotationConfiguration` is never used
[INFO] [stdout]   --> src/rotation.rs:24:6
[INFO] [stdout]    |
[INFO] [stdout] 24 | type RotationConfiguration = Vec<TransformedAxis>;
[INFO] [stdout]    |      ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rotation_permutations` is never used
[INFO] [stdout]   --> src/rotation.rs:27:8
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub fn rotation_permutations(dimension: usize) -> Vec<RotationConfiguration> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_permutation` is never used
[INFO] [stdout]   --> src/rotation.rs:56:4
[INFO] [stdout]    |
[INFO] [stdout] 56 | fn is_permutation(arr: &[AxisId]) -> bool {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parity` is never used
[INFO] [stdout]   --> src/rotation.rs:64:8
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub fn parity(arr: &[AxisId]) -> bool {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `enumerate_negations` is never used
[INFO] [stdout]   --> src/rotation.rs:92:4
[INFO] [stdout]    |
[INFO] [stdout] 92 | fn enumerate_negations(permutation: AxisPermutation) -> Vec<RotationConfiguration> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bit` is never used
[INFO] [stdout]    --> src/rotation.rs:129:4
[INFO] [stdout]     |
[INFO] [stdout] 129 | fn bit(n: u32, index: u32) -> bool {
[INFO] [stdout]     |    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/grid.rs:28:22
[INFO] [stdout]    |
[INFO] [stdout] 28 |     fn with_rotation(&self, times: usize) -> RotatedGridView<TItem, TCoord> {
[INFO] [stdout]    |                      ^^^^^                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                      |
[INFO] [stdout]    |                      the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 28 |     fn with_rotation(&self, times: usize) -> RotatedGridView<'_, TItem, TCoord> {
[INFO] [stdout]    |                                                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 03s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: noise v0.7.0
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 3`
[INFO] running `Command { std: "docker" "inspect" "c2792965c136c872faab5161cfe9481b82bc9e549dbe9771dfc063008b996a76", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c2792965c136c872faab5161cfe9481b82bc9e549dbe9771dfc063008b996a76", kill_on_drop: false }`
[INFO] [stdout] c2792965c136c872faab5161cfe9481b82bc9e549dbe9771dfc063008b996a76
