[INFO] cloning repository https://github.com/HiperSlug/voxel_water
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/HiperSlug/voxel_water" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FHiperSlug%2Fvoxel_water", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FHiperSlug%2Fvoxel_water'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] f47ff145a7b21456052930823c293ab0010a910c
[INFO] checking HiperSlug/voxel_water against try#3f7e3b175fda7edbf81081bcd9b91b73f2f7993f for pr-156157
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FHiperSlug%2Fvoxel_water" "/workspace/builds/worker-2-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc2/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-2-tc2/source/.cargo/config.toml
[INFO] removed /workspace/builds/worker-2-tc2/source/rust-toolchain.toml
[INFO] started tweaking git repo https://github.com/HiperSlug/voxel_water
[INFO] finished tweaking git repo https://github.com/HiperSlug/voxel_water
[INFO] tweaked toml for git repo https://github.com/HiperSlug/voxel_water written to /workspace/builds/worker-2-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/HiperSlug/voxel_water on toolchain 3f7e3b175fda7edbf81081bcd9b91b73f2f7993f
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+3f7e3b175fda7edbf81081bcd9b91b73f2f7993f" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/HiperSlug/voxel_water 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" "+3f7e3b175fda7edbf81081bcd9b91b73f2f7993f" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/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" "+3f7e3b175fda7edbf81081bcd9b91b73f2f7993f" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 0c0e11502fecb9fb0231d88669a4c2b76ba2d6dd6d5d8a4a71e593c7bd348560
[INFO] running `Command { std: "docker" "start" "-a" "0c0e11502fecb9fb0231d88669a4c2b76ba2d6dd6d5d8a4a71e593c7bd348560", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "0c0e11502fecb9fb0231d88669a4c2b76ba2d6dd6d5d8a4a71e593c7bd348560", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "0c0e11502fecb9fb0231d88669a4c2b76ba2d6dd6d5d8a4a71e593c7bd348560", kill_on_drop: false }`
[INFO] [stdout] 0c0e11502fecb9fb0231d88669a4c2b76ba2d6dd6d5d8a4a71e593c7bd348560
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/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" "+3f7e3b175fda7edbf81081bcd9b91b73f2f7993f" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 7e528226612af91998e628ca0f23c11f3556d7bdbb9c71f1d7c34e886babc6e4
[INFO] running `Command { std: "docker" "start" "-a" "7e528226612af91998e628ca0f23c11f3556d7bdbb9c71f1d7c34e886babc6e4", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.177
[INFO] [stderr]     Checking log v0.4.28
[INFO] [stderr]    Compiling zerocopy v0.8.27
[INFO] [stderr]    Compiling syn v2.0.109
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling hashbrown v0.16.0
[INFO] [stderr]    Compiling winnow v0.7.13
[INFO] [stderr]    Compiling toml_datetime v0.7.3
[INFO] [stderr]    Compiling indexmap v2.12.0
[INFO] [stderr]    Compiling find-msvc-tools v0.1.4
[INFO] [stderr]     Checking concurrent-queue v2.5.0
[INFO] [stderr]    Compiling cc v1.2.44
[INFO] [stderr]     Checking event-listener v5.4.1
[INFO] [stderr]     Checking event-listener-strategy v0.5.4
[INFO] [stderr]    Compiling slotmap v1.0.7
[INFO] [stderr]    Compiling erased-serde v0.4.8
[INFO] [stderr]    Compiling toml_parser v1.0.4
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling toml_edit v0.23.7
[INFO] [stderr]     Checking async-channel v2.5.0
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]     Checking bevy_ptr v0.17.2
[INFO] [stderr]     Checking async-executor v1.13.3
[INFO] [stderr]     Checking crossbeam-queue v0.3.12
[INFO] [stderr]     Checking bumpalo v3.19.0
[INFO] [stderr]     Checking tracing-core v0.1.34
[INFO] [stderr]     Checking rand_core v0.9.3
[INFO] [stderr]     Checking crossbeam-channel v0.5.15
[INFO] [stderr]     Checking simd-adler32 v0.3.7
[INFO] [stderr]     Checking blocking v1.6.2
[INFO] [stderr]     Checking async-lock v3.4.1
[INFO] [stderr]     Checking miniz_oxide v0.8.9
[INFO] [stderr]     Checking async-broadcast v0.7.2
[INFO] [stderr]     Checking stackfuture v0.3.0
[INFO] [stderr]     Checking const_panic v0.2.15
[INFO] [stderr]     Checking fdeflate v0.3.7
[INFO] [stderr]     Checking tracing-log v0.2.0
[INFO] [stderr]     Checking pxfm v0.1.25
[INFO] [stderr]     Checking wayland-sys v0.31.7
[INFO] [stderr]     Checking memmap2 v0.9.9
[INFO] [stderr]     Checking flate2 v1.1.5
[INFO] [stderr]     Checking async-fs v2.2.0
[INFO] [stderr]     Checking sysinfo v0.37.2
[INFO] [stderr]     Checking offset-allocator v0.2.0
[INFO] [stderr]     Checking unicode-script v0.5.7
[INFO] [stderr]     Checking fontdb v0.16.2
[INFO] [stderr]     Checking rangemap v1.6.0
[INFO] [stderr]     Checking alsa-sys v0.3.1
[INFO] [stderr]     Checking inotify-sys v0.1.5
[INFO] [stderr]     Checking libudev-sys v0.1.4
[INFO] [stderr]     Checking x11-dl v2.21.0
[INFO] [stderr]     Checking taffy v0.7.7
[INFO] [stderr]     Checking crossbeam-epoch v0.9.18
[INFO] [stderr]    Compiling rayon-core v1.13.0
[INFO] [stderr]     Checking crossbeam-deque v0.8.6
[INFO] [stderr]     Checking hashbrown v0.14.5
[INFO] [stderr]     Checking ndshape v0.3.0
[INFO] [stderr]     Checking rayon v1.11.0
[INFO] [stderr]    Compiling bevy_macro_utils v0.17.2
[INFO] [stderr]    Compiling encase_derive_impl v0.11.2
[INFO] [stderr]     Checking moxcms v0.7.9
[INFO] [stderr]     Checking dashmap v6.1.0
[INFO] [stderr]     Checking bit-iter v1.3.1
[INFO] [stderr]    Compiling blake3 v1.8.2
[INFO] [stderr]    Compiling wayland-backend v0.3.11
[INFO] [stderr]    Compiling bytemuck_derive v1.10.2
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling zerocopy-derive v0.8.27
[INFO] [stderr]    Compiling thiserror-impl v2.0.17
[INFO] [stderr]    Compiling derive_more-impl v2.0.1
[INFO] [stderr]    Compiling variadics_please v1.1.0
[INFO] [stderr]    Compiling assert_type_match v0.1.1
[INFO] [stderr]    Compiling bevy_reflect_derive v0.17.2
[INFO] [stderr]    Compiling bevy_ecs_macros v0.17.2
[INFO] [stderr]    Compiling bevy_derive v0.17.2
[INFO] [stderr]     Checking bytemuck v1.24.0
[INFO] [stderr]     Checking bitflags v2.10.0
[INFO] [stderr]     Checking nix v0.30.1
[INFO] [stderr]    Compiling tracing-attributes v0.1.30
[INFO] [stderr]     Checking ctrlc v3.5.1
[INFO] [stderr]    Compiling bevy_asset_macros v0.17.2
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]     Checking thiserror v2.0.17
[INFO] [stderr]     Checking half v2.7.1
[INFO] [stderr]     Checking rand_chacha v0.9.0
[INFO] [stderr]     Checking rand v0.9.2
[INFO] [stderr]     Checking wgpu-types v26.0.0
[INFO] [stderr]     Checking glam v0.30.9
[INFO] [stderr]     Checking rand_distr v0.5.1
[INFO] [stderr]    Compiling encase_derive v0.11.2
[INFO] [stderr]     Checking png v0.18.0
[INFO] [stderr]     Checking image v0.25.8
[INFO] [stderr]     Checking ktx2 v0.4.0
[INFO] [stderr]     Checking rustix v1.1.2
[INFO] [stderr]     Checking spirv v0.3.0+sdk-1.3.268.0
[INFO] [stderr]     Checking gpu-alloc-types v0.3.0
[INFO] [stderr]     Checking gpu-descriptor-types v0.2.0
[INFO] [stderr]     Checking gpu-descriptor v0.3.2
[INFO] [stderr]     Checking gpu-alloc v0.6.0
[INFO] [stderr]     Checking font-types v0.10.0
[INFO] [stderr]    Compiling bevy_render_macros v0.17.2
[INFO] [stderr]     Checking read-fonts v0.35.0
[INFO] [stderr]     Checking serde v1.0.228
[INFO] [stderr]    Compiling bevy_encase_derive v0.17.2
[INFO] [stderr]     Checking smol_str v0.2.2
[INFO] [stderr]     Checking bevy_platform v0.17.2
[INFO] [stderr]     Checking uuid v1.18.1
[INFO] [stderr]     Checking bevy_utils v0.17.2
[INFO] [stderr]     Checking ron v0.10.1
[INFO] [stderr]     Checking petgraph v0.8.3
[INFO] [stderr]     Checking encase v0.11.2
[INFO] [stderr]     Checking hexasphere v16.0.0
[INFO] [stderr]     Checking naga v26.0.0
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]     Checking wayland-client v0.31.11
[INFO] [stderr]     Checking polling v3.11.0
[INFO] [stderr]     Checking rustix v0.38.44
[INFO] [stderr]     Checking wayland-protocols v0.32.9
[INFO] [stderr]     Checking derive_more v2.0.1
[INFO] [stderr]     Checking bevy_reflect v0.17.2
[INFO] [stderr]     Checking bevy_tasks v0.17.2
[INFO] [stderr]     Checking skrifa v0.37.0
[INFO] [stderr]     Checking rustybuzz v0.14.1
[INFO] [stderr]     Checking swash v0.2.6
[INFO] [stderr]     Checking tracing v0.1.41
[INFO] [stderr]     Checking tracing-subscriber v0.3.20
[INFO] [stderr]     Checking wayland-cursor v0.31.11
[INFO] [stderr]     Checking wayland-csd-frame v0.3.0
[INFO] [stderr]     Checking tiny-skia-path v0.11.4
[INFO] [stderr]     Checking wgpu-hal v26.0.6
[INFO] [stderr]     Checking naga_oil v0.19.1
[INFO] [stderr]     Checking wayland-protocols-wlr v0.3.9
[INFO] [stderr]     Checking tiny-skia v0.11.4
[INFO] [stderr]     Checking bevy_ecs v0.17.2
[INFO] [stderr]     Checking bevy_math v0.17.2
[INFO] [stderr]     Checking gethostname v1.1.0
[INFO] [stderr]     Checking x11rb v0.13.2
[INFO] [stderr]     Checking wayland-protocols-plasma v0.3.9
[INFO] [stderr]     Checking cosmic-text v0.14.2
[INFO] [stderr]     Checking wgpu-core-deps-windows-linux-android v26.0.0
[INFO] [stderr]     Checking wgpu-core v26.0.1
[INFO] [stderr]     Checking ahash v0.8.12
[INFO] [stderr]     Checking alsa v0.9.1
[INFO] [stderr]     Checking xkbcommon-dl v0.4.2
[INFO] [stderr]     Checking inotify v0.11.0
[INFO] [stderr]    Compiling gltf-derive v1.4.1
[INFO] [stderr]     Checking gilrs-core v0.6.6
[INFO] [stderr]     Checking cpal v0.15.3
[INFO] [stderr]    Compiling bevy_animation_macros v0.17.2
[INFO] [stderr]     Checking rodio v0.20.1
[INFO] [stderr]     Checking gilrs v0.11.0
[INFO] [stderr]    Compiling bevy_state_macros v0.17.2
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking calloop v0.13.0
[INFO] [stderr]     Checking calloop-wayland-source v0.3.0
[INFO] [stderr]     Checking smithay-client-toolkit v0.19.2
[INFO] [stderr]     Checking bevy_color v0.17.2
[INFO] [stderr]     Checking gltf-json v1.4.1
[INFO] [stderr]    Compiling bevy_gizmos_macros v0.17.2
[INFO] [stderr]     Checking sctk-adwaita v0.10.1
[INFO] [stderr]     Checking wgpu v26.0.1
[INFO] [stderr]    Compiling enum-map-derive v0.17.0
[INFO] [stderr]     Checking winit v0.30.12
[INFO] [stderr]     Checking gltf v1.4.1
[INFO] [stderr]     Checking enum-map v2.7.3
[INFO] [stderr]     Checking accesskit_winit v0.29.2
[INFO] [stderr]     Checking bevy_app v0.17.2
[INFO] [stderr]     Checking bevy_asset v0.17.2
[INFO] [stderr]     Checking bevy_log v0.17.2
[INFO] [stderr]     Checking bevy_input v0.17.2
[INFO] [stderr]     Checking bevy_time v0.17.2
[INFO] [stderr]     Checking bevy_a11y v0.17.2
[INFO] [stderr]     Checking bevy_state v0.17.2
[INFO] [stderr]     Checking bevy_transform v0.17.2
[INFO] [stderr]     Checking bevy_diagnostic v0.17.2
[INFO] [stderr]     Checking bevy_gilrs v0.17.2
[INFO] [stderr]     Checking bevy_image v0.17.2
[INFO] [stderr]     Checking bevy_shader v0.17.2
[INFO] [stderr]     Checking bevy_audio v0.17.2
[INFO] [stderr]     Checking bevy_mesh v0.17.2
[INFO] [stderr]     Checking bevy_window v0.17.2
[INFO] [stderr]     Checking bevy_text v0.17.2
[INFO] [stderr]     Checking bevy_camera v0.17.2
[INFO] [stderr]     Checking bevy_animation v0.17.2
[INFO] [stderr]     Checking bevy_render v0.17.2
[INFO] [stderr]     Checking bevy_picking v0.17.2
[INFO] [stderr]     Checking bevy_light v0.17.2
[INFO] [stderr]     Checking bevy_scene v0.17.2
[INFO] [stderr]     Checking bevy_sprite v0.17.2
[INFO] [stderr]     Checking bevy_input_focus v0.17.2
[INFO] [stderr]     Checking bevy_winit v0.17.2
[INFO] [stderr]     Checking bevy_ui v0.17.2
[INFO] [stderr]     Checking bevy_core_pipeline v0.17.2
[INFO] [stderr]     Checking bevy_pbr v0.17.2
[INFO] [stderr]     Checking bevy_sprite_render v0.17.2
[INFO] [stderr]     Checking bevy_anti_alias v0.17.2
[INFO] [stderr]     Checking bevy_post_process v0.17.2
[INFO] [stderr]     Checking bevy_ui_render v0.17.2
[INFO] [stderr]     Checking bevy_gltf v0.17.2
[INFO] [stderr]     Checking bevy_gizmos v0.17.2
[INFO] [stderr]     Checking bevy_internal v0.17.2
[INFO] [stderr]     Checking bevy v0.17.2
[INFO] [stderr]     Checking bevy_tweening v0.14.0
[INFO] [stderr]     Checking voxel_water v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `dashmap::DashMap`
[INFO] [stdout]   --> src/main.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use dashmap::DashMap;
[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: `crate::render::mesher::MESHER`
[INFO] [stdout]   --> src/main.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | use crate::render::mesher::MESHER;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `TextureArrayMaterial`
[INFO] [stdout]   --> src/main.rs:21:53
[INFO] [stdout]    |
[INFO] [stdout] 21 | use crate::render::pipeline::{QuadInstancingPlugin, TextureArrayMaterial};
[INFO] [stdout]    |                                                     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ChunkMesh` and `ChunkRemesh`
[INFO] [stdout]   --> src/main.rs:22:21
[INFO] [stdout]    |
[INFO] [stdout] 22 | use crate::render::{ChunkMesh, ChunkRemesh};
[INFO] [stdout]    |                     ^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `dashmap::DashMap`
[INFO] [stdout]   --> src/main.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use dashmap::DashMap;
[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: `crate::render::mesher::MESHER`
[INFO] [stdout]   --> src/main.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | use crate::render::mesher::MESHER;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `TextureArrayMaterial`
[INFO] [stdout]   --> src/main.rs:21:53
[INFO] [stdout]    |
[INFO] [stdout] 21 | use crate::render::pipeline::{QuadInstancingPlugin, TextureArrayMaterial};
[INFO] [stdout]    |                                                     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ChunkMesh` and `ChunkRemesh`
[INFO] [stdout]   --> src/main.rs:22:21
[INFO] [stdout]    |
[INFO] [stdout] 22 | use crate::render::{ChunkMesh, ChunkRemesh};
[INFO] [stdout]    |                     ^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `texture_array_handle`
[INFO] [stdout]   --> src/main.rs:64:5
[INFO] [stdout]    |
[INFO] [stdout] 64 |     texture_array_handle: If<Res<TextureArrayHandle>>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_texture_array_handle`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `NotSetup` is never constructed
[INFO] [stdout]   --> src/main.rs:54:5
[INFO] [stdout]    |
[INFO] [stdout] 51 | enum GameState {
[INFO] [stdout]    |      --------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 54 |     NotSetup,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GameState` 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: methods `collect_moves` and `move_group` are never used
[INFO] [stdout]   --> src/liquid_tick.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl Chunk {
[INFO] [stdout]    | ---------- methods in this implementation
[INFO] [stdout] 17 |     pub fn collect_moves(&self, dst_to_src: &DashMap<usize, usize>, tick: u64) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 76 |     fn move_group(
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Shift` is never used
[INFO] [stdout]    --> src/liquid_tick.rs:123:7
[INFO] [stdout]     |
[INFO] [stdout] 123 | trait Shift: Copy {
[INFO] [stdout]     |       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Action` is never used
[INFO] [stdout]  --> src/liquid_tick/action.rs:3:10
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub type Action = (Delta, &'static [PreReq]);
[INFO] [stdout]   |          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ActionGroup` is never used
[INFO] [stdout]  --> src/liquid_tick/action.rs:4:6
[INFO] [stdout]   |
[INFO] [stdout] 4 | type ActionGroup = [Action; 4];
[INFO] [stdout]   |      ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Delta` is never constructed
[INFO] [stdout]  --> src/liquid_tick/action.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct Delta([isize; 3]);
[INFO] [stdout]   |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `i_3d` and `x_and_i_2d` are never used
[INFO] [stdout]   --> src/liquid_tick/action.rs:9:12
[INFO] [stdout]    |
[INFO] [stdout]  8 | impl Delta {
[INFO] [stdout]    | ---------- methods in this implementation
[INFO] [stdout]  9 |     pub fn i_3d(&self) -> isize {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 14 |     pub fn x_and_i_2d(&self) -> (isize, isize) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PreReq` is never constructed
[INFO] [stdout]   --> src/liquid_tick/action.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct PreReq {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `none` is never used
[INFO] [stdout]   --> src/liquid_tick/action.rs:25:10
[INFO] [stdout]    |
[INFO] [stdout] 25 | const fn none(delta: [isize; 3]) -> PreReq {
[INFO] [stdout]    |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `some` is never used
[INFO] [stdout]   --> src/liquid_tick/action.rs:32:10
[INFO] [stdout]    |
[INFO] [stdout] 32 | const fn some(delta: [isize; 3]) -> PreReq {
[INFO] [stdout]    |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `action` is never used
[INFO] [stdout]   --> src/liquid_tick/action.rs:39:10
[INFO] [stdout]    |
[INFO] [stdout] 39 | const fn action(delta: [isize; 3], prereqs: &'static [PreReq]) -> Action {
[INFO] [stdout]    |          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DOWN_ACTION` is never used
[INFO] [stdout]   --> src/liquid_tick/action.rs:43:11
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub const DOWN_ACTION: Action = action([0, -1, 0], &[]);
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ACTIONS` is never used
[INFO] [stdout]   --> src/liquid_tick/action.rs:45:11
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub const ACTIONS: &[ActionGroup] = &[
[INFO] [stdout]    |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX6` is never used
[INFO] [stdout]   --> src/render/mod.rs:13:7
[INFO] [stdout]    |
[INFO] [stdout] 13 | const MAX6: u32 = (1 << 6) - 1;
[INFO] [stdout]    |       ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX16` is never used
[INFO] [stdout]   --> src/render/mod.rs:14:7
[INFO] [stdout]    |
[INFO] [stdout] 14 | const MAX16: u32 = u16::MAX as u32;
[INFO] [stdout]    |       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WIDTH_SHIFT` is never used
[INFO] [stdout]   --> src/render/mod.rs:16:7
[INFO] [stdout]    |
[INFO] [stdout] 16 | const WIDTH_SHIFT: u32 = 0;
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEIGHT_SHIFT` is never used
[INFO] [stdout]   --> src/render/mod.rs:17:7
[INFO] [stdout]    |
[INFO] [stdout] 17 | const HEIGHT_SHIFT: u32 = 6;
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FACE_SHIFT` is never used
[INFO] [stdout]   --> src/render/mod.rs:18:7
[INFO] [stdout]    |
[INFO] [stdout] 18 | const FACE_SHIFT: u32 = 12;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TEXTURE_SHIFT` is never used
[INFO] [stdout]   --> src/render/mod.rs:20:7
[INFO] [stdout]    |
[INFO] [stdout] 20 | const TEXTURE_SHIFT: u32 = 16;
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/render/mod.rs:30:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | impl Quad {
[INFO] [stdout]    | --------- associated function in this implementation
[INFO] [stdout] 30 |     pub fn new(pos: IVec3, w: u32, h: u32, f: Face, t: u32) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constant `ALL` is never used
[INFO] [stdout]   --> src/render/mod.rs:58:11
[INFO] [stdout]    |
[INFO] [stdout] 57 | impl Face {
[INFO] [stdout]    | --------- associated constant in this implementation
[INFO] [stdout] 58 |     const ALL: [Self; 6] = [PosX, PosY, PosZ, NegX, NegY, NegZ];
[INFO] [stdout]    |           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ChunkRemesh` is never constructed
[INFO] [stdout]   --> src/render/mod.rs:75:12
[INFO] [stdout]    |
[INFO] [stdout] 75 | pub struct ChunkRemesh(pub U64Vec3);
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `clear`, `is_empty`, and `push` are never used
[INFO] [stdout]   --> src/render/mod.rs:78:12
[INFO] [stdout]    |
[INFO] [stdout] 77 | impl ChunkRemesh {
[INFO] [stdout]    | ---------------- methods in this implementation
[INFO] [stdout] 78 |     pub fn clear(&mut self) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 82 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 86 |     pub fn push(&mut self, p: impl Index3d) {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UPWARD_STRIDE_X` is never used
[INFO] [stdout]   --> src/render/mesher.rs:14:7
[INFO] [stdout]    |
[INFO] [stdout] 14 | const UPWARD_STRIDE_X: usize = STRIDE_X_3D;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FORWARD_STRIDE_X` is never used
[INFO] [stdout]   --> src/render/mesher.rs:15:7
[INFO] [stdout]    |
[INFO] [stdout] 15 | const FORWARD_STRIDE_X: usize = STRIDE_X_3D;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FORWARD_STRIDE_Y` is never used
[INFO] [stdout]   --> src/render/mesher.rs:16:7
[INFO] [stdout]    |
[INFO] [stdout] 16 | const FORWARD_STRIDE_Y: usize = STRIDE_Y_3D;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Mesher` is never constructed
[INFO] [stdout]   --> src/render/mesher.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub struct Mesher {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `InnerMesher` is never constructed
[INFO] [stdout]   --> src/render/mesher.rs:43:12
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub struct InnerMesher {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/render/mesher.rs:50:8
[INFO] [stdout]     |
[INFO] [stdout]  49 | impl InnerMesher {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout]  50 |     fn build_all_visible_masks(&mut self, chunk: &Chunk) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 105 |     fn build_visible_masks(&mut self, chunk: &Chunk, remesh: U64Vec3) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 179 |     fn merged_quads(&mut self, chunk: &Chunk, origin: IVec3) -> EnumMap<Face, Vec<Quad>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 192 |     fn merge_x(&mut self, chunk: &Chunk, origin: IVec3, xs: u64, f: Face, quads: &mut Vec<Quad>) {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 261 |     fn merge_y(
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 340 |     fn merge_z(
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 416 |     pub fn mesh(&mut self, chunk: &Chunk, origin: IVec3) -> ChunkMesh {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `remesh` is never used
[INFO] [stdout]    --> src/render/mesher.rs:423:12
[INFO] [stdout]     |
[INFO] [stdout] 422 | impl Mesher {
[INFO] [stdout]     | ----------- method in this implementation
[INFO] [stdout] 423 |     pub fn remesh(
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `key_range` is never used
[INFO] [stdout]    --> src/render/mesher.rs:498:4
[INFO] [stdout]     |
[INFO] [stdout] 498 | fn key_range(slice: &[Quad], key: impl Fn(&Quad) -> i32, k: i32) -> Range<usize> {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `as_u32` is never used
[INFO] [stdout]    --> src/render/mesher.rs:505:4
[INFO] [stdout]     |
[INFO] [stdout] 505 | fn as_u32(usize: usize) -> u32 {
[INFO] [stdout]     |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SparseChunks` is never constructed
[INFO] [stdout]   --> src/voxels/mod.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct SparseChunks {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SparseChunkMeshes` is never constructed
[INFO] [stdout]   --> src/voxels/mod.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct SparseChunkMeshes {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SparseChunkRemeshes` is never constructed
[INFO] [stdout]   --> src/voxels/mod.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub struct SparseChunkRemeshes {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `BLOCKS` is never used
[INFO] [stdout]   --> src/voxels/block.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub static BLOCKS: LazyLock<Blocks> = LazyLock::new(temp);
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Block` is never constructed
[INFO] [stdout]   --> src/voxels/block.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct Block {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Blocks` is never constructed
[INFO] [stdout]   --> src/voxels/block.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct Blocks(pub Vec<Block>);
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BlockIndex` is never constructed
[INFO] [stdout]   --> src/voxels/block.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub struct BlockIndex(pub NonMaxU16);
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get` is never used
[INFO] [stdout]   --> src/voxels/block.rs:41:12
[INFO] [stdout]    |
[INFO] [stdout] 40 | impl BlockIndex {
[INFO] [stdout]    | --------------- method in this implementation
[INFO] [stdout] 41 |     pub fn get(self) -> usize {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `GRASS` is never used
[INFO] [stdout]   --> src/voxels/block.rs:46:11
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub const GRASS: BlockIndex = BlockIndex(unsafe { NonMaxU16::new_unchecked(0) });
[INFO] [stdout]    |           ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WATER` is never used
[INFO] [stdout]   --> src/voxels/block.rs:47:11
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub const WATER: BlockIndex = BlockIndex(unsafe { NonMaxU16::new_unchecked(1) });
[INFO] [stdout]    |           ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DIRT` is never used
[INFO] [stdout]   --> src/voxels/block.rs:48:11
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub const DIRT: BlockIndex = BlockIndex(unsafe { NonMaxU16::new_unchecked(2) });
[INFO] [stdout]    |           ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `temp` is never used
[INFO] [stdout]   --> src/voxels/block.rs:50:8
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub fn temp() -> Blocks {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Chunk` is never constructed
[INFO] [stdout]  --> src/voxels/chunk.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct Chunk {
[INFO] [stdout]   |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set`, `set_masks`, `transfer_within`, and `raycast` are never used
[INFO] [stdout]   --> src/voxels/chunk.rs:29:12
[INFO] [stdout]    |
[INFO] [stdout] 28 | impl Chunk {
[INFO] [stdout]    | ---------- methods in this implementation
[INFO] [stdout] 29 |     pub fn set(&mut self, pos: impl Index3d, voxel: Option<BlockIndex>) {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |     fn set_masks(&mut self, pos: impl Index3d, voxel: Option<BlockIndex>) {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 57 |     pub fn transfer_within(&mut self, dst: impl Index3d, src: impl Index3d) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 77 |     pub fn raycast(&self, ray: Ray3d, max: f32) -> [Option<UVec3>; 2] {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BITS` is never used
[INFO] [stdout]  --> src/voxels/space.rs:9:11
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub const BITS: u32 = 6;
[INFO] [stdout]   |           ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LEN` is never used
[INFO] [stdout]   --> src/voxels/space.rs:11:11
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub const LEN: usize = 1 << BITS; // 64
[INFO] [stdout]    |           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LEN_U32` is never used
[INFO] [stdout]   --> src/voxels/space.rs:12:11
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub const LEN_U32: u32 = LEN as u32;
[INFO] [stdout]    |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `AREA` is never used
[INFO] [stdout]   --> src/voxels/space.rs:13:11
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub const AREA: usize = LEN * LEN;
[INFO] [stdout]    |           ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `VOL` is never used
[INFO] [stdout]   --> src/voxels/space.rs:14:11
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub const VOL: usize = LEN * LEN * LEN;
[INFO] [stdout]    |           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UNPAD_LEN` is never used
[INFO] [stdout]   --> src/voxels/space.rs:16:11
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub const UNPAD_LEN: usize = LEN - 2;
[INFO] [stdout]    |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UNPAD_LEN_I32` is never used
[INFO] [stdout]   --> src/voxels/space.rs:17:11
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub const UNPAD_LEN_I32: i32 = UNPAD_LEN as i32;
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UNPAD_VOL` is never used
[INFO] [stdout]   --> src/voxels/space.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub const UNPAD_VOL: usize = UNPAD_LEN * UNPAD_LEN * UNPAD_LEN;
[INFO] [stdout]    |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PAD_MASK` is never used
[INFO] [stdout]   --> src/voxels/space.rs:20:11
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub const PAD_MASK: u64 = (1 << 63) | 1;
[INFO] [stdout]    |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GlobalPos` is never constructed
[INFO] [stdout]   --> src/voxels/space.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct GlobalPos(pub IVec3);
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ChunkBigPos` is never constructed
[INFO] [stdout]   --> src/voxels/space.rs:26:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub struct ChunkBigPos(pub IVec3);
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ChunkSmallPos` is never constructed
[INFO] [stdout]   --> src/voxels/space.rs:29:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub struct ChunkSmallPos(pub U8Vec3);
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `main_chunk_pair` and `chunk_pair_iter` are never used
[INFO] [stdout]   --> src/voxels/space.rs:32:12
[INFO] [stdout]    |
[INFO] [stdout] 31 | impl GlobalPos {
[INFO] [stdout]    | -------------- methods in this implementation
[INFO] [stdout] 32 |     pub fn main_chunk_pair(self) -> (ChunkBigPos, ChunkSmallPos) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub fn chunk_pair_iter(self) -> ChunkPairIter {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ChunkPairIter` is never constructed
[INFO] [stdout]  --> src/voxels/space/chunk_pair_iter.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct ChunkPairIter {
[INFO] [stdout]   |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/voxels/space/chunk_pair_iter.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl ChunkPairIter {
[INFO] [stdout]    | ------------------ associated function in this implementation
[INFO] [stdout] 16 |     pub fn new(pos: GlobalPos) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Shape3d` is never used
[INFO] [stdout]  --> src/voxels/space/index.rs:6:10
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub type Shape3d = ConstPow2Shape3u32<BITS, BITS, BITS>;
[INFO] [stdout]   |          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Shape2d` is never used
[INFO] [stdout]  --> src/voxels/space/index.rs:7:10
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub type Shape2d = ConstPow2Shape2u32<BITS, BITS>;
[INFO] [stdout]   |          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `STRIDE_X_3D` is never used
[INFO] [stdout]  --> src/voxels/space/index.rs:9:11
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub const STRIDE_X_3D: usize = 1 << Shape3d::SHIFTS[0];
[INFO] [stdout]   |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `STRIDE_Y_3D` is never used
[INFO] [stdout]   --> src/voxels/space/index.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub const STRIDE_Y_3D: usize = 1 << Shape3d::SHIFTS[1];
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `STRIDE_Z_3D` is never used
[INFO] [stdout]   --> src/voxels/space/index.rs:11:11
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub const STRIDE_Z_3D: usize = 1 << Shape3d::SHIFTS[2];
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `STRIDE_Y_2D` is never used
[INFO] [stdout]   --> src/voxels/space/index.rs:13:11
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub const STRIDE_Y_2D: usize = 1 << Shape2d::SHIFTS[0];
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `STRIDE_Z_2D` is never used
[INFO] [stdout]   --> src/voxels/space/index.rs:14:11
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub const STRIDE_Z_2D: usize = 1 << Shape2d::SHIFTS[1];
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `I_STRIDE_X_3D` is never used
[INFO] [stdout]   --> src/voxels/space/index.rs:16:11
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub const I_STRIDE_X_3D: isize = STRIDE_X_3D as isize;
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `I_STRIDE_Y_3D` is never used
[INFO] [stdout]   --> src/voxels/space/index.rs:17:11
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub const I_STRIDE_Y_3D: isize = STRIDE_Y_3D as isize;
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `I_STRIDE_Z_3D` is never used
[INFO] [stdout]   --> src/voxels/space/index.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub const I_STRIDE_Z_3D: isize = STRIDE_Z_3D as isize;
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `I_STRIDE_Y_2D` is never used
[INFO] [stdout]   --> src/voxels/space/index.rs:20:11
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub const I_STRIDE_Y_2D: isize = STRIDE_Y_2D as isize;
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `I_STRIDE_Z_2D` is never used
[INFO] [stdout]   --> src/voxels/space/index.rs:21:11
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub const I_STRIDE_Z_2D: isize = STRIDE_Z_2D as isize;
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MASK_X` is never used
[INFO] [stdout]   --> src/voxels/space/index.rs:23:7
[INFO] [stdout]    |
[INFO] [stdout] 23 | const MASK_X: usize = Shape3d::MASKS[0] as usize;
[INFO] [stdout]    |       ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Index2d` is never used
[INFO] [stdout]   --> src/voxels/space/index.rs:25:11
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub trait Index2d {
[INFO] [stdout]    |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Index3d` is never used
[INFO] [stdout]   --> src/voxels/space/index.rs:31:11
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub trait Index3d: Copy {
[INFO] [stdout]    |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `texture_array_handle`
[INFO] [stdout]   --> src/main.rs:64:5
[INFO] [stdout]    |
[INFO] [stdout] 64 |     texture_array_handle: If<Res<TextureArrayHandle>>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_texture_array_handle`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `NotSetup` is never constructed
[INFO] [stdout]   --> src/main.rs:54:5
[INFO] [stdout]    |
[INFO] [stdout] 51 | enum GameState {
[INFO] [stdout]    |      --------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 54 |     NotSetup,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GameState` 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: methods `collect_moves` and `move_group` are never used
[INFO] [stdout]   --> src/liquid_tick.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl Chunk {
[INFO] [stdout]    | ---------- methods in this implementation
[INFO] [stdout] 17 |     pub fn collect_moves(&self, dst_to_src: &DashMap<usize, usize>, tick: u64) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 76 |     fn move_group(
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Shift` is never used
[INFO] [stdout]    --> src/liquid_tick.rs:123:7
[INFO] [stdout]     |
[INFO] [stdout] 123 | trait Shift: Copy {
[INFO] [stdout]     |       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Action` is never used
[INFO] [stdout]  --> src/liquid_tick/action.rs:3:10
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub type Action = (Delta, &'static [PreReq]);
[INFO] [stdout]   |          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ActionGroup` is never used
[INFO] [stdout]  --> src/liquid_tick/action.rs:4:6
[INFO] [stdout]   |
[INFO] [stdout] 4 | type ActionGroup = [Action; 4];
[INFO] [stdout]   |      ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Delta` is never constructed
[INFO] [stdout]  --> src/liquid_tick/action.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct Delta([isize; 3]);
[INFO] [stdout]   |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `i_3d` and `x_and_i_2d` are never used
[INFO] [stdout]   --> src/liquid_tick/action.rs:9:12
[INFO] [stdout]    |
[INFO] [stdout]  8 | impl Delta {
[INFO] [stdout]    | ---------- methods in this implementation
[INFO] [stdout]  9 |     pub fn i_3d(&self) -> isize {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 14 |     pub fn x_and_i_2d(&self) -> (isize, isize) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PreReq` is never constructed
[INFO] [stdout]   --> src/liquid_tick/action.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct PreReq {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `none` is never used
[INFO] [stdout]   --> src/liquid_tick/action.rs:25:10
[INFO] [stdout]    |
[INFO] [stdout] 25 | const fn none(delta: [isize; 3]) -> PreReq {
[INFO] [stdout]    |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `some` is never used
[INFO] [stdout]   --> src/liquid_tick/action.rs:32:10
[INFO] [stdout]    |
[INFO] [stdout] 32 | const fn some(delta: [isize; 3]) -> PreReq {
[INFO] [stdout]    |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `action` is never used
[INFO] [stdout]   --> src/liquid_tick/action.rs:39:10
[INFO] [stdout]    |
[INFO] [stdout] 39 | const fn action(delta: [isize; 3], prereqs: &'static [PreReq]) -> Action {
[INFO] [stdout]    |          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DOWN_ACTION` is never used
[INFO] [stdout]   --> src/liquid_tick/action.rs:43:11
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub const DOWN_ACTION: Action = action([0, -1, 0], &[]);
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ACTIONS` is never used
[INFO] [stdout]   --> src/liquid_tick/action.rs:45:11
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub const ACTIONS: &[ActionGroup] = &[
[INFO] [stdout]    |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX6` is never used
[INFO] [stdout]   --> src/render/mod.rs:13:7
[INFO] [stdout]    |
[INFO] [stdout] 13 | const MAX6: u32 = (1 << 6) - 1;
[INFO] [stdout]    |       ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX16` is never used
[INFO] [stdout]   --> src/render/mod.rs:14:7
[INFO] [stdout]    |
[INFO] [stdout] 14 | const MAX16: u32 = u16::MAX as u32;
[INFO] [stdout]    |       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WIDTH_SHIFT` is never used
[INFO] [stdout]   --> src/render/mod.rs:16:7
[INFO] [stdout]    |
[INFO] [stdout] 16 | const WIDTH_SHIFT: u32 = 0;
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEIGHT_SHIFT` is never used
[INFO] [stdout]   --> src/render/mod.rs:17:7
[INFO] [stdout]    |
[INFO] [stdout] 17 | const HEIGHT_SHIFT: u32 = 6;
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FACE_SHIFT` is never used
[INFO] [stdout]   --> src/render/mod.rs:18:7
[INFO] [stdout]    |
[INFO] [stdout] 18 | const FACE_SHIFT: u32 = 12;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TEXTURE_SHIFT` is never used
[INFO] [stdout]   --> src/render/mod.rs:20:7
[INFO] [stdout]    |
[INFO] [stdout] 20 | const TEXTURE_SHIFT: u32 = 16;
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/render/mod.rs:30:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | impl Quad {
[INFO] [stdout]    | --------- associated function in this implementation
[INFO] [stdout] 30 |     pub fn new(pos: IVec3, w: u32, h: u32, f: Face, t: u32) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constant `ALL` is never used
[INFO] [stdout]   --> src/render/mod.rs:58:11
[INFO] [stdout]    |
[INFO] [stdout] 57 | impl Face {
[INFO] [stdout]    | --------- associated constant in this implementation
[INFO] [stdout] 58 |     const ALL: [Self; 6] = [PosX, PosY, PosZ, NegX, NegY, NegZ];
[INFO] [stdout]    |           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ChunkRemesh` is never constructed
[INFO] [stdout]   --> src/render/mod.rs:75:12
[INFO] [stdout]    |
[INFO] [stdout] 75 | pub struct ChunkRemesh(pub U64Vec3);
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `clear`, `is_empty`, and `push` are never used
[INFO] [stdout]   --> src/render/mod.rs:78:12
[INFO] [stdout]    |
[INFO] [stdout] 77 | impl ChunkRemesh {
[INFO] [stdout]    | ---------------- methods in this implementation
[INFO] [stdout] 78 |     pub fn clear(&mut self) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 82 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 86 |     pub fn push(&mut self, p: impl Index3d) {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UPWARD_STRIDE_X` is never used
[INFO] [stdout]   --> src/render/mesher.rs:14:7
[INFO] [stdout]    |
[INFO] [stdout] 14 | const UPWARD_STRIDE_X: usize = STRIDE_X_3D;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FORWARD_STRIDE_X` is never used
[INFO] [stdout]   --> src/render/mesher.rs:15:7
[INFO] [stdout]    |
[INFO] [stdout] 15 | const FORWARD_STRIDE_X: usize = STRIDE_X_3D;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FORWARD_STRIDE_Y` is never used
[INFO] [stdout]   --> src/render/mesher.rs:16:7
[INFO] [stdout]    |
[INFO] [stdout] 16 | const FORWARD_STRIDE_Y: usize = STRIDE_Y_3D;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Mesher` is never constructed
[INFO] [stdout]   --> src/render/mesher.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub struct Mesher {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `InnerMesher` is never constructed
[INFO] [stdout]   --> src/render/mesher.rs:43:12
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub struct InnerMesher {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/render/mesher.rs:50:8
[INFO] [stdout]     |
[INFO] [stdout]  49 | impl InnerMesher {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout]  50 |     fn build_all_visible_masks(&mut self, chunk: &Chunk) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 105 |     fn build_visible_masks(&mut self, chunk: &Chunk, remesh: U64Vec3) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 179 |     fn merged_quads(&mut self, chunk: &Chunk, origin: IVec3) -> EnumMap<Face, Vec<Quad>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 192 |     fn merge_x(&mut self, chunk: &Chunk, origin: IVec3, xs: u64, f: Face, quads: &mut Vec<Quad>) {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 261 |     fn merge_y(
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 340 |     fn merge_z(
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 416 |     pub fn mesh(&mut self, chunk: &Chunk, origin: IVec3) -> ChunkMesh {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `remesh` is never used
[INFO] [stdout]    --> src/render/mesher.rs:423:12
[INFO] [stdout]     |
[INFO] [stdout] 422 | impl Mesher {
[INFO] [stdout]     | ----------- method in this implementation
[INFO] [stdout] 423 |     pub fn remesh(
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `key_range` is never used
[INFO] [stdout]    --> src/render/mesher.rs:498:4
[INFO] [stdout]     |
[INFO] [stdout] 498 | fn key_range(slice: &[Quad], key: impl Fn(&Quad) -> i32, k: i32) -> Range<usize> {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `as_u32` is never used
[INFO] [stdout]    --> src/render/mesher.rs:505:4
[INFO] [stdout]     |
[INFO] [stdout] 505 | fn as_u32(usize: usize) -> u32 {
[INFO] [stdout]     |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SparseChunks` is never constructed
[INFO] [stdout]   --> src/voxels/mod.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct SparseChunks {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SparseChunkMeshes` is never constructed
[INFO] [stdout]   --> src/voxels/mod.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct SparseChunkMeshes {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SparseChunkRemeshes` is never constructed
[INFO] [stdout]   --> src/voxels/mod.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub struct SparseChunkRemeshes {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `BLOCKS` is never used
[INFO] [stdout]   --> src/voxels/block.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub static BLOCKS: LazyLock<Blocks> = LazyLock::new(temp);
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Block` is never constructed
[INFO] [stdout]   --> src/voxels/block.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct Block {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Blocks` is never constructed
[INFO] [stdout]   --> src/voxels/block.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct Blocks(pub Vec<Block>);
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BlockIndex` is never constructed
[INFO] [stdout]   --> src/voxels/block.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub struct BlockIndex(pub NonMaxU16);
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get` is never used
[INFO] [stdout]   --> src/voxels/block.rs:41:12
[INFO] [stdout]    |
[INFO] [stdout] 40 | impl BlockIndex {
[INFO] [stdout]    | --------------- method in this implementation
[INFO] [stdout] 41 |     pub fn get(self) -> usize {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `GRASS` is never used
[INFO] [stdout]   --> src/voxels/block.rs:46:11
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub const GRASS: BlockIndex = BlockIndex(unsafe { NonMaxU16::new_unchecked(0) });
[INFO] [stdout]    |           ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WATER` is never used
[INFO] [stdout]   --> src/voxels/block.rs:47:11
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub const WATER: BlockIndex = BlockIndex(unsafe { NonMaxU16::new_unchecked(1) });
[INFO] [stdout]    |           ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DIRT` is never used
[INFO] [stdout]   --> src/voxels/block.rs:48:11
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub const DIRT: BlockIndex = BlockIndex(unsafe { NonMaxU16::new_unchecked(2) });
[INFO] [stdout]    |           ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `temp` is never used
[INFO] [stdout]   --> src/voxels/block.rs:50:8
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub fn temp() -> Blocks {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Chunk` is never constructed
[INFO] [stdout]  --> src/voxels/chunk.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct Chunk {
[INFO] [stdout]   |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set`, `set_masks`, `transfer_within`, and `raycast` are never used
[INFO] [stdout]   --> src/voxels/chunk.rs:29:12
[INFO] [stdout]    |
[INFO] [stdout] 28 | impl Chunk {
[INFO] [stdout]    | ---------- methods in this implementation
[INFO] [stdout] 29 |     pub fn set(&mut self, pos: impl Index3d, voxel: Option<BlockIndex>) {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |     fn set_masks(&mut self, pos: impl Index3d, voxel: Option<BlockIndex>) {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 57 |     pub fn transfer_within(&mut self, dst: impl Index3d, src: impl Index3d) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 77 |     pub fn raycast(&self, ray: Ray3d, max: f32) -> [Option<UVec3>; 2] {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LEN_U32` is never used
[INFO] [stdout]   --> src/voxels/space.rs:12:11
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub const LEN_U32: u32 = LEN as u32;
[INFO] [stdout]    |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `AREA` is never used
[INFO] [stdout]   --> src/voxels/space.rs:13:11
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub const AREA: usize = LEN * LEN;
[INFO] [stdout]    |           ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `VOL` is never used
[INFO] [stdout]   --> src/voxels/space.rs:14:11
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub const VOL: usize = LEN * LEN * LEN;
[INFO] [stdout]    |           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UNPAD_VOL` is never used
[INFO] [stdout]   --> src/voxels/space.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub const UNPAD_VOL: usize = UNPAD_LEN * UNPAD_LEN * UNPAD_LEN;
[INFO] [stdout]    |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PAD_MASK` is never used
[INFO] [stdout]   --> src/voxels/space.rs:20:11
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub const PAD_MASK: u64 = (1 << 63) | 1;
[INFO] [stdout]    |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Shape3d` is never used
[INFO] [stdout]  --> src/voxels/space/index.rs:6:10
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub type Shape3d = ConstPow2Shape3u32<BITS, BITS, BITS>;
[INFO] [stdout]   |          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Shape2d` is never used
[INFO] [stdout]  --> src/voxels/space/index.rs:7:10
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub type Shape2d = ConstPow2Shape2u32<BITS, BITS>;
[INFO] [stdout]   |          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `STRIDE_X_3D` is never used
[INFO] [stdout]  --> src/voxels/space/index.rs:9:11
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub const STRIDE_X_3D: usize = 1 << Shape3d::SHIFTS[0];
[INFO] [stdout]   |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `STRIDE_Y_3D` is never used
[INFO] [stdout]   --> src/voxels/space/index.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub const STRIDE_Y_3D: usize = 1 << Shape3d::SHIFTS[1];
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `STRIDE_Z_3D` is never used
[INFO] [stdout]   --> src/voxels/space/index.rs:11:11
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub const STRIDE_Z_3D: usize = 1 << Shape3d::SHIFTS[2];
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `STRIDE_Y_2D` is never used
[INFO] [stdout]   --> src/voxels/space/index.rs:13:11
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub const STRIDE_Y_2D: usize = 1 << Shape2d::SHIFTS[0];
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `STRIDE_Z_2D` is never used
[INFO] [stdout]   --> src/voxels/space/index.rs:14:11
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub const STRIDE_Z_2D: usize = 1 << Shape2d::SHIFTS[1];
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `I_STRIDE_X_3D` is never used
[INFO] [stdout]   --> src/voxels/space/index.rs:16:11
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub const I_STRIDE_X_3D: isize = STRIDE_X_3D as isize;
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `I_STRIDE_Y_3D` is never used
[INFO] [stdout]   --> src/voxels/space/index.rs:17:11
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub const I_STRIDE_Y_3D: isize = STRIDE_Y_3D as isize;
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `I_STRIDE_Z_3D` is never used
[INFO] [stdout]   --> src/voxels/space/index.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub const I_STRIDE_Z_3D: isize = STRIDE_Z_3D as isize;
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `I_STRIDE_Y_2D` is never used
[INFO] [stdout]   --> src/voxels/space/index.rs:20:11
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub const I_STRIDE_Y_2D: isize = STRIDE_Y_2D as isize;
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `I_STRIDE_Z_2D` is never used
[INFO] [stdout]   --> src/voxels/space/index.rs:21:11
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub const I_STRIDE_Z_2D: isize = STRIDE_Z_2D as isize;
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MASK_X` is never used
[INFO] [stdout]   --> src/voxels/space/index.rs:23:7
[INFO] [stdout]    |
[INFO] [stdout] 23 | const MASK_X: usize = Shape3d::MASKS[0] as usize;
[INFO] [stdout]    |       ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Index2d` is never used
[INFO] [stdout]   --> src/voxels/space/index.rs:25:11
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub trait Index2d {
[INFO] [stdout]    |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Index3d` is never used
[INFO] [stdout]   --> src/voxels/space/index.rs:31:11
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub trait Index3d: Copy {
[INFO] [stdout]    |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [optimized + debuginfo] target(s) in 10m 07s
[INFO] running `Command { std: "docker" "inspect" "7e528226612af91998e628ca0f23c11f3556d7bdbb9c71f1d7c34e886babc6e4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7e528226612af91998e628ca0f23c11f3556d7bdbb9c71f1d7c34e886babc6e4", kill_on_drop: false }`
[INFO] [stdout] 7e528226612af91998e628ca0f23c11f3556d7bdbb9c71f1d7c34e886babc6e4
