[INFO] cloning repository https://github.com/farleyknight/3d-multiplayer-game-engine
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/farleyknight/3d-multiplayer-game-engine" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ffarleyknight%2F3d-multiplayer-game-engine", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ffarleyknight%2F3d-multiplayer-game-engine'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 9eaea29eee2f5ddf7bd27ee9a3799f115d65b09e
[INFO] checking farleyknight/3d-multiplayer-game-engine against 65b20a97de33e9e59992793a144aef2950c48c76 for pr-154715
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ffarleyknight%2F3d-multiplayer-game-engine" "/workspace/builds/worker-4-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/farleyknight/3d-multiplayer-game-engine
[INFO] finished tweaking git repo https://github.com/farleyknight/3d-multiplayer-game-engine
[INFO] tweaked toml for git repo https://github.com/farleyknight/3d-multiplayer-game-engine written to /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/farleyknight/3d-multiplayer-game-engine on toolchain 65b20a97de33e9e59992793a144aef2950c48c76
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+65b20a97de33e9e59992793a144aef2950c48c76" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/farleyknight/3d-multiplayer-game-engine 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" "+65b20a97de33e9e59992793a144aef2950c48c76" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:00c5645b54fe3ce5dae1417175e3c7fb6a6646c021d554ecd63a097b8b9f3602" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 97566e06dc500351461636a1addd6bc2d077ec07f7c0399f671d40c1a4b019d6
[INFO] running `Command { std: "docker" "start" "97566e06dc500351461636a1addd6bc2d077ec07f7c0399f671d40c1a4b019d6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "97566e06dc500351461636a1addd6bc2d077ec07f7c0399f671d40c1a4b019d6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "97566e06dc500351461636a1addd6bc2d077ec07f7c0399f671d40c1a4b019d6" "/opt/rustwide/cargo-home/bin/cargo" "+65b20a97de33e9e59992793a144aef2950c48c76" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "97566e06dc500351461636a1addd6bc2d077ec07f7c0399f671d40c1a4b019d6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "97566e06dc500351461636a1addd6bc2d077ec07f7c0399f671d40c1a4b019d6" "/opt/rustwide/cargo-home/bin/cargo" "+65b20a97de33e9e59992793a144aef2950c48c76" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.180
[INFO] [stderr]    Compiling rustix v1.1.3
[INFO] [stderr]     Checking linux-raw-sys v0.11.0
[INFO] [stderr]    Compiling zerocopy v0.8.37
[INFO] [stderr]    Compiling cc v1.2.55
[INFO] [stderr]    Compiling wayland-sys v0.31.8
[INFO] [stderr]     Checking dlib v0.5.2
[INFO] [stderr]    Compiling memchr v2.7.6
[INFO] [stderr]    Compiling wayland-client v0.31.12
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]     Checking simd-adler32 v0.3.8
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]     Checking gpu-descriptor-types v0.1.2
[INFO] [stderr]    Compiling smithay-client-toolkit v0.18.1
[INFO] [stderr]     Checking ttf-parser v0.25.1
[INFO] [stderr]     Checking aho-corasick v1.1.4
[INFO] [stderr]     Checking rayon v1.11.0
[INFO] [stderr]     Checking wgpu-types v0.19.2
[INFO] [stderr]     Checking miniz_oxide v0.8.9
[INFO] [stderr]    Compiling x11-dl v2.21.0
[INFO] [stderr]    Compiling wgpu-core v0.19.4
[INFO] [stderr]     Checking ab_glyph_rasterizer v0.1.10
[INFO] [stderr]     Checking glow v0.13.1
[INFO] [stderr]    Compiling quote v1.0.44
[INFO] [stderr]     Checking weezl v0.1.12
[INFO] [stderr]    Compiling quick-xml v0.38.4
[INFO] [stderr]     Checking flate2 v1.1.8
[INFO] [stderr]     Checking zune-inflate v0.2.54
[INFO] [stderr]     Checking fdeflate v0.3.7
[INFO] [stderr]    Compiling wgpu v0.19.4
[INFO] [stderr]    Compiling winit v0.29.15
[INFO] [stderr]    Compiling syn v2.0.114
[INFO] [stderr]     Checking lebe v0.5.3
[INFO] [stderr]     Checking regex-automata v0.4.13
[INFO] [stderr]     Checking x11rb-protocol v0.13.2
[INFO] [stderr]     Checking bit_field v0.10.3
[INFO] [stderr]     Checking png v0.17.16
[INFO] [stderr]     Checking getrandom v0.3.4
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]     Checking memmap2 v0.9.9
[INFO] [stderr]     Checking khronos-egl v6.0.0
[INFO] [stderr]     Checking is-terminal v0.4.17
[INFO] [stderr]     Checking gif v0.13.3
[INFO] [stderr]     Checking xkbcommon-dl v0.4.2
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]     Checking pollster v0.3.0
[INFO] [stderr]    Compiling wayland-scanner v0.31.8
[INFO] [stderr]    Compiling wayland-backend v0.3.12
[INFO] [stderr]     Checking jpeg-decoder v0.3.2
[INFO] [stderr]     Checking owned_ttf_parser v0.25.1
[INFO] [stderr]     Checking ab_glyph v0.2.32
[INFO] [stderr]     Checking tiff v0.9.1
[INFO] [stderr]     Checking regex v1.12.2
[INFO] [stderr]     Checking env_logger v0.10.2
[INFO] [stderr]    Compiling zerocopy-derive v0.8.37
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling bytemuck_derive v1.10.2
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking bytemuck v1.24.0
[INFO] [stderr]     Checking naga v0.19.2
[INFO] [stderr]     Checking tiny-skia-path v0.11.4
[INFO] [stderr]     Checking qoi v0.4.1
[INFO] [stderr]     Checking tiny-skia v0.11.4
[INFO] [stderr]     Checking polling v3.11.0
[INFO] [stderr]     Checking gethostname v1.1.0
[INFO] [stderr]     Checking serde v1.0.228
[INFO] [stderr]     Checking calloop v0.12.4
[INFO] [stderr]     Checking bincode v1.3.3
[INFO] [stderr]     Checking glam v0.25.0
[INFO] [stderr]     Checking wayland-csd-frame v0.3.0
[INFO] [stderr]     Checking wayland-protocols v0.31.2
[INFO] [stderr]     Checking calloop-wayland-source v0.2.0
[INFO] [stderr]     Checking wayland-cursor v0.31.12
[INFO] [stderr]     Checking ahash v0.8.12
[INFO] [stderr]     Checking half v2.7.1
[INFO] [stderr]     Checking hashbrown v0.14.5
[INFO] [stderr]     Checking exr v1.74.0
[INFO] [stderr]     Checking gpu-descriptor v0.2.4
[INFO] [stderr]     Checking wgpu-hal v0.19.5
[INFO] [stderr]     Checking wayland-protocols-wlr v0.2.0
[INFO] [stderr]     Checking wayland-protocols-plasma v0.2.0
[INFO] [stderr]     Checking image v0.24.9
[INFO] [stderr]     Checking x11rb v0.13.2
[INFO] [stderr]     Checking sctk-adwaita v0.8.3
[INFO] [stderr]     Checking game-engine v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `JUMP_VELOCITY`
[INFO] [stdout]     --> src/test_helpers.rs:1005:54
[INFO] [stdout]      |
[INFO] [stdout] 1005 |         use crate::physics::{PhysicsState, GROUND_Y, JUMP_VELOCITY};
[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: `GROUND_Y`
[INFO] [stdout]     --> src/test_helpers.rs:1026:44
[INFO] [stdout]      |
[INFO] [stdout] 1026 |         use crate::physics::{PhysicsState, GROUND_Y};
[INFO] [stdout]      |                                            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/test_helpers.rs:1029:13
[INFO] [stdout]      |
[INFO] [stdout] 1029 |         let mut input = InputSimulator::new();
[INFO] [stdout]      |             ----^^^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `game_engine::render::HeadlessRenderState`
[INFO] [stdout]  --> tests/movement_integration.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use game_engine::render::HeadlessRenderState;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::Path`
[INFO] [stdout]  --> tests/movement_integration.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::path::Path;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `glam::Vec3`
[INFO] [stdout]  --> tests/jump_integration.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use glam::Vec3;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HeadlessRenderState`
[INFO] [stdout]  --> tests/box_interaction_integration.rs:5:39
[INFO] [stdout]   |
[INFO] [stdout] 5 | use game_engine::render::{DynamicBox, HeadlessRenderState};
[INFO] [stdout]   |                                       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::Path`
[INFO] [stdout]  --> tests/box_interaction_integration.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::path::Path;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `game_engine::render::HeadlessRenderState`
[INFO] [stdout]  --> tests/movement_video_integration.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use game_engine::render::HeadlessRenderState;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::Path`
[INFO] [stdout]  --> tests/movement_video_integration.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::path::Path;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CAMERA_DISTANCE` is never used
[INFO] [stdout]   --> tests/movement_integration.rs:13:7
[INFO] [stdout]    |
[INFO] [stdout] 13 | const CAMERA_DISTANCE: f32 = 5.0;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CAMERA_HEIGHT` is never used
[INFO] [stdout]   --> tests/movement_integration.rs:16:7
[INFO] [stdout]    |
[INFO] [stdout] 16 | const CAMERA_HEIGHT: f32 = 2.0;
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MOVE_AMOUNT` is never used
[INFO] [stdout]   --> tests/movement_integration.rs:19:7
[INFO] [stdout]    |
[INFO] [stdout] 19 | const MOVE_AMOUNT: f32 = 2.0;
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_camera_from_player` is never used
[INFO] [stdout]   --> tests/movement_integration.rs:23:4
[INFO] [stdout]    |
[INFO] [stdout] 23 | fn calculate_camera_from_player(player: &PlayerState) -> (Vec3, Vec3) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `move_player` is never used
[INFO] [stdout]   --> tests/movement_integration.rs:39:4
[INFO] [stdout]    |
[INFO] [stdout] 39 | fn move_player(player: &mut PlayerState, direction: &str, amount: f32) {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `GRAVITY` is never used
[INFO] [stdout]   --> tests/jump_integration.rs:25:7
[INFO] [stdout]    |
[INFO] [stdout] 25 | const GRAVITY: f32 = -20.0; // Downward acceleration (units/sec²)
[INFO] [stdout]    |       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `GROUND_Y` is never used
[INFO] [stdout]   --> tests/jump_integration.rs:26:7
[INFO] [stdout]    |
[INFO] [stdout] 26 | const GROUND_Y: f32 = 0.0; // Ground level
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PHYSICS_DT` is never used
[INFO] [stdout]   --> tests/jump_integration.rs:29:7
[INFO] [stdout]    |
[INFO] [stdout] 29 | const PHYSICS_DT: f32 = 1.0 / 60.0;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `step_jump_physics` is never used
[INFO] [stdout]   --> tests/jump_integration.rs:51:4
[INFO] [stdout]    |
[INFO] [stdout] 51 | fn step_jump_physics(player: &mut PlayerState, velocity_y: &mut f32, dt: f32) -> bool {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `simulate_until` is never used
[INFO] [stdout]   --> tests/jump_integration.rs:70:4
[INFO] [stdout]    |
[INFO] [stdout] 70 | fn simulate_until<F>(player: &mut PlayerState, velocity_y: &mut f32, condition: F) -> u32
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CAMERA_DISTANCE` is never used
[INFO] [stdout]   --> tests/box_interaction_integration.rs:14:7
[INFO] [stdout]    |
[INFO] [stdout] 14 | const CAMERA_DISTANCE: f32 = 5.0;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CAMERA_HEIGHT` is never used
[INFO] [stdout]   --> tests/box_interaction_integration.rs:17:7
[INFO] [stdout]    |
[INFO] [stdout] 17 | const CAMERA_HEIGHT: f32 = 2.0;
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BOX_ORANGE` is never used
[INFO] [stdout]   --> tests/box_interaction_integration.rs:20:7
[INFO] [stdout]    |
[INFO] [stdout] 20 | const BOX_ORANGE: [f32; 3] = [1.0, 0.533, 0.0];
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BOX_PURPLE` is never used
[INFO] [stdout]   --> tests/box_interaction_integration.rs:23:7
[INFO] [stdout]    |
[INFO] [stdout] 23 | const BOX_PURPLE: [f32; 3] = [0.533, 0.0, 1.0];
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BOX_CYAN` is never used
[INFO] [stdout]   --> tests/box_interaction_integration.rs:26:7
[INFO] [stdout]    |
[INFO] [stdout] 26 | const BOX_CYAN: [f32; 3] = [0.0, 1.0, 1.0];
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PUSH_DISTANCE` is never used
[INFO] [stdout]   --> tests/box_interaction_integration.rs:29:7
[INFO] [stdout]    |
[INFO] [stdout] 29 | const PUSH_DISTANCE: f32 = 1.5;
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_camera_from_player` is never used
[INFO] [stdout]   --> tests/box_interaction_integration.rs:33:4
[INFO] [stdout]    |
[INFO] [stdout] 33 | fn calculate_camera_from_player(player: &PlayerState) -> (Vec3, Vec3) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `push_box` is never used
[INFO] [stdout]   --> tests/box_interaction_integration.rs:50:4
[INFO] [stdout]    |
[INFO] [stdout] 50 | fn push_box(player: &PlayerState, dynamic_box: &mut DynamicBox) {
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `move_player` is never used
[INFO] [stdout]   --> tests/box_interaction_integration.rs:68:4
[INFO] [stdout]    |
[INFO] [stdout] 68 | fn move_player(player: &mut PlayerState, direction: &str, amount: f32) {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CAMERA_DISTANCE` is never used
[INFO] [stdout]   --> tests/movement_video_integration.rs:13:7
[INFO] [stdout]    |
[INFO] [stdout] 13 | const CAMERA_DISTANCE: f32 = 5.0;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CAMERA_HEIGHT` is never used
[INFO] [stdout]   --> tests/movement_video_integration.rs:16:7
[INFO] [stdout]    |
[INFO] [stdout] 16 | const CAMERA_HEIGHT: f32 = 2.0;
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MOVE_AMOUNT` is never used
[INFO] [stdout]   --> tests/movement_video_integration.rs:19:7
[INFO] [stdout]    |
[INFO] [stdout] 19 | const MOVE_AMOUNT: f32 = 2.0;
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FRAMES_PER_POSITION` is never used
[INFO] [stdout]   --> tests/movement_video_integration.rs:22:7
[INFO] [stdout]    |
[INFO] [stdout] 22 | const FRAMES_PER_POSITION: u32 = 15;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_camera_from_player` is never used
[INFO] [stdout]   --> tests/movement_video_integration.rs:26:4
[INFO] [stdout]    |
[INFO] [stdout] 26 | fn calculate_camera_from_player(player: &PlayerState) -> (Vec3, Vec3) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `move_player` is never used
[INFO] [stdout]   --> tests/movement_video_integration.rs:42:4
[INFO] [stdout]    |
[INFO] [stdout] 42 | fn move_player(player: &mut PlayerState, direction: &str, amount: f32) {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HeadlessRenderState`
[INFO] [stdout]  --> tests/box_interaction_integration.rs:5:39
[INFO] [stdout]   |
[INFO] [stdout] 5 | use game_engine::render::{DynamicBox, HeadlessRenderState};
[INFO] [stdout]   |                                       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::Path`
[INFO] [stdout]  --> tests/box_interaction_integration.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::path::Path;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CAMERA_DISTANCE` is never used
[INFO] [stdout]   --> tests/box_interaction_integration.rs:14:7
[INFO] [stdout]    |
[INFO] [stdout] 14 | const CAMERA_DISTANCE: f32 = 5.0;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CAMERA_HEIGHT` is never used
[INFO] [stdout]   --> tests/box_interaction_integration.rs:17:7
[INFO] [stdout]    |
[INFO] [stdout] 17 | const CAMERA_HEIGHT: f32 = 2.0;
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BOX_ORANGE` is never used
[INFO] [stdout]   --> tests/box_interaction_integration.rs:20:7
[INFO] [stdout]    |
[INFO] [stdout] 20 | const BOX_ORANGE: [f32; 3] = [1.0, 0.533, 0.0];
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BOX_PURPLE` is never used
[INFO] [stdout]   --> tests/box_interaction_integration.rs:23:7
[INFO] [stdout]    |
[INFO] [stdout] 23 | const BOX_PURPLE: [f32; 3] = [0.533, 0.0, 1.0];
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BOX_CYAN` is never used
[INFO] [stdout]   --> tests/box_interaction_integration.rs:26:7
[INFO] [stdout]    |
[INFO] [stdout] 26 | const BOX_CYAN: [f32; 3] = [0.0, 1.0, 1.0];
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PUSH_DISTANCE` is never used
[INFO] [stdout]   --> tests/box_interaction_integration.rs:29:7
[INFO] [stdout]    |
[INFO] [stdout] 29 | const PUSH_DISTANCE: f32 = 1.5;
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_camera_from_player` is never used
[INFO] [stdout]   --> tests/box_interaction_integration.rs:33:4
[INFO] [stdout]    |
[INFO] [stdout] 33 | fn calculate_camera_from_player(player: &PlayerState) -> (Vec3, Vec3) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `push_box` is never used
[INFO] [stdout]   --> tests/box_interaction_integration.rs:50:4
[INFO] [stdout]    |
[INFO] [stdout] 50 | fn push_box(player: &PlayerState, dynamic_box: &mut DynamicBox) {
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `move_player` is never used
[INFO] [stdout]   --> tests/box_interaction_integration.rs:68:4
[INFO] [stdout]    |
[INFO] [stdout] 68 | fn move_player(player: &mut PlayerState, direction: &str, amount: f32) {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `glam::Vec3`
[INFO] [stdout]  --> tests/input_simulation_integration.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use glam::Vec3;
[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: `glam::Vec3`
[INFO] [stdout]  --> tests/jump_integration.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use glam::Vec3;
[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: `game_engine::blocks::BlockType`
[INFO] [stdout]  --> tests/block_interaction_video_integration.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use game_engine::blocks::BlockType;
[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: `game_engine::raycast::raycast_voxel`
[INFO] [stdout]  --> tests/block_interaction_video_integration.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use game_engine::raycast::raycast_voxel;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `game_engine::render::HeadlessRenderState`
[INFO] [stdout]  --> tests/block_interaction_video_integration.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use game_engine::render::HeadlessRenderState;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::Path`
[INFO] [stdout]  --> tests/block_interaction_video_integration.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::path::Path;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CAMERA_DISTANCE` is never used
[INFO] [stdout]   --> tests/block_interaction_video_integration.rs:15:7
[INFO] [stdout]    |
[INFO] [stdout] 15 | const CAMERA_DISTANCE: f32 = 5.0;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CAMERA_HEIGHT` is never used
[INFO] [stdout]   --> tests/block_interaction_video_integration.rs:18:7
[INFO] [stdout]    |
[INFO] [stdout] 18 | const CAMERA_HEIGHT: f32 = 2.0;
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `EYE_HEIGHT` is never used
[INFO] [stdout]   --> tests/block_interaction_video_integration.rs:21:7
[INFO] [stdout]    |
[INFO] [stdout] 21 | const EYE_HEIGHT: f32 = 1.6;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BLOCK_REACH_DISTANCE` is never used
[INFO] [stdout]   --> tests/block_interaction_video_integration.rs:24:7
[INFO] [stdout]    |
[INFO] [stdout] 24 | const BLOCK_REACH_DISTANCE: f32 = 5.0;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FRAMES_PER_ACTION` is never used
[INFO] [stdout]   --> tests/block_interaction_video_integration.rs:27:7
[INFO] [stdout]    |
[INFO] [stdout] 27 | const FRAMES_PER_ACTION: u32 = 30;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_camera_from_player` is never used
[INFO] [stdout]   --> tests/block_interaction_video_integration.rs:31:4
[INFO] [stdout]    |
[INFO] [stdout] 31 | fn calculate_camera_from_player(player: &PlayerState) -> (Vec3, Vec3) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `GRAVITY` is never used
[INFO] [stdout]   --> tests/jump_integration.rs:25:7
[INFO] [stdout]    |
[INFO] [stdout] 25 | const GRAVITY: f32 = -20.0; // Downward acceleration (units/sec²)
[INFO] [stdout]    |       ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `GROUND_Y` is never used
[INFO] [stdout]   --> tests/jump_integration.rs:26:7
[INFO] [stdout]    |
[INFO] [stdout] 26 | const GROUND_Y: f32 = 0.0; // Ground level
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PHYSICS_DT` is never used
[INFO] [stdout]   --> tests/jump_integration.rs:29:7
[INFO] [stdout]    |
[INFO] [stdout] 29 | const PHYSICS_DT: f32 = 1.0 / 60.0;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `step_jump_physics` is never used
[INFO] [stdout]   --> tests/jump_integration.rs:51:4
[INFO] [stdout]    |
[INFO] [stdout] 51 | fn step_jump_physics(player: &mut PlayerState, velocity_y: &mut f32, dt: f32) -> bool {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `simulate_until` is never used
[INFO] [stdout]   --> tests/jump_integration.rs:70:4
[INFO] [stdout]    |
[INFO] [stdout] 70 | fn simulate_until<F>(player: &mut PlayerState, velocity_y: &mut f32, condition: F) -> u32
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `game_engine::render::HeadlessRenderState`
[INFO] [stdout]  --> tests/movement_video_integration.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use game_engine::render::HeadlessRenderState;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::Path`
[INFO] [stdout]  --> tests/movement_video_integration.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::path::Path;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CAMERA_DISTANCE` is never used
[INFO] [stdout]   --> tests/movement_video_integration.rs:13:7
[INFO] [stdout]    |
[INFO] [stdout] 13 | const CAMERA_DISTANCE: f32 = 5.0;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CAMERA_HEIGHT` is never used
[INFO] [stdout]   --> tests/movement_video_integration.rs:16:7
[INFO] [stdout]    |
[INFO] [stdout] 16 | const CAMERA_HEIGHT: f32 = 2.0;
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MOVE_AMOUNT` is never used
[INFO] [stdout]   --> tests/movement_video_integration.rs:19:7
[INFO] [stdout]    |
[INFO] [stdout] 19 | const MOVE_AMOUNT: f32 = 2.0;
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FRAMES_PER_POSITION` is never used
[INFO] [stdout]   --> tests/movement_video_integration.rs:22:7
[INFO] [stdout]    |
[INFO] [stdout] 22 | const FRAMES_PER_POSITION: u32 = 15;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_camera_from_player` is never used
[INFO] [stdout]   --> tests/movement_video_integration.rs:26:4
[INFO] [stdout]    |
[INFO] [stdout] 26 | fn calculate_camera_from_player(player: &PlayerState) -> (Vec3, Vec3) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `move_player` is never used
[INFO] [stdout]   --> tests/movement_video_integration.rs:42:4
[INFO] [stdout]    |
[INFO] [stdout] 42 | fn move_player(player: &mut PlayerState, direction: &str, amount: f32) {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `game_engine::render::HeadlessRenderState`
[INFO] [stdout]  --> tests/jump_video_integration.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use game_engine::render::HeadlessRenderState;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::Path`
[INFO] [stdout]  --> tests/jump_video_integration.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::path::Path;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `game_engine::render::HeadlessRenderState`
[INFO] [stdout]  --> tests/movement_integration.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use game_engine::render::HeadlessRenderState;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::Path`
[INFO] [stdout]  --> tests/movement_integration.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::path::Path;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CAMERA_DISTANCE` is never used
[INFO] [stdout]   --> tests/jump_video_integration.rs:13:7
[INFO] [stdout]    |
[INFO] [stdout] 13 | const CAMERA_DISTANCE: f32 = 5.0;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CAMERA_HEIGHT` is never used
[INFO] [stdout]   --> tests/jump_video_integration.rs:16:7
[INFO] [stdout]    |
[INFO] [stdout] 16 | const CAMERA_HEIGHT: f32 = 2.0;
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `JUMP_VELOCITY` is never used
[INFO] [stdout]   --> tests/jump_video_integration.rs:19:7
[INFO] [stdout]    |
[INFO] [stdout] 19 | const JUMP_VELOCITY: f32 = 8.0; // Initial upward velocity (units/sec)
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `GRAVITY` is never used
[INFO] [stdout]   --> tests/jump_video_integration.rs:20:7
[INFO] [stdout]    |
[INFO] [stdout] 20 | const GRAVITY: f32 = -20.0; // Downward acceleration (units/sec²)
[INFO] [stdout]    |       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `GROUND_Y` is never used
[INFO] [stdout]   --> tests/jump_video_integration.rs:21:7
[INFO] [stdout]    |
[INFO] [stdout] 21 | const GROUND_Y: f32 = 0.0; // Ground level
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PHYSICS_DT` is never used
[INFO] [stdout]   --> tests/jump_video_integration.rs:24:7
[INFO] [stdout]    |
[INFO] [stdout] 24 | const PHYSICS_DT: f32 = 1.0 / 60.0;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `GROUND_FRAMES` is never used
[INFO] [stdout]   --> tests/jump_video_integration.rs:27:7
[INFO] [stdout]    |
[INFO] [stdout] 27 | const GROUND_FRAMES: u32 = 15;
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_camera_from_player` is never used
[INFO] [stdout]   --> tests/jump_video_integration.rs:31:4
[INFO] [stdout]    |
[INFO] [stdout] 31 | fn calculate_camera_from_player(player: &PlayerState) -> (Vec3, Vec3) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `step_jump_physics` is never used
[INFO] [stdout]   --> tests/jump_video_integration.rs:48:4
[INFO] [stdout]    |
[INFO] [stdout] 48 | fn step_jump_physics(player: &mut PlayerState, velocity_y: &mut f32, dt: f32) -> bool {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CAMERA_DISTANCE` is never used
[INFO] [stdout]   --> tests/movement_integration.rs:13:7
[INFO] [stdout]    |
[INFO] [stdout] 13 | const CAMERA_DISTANCE: f32 = 5.0;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CAMERA_HEIGHT` is never used
[INFO] [stdout]   --> tests/movement_integration.rs:16:7
[INFO] [stdout]    |
[INFO] [stdout] 16 | const CAMERA_HEIGHT: f32 = 2.0;
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MOVE_AMOUNT` is never used
[INFO] [stdout]   --> tests/movement_integration.rs:19:7
[INFO] [stdout]    |
[INFO] [stdout] 19 | const MOVE_AMOUNT: f32 = 2.0;
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_camera_from_player` is never used
[INFO] [stdout]   --> tests/movement_integration.rs:23:4
[INFO] [stdout]    |
[INFO] [stdout] 23 | fn calculate_camera_from_player(player: &PlayerState) -> (Vec3, Vec3) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `move_player` is never used
[INFO] [stdout]   --> tests/movement_integration.rs:39:4
[INFO] [stdout]    |
[INFO] [stdout] 39 | fn move_player(player: &mut PlayerState, direction: &str, amount: f32) {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 01s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: wgpu v0.19.4, wgpu-core v0.19.4, wgpu-hal v0.19.5, winit v0.29.15
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 5`
[INFO] running `Command { std: "docker" "inspect" "97566e06dc500351461636a1addd6bc2d077ec07f7c0399f671d40c1a4b019d6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "97566e06dc500351461636a1addd6bc2d077ec07f7c0399f671d40c1a4b019d6", kill_on_drop: false }`
[INFO] [stdout] 97566e06dc500351461636a1addd6bc2d077ec07f7c0399f671d40c1a4b019d6
