[INFO] cloning repository https://github.com/lucb31/rs-voxie
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/lucb31/rs-voxie" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Flucb31%2Frs-voxie", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Flucb31%2Frs-voxie'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 3991d06f8592524eb75203acfef53f929cd22426
[INFO] checking lucb31/rs-voxie against try#d1d7143153307f561233bd4d93e2a3b24157b081 for pr-151539-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Flucb31%2Frs-voxie" "/workspace/builds/worker-7-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/lucb31/rs-voxie
[INFO] finished tweaking git repo https://github.com/lucb31/rs-voxie
[INFO] tweaked toml for git repo https://github.com/lucb31/rs-voxie written to /workspace/builds/worker-7-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/lucb31/rs-voxie on toolchain d1d7143153307f561233bd4d93e2a3b24157b081
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+d1d7143153307f561233bd4d93e2a3b24157b081" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/lucb31/rs-voxie 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" "+d1d7143153307f561233bd4d93e2a3b24157b081" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:3a6becf2bc8dde7f3fa57ede90e4f284e72d296796fc446bbb1e2c7cc0530151" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] e91beabe10f02228c1194b81bcf3e83cc33e952d4f2f57b41a3b14260522d7d2
[INFO] running `Command { std: "docker" "start" "e91beabe10f02228c1194b81bcf3e83cc33e952d4f2f57b41a3b14260522d7d2", 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" "e91beabe10f02228c1194b81bcf3e83cc33e952d4f2f57b41a3b14260522d7d2" "/opt/rustwide/cargo-home/bin/cargo" "+d1d7143153307f561233bd4d93e2a3b24157b081" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "e91beabe10f02228c1194b81bcf3e83cc33e952d4f2f57b41a3b14260522d7d2", 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" "e91beabe10f02228c1194b81bcf3e83cc33e952d4f2f57b41a3b14260522d7d2" "/opt/rustwide/cargo-home/bin/cargo" "+d1d7143153307f561233bd4d93e2a3b24157b081" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]     Checking memchr v2.7.5
[INFO] [stderr]    Compiling zerocopy v0.8.27
[INFO] [stderr]     Checking log v0.4.28
[INFO] [stderr]    Compiling built v0.7.7
[INFO] [stderr]    Compiling syn v2.0.106
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]    Compiling libc v0.2.175
[INFO] [stderr]    Compiling xml-rs v0.8.27
[INFO] [stderr]     Checking quick-error v2.0.1
[INFO] [stderr]     Checking flate2 v1.1.4
[INFO] [stderr]    Compiling simd_helpers v0.1.0
[INFO] [stderr]     Checking num-bigint v0.4.6
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking bitstream-io v2.6.0
[INFO] [stderr]     Checking maybe-rayon v0.1.1
[INFO] [stderr]    Compiling noop_proc_macro v0.3.0
[INFO] [stderr]     Checking weezl v0.1.10
[INFO] [stderr]     Checking imgref v1.12.0
[INFO] [stderr]    Compiling zmij v1.0.6
[INFO] [stderr]     Checking new_debug_unreachable v1.0.6
[INFO] [stderr]     Checking zune-core v0.4.12
[INFO] [stderr]     Checking pxfm v0.1.25
[INFO] [stderr]     Checking avif-serialize v0.8.6
[INFO] [stderr]     Checking zune-jpeg v0.4.21
[INFO] [stderr]     Checking loop9 v0.1.5
[INFO] [stderr]     Checking zune-inflate v0.2.54
[INFO] [stderr]     Checking anstyle-query v1.1.4
[INFO] [stderr]     Checking lebe v0.5.3
[INFO] [stderr]     Checking bitflags v2.9.4
[INFO] [stderr]     Checking rgb v0.8.52
[INFO] [stderr]    Compiling serde_json v1.0.148
[INFO] [stderr]     Checking smallvec v1.15.1
[INFO] [stderr]     Checking bit_field v0.10.3
[INFO] [stderr]     Checking gif v0.13.3
[INFO] [stderr]     Checking anstream v0.6.21
[INFO] [stderr]     Checking png v0.18.0
[INFO] [stderr]     Checking image-webp v0.2.4
[INFO] [stderr]    Compiling rav1e v0.7.1
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking rand_xorshift v0.3.0
[INFO] [stderr]     Checking spin v0.9.8
[INFO] [stderr]     Checking jiff v0.2.15
[INFO] [stderr]     Checking itoa v1.0.17
[INFO] [stderr]     Checking raw-window-handle v0.6.2
[INFO] [stderr]    Compiling gl_generator v0.14.0
[INFO] [stderr]     Checking aho-corasick v1.1.4
[INFO] [stderr]     Checking nom v7.1.3
[INFO] [stderr]     Checking noise v0.9.0
[INFO] [stderr]     Checking num-rational v0.4.2
[INFO] [stderr]    Compiling gl v0.14.0
[INFO] [stderr]     Checking regex-automata v0.4.13
[INFO] [stderr]     Checking moxcms v0.7.7
[INFO] [stderr]     Checking regex v1.12.2
[INFO] [stderr]    Compiling zerocopy-derive v0.8.27
[INFO] [stderr]    Compiling equator-macro v0.4.2
[INFO] [stderr]    Compiling profiling-procmacros v1.0.17
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling bytemuck_derive v1.10.1
[INFO] [stderr]    Compiling num-derive v0.4.2
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling fax_derive v0.2.0
[INFO] [stderr]    Compiling arg_enum_proc_macro v0.3.4
[INFO] [stderr]     Checking env_filter v0.1.4
[INFO] [stderr]     Checking profiling v1.0.17
[INFO] [stderr]     Checking fax v0.2.6
[INFO] [stderr]     Checking equator v0.4.2
[INFO] [stderr]     Checking bytemuck v1.23.2
[INFO] [stderr]     Checking aligned-vec v0.6.4
[INFO] [stderr]     Checking env_logger v0.11.8
[INFO] [stderr]     Checking qoi v0.4.1
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking v_frame v0.3.9
[INFO] [stderr]     Checking av1-grain v0.2.4
[INFO] [stderr]     Checking serde v1.0.228
[INFO] [stderr]     Checking half v2.7.1
[INFO] [stderr]     Checking hashbrown v0.14.5
[INFO] [stderr]     Checking glam v0.30.5
[INFO] [stderr]     Checking bincode v1.3.3
[INFO] [stderr]     Checking tiff v0.10.3
[INFO] [stderr]     Checking exr v1.73.0
[INFO] [stderr]     Checking hecs v0.10.5
[INFO] [stderr]     Checking ravif v0.11.20
[INFO] [stderr]     Checking image v0.25.8
[INFO] [stderr]     Checking rs-voxie v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `glow::HasContext`
[INFO] [stdout]  --> src/pong/server/scene.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use glow::HasContext;
[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: `Duration`
[INFO] [stdout]  --> src/pong/server/scene.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 |     time::{Duration, Instant},
[INFO] [stdout]   |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Duration`
[INFO] [stdout]  --> src/scenes/scene.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::time::Duration;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `node::OctreeNode`
[INFO] [stdout]   --> src/octree/iter_empty.rs:61:77
[INFO] [stdout]    |
[INFO] [stdout] 61 |     use crate::octree::{IAabb, Octree, iter_empty::OctreeEmptyNodeIterator, node::OctreeNode};
[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: `glow::HasContext`
[INFO] [stdout]  --> src/pong/server/scene.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use glow::HasContext;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Duration`
[INFO] [stdout]  --> src/pong/server/scene.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 |     time::{Duration, Instant},
[INFO] [stdout]   |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Duration`
[INFO] [stdout]  --> src/scenes/scene.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::time::Duration;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]   --> src/pong/network/codec.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 18 | /         todo!(
[INFO] [stdout] 19 | |             "JSON encoding no longer fully supported. Client-side message have bincode hard-coded"
[INFO] [stdout] 20 | |         );
[INFO] [stdout]    | |_________- any code following this expression is unreachable
[INFO] [stdout] 21 |           Ok(serde_json::to_string(cmd)?.into())
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable expression
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]   --> src/pong/network/codec.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 18 | /         todo!(
[INFO] [stdout] 19 | |             "JSON encoding no longer fully supported. Client-side message have bincode hard-coded"
[INFO] [stdout] 20 | |         );
[INFO] [stdout]    | |_________- any code following this expression is unreachable
[INFO] [stdout] 21 |           Ok(serde_json::to_string(cmd)?.into())
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable expression
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cmd`
[INFO] [stdout]   --> src/pong/network/codec.rs:17:15
[INFO] [stdout]    |
[INFO] [stdout] 17 |     fn encode(cmd: &ServerMessage) -> Result<Vec<u8>, Self::Error> {
[INFO] [stdout]    |               ^^^ help: if this is intentional, prefix it with an underscore: `_cmd`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `CameraController` is never used
[INFO] [stdout]    --> src/cameras/camera.rs:131:11
[INFO] [stdout]     |
[INFO] [stdout] 131 | pub trait CameraController {
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `projection` is never read
[INFO] [stdout]   --> src/cameras/component.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub struct CameraComponent {
[INFO] [stdout]    |            --------------- field in this struct
[INFO] [stdout] 10 |     pub projection: Mat4,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `spawn_camera` is never used
[INFO] [stdout]   --> src/cameras/component.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub fn spawn_camera(world: &mut World, transform: Mat4) -> Entity {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FirstPersonCam` is never constructed
[INFO] [stdout]  --> src/cameras/fpscam.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct FirstPersonCam {}
[INFO] [stdout]   |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]  --> src/cameras/fpscam.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | impl FirstPersonCam {
[INFO] [stdout]   | ------------------- associated function in this implementation
[INFO] [stdout] 8 |     pub fn new() -> FirstPersonCam {
[INFO] [stdout]   |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BlenderOrbitCamera` is never constructed
[INFO] [stdout]  --> src/cameras/orbit.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct BlenderOrbitCamera {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> src/cameras/orbit.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | impl BlenderOrbitCamera {
[INFO] [stdout]    | ----------------------- associated items in this implementation
[INFO] [stdout] 24 |     pub fn new(pivot: Vec3, distance: f32) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub fn orbit(&mut self, mouse_dx: f32, mouse_dy: f32) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub fn dolly(&mut self, delta: f32) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 49 |     pub fn pan(&mut self, dx: f32, dy: f32) {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 59 |     fn orientation(&self) -> Quat {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 66 |     pub fn camera_transform(&self) -> Mat4 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 75 |     pub fn view_matrix(&self) -> Mat4 {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ThirdPersonCam` is never constructed
[INFO] [stdout]  --> src/cameras/thirdpersoncam.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct ThirdPersonCam {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/cameras/thirdpersoncam.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl ThirdPersonCam {
[INFO] [stdout]    | ------------------- associated function in this implementation
[INFO] [stdout] 14 |     pub fn new() -> ThirdPersonCam {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `quat_exp_smooth` is never used
[INFO] [stdout]   --> src/cameras/thirdpersoncam.rs:52:4
[INFO] [stdout]    |
[INFO] [stdout] 52 | fn quat_exp_smooth(current: Quat, target: Quat, smooth_time: f32, dt: f32) -> Quat {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_height` is never used
[INFO] [stdout]   --> src/collision/capsule.rs:32:8
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl Capsule {
[INFO] [stdout]    | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 32 |     fn get_height(&self) -> f32 {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sample_capsule_points` is never used
[INFO] [stdout]   --> src/collision/capsule.rs:83:4
[INFO] [stdout]    |
[INFO] [stdout] 83 | fn sample_capsule_points(capsule: &Capsule) -> impl Iterator<Item = Vec3> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `capsule_cast` is never used
[INFO] [stdout]   --> src/collision/capsule.rs:96:8
[INFO] [stdout]    |
[INFO] [stdout] 96 | pub fn capsule_cast(
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `CapsuleCollider` is never constructed
[INFO] [stdout]   --> src/collision/model.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub enum ColliderBody {
[INFO] [stdout]    |          ------------ variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 26 |     CapsuleCollider { radius: f32, height: f32 },
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ColliderBody` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Ray` is never constructed
[INFO] [stdout]  --> src/collision/ray.rs:7:19
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub(super) struct Ray {
[INFO] [stdout]   |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `intersect_aabb`, and `intersects_aabb_within_t` are never used
[INFO] [stdout]   --> src/collision/ray.rs:13:19
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl Ray {
[INFO] [stdout]    | -------- associated items in this implementation
[INFO] [stdout] 13 |     pub(super) fn new(origin: Vec3, direction: Vec3) -> Ray {
[INFO] [stdout]    |                   ^^^
[INFO] [stdout] ...
[INFO] [stdout] 18 |     pub fn intersect_aabb(&self, aabb: &AABB) -> Option<(f32, Vec3)> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 73 |     pub fn intersects_aabb_within_t(&self, other: &AABB, t_max: f32) -> Option<CollisionInfo> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sphere_cast` is never used
[INFO] [stdout]   --> src/collision/sphere.rs:94:8
[INFO] [stdout]    |
[INFO] [stdout] 94 | pub fn sphere_cast<I>(
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CommandQueue` is never constructed
[INFO] [stdout]  --> src/command_queue.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct CommandQueue {
[INFO] [stdout]   |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `enqueue`, and `iter` are never used
[INFO] [stdout]   --> src/command_queue.rs:9:12
[INFO] [stdout]    |
[INFO] [stdout]  8 | impl CommandQueue {
[INFO] [stdout]    | ----------------- associated items in this implementation
[INFO] [stdout]  9 |     pub fn new() -> CommandQueue {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 13 |     pub fn enqueue(&mut self, cmd: Command) {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 18 |     pub fn iter(&mut self) -> std::vec::Drain<'_, Command> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Command` is never used
[INFO] [stdout]   --> src/command_queue.rs:24:10
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub enum Command {
[INFO] [stdout]    |          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RESOLUTION_WIDTH` is never used
[INFO] [stdout]  --> src/config.rs:3:11
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub const RESOLUTION_WIDTH: u32 = 1920;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RESOLUTION_HEIGHT` is never used
[INFO] [stdout]  --> src/config.rs:4:11
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub const RESOLUTION_HEIGHT: u32 = 1080;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `USE_VSYNC` is never used
[INFO] [stdout]  --> src/config.rs:7:11
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub const USE_VSYNC: bool = true;
[INFO] [stdout]   |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StackItem` is never constructed
[INFO] [stdout]  --> src/octree/iter_commons.rs:5:19
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub(super) struct StackItem<'a, T> {
[INFO] [stdout]   |                   ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_child_origin` is never used
[INFO] [stdout]   --> src/octree/iter_commons.rs:11:15
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub(super) fn get_child_origin(parent_origin: &IVec3, size: usize, index: usize) -> IVec3 {
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `OctreeEmptyNodeIterator` is never constructed
[INFO] [stdout]  --> src/octree/iter_empty.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct OctreeEmptyNodeIterator<'a, T> {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/octree/iter_empty.rs:12:19
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl<'a, T> OctreeEmptyNodeIterator<'a, T> {
[INFO] [stdout]    | ------------------------------------------ associated function in this implementation
[INFO] [stdout] 12 |     pub(super) fn new(region_tree_space: IAabb, octree: &Octree<T>) -> OctreeEmptyNodeIterator<T> {
[INFO] [stdout]    |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `OctreeNodeIterator` is never constructed
[INFO] [stdout]  --> src/octree/iter_node.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct OctreeNodeIterator<'a, T> {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/octree/iter_node.rs:13:19
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl<'a, T> OctreeNodeIterator<'a, T> {
[INFO] [stdout]    | ------------------------------------- associated function in this implementation
[INFO] [stdout] 13 |     pub(super) fn new(region_tree_space: IAabb, octree: &Octree<T>) -> OctreeNodeIterator<T> {
[INFO] [stdout]    |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `OctreeNode` is never constructed
[INFO] [stdout]  --> src/octree/node.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct OctreeNode<T> {
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `is_leaf`, and `default_children` are never used
[INFO] [stdout]   --> src/octree/node.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout]  9 | impl<T> OctreeNode<T> {
[INFO] [stdout]    | --------------------- associated items in this implementation
[INFO] [stdout] 10 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 17 |     pub(super) fn is_leaf(&self) -> bool {
[INFO] [stdout]    |                   ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 21 |     pub(super) fn default_children(&self) -> [Box<OctreeNode<T>>; 8] {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `insert` and `traverse_depth_first` are never used
[INFO] [stdout]   --> src/octree/node.rs:40:19
[INFO] [stdout]    |
[INFO] [stdout] 35 | / impl<T> OctreeNode<T>
[INFO] [stdout] 36 | | where
[INFO] [stdout] 37 | |     T: Clone + Debug,
[INFO] [stdout]    | |_____________________- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 40 |       pub(super) fn insert(&mut self, x: i32, y: i32, z: i32, size: usize, data: T) {
[INFO] [stdout]    |                     ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 76 |       pub(super) fn traverse_depth_first(&self, res: &mut Vec<T>) {
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_child_index` is never used
[INFO] [stdout]   --> src/octree/node.rs:93:4
[INFO] [stdout]    |
[INFO] [stdout] 93 | fn get_child_index(x: i32, y: i32, z: i32, half: i32) -> usize {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Octree` is never constructed
[INFO] [stdout]  --> src/octree/tree.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct Octree<T> {
[INFO] [stdout]   |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> src/octree/tree.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | / impl<T> Octree<T>
[INFO] [stdout] 20 | | where
[INFO] [stdout] 21 | |     T: Clone + Debug,
[INFO] [stdout]    | |_____________________- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 24 |       pub fn new(size: usize) -> Self {
[INFO] [stdout]    |              ^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |       pub fn insert(&mut self, pos_tree_space: IVec3, data: T) {
[INFO] [stdout]    |              ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 61 |       pub fn get_size(&self) -> usize {
[INFO] [stdout]    |              ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 65 |       pub fn get_all_depth_first(&self) -> Vec<T> {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 72 |       pub fn get_total_region_world_space(&self, chunk_size: usize) -> IAabb {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 76 |       pub fn grow(&mut self, chunk_size: usize) {
[INFO] [stdout]    |              ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 94 |       pub fn iter_region(&self, region_tree_space: IAabb) -> OctreeNodeIterator<T> {
[INFO] [stdout]    |              ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 98 |       pub fn iter_empty_within_region(
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `JsonCodec` is never constructed
[INFO] [stdout]   --> src/pong/network/codec.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct JsonCodec;
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `last` is never used
[INFO] [stdout]   --> src/pong/network/input.rs:60:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | impl ClientInputBuffer {
[INFO] [stdout]    | ---------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 60 |     pub fn last(&self) -> Option<&InputSample> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `inputs`
[INFO] [stdout]   --> src/pong/network/client.rs:37:37
[INFO] [stdout]    |
[INFO] [stdout] 37 |                     unacked_inputs: inputs,
[INFO] [stdout]    |                                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_inputs`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cmd`
[INFO] [stdout]   --> src/pong/network/codec.rs:17:15
[INFO] [stdout]    |
[INFO] [stdout] 17 |     fn encode(cmd: &ServerMessage) -> Result<Vec<u8>, Self::Error> {
[INFO] [stdout]    |               ^^^ help: if this is intentional, prefix it with an underscore: `_cmd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LocalTransform` is never constructed
[INFO] [stdout]   --> src/systems/physics/mod.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct LocalTransform {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Parent` is never constructed
[INFO] [stdout]   --> src/systems/physics/mod.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct Parent(pub hecs::Entity);
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `system_update_world_transforms` is never used
[INFO] [stdout]   --> src/systems/physics/mod.rs:22:8
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub fn system_update_world_transforms(world: &mut hecs::World, cache: &mut HierarchyCache) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `system_movement_with_hierarchy_nodes` is never used
[INFO] [stdout]   --> src/systems/physics/mod.rs:57:8
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub fn system_movement_with_hierarchy_nodes(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HierarchyCache` is never constructed
[INFO] [stdout]  --> src/systems/physics/hierarchy_cache.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct HierarchyCache {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `invalidate`, and `rebuild` are never used
[INFO] [stdout]   --> src/systems/physics/hierarchy_cache.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl HierarchyCache {
[INFO] [stdout]    | ------------------- associated items in this implementation
[INFO] [stdout] 14 |     pub fn new() -> HierarchyCache {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 22 |     fn invalidate(&mut self) {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 26 |     pub fn rebuild(&mut self, world: &hecs::World) {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compute_depths` is never used
[INFO] [stdout]   --> src/systems/physics/hierarchy_cache.rs:43:4
[INFO] [stdout]    |
[INFO] [stdout] 43 | fn compute_depths(world: &hecs::World) -> HashMap<hecs::Entity, usize> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_descendants` is never used
[INFO] [stdout]   --> src/systems/physics/hierarchy_cache.rs:77:8
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub fn find_descendants<T: hecs::Query>(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_descendant_of` is never used
[INFO] [stdout]   --> src/systems/physics/hierarchy_cache.rs:95:4
[INFO] [stdout]    |
[INFO] [stdout] 95 | fn is_descendant_of(world: &hecs::World, entity: hecs::Entity, ancestor: hecs::Entity) -> bool {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `smooth_damp` is never used
[INFO] [stdout]   --> src/util/mod.rs:16:8
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub fn smooth_damp(
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `add_elapsed` is never used
[INFO] [stdout]   --> src/util/sma.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout]  9 | impl SimpleMovingAverage {
[INFO] [stdout]    | ------------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 19 |     pub fn add_elapsed(&mut self, start_time: Instant) -> f32 {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/octree/iter_empty.rs:12:57
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub(super) fn new(region_tree_space: IAabb, octree: &Octree<T>) -> OctreeEmptyNodeIterator<T> {
[INFO] [stdout]    |                                                         ^^^^^^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                                                         |
[INFO] [stdout]    |                                                         the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub(super) fn new(region_tree_space: IAabb, octree: &Octree<T>) -> OctreeEmptyNodeIterator<'_, T> {
[INFO] [stdout]    |                                                                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/octree/iter_node.rs:13:57
[INFO] [stdout]    |
[INFO] [stdout] 13 |     pub(super) fn new(region_tree_space: IAabb, octree: &Octree<T>) -> OctreeNodeIterator<T> {
[INFO] [stdout]    |                                                         ^^^^^^^^^^     ^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                                                         |
[INFO] [stdout]    |                                                         the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 13 |     pub(super) fn new(region_tree_space: IAabb, octree: &Octree<T>) -> OctreeNodeIterator<'_, T> {
[INFO] [stdout]    |                                                                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/octree/tree.rs:94:24
[INFO] [stdout]    |
[INFO] [stdout] 94 |     pub fn iter_region(&self, region_tree_space: IAabb) -> OctreeNodeIterator<T> {
[INFO] [stdout]    |                        ^^^^^ the lifetime is elided here   ^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 94 |     pub fn iter_region(&self, region_tree_space: IAabb) -> OctreeNodeIterator<'_, T> {
[INFO] [stdout]    |                                                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `CameraController` is never used
[INFO] [stdout]    --> src/cameras/camera.rs:131:11
[INFO] [stdout]     |
[INFO] [stdout] 131 | pub trait CameraController {
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `projection` is never read
[INFO] [stdout]   --> src/cameras/component.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub struct CameraComponent {
[INFO] [stdout]    |            --------------- field in this struct
[INFO] [stdout] 10 |     pub projection: Mat4,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `spawn_camera` is never used
[INFO] [stdout]   --> src/cameras/component.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub fn spawn_camera(world: &mut World, transform: Mat4) -> Entity {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FirstPersonCam` is never constructed
[INFO] [stdout]  --> src/cameras/fpscam.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct FirstPersonCam {}
[INFO] [stdout]   |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]  --> src/cameras/fpscam.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | impl FirstPersonCam {
[INFO] [stdout]   | ------------------- associated function in this implementation
[INFO] [stdout] 8 |     pub fn new() -> FirstPersonCam {
[INFO] [stdout]   |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BlenderOrbitCamera` is never constructed
[INFO] [stdout]  --> src/cameras/orbit.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct BlenderOrbitCamera {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> src/cameras/orbit.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | impl BlenderOrbitCamera {
[INFO] [stdout]    | ----------------------- associated items in this implementation
[INFO] [stdout] 24 |     pub fn new(pivot: Vec3, distance: f32) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub fn orbit(&mut self, mouse_dx: f32, mouse_dy: f32) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub fn dolly(&mut self, delta: f32) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 49 |     pub fn pan(&mut self, dx: f32, dy: f32) {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 59 |     fn orientation(&self) -> Quat {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 66 |     pub fn camera_transform(&self) -> Mat4 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 75 |     pub fn view_matrix(&self) -> Mat4 {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ThirdPersonCam` is never constructed
[INFO] [stdout]  --> src/cameras/thirdpersoncam.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct ThirdPersonCam {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/cameras/thirdpersoncam.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl ThirdPersonCam {
[INFO] [stdout]    | ------------------- associated function in this implementation
[INFO] [stdout] 14 |     pub fn new() -> ThirdPersonCam {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `quat_exp_smooth` is never used
[INFO] [stdout]   --> src/cameras/thirdpersoncam.rs:52:4
[INFO] [stdout]    |
[INFO] [stdout] 52 | fn quat_exp_smooth(current: Quat, target: Quat, smooth_time: f32, dt: f32) -> Quat {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CommandQueue` is never constructed
[INFO] [stdout]  --> src/command_queue.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct CommandQueue {
[INFO] [stdout]   |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `enqueue`, and `iter` are never used
[INFO] [stdout]   --> src/command_queue.rs:9:12
[INFO] [stdout]    |
[INFO] [stdout]  8 | impl CommandQueue {
[INFO] [stdout]    | ----------------- associated items in this implementation
[INFO] [stdout]  9 |     pub fn new() -> CommandQueue {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 13 |     pub fn enqueue(&mut self, cmd: Command) {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 18 |     pub fn iter(&mut self) -> std::vec::Drain<'_, Command> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Command` is never used
[INFO] [stdout]   --> src/command_queue.rs:24:10
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub enum Command {
[INFO] [stdout]    |          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RESOLUTION_WIDTH` is never used
[INFO] [stdout]  --> src/config.rs:3:11
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub const RESOLUTION_WIDTH: u32 = 1920;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RESOLUTION_HEIGHT` is never used
[INFO] [stdout]  --> src/config.rs:4:11
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub const RESOLUTION_HEIGHT: u32 = 1080;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `USE_VSYNC` is never used
[INFO] [stdout]  --> src/config.rs:7:11
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub const USE_VSYNC: bool = true;
[INFO] [stdout]   |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `traverse_depth_first` is never used
[INFO] [stdout]   --> src/octree/node.rs:76:19
[INFO] [stdout]    |
[INFO] [stdout] 35 | / impl<T> OctreeNode<T>
[INFO] [stdout] 36 | | where
[INFO] [stdout] 37 | |     T: Clone + Debug,
[INFO] [stdout]    | |_____________________- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 76 |       pub(super) fn traverse_depth_first(&self, res: &mut Vec<T>) {
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_all_depth_first` and `iter_empty_within_region` are never used
[INFO] [stdout]   --> src/octree/tree.rs:65:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | / impl<T> Octree<T>
[INFO] [stdout] 20 | | where
[INFO] [stdout] 21 | |     T: Clone + Debug,
[INFO] [stdout]    | |_____________________- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 65 |       pub fn get_all_depth_first(&self) -> Vec<T> {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 98 |       pub fn iter_empty_within_region(
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `JsonCodec` is never constructed
[INFO] [stdout]   --> src/pong/network/codec.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct JsonCodec;
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `last` is never used
[INFO] [stdout]   --> src/pong/network/input.rs:60:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | impl ClientInputBuffer {
[INFO] [stdout]    | ---------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 60 |     pub fn last(&self) -> Option<&InputSample> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LocalTransform` is never constructed
[INFO] [stdout]   --> src/systems/physics/mod.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct LocalTransform {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Parent` is never constructed
[INFO] [stdout]   --> src/systems/physics/mod.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct Parent(pub hecs::Entity);
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `system_update_world_transforms` is never used
[INFO] [stdout]   --> src/systems/physics/mod.rs:22:8
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub fn system_update_world_transforms(world: &mut hecs::World, cache: &mut HierarchyCache) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `system_movement_with_hierarchy_nodes` is never used
[INFO] [stdout]   --> src/systems/physics/mod.rs:57:8
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub fn system_movement_with_hierarchy_nodes(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HierarchyCache` is never constructed
[INFO] [stdout]  --> src/systems/physics/hierarchy_cache.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct HierarchyCache {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `invalidate`, and `rebuild` are never used
[INFO] [stdout]   --> src/systems/physics/hierarchy_cache.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl HierarchyCache {
[INFO] [stdout]    | ------------------- associated items in this implementation
[INFO] [stdout] 14 |     pub fn new() -> HierarchyCache {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 22 |     fn invalidate(&mut self) {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 26 |     pub fn rebuild(&mut self, world: &hecs::World) {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compute_depths` is never used
[INFO] [stdout]   --> src/systems/physics/hierarchy_cache.rs:43:4
[INFO] [stdout]    |
[INFO] [stdout] 43 | fn compute_depths(world: &hecs::World) -> HashMap<hecs::Entity, usize> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_descendants` is never used
[INFO] [stdout]   --> src/systems/physics/hierarchy_cache.rs:77:8
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub fn find_descendants<T: hecs::Query>(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_descendant_of` is never used
[INFO] [stdout]   --> src/systems/physics/hierarchy_cache.rs:95:4
[INFO] [stdout]    |
[INFO] [stdout] 95 | fn is_descendant_of(world: &hecs::World, entity: hecs::Entity, ancestor: hecs::Entity) -> bool {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `smooth_damp` is never used
[INFO] [stdout]   --> src/util/mod.rs:16:8
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub fn smooth_damp(
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `add_elapsed` is never used
[INFO] [stdout]   --> src/util/sma.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout]  9 | impl SimpleMovingAverage {
[INFO] [stdout]    | ------------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 19 |     pub fn add_elapsed(&mut self, start_time: Instant) -> f32 {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/octree/iter_empty.rs:12:57
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub(super) fn new(region_tree_space: IAabb, octree: &Octree<T>) -> OctreeEmptyNodeIterator<T> {
[INFO] [stdout]    |                                                         ^^^^^^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                                                         |
[INFO] [stdout]    |                                                         the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub(super) fn new(region_tree_space: IAabb, octree: &Octree<T>) -> OctreeEmptyNodeIterator<'_, T> {
[INFO] [stdout]    |                                                                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/octree/iter_node.rs:13:57
[INFO] [stdout]    |
[INFO] [stdout] 13 |     pub(super) fn new(region_tree_space: IAabb, octree: &Octree<T>) -> OctreeNodeIterator<T> {
[INFO] [stdout]    |                                                         ^^^^^^^^^^     ^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                                                         |
[INFO] [stdout]    |                                                         the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 13 |     pub(super) fn new(region_tree_space: IAabb, octree: &Octree<T>) -> OctreeNodeIterator<'_, T> {
[INFO] [stdout]    |                                                                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/octree/tree.rs:94:24
[INFO] [stdout]    |
[INFO] [stdout] 94 |     pub fn iter_region(&self, region_tree_space: IAabb) -> OctreeNodeIterator<T> {
[INFO] [stdout]    |                        ^^^^^ the lifetime is elided here   ^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 94 |     pub fn iter_region(&self, region_tree_space: IAabb) -> OctreeNodeIterator<'_, T> {
[INFO] [stdout]    |                                                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 39.78s
[INFO] running `Command { std: "docker" "inspect" "e91beabe10f02228c1194b81bcf3e83cc33e952d4f2f57b41a3b14260522d7d2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e91beabe10f02228c1194b81bcf3e83cc33e952d4f2f57b41a3b14260522d7d2", kill_on_drop: false }`
[INFO] [stdout] e91beabe10f02228c1194b81bcf3e83cc33e952d4f2f57b41a3b14260522d7d2
