[INFO] cloning repository https://github.com/NorbertKSW2001/Test
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/NorbertKSW2001/Test" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FNorbertKSW2001%2FTest", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FNorbertKSW2001%2FTest'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 1fcd9f5df762156b5d41e4d8923c86a8203547c7
[INFO] checking NorbertKSW2001/Test against eca445e5ae4a6679cc27d3a09106ce245e13a5a6 for pr-162478
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FNorbertKSW2001%2FTest" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/NorbertKSW2001/Test
[INFO] finished tweaking git repo https://github.com/NorbertKSW2001/Test
[INFO] tweaked toml for git repo https://github.com/NorbertKSW2001/Test written to /workspace/builds/worker-1-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/NorbertKSW2001/Test on toolchain eca445e5ae4a6679cc27d3a09106ce245e13a5a6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+eca445e5ae4a6679cc27d3a09106ce245e13a5a6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/NorbertKSW2001/Test 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" "+eca445e5ae4a6679cc27d3a09106ce245e13a5a6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: binary `Test` should have a kebab-case name
[INFO] [stderr]    |
[INFO] [stderr]  1 | /workspace/builds/worker-1-tc1/source/target/.../Test
[INFO] [stderr]    |                                                  ^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::non_kebab_case_bins` is set to `warn` by default
[INFO] [stderr] help: to change the binary name to `test`, convert `package.name`
[INFO] [stderr]   --> Cargo.toml:15:8
[INFO] [stderr]    |
[INFO] [stderr] 15 - name = "Test"
[INFO] [stderr] 15 + name = "test"
[INFO] [stderr]    |
[INFO] [stderr] help: to change the binary name to `test`, specify `bin.name`
[INFO] [stderr]   --> Cargo.toml:16:19
[INFO] [stderr]    |
[INFO] [stderr] 16 ~ version = "0.1.0"
[INFO] [stderr] 17 + [[bin]]
[INFO] [stderr] 18 + name = "test"
[INFO] [stderr] 19 + path = "src/main.rs"
[INFO] [stderr]    |
[INFO] [stderr] warning: binary `rendezvous_server` should have a kebab-case name
[INFO] [stderr]   |
[INFO] [stderr] 1 | /workspace/builds/worker-1-tc1/source/target/.../rendezvous_server
[INFO] [stderr]   |                                                  ^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr] help: to change the binary name to `rendezvous-server`, convert the file stem
[INFO] [stderr]   |
[INFO] [stderr] 1 - src/bin/rendezvous_server.rs
[INFO] [stderr] 1 + src/bin/rendezvous-server.rs
[INFO] [stderr]   |
[INFO] [stderr] warning: `Test` (manifest) generated 2 warnings
[INFO] [stderr]     Updating git repository `https://github.com/SpaceManiac/opus-rs`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded cc v1.2.64
[INFO] [stderr]   Downloaded wasm-bindgen-shared v0.2.123
[INFO] [stderr]   Downloaded mach2 v0.6.0
[INFO] [stderr]   Downloaded wasm-bindgen-macro v0.2.123
[INFO] [stderr]   Downloaded wasm-bindgen-macro-support v0.2.123
[INFO] [stderr]   Downloaded miniquad v0.4.10
[INFO] [stderr]   Downloaded js-sys v0.3.100
[INFO] [stderr]   Downloaded web-sys v0.3.100
[INFO] [stderr]   Downloaded macroquad v0.4.15
[INFO] [stderr]   Downloaded wasm-bindgen v0.2.123
[INFO] [stderr]   Downloaded opusic-sys v0.7.3
[INFO] [stderr]   Downloaded cpal v0.18.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:8683fc1fc2eb5c9ac98e0d076ab094b2ffac7f99da555d2b6a2e27f346de2ec7" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] e063f5e1ad38852e27f3ae3165da0e95cba7da017e5d6375c8be737e5a0a08b8
[INFO] running `Command { std: "docker" "start" "e063f5e1ad38852e27f3ae3165da0e95cba7da017e5d6375c8be737e5a0a08b8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "e063f5e1ad38852e27f3ae3165da0e95cba7da017e5d6375c8be737e5a0a08b8", 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" "e063f5e1ad38852e27f3ae3165da0e95cba7da017e5d6375c8be737e5a0a08b8" "/opt/rustwide/cargo-home/bin/cargo" "+eca445e5ae4a6679cc27d3a09106ce245e13a5a6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "e063f5e1ad38852e27f3ae3165da0e95cba7da017e5d6375c8be737e5a0a08b8", 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" "e063f5e1ad38852e27f3ae3165da0e95cba7da017e5d6375c8be737e5a0a08b8" "/opt/rustwide/cargo-home/bin/cargo" "+eca445e5ae4a6679cc27d3a09106ce245e13a5a6" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr] warning: binary `Test` should have a kebab-case name
[INFO] [stderr]    |
[INFO] [stderr]  1 | /opt/rustwide/target/.../Test
[INFO] [stderr]    |                          ^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::non_kebab_case_bins` is set to `warn` by default
[INFO] [stderr] help: to change the binary name to `test`, convert `package.name`
[INFO] [stderr]   --> Cargo.toml:15:8
[INFO] [stderr]    |
[INFO] [stderr] 15 - name = "Test"
[INFO] [stderr] 15 + name = "test"
[INFO] [stderr]    |
[INFO] [stderr] help: to change the binary name to `test`, specify `bin.name`
[INFO] [stderr]   --> Cargo.toml:16:19
[INFO] [stderr]    |
[INFO] [stderr] 16 ~ version = "0.1.0"
[INFO] [stderr] 17 + [[bin]]
[INFO] [stderr] 18 + name = "test"
[INFO] [stderr] 19 + path = "src/main.rs"
[INFO] [stderr]    |
[INFO] [stderr] warning: binary `rendezvous_server` should have a kebab-case name
[INFO] [stderr]   |
[INFO] [stderr] 1 | /opt/rustwide/target/.../rendezvous_server
[INFO] [stderr]   |                          ^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr] help: to change the binary name to `rendezvous-server`, convert the file stem
[INFO] [stderr]   |
[INFO] [stderr] 1 - src/bin/rendezvous_server.rs
[INFO] [stderr] 1 + src/bin/rendezvous-server.rs
[INFO] [stderr]   |
[INFO] [stderr] warning: `Test` (manifest) generated 2 warnings
[INFO] [stderr]     Checking simd-adler32 v0.3.9
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]    Compiling autocfg v1.5.1
[INFO] [stderr]    Compiling quote v1.0.45
[INFO] [stderr]    Compiling miniquad v0.4.10
[INFO] [stderr]    Compiling cc v1.2.64
[INFO] [stderr]    Compiling alsa-sys v0.4.0
[INFO] [stderr]     Checking bytemuck v1.25.0
[INFO] [stderr]     Checking bitflags v2.13.0
[INFO] [stderr]     Checking hashbrown v0.15.5
[INFO] [stderr]    Compiling cpal v0.18.1
[INFO] [stderr]     Checking ttf-parser v0.21.1
[INFO] [stderr]     Checking memchr v2.8.2
[INFO] [stderr]     Checking dasp_sample v0.11.0
[INFO] [stderr]     Checking glam v0.27.0
[INFO] [stderr]     Checking quad-rand v0.2.3
[INFO] [stderr]    Compiling macroquad_macro v0.1.8
[INFO] [stderr]     Checking miniz_oxide v0.8.9
[INFO] [stderr]     Checking fdeflate v0.3.7
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]     Checking serde_json v1.0.150
[INFO] [stderr]     Checking flate2 v1.1.9
[INFO] [stderr]     Checking alsa v0.11.0
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]     Checking png v0.17.16
[INFO] [stderr]    Compiling cmake v0.1.58
[INFO] [stderr]    Compiling opusic-sys v0.7.3
[INFO] [stderr]     Checking fontdue v0.9.3
[INFO] [stderr]     Checking image v0.24.9
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]     Checking macroquad v0.4.15
[INFO] [stderr]     Checking serde v1.0.228
[INFO] [stderr]     Checking opus v0.3.1 (https://github.com/SpaceManiac/opus-rs#55987666)
[INFO] [stderr]     Checking Test v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `vote_target::VoteTarget`
[INFO] [stdout]   --> src/entities/mod.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub use vote_target::VoteTarget;
[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: `vote_tally::VoteTally`
[INFO] [stdout]   --> src/entities/mod.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub use vote_tally::VoteTally;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `meeting_outcome::MeetingOutcome`
[INFO] [stdout]   --> src/entities/mod.rs:16:9
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub use meeting_outcome::MeetingOutcome;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::systems::interaction_target::InteractionTarget`
[INFO] [stdout]  --> src/systems/slot_verification.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::systems::interaction_target::InteractionTarget;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `decode_pcm_i16_le`
[INFO] [stdout]  --> src/audio/voice_io/debug.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 |     decode_pcm_i16_le,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DEFAULT_VOICE_ACTIVITY_PEAK_THRESHOLD`, `DEFAULT_VOICE_ACTIVITY_RMS_THRESHOLD`, and `DEFAULT_VOICE_SAMPLE_RATE_HZ`
[INFO] [stdout]   --> src/audio/voice_io/debug.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |     DEFAULT_VOICE_ACTIVITY_PEAK_THRESHOLD,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 16 |     DEFAULT_VOICE_ACTIVITY_RMS_THRESHOLD,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 17 |     DEFAULT_VOICE_FRAME_MS,
[INFO] [stdout] 18 |     DEFAULT_VOICE_SAMPLE_RATE_HZ,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `analyse_voice_activity`
[INFO] [stdout]   --> src/audio/voice_io/mod.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 |     analyse_voice_activity,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `VoiceCaptureError`, `VoiceCaptureRuntime`, and `VoiceInputDeviceInfo`
[INFO] [stdout]   --> src/audio/voice_io/mod.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |     VoiceCaptureError,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 16 |     VoiceCaptureRuntime,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 17 |     VoiceInputDeviceInfo,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `encode_pcm_f32_le`
[INFO] [stdout]   --> src/audio/voice_io/mod.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 25 |     encode_pcm_f32_le,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `generate_debug_voice_frame`, `generate_debug_voice_payload`, and `generate_debug_voice_tone_frame`
[INFO] [stdout]   --> src/audio/voice_io/mod.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 31 |     generate_debug_voice_frame,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 32 |     generate_debug_voice_payload,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 33 |     generate_debug_voice_tone_frame,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `VoiceFrameChunker` and `frame_sample_count_for_sample_rate`
[INFO] [stdout]   --> src/audio/voice_io/mod.rs:40:5
[INFO] [stdout]    |
[INFO] [stdout] 40 |     frame_sample_count_for_sample_rate,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 41 |     VoiceAudioFrame,
[INFO] [stdout] 42 |     VoiceFrameChunker,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DEFAULT_VOICE_SMOOTHING_RAMP_MS` and `smoothing_ramp_sample_count`
[INFO] [stdout]   --> src/audio/voice_io/mod.rs:48:5
[INFO] [stdout]    |
[INFO] [stdout] 48 |     smoothing_ramp_sample_count,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 49 |     VoiceSmoothingConfig,
[INFO] [stdout] 50 |     DEFAULT_VOICE_SMOOTHING_RAMP_MS,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `VoicePayloadFormatDto`
[INFO] [stdout]   --> src/network/game_flow/client_send.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 |     VoicePayloadFormatDto,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `VoiceAudioFrame`
[INFO] [stdout]  --> src/network/game_flow/state.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 |     VoiceAudioFrame,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `VoicePacketFreshness`
[INFO] [stdout]   --> src/network/game_flow/voice_flow.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 34 |     VoicePacketFreshness,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `role_kind_from_dto`
[INFO] [stdout]   --> src/network/game_flow/mod.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 27 |     role_kind_from_dto,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DEFAULT_VOICE_FRAME_MS`
[INFO] [stdout]  --> src/network/voice/capture.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 |     DEFAULT_VOICE_FRAME_MS,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DEFAULT_VOICE_FRAME_MS` and `DEFAULT_VOICE_SAMPLE_RATE_HZ`
[INFO] [stdout]  --> src/network/voice/runtime.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 |     DEFAULT_VOICE_FRAME_MS,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 3 |     DEFAULT_VOICE_SAMPLE_RATE_HZ,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `VoicePayloadFormatDto`
[INFO] [stdout]  --> src/network/voice/runtime.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 |     VoicePayloadFormatDto,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DEFAULT_VOICE_CAPTURE_DIAGNOSTIC_INTERVAL_FRAMES`, `DEFAULT_VOICE_CAPTURE_HANGOVER_FRAMES`, `DEFAULT_VOICE_CAPTURE_MAX_GAIN`, `DEFAULT_VOICE_CAPTURE_MIN_RMS_FOR_GAIN`, `DEFAULT_VOICE_CAPTURE_TARGET_RMS`, `VoiceCaptureDiagnosticsSnapshot`, and `VoiceCaptureTuningConfig`
[INFO] [stdout]   --> src/network/voice/mod.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 |     VoiceCaptureDiagnosticsSnapshot,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 11 |     VoiceCaptureProcessor,
[INFO] [stdout] 12 |     VoiceCaptureTuningConfig,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 13 |     DEFAULT_VOICE_CAPTURE_DIAGNOSTIC_INTERVAL_FRAMES,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 14 |     DEFAULT_VOICE_CAPTURE_HANGOVER_FRAMES,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 15 |     DEFAULT_VOICE_CAPTURE_MAX_GAIN,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 16 |     DEFAULT_VOICE_CAPTURE_MIN_RMS_FOR_GAIN,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 17 |     DEFAULT_VOICE_CAPTURE_TARGET_RMS,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DEFAULT_PROXIMITY_FALLOFF_START_TILES` and `DEFAULT_PROXIMITY_RADIUS_TILES`
[INFO] [stdout]   --> src/network/voice/mod.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 |     DEFAULT_PROXIMITY_FALLOFF_START_TILES,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 25 |     DEFAULT_PROXIMITY_RADIUS_TILES,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `QueuedVoicePacket` and `VoiceRouteMetadata`
[INFO] [stdout]   --> src/network/voice/mod.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 30 |     QueuedVoicePacket,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |     VoiceRouteMetadata,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `VoicePlaybackConcealmentKind`, `VoicePlaybackQueueDrainError`, `drain_runtime_packets_to_playback_queue_with_smoother_and_concealer`, `drain_runtime_packets_to_playback_queue_with_smoother`, and `drain_runtime_packets_to_playback_queue`
[INFO] [stdout]   --> src/network/voice/mod.rs:37:5
[INFO] [stdout]    |
[INFO] [stdout] 37 |     drain_runtime_packets_to_playback_queue,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 38 |     drain_runtime_packets_to_playback_queue_with_smoother,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 39 |     drain_runtime_packets_to_playback_queue_with_smoother_and_concealer,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 42 |     VoicePlaybackConcealmentKind,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 43 |     VoicePlaybackQueueDrainError,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `VoiceRouteDecision` and `route_voice_packet`
[INFO] [stdout]   --> src/network/voice/mod.rs:49:5
[INFO] [stdout]    |
[INFO] [stdout] 49 |     route_voice_packet,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 53 |     VoiceRouteDecision,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DEFAULT_MAX_QUEUED_VOICE_PACKETS_PER_SPEAKER`, `DEFAULT_MAX_VOICE_PACKET_AGE_SECONDS`, `DEFAULT_VOICE_JITTER_MAX_CONCEALMENTS_PER_DRAIN`, `DEFAULT_VOICE_JITTER_MISSING_PACKET_GRACE_SECONDS`, `DEFAULT_VOICE_JITTER_TARGET_DELAY_SECONDS`, `VoiceJitterBufferDrainSummary`, `VoicePlayoutItem`, and `VoiceSpeakerBuffer`
[INFO] [stdout]   --> src/network/voice/mod.rs:58:5
[INFO] [stdout]    |
[INFO] [stdout] 58 |     VoiceJitterBufferDrainSummary,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 59 |     VoicePlayoutItem,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 62 |     VoiceSpeakerBuffer,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 63 |     DEFAULT_MAX_QUEUED_VOICE_PACKETS_PER_SPEAKER,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 64 |     DEFAULT_MAX_VOICE_PACKET_AGE_SECONDS,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 65 |     DEFAULT_VOICE_JITTER_MAX_CONCEALMENTS_PER_DRAIN,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 66 |     DEFAULT_VOICE_JITTER_MISSING_PACKET_GRACE_SECONDS,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 67 |     DEFAULT_VOICE_JITTER_TARGET_DELAY_SECONDS,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DEFAULT_OPUS_BITRATE_BPS`, `DEFAULT_OPUS_MAX_PACKET_BYTES`, `VoiceCodecConfig`, `VoiceCodecDecoder`, `VoiceCodecError`, `VoiceCodecKind`, and `voice_codec_kind_from_payload_format`
[INFO] [stdout]   --> src/network/voice/mod.rs:72:5
[INFO] [stdout]    |
[INFO] [stdout] 72 |     voice_codec_kind_from_payload_format,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 73 |     voice_payload_format_from_codec_kind,
[INFO] [stdout] 74 |     VoiceCodecConfig,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 75 |     VoiceCodecDecoder,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 76 |     VoiceCodecEncoder,
[INFO] [stdout] 77 |     VoiceCodecError,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 78 |     VoiceCodecFrame,
[INFO] [stdout] 79 |     VoiceCodecKind,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 80 |     VoicePlaybackDecoderRuntime,
[INFO] [stdout] 81 |     DEFAULT_OPUS_BITRATE_BPS,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 82 |     DEFAULT_OPUS_MAX_PACKET_BYTES,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `PeerPunchMessage` is never used
[INFO] [stdout]   --> /opt/rustwide/workdir/src/network/rendezvous/protocol.rs:51:10
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub enum PeerPunchMessage {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PeerPunchWireMessage` is never constructed
[INFO] [stdout]   --> /opt/rustwide/workdir/src/network/rendezvous/protocol.rs:73:12
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub struct PeerPunchWireMessage {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `to_json_bytes` are never used
[INFO] [stdout]   --> /opt/rustwide/workdir/src/network/rendezvous/protocol.rs:84:12
[INFO] [stdout]    |
[INFO] [stdout] 83 | impl RendezvousClientWireMessage {
[INFO] [stdout]    | -------------------------------- associated items in this implementation
[INFO] [stdout] 84 |     pub fn new(message: GameToRendezvousMessage) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 88 |     pub fn to_json_bytes(&self) -> Result<Vec<u8>, RendezvousProtocolError> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_json_slice` is never used
[INFO] [stdout]    --> /opt/rustwide/workdir/src/network/rendezvous/protocol.rs:106:12
[INFO] [stdout]     |
[INFO] [stdout]  97 | impl RendezvousServerWireMessage {
[INFO] [stdout]     | -------------------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 106 |     pub fn from_json_slice(bytes: &[u8]) -> Result<Self, RendezvousProtocolError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `to_json_bytes`, and `from_json_slice` are never used
[INFO] [stdout]    --> /opt/rustwide/workdir/src/network/rendezvous/protocol.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 111 | impl PeerPunchWireMessage {
[INFO] [stdout]     | ------------------------- associated items in this implementation
[INFO] [stdout] 112 |     pub fn new(message: PeerPunchMessage) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 116 |     pub fn to_json_bytes(&self) -> Result<Vec<u8>, RendezvousProtocolError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 120 |     pub fn from_json_slice(bytes: &[u8]) -> Result<Self, RendezvousProtocolError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `room` is never used
[INFO] [stdout]    --> /opt/rustwide/workdir/src/network/rendezvous/server_state.rs:144:12
[INFO] [stdout]     |
[INFO] [stdout]  57 | impl RendezvousServerState {
[INFO] [stdout]     | -------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 144 |     pub fn room(&self, room_code: &str) -> Option<&RendezvousRoom> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `vote_target::VoteTarget`
[INFO] [stdout]   --> src/entities/mod.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub use vote_target::VoteTarget;
[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: `vote_tally::VoteTally`
[INFO] [stdout]   --> src/entities/mod.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub use vote_tally::VoteTally;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `meeting_outcome::MeetingOutcome`
[INFO] [stdout]   --> src/entities/mod.rs:16:9
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub use meeting_outcome::MeetingOutcome;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `analyse_voice_activity`
[INFO] [stdout]   --> src/audio/voice_io/mod.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 |     analyse_voice_activity,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `VoiceCaptureError`, `VoiceCaptureRuntime`, and `VoiceInputDeviceInfo`
[INFO] [stdout]   --> src/audio/voice_io/mod.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |     VoiceCaptureError,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 16 |     VoiceCaptureRuntime,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 17 |     VoiceInputDeviceInfo,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `generate_debug_voice_frame`, `generate_debug_voice_payload`, and `generate_debug_voice_tone_frame`
[INFO] [stdout]   --> src/audio/voice_io/mod.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 31 |     generate_debug_voice_frame,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 32 |     generate_debug_voice_payload,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 33 |     generate_debug_voice_tone_frame,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `VoiceFrameChunker` and `frame_sample_count_for_sample_rate`
[INFO] [stdout]   --> src/audio/voice_io/mod.rs:40:5
[INFO] [stdout]    |
[INFO] [stdout] 40 |     frame_sample_count_for_sample_rate,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 41 |     VoiceAudioFrame,
[INFO] [stdout] 42 |     VoiceFrameChunker,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DEFAULT_VOICE_SMOOTHING_RAMP_MS` and `smoothing_ramp_sample_count`
[INFO] [stdout]   --> src/audio/voice_io/mod.rs:48:5
[INFO] [stdout]    |
[INFO] [stdout] 48 |     smoothing_ramp_sample_count,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 49 |     VoiceSmoothingConfig,
[INFO] [stdout] 50 |     DEFAULT_VOICE_SMOOTHING_RAMP_MS,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `VoicePayloadFormatDto`
[INFO] [stdout]   --> src/network/game_flow/client_send.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 |     VoicePayloadFormatDto,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `role_kind_from_dto`
[INFO] [stdout]   --> src/network/game_flow/mod.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 27 |     role_kind_from_dto,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DEFAULT_VOICE_CAPTURE_DIAGNOSTIC_INTERVAL_FRAMES`, `DEFAULT_VOICE_CAPTURE_HANGOVER_FRAMES`, `DEFAULT_VOICE_CAPTURE_MAX_GAIN`, `DEFAULT_VOICE_CAPTURE_MIN_RMS_FOR_GAIN`, `DEFAULT_VOICE_CAPTURE_TARGET_RMS`, `VoiceCaptureDiagnosticsSnapshot`, and `VoiceCaptureTuningConfig`
[INFO] [stdout]   --> src/network/voice/mod.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 |     VoiceCaptureDiagnosticsSnapshot,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 11 |     VoiceCaptureProcessor,
[INFO] [stdout] 12 |     VoiceCaptureTuningConfig,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 13 |     DEFAULT_VOICE_CAPTURE_DIAGNOSTIC_INTERVAL_FRAMES,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 14 |     DEFAULT_VOICE_CAPTURE_HANGOVER_FRAMES,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 15 |     DEFAULT_VOICE_CAPTURE_MAX_GAIN,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 16 |     DEFAULT_VOICE_CAPTURE_MIN_RMS_FOR_GAIN,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 17 |     DEFAULT_VOICE_CAPTURE_TARGET_RMS,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DEFAULT_PROXIMITY_FALLOFF_START_TILES` and `DEFAULT_PROXIMITY_RADIUS_TILES`
[INFO] [stdout]   --> src/network/voice/mod.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 |     DEFAULT_PROXIMITY_FALLOFF_START_TILES,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 25 |     DEFAULT_PROXIMITY_RADIUS_TILES,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `QueuedVoicePacket`
[INFO] [stdout]   --> src/network/voice/mod.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 30 |     QueuedVoicePacket,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `VoicePlaybackConcealmentKind`, `VoicePlaybackQueueDrainError`, `drain_runtime_packets_to_playback_queue_with_smoother_and_concealer`, `drain_runtime_packets_to_playback_queue_with_smoother`, and `drain_runtime_packets_to_playback_queue`
[INFO] [stdout]   --> src/network/voice/mod.rs:37:5
[INFO] [stdout]    |
[INFO] [stdout] 37 |     drain_runtime_packets_to_playback_queue,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 38 |     drain_runtime_packets_to_playback_queue_with_smoother,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 39 |     drain_runtime_packets_to_playback_queue_with_smoother_and_concealer,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 42 |     VoicePlaybackConcealmentKind,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 43 |     VoicePlaybackQueueDrainError,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `VoiceRouteDecision` and `route_voice_packet`
[INFO] [stdout]   --> src/network/voice/mod.rs:49:5
[INFO] [stdout]    |
[INFO] [stdout] 49 |     route_voice_packet,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 53 |     VoiceRouteDecision,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DEFAULT_MAX_QUEUED_VOICE_PACKETS_PER_SPEAKER`, `DEFAULT_MAX_VOICE_PACKET_AGE_SECONDS`, `DEFAULT_VOICE_JITTER_MAX_CONCEALMENTS_PER_DRAIN`, `DEFAULT_VOICE_JITTER_MISSING_PACKET_GRACE_SECONDS`, `DEFAULT_VOICE_JITTER_TARGET_DELAY_SECONDS`, `VoiceJitterBufferDrainSummary`, `VoicePlayoutItem`, and `VoiceSpeakerBuffer`
[INFO] [stdout]   --> src/network/voice/mod.rs:58:5
[INFO] [stdout]    |
[INFO] [stdout] 58 |     VoiceJitterBufferDrainSummary,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 59 |     VoicePlayoutItem,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 62 |     VoiceSpeakerBuffer,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 63 |     DEFAULT_MAX_QUEUED_VOICE_PACKETS_PER_SPEAKER,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 64 |     DEFAULT_MAX_VOICE_PACKET_AGE_SECONDS,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 65 |     DEFAULT_VOICE_JITTER_MAX_CONCEALMENTS_PER_DRAIN,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 66 |     DEFAULT_VOICE_JITTER_MISSING_PACKET_GRACE_SECONDS,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 67 |     DEFAULT_VOICE_JITTER_TARGET_DELAY_SECONDS,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DEFAULT_OPUS_BITRATE_BPS`, `DEFAULT_OPUS_MAX_PACKET_BYTES`, `VoiceCodecConfig`, `VoiceCodecDecoder`, `VoiceCodecError`, `VoiceCodecKind`, and `voice_codec_kind_from_payload_format`
[INFO] [stdout]   --> src/network/voice/mod.rs:72:5
[INFO] [stdout]    |
[INFO] [stdout] 72 |     voice_codec_kind_from_payload_format,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 73 |     voice_payload_format_from_codec_kind,
[INFO] [stdout] 74 |     VoiceCodecConfig,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 75 |     VoiceCodecDecoder,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 76 |     VoiceCodecEncoder,
[INFO] [stdout] 77 |     VoiceCodecError,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 78 |     VoiceCodecFrame,
[INFO] [stdout] 79 |     VoiceCodecKind,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 80 |     VoicePlaybackDecoderRuntime,
[INFO] [stdout] 81 |     DEFAULT_OPUS_BITRATE_BPS,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 82 |     DEFAULT_OPUS_MAX_PACKET_BYTES,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `player_pos`
[INFO] [stdout]    --> src/systems/navigation.rs:229:9
[INFO] [stdout]     |
[INFO] [stdout] 229 |     let player_pos = vec2(p_x, p_y);
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_player_pos`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `interactable_tile`
[INFO] [stdout]    --> src/systems/navigation.rs:452:13
[INFO] [stdout]     |
[INFO] [stdout] 452 |         let interactable_tile = (interactable.x as usize, interactable.y as usize);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_interactable_tile`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `player_pos`
[INFO] [stdout]    --> src/systems/navigation.rs:229:9
[INFO] [stdout]     |
[INFO] [stdout] 229 |     let player_pos = vec2(p_x, p_y);
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_player_pos`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `interactable_tile`
[INFO] [stdout]    --> src/systems/navigation.rs:452:13
[INFO] [stdout]     |
[INFO] [stdout] 452 |         let interactable_tile = (interactable.x as usize, interactable.y as usize);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_interactable_tile`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/network/game_flow/client_receive.rs:312:21
[INFO] [stdout]     |
[INFO] [stdout] 312 |                     other => {
[INFO] [stdout]     |                     ^^^^^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/network/game_flow/client_receive.rs:312:21
[INFO] [stdout]     |
[INFO] [stdout]  63 |                     HostToClientMessage::JoinAccepted(accepted) => {
[INFO] [stdout]     |                     ------------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout]  79 |                     HostToClientMessage::JoinRejected(rejected) => {
[INFO] [stdout]     |                     ------------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout]  93 |                     HostToClientMessage::LobbySnapshot(snapshot) => {
[INFO] [stdout]     |                     -------------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 140 |                     HostToClientMessage::StartMatch(start_match) => {
[INFO] [stdout]     |                     -------------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 312 |                     other => {
[INFO] [stdout]     |                     ^^^^^ ...and 6 other patterns collectively make this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `spawn_room` is never read
[INFO] [stdout]  --> src/map/loader.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct MapData {
[INFO] [stdout]   |            ------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 9 |     pub spawn_room: String,
[INFO] [stdout]   |         ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `MapData` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `name` is never read
[INFO] [stdout]   --> src/map/loader.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub struct Room {
[INFO] [stdout]    |            ---- field in this struct
[INFO] [stdout] 29 |     pub name: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Room` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `room` is never read
[INFO] [stdout]   --> src/map/loader.rs:46:9
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub struct Doorway {
[INFO] [stdout]    |            ------- field in this struct
[INFO] [stdout] 46 |     pub room: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Doorway` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `obj_type` is never read
[INFO] [stdout]   --> src/map/loader.rs:56:9
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub struct Object {
[INFO] [stdout]    |            ------ field in this struct
[INFO] [stdout] 55 |     #[serde(rename = "type")]
[INFO] [stdout] 56 |     pub obj_type: String,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Object` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Scan` and `EatCorpse` are never constructed
[INFO] [stdout]   --> src/entities/action.rs:9:5
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub enum ActionKind {
[INFO] [stdout]    |          ---------- variants in this enum
[INFO] [stdout]  8 |     Kill,
[INFO] [stdout]  9 |     Scan,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 10 |     EatCorpse,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ActionKind` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `is_dead`, `is_ghost`, and `emit_audio` are never used
[INFO] [stdout]    --> src/entities/player.rs:25:12
[INFO] [stdout]     |
[INFO] [stdout]  23 | impl Player {
[INFO] [stdout]     | ----------- associated items in this implementation
[INFO] [stdout]  24 |     /// Create a new player at the given grid position with default values.
[INFO] [stdout]  25 |     pub fn new(entity_id: EntityId, x: f32, y: f32) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 125 |     pub fn is_dead(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 129 |     pub fn is_ghost(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 154 |     pub fn emit_audio(&self, queue: &mut Vec<AudioEvent>, cue: AudioCue) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `virus` is never used
[INFO] [stdout]   --> src/entities/role.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | impl Role {
[INFO] [stdout]    | --------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub fn virus() -> Self {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_dead`, `is_ghost`, and `can_be_killed` are never used
[INFO] [stdout]   --> src/entities/life_state.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout]  9 | impl LifeState {
[INFO] [stdout]    | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 14 |     pub fn is_dead(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 18 |     pub fn is_ghost(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub fn can_be_killed(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `report` is never used
[INFO] [stdout]   --> src/entities/corpse.rs:63:12
[INFO] [stdout]    |
[INFO] [stdout] 32 | impl Corpse {
[INFO] [stdout]    | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 63 |     pub fn report(&mut self) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_corpse`, `player_exists`, `corpse_exists`, `corpse_for_player`, `corpse_for_player_mut`, and `draw_corpses` are never used
[INFO] [stdout]    --> src/entities/entity_manager.rs:145:12
[INFO] [stdout]     |
[INFO] [stdout]  28 | impl EntityManager {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 145 |     pub fn get_corpse(
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 187 |     pub fn player_exists(
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 195 |     pub fn corpse_exists(
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 208 |     pub fn corpse_for_player(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 218 |     pub fn corpse_for_player_mut(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 235 |     pub fn draw_corpses(&self, tile_size: f32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `total_votes` is never used
[INFO] [stdout]   --> src/entities/vote_tally.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl VoteTally {
[INFO] [stdout]    | -------------- method in this implementation
[INFO] [stdout] 12 |     /// Returns the total number of votes cast (skip + all player votes).
[INFO] [stdout] 13 |     pub fn total_votes(&self) -> u32 {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `midpoint` is never used
[INFO] [stdout]   --> src/rendering/continuous_fov.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl Segment {
[INFO] [stdout]    | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub fn midpoint(&self) -> Vec2 {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `distance` is never read
[INFO] [stdout]   --> src/rendering/continuous_fov.rs:47:9
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub struct RayHit {
[INFO] [stdout]    |            ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 47 |     pub distance: f32,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `RayHit` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `toggle_continuous_fov_debug` is never used
[INFO] [stdout]   --> src/rendering/draw.rs:41:8
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub fn toggle_continuous_fov_debug() {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `toggle_continuous_fov_visuals` is never used
[INFO] [stdout]   --> src/rendering/draw.rs:54:8
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub fn toggle_continuous_fov_visuals() {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `toggle_continuous_entity_visibility` is never used
[INFO] [stdout]   --> src/rendering/draw.rs:67:8
[INFO] [stdout]    |
[INFO] [stdout] 67 | pub fn toggle_continuous_entity_visibility() {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_corpses` is never used
[INFO] [stdout]   --> src/rendering/draw.rs:82:8
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub fn draw_corpses<'a>(corpses: impl Iterator<Item = &'a Corpse>, tile_size: f32) {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `VisibleTiles` is never constructed
[INFO] [stdout]   --> src/rendering/fov.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct VisibleTiles{
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `is_visible`, and `set_visible` are never used
[INFO] [stdout]   --> src/rendering/fov.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | impl VisibleTiles{
[INFO] [stdout]    | ----------------- associated items in this implementation
[INFO] [stdout] 22 |     pub fn new(width: usize, height: usize) -> Self{
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub fn is_visible(&self, x: usize, y: usize) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub fn set_visible(&mut self, x: usize, y: usize) {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compute_visible_tiles` is never used
[INFO] [stdout]   --> src/rendering/fov.rs:45:8
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub fn compute_visible_tiles(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `render_meeting_screen` is never used
[INFO] [stdout]    --> src/rendering/screen.rs:122:8
[INFO] [stdout]     |
[INFO] [stdout] 122 | pub fn render_meeting_screen(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `render_interaction_prompt` is never used
[INFO] [stdout]   --> src/ui/hud.rs:80:8
[INFO] [stdout]    |
[INFO] [stdout] 80 | pub fn render_interaction_prompt(interactable: &Interactable) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `render_meeting_overlay` is never used
[INFO] [stdout]    --> src/ui/meeting.rs:453:8
[INFO] [stdout]     |
[INFO] [stdout] 453 | pub fn render_meeting_overlay(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `task_object_id` is never used
[INFO] [stdout]   --> src/systems/interaction_target.rs:66:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl InteractionTarget {
[INFO] [stdout]    | ---------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 66 |     pub fn task_object_id(&self) -> Option<&str> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TightCornerGroup` is never constructed
[INFO] [stdout]   --> src/systems/navigation.rs:82:8
[INFO] [stdout]    |
[INFO] [stdout] 82 | struct TightCornerGroup {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `detect_tight_corner_groups` is never used
[INFO] [stdout]   --> src/systems/navigation.rs:89:4
[INFO] [stdout]    |
[INFO] [stdout] 89 | fn detect_tight_corner_groups(_corners: &[CornerWaypoint]) -> Vec<TightCornerGroup> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ArrowRotationState` is never constructed
[INFO] [stdout]    --> src/systems/navigation.rs:129:8
[INFO] [stdout]     |
[INFO] [stdout] 129 | struct ArrowRotationState {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ROTATION_ACCELERATION` is never used
[INFO] [stdout]    --> src/systems/navigation.rs:143:7
[INFO] [stdout]     |
[INFO] [stdout] 143 | const ROTATION_ACCELERATION: f32 = 0.15;      
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_ROTATION_SPEED` is never used
[INFO] [stdout]    --> src/systems/navigation.rs:144:7
[INFO] [stdout]     |
[INFO] [stdout] 144 | const MAX_ROTATION_SPEED: f32 = 0.4;          
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DAMPING_FACTOR` is never used
[INFO] [stdout]    --> src/systems/navigation.rs:145:7
[INFO] [stdout]     |
[INFO] [stdout] 145 | const DAMPING_FACTOR: f32 = 0.85;             
[INFO] [stdout]     |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `update_arrow_rotation` is never used
[INFO] [stdout]    --> src/systems/navigation.rs:148:4
[INFO] [stdout]     |
[INFO] [stdout] 148 | fn update_arrow_rotation(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LOOKAHEAD_TILES` is never used
[INFO] [stdout]    --> src/systems/navigation.rs:172:7
[INFO] [stdout]     |
[INFO] [stdout] 172 | const LOOKAHEAD_TILES: usize = 4;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_smoothed_target` is never used
[INFO] [stdout]    --> src/systems/navigation.rs:181:4
[INFO] [stdout]     |
[INFO] [stdout] 181 | fn get_smoothed_target(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_lookahead_target` is never used
[INFO] [stdout]    --> src/systems/navigation.rs:224:4
[INFO] [stdout]     |
[INFO] [stdout] 224 | fn get_lookahead_target(p_x: f32, p_y: f32, waypoints: &[(usize, usize)], lookahead_distance: f32) -> Option<(f32, f32)> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PathProgress` is never constructed
[INFO] [stdout]    --> src/systems/navigation.rs:270:8
[INFO] [stdout]     |
[INFO] [stdout] 270 | struct PathProgress {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_path_progress` is never used
[INFO] [stdout]    --> src/systems/navigation.rs:284:4
[INFO] [stdout]     |
[INFO] [stdout] 284 | fn calculate_path_progress(_p_tile: (usize, usize)) -> PathProgress {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_remaining_path_distance` is never used
[INFO] [stdout]    --> src/systems/navigation.rs:519:4
[INFO] [stdout]     |
[INFO] [stdout] 519 | fn calculate_remaining_path_distance(waypoints: &[(usize, usize)]) -> f32 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `smooth_angle` is never used
[INFO] [stdout]    --> src/systems/navigation.rs:597:4
[INFO] [stdout]     |
[INFO] [stdout] 597 | fn smooth_angle(
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_rotation_smoothing` is never used
[INFO] [stdout]    --> src/systems/navigation.rs:745:4
[INFO] [stdout]     |
[INFO] [stdout] 745 | fn apply_rotation_smoothing(target_angle: f32, _tile_size: f32) -> f32 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `player_id`, `corpse_id`, and `task_object_id` are never used
[INFO] [stdout]   --> src/systems/interaction_slot.rs:28:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl InteractionSlot {
[INFO] [stdout]    | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub fn player_id(&self) -> Option<EntityId> {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub fn corpse_id(&self) -> Option<EntityId> {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub fn task_object_id(&self) -> Option<&str> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `clear` and `get_mut` are never used
[INFO] [stdout]    --> src/systems/interaction_slot.rs:82:12
[INFO] [stdout]     |
[INFO] [stdout]  70 | impl InteractionSlots {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  82 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     pub fn get_mut(&mut self, channel: InteractionChannel) -> &mut InteractionSlot {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `discover_report_target` is never used
[INFO] [stdout]   --> src/systems/interaction_discovery.rs:37:8
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub fn discover_report_target(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `discover_faction_target` is never used
[INFO] [stdout]   --> src/systems/interaction_discovery.rs:79:8
[INFO] [stdout]    |
[INFO] [stdout] 79 | pub fn discover_faction_target(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `discover_role_target` is never used
[INFO] [stdout]    --> src/systems/interaction_discovery.rs:133:8
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub fn discover_role_target(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `populate_interaction_slots` is never used
[INFO] [stdout]    --> src/systems/interaction_discovery.rs:155:8
[INFO] [stdout]     |
[INFO] [stdout] 155 | pub fn populate_interaction_slots(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `nearest_visible_corpse` is never used
[INFO] [stdout]   --> src/systems/interaction_queries.rs:32:8
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub fn nearest_visible_corpse(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `nearest_visible_player` is never used
[INFO] [stdout]   --> src/systems/interaction_queries.rs:83:8
[INFO] [stdout]    |
[INFO] [stdout] 83 | pub fn nearest_visible_player(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_discussion` is never used
[INFO] [stdout]   --> src/systems/app_state.rs:60:12
[INFO] [stdout]    |
[INFO] [stdout] 59 | impl MeetingPhase {
[INFO] [stdout]    | ----------------- method in this implementation
[INFO] [stdout] 60 |     pub fn is_discussion(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_discussion_active` is never used
[INFO] [stdout]    --> src/systems/app_state.rs:108:12
[INFO] [stdout]     |
[INFO] [stdout]  73 | impl MeetingState {
[INFO] [stdout]     | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 108 |     pub fn is_discussion_active(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `enter_meeting_results` is never used
[INFO] [stdout]    --> src/systems/app_state.rs:156:8
[INFO] [stdout]     |
[INFO] [stdout] 156 | pub fn enter_meeting_results() -> MatchState {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `ForceLocalRole` is never constructed
[INFO] [stdout]   --> src/systems/match_setup.rs:61:5
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub enum RoleDebugOverride {
[INFO] [stdout]    |          ----------------- variant in this enum
[INFO] [stdout] 60 |     None,
[INFO] [stdout] 61 |     ForceLocalRole(RoleKind),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `RoleDebugOverride` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> src/systems/match_setup.rs:73:9
[INFO] [stdout]    |
[INFO] [stdout] 71 | pub struct SpawnedMatchPlayerRecord {
[INFO] [stdout]    |            ------------------------ fields in this struct
[INFO] [stdout] 72 |     pub entity_id: EntityId,
[INFO] [stdout] 73 |     pub name: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 74 |     pub is_local: bool,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 75 |     pub is_static_test_player: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 76 |     pub role_kind: RoleKind,
[INFO] [stdout] 77 |     pub spawn_id: String,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 78 |     pub spawn_room: String,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 79 |     pub spawn_center_x: f32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 80 |     pub spawn_center_y: f32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 81 |     pub actor_x: f32,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 82 |     pub actor_y: f32,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SpawnedMatchPlayerRecord` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `object_id` is never read
[INFO] [stdout]  --> src/tasks/minigame.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct HoldTask {
[INFO] [stdout]   |            -------- field in this struct
[INFO] [stdout] 5 |     pub object_id: String,
[INFO] [stdout]   |         ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `HoldTask` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `has_task` is never used
[INFO] [stdout]   --> src/tasks/manager.rs:76:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | impl TaskManager {
[INFO] [stdout]    | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 76 |     pub fn has_task(&self, object_id: &str) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_task_list_task`, `appears_in_task_list`, and `uses_task_navigation` are never used
[INFO] [stdout]   --> src/tasks/activity.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl ActivityKind {
[INFO] [stdout]    | ----------------- methods in this implementation
[INFO] [stdout] 11 |     pub fn is_task_list_task(self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 15 |     pub fn appears_in_task_list(self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 19 |     pub fn uses_task_navigation(self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `LocalOnly` is never constructed
[INFO] [stdout]   --> src/tasks/activity.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub enum ActivityCompletionPolicy {
[INFO] [stdout]    |          ------------------------ variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 29 |     LocalOnly,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ActivityCompletionPolicy` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `role_action` and `world_action` are never used
[INFO] [stdout]   --> src/tasks/activity.rs:57:12
[INFO] [stdout]    |
[INFO] [stdout] 45 | impl ActivityLaunchSpec {
[INFO] [stdout]    | ----------------------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 57 |     pub fn role_action(
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 68 |     pub fn world_action(
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `task_list_task` is never used
[INFO] [stdout]    --> src/tasks/activity.rs:134:12
[INFO] [stdout]     |
[INFO] [stdout] 120 | impl ActiveActivity {
[INFO] [stdout]     | ------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 134 |     pub fn task_list_task(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `clear` is never used
[INFO] [stdout]    --> src/audio/engine.rs:142:8
[INFO] [stdout]     |
[INFO] [stdout] 106 | impl VoiceStreamBuffer {
[INFO] [stdout]     | ---------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 142 |     fn clear(&mut self) {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `output_info`, `pending_sound_count`, and `clear_voice_stream` are never used
[INFO] [stdout]    --> src/audio/engine.rs:295:12
[INFO] [stdout]     |
[INFO] [stdout] 164 | impl AudioEngine {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 295 |     pub fn output_info(&self) -> &AudioOutputDeviceInfo {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 341 |     pub fn pending_sound_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 365 |     pub fn clear_voice_stream(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `count_blocker_entries` is never used
[INFO] [stdout]   --> src/audio/propagation.rs:84:4
[INFO] [stdout]    |
[INFO] [stdout] 84 | fn count_blocker_entries(steps: &[AudioRayStep]) -> usize {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_DEBUG_VOICE_TONE_FREQUENCY_HZ` is never used
[INFO] [stdout]   --> src/audio/voice_io/mod.rs:61:11
[INFO] [stdout]    |
[INFO] [stdout] 61 | pub const DEFAULT_DEBUG_VOICE_TONE_FREQUENCY_HZ: f32 = 660.0;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_DEBUG_VOICE_TONE_GAIN` is never used
[INFO] [stdout]   --> src/audio/voice_io/mod.rs:62:11
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub const DEFAULT_DEBUG_VOICE_TONE_GAIN: f32 = 0.20;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mix_voice_frames` is never used
[INFO] [stdout]   --> src/audio/voice_io/mod.rs:64:8
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub fn mix_voice_frames(frames: &[VoiceAudioFrame], sample_rate_hz: u32) -> VoiceAudioFrame {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `buffered_sample_count` is never used
[INFO] [stdout]    --> src/audio/voice_io/capture.rs:190:12
[INFO] [stdout]     |
[INFO] [stdout]  84 | impl VoiceCaptureRuntime {
[INFO] [stdout]     | ------------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 190 |     pub fn buffered_sample_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `encode_pcm_f32_le` is never used
[INFO] [stdout]   --> src/audio/voice_io/codec.rs:24:8
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub fn encode_pcm_f32_le(samples: &[f32]) -> Vec<u8> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `open_mic_started_logged` is never read
[INFO] [stdout]   --> src/audio/voice_io/debug.rs:72:5
[INFO] [stdout]    |
[INFO] [stdout] 68 | pub struct VoiceCaptureDebugState {
[INFO] [stdout]    |            ---------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 72 |     open_mic_started_logged: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `VoiceCaptureDebugState` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `capture_enabled`, `runtime_started`, `ensure_capture_runtime_started`, and `update_open_mic_debug` are never used
[INFO] [stdout]    --> src/audio/voice_io/debug.rs:80:12
[INFO] [stdout]     |
[INFO] [stdout]  75 | impl VoiceCaptureDebugState {
[INFO] [stdout]     | --------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  80 |     pub fn capture_enabled(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  84 |     pub fn runtime_started(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  88 |     pub fn ensure_capture_runtime_started(&mut self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 103 |     pub fn update_open_mic_debug(&mut self, context_label: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_debug_voice_frame` is never used
[INFO] [stdout]    --> src/audio/voice_io/debug.rs:224:8
[INFO] [stdout]     |
[INFO] [stdout] 224 | pub fn generate_debug_voice_frame(sample_rate_hz: u32) -> VoiceAudioFrame {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_debug_voice_payload` is never used
[INFO] [stdout]    --> src/audio/voice_io/debug.rs:233:8
[INFO] [stdout]     |
[INFO] [stdout] 233 | pub fn generate_debug_voice_payload(sample_rate_hz: u32) -> Vec<u8> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_debug_voice_tone_frame` is never used
[INFO] [stdout]    --> src/audio/voice_io/debug.rs:237:8
[INFO] [stdout]     |
[INFO] [stdout] 237 | pub fn generate_debug_voice_tone_frame(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `debug_tone_envelope` is never used
[INFO] [stdout]    --> src/audio/voice_io/debug.rs:261:4
[INFO] [stdout]     |
[INFO] [stdout] 261 | fn debug_tone_envelope(index: usize, sample_count: usize, fade_samples: usize) -> f32 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `silence`, `is_empty`, `with_gain`, and `encode_payload_f32_legacy` are never used
[INFO] [stdout]   --> src/audio/voice_io/frame.rs:28:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl VoiceAudioFrame {
[INFO] [stdout]    | -------------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub fn silence(sample_count: usize, sample_rate_hz: u32) -> Self {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 39 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub fn with_gain(&self, gain: f32) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 59 |     pub fn encode_payload_f32_legacy(&self) -> Vec<u8> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `VoiceFrameChunker` is never constructed
[INFO] [stdout]   --> src/audio/voice_io/frame.rs:65:12
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub struct VoiceFrameChunker {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `push_samples`, `pending_sample_count`, and `frame_sample_count` are never used
[INFO] [stdout]    --> src/audio/voice_io/frame.rs:72:12
[INFO] [stdout]     |
[INFO] [stdout]  71 | impl VoiceFrameChunker {
[INFO] [stdout]     | ---------------------- associated items in this implementation
[INFO] [stdout]  72 |     pub fn new(sample_rate_hz: u32, frame_ms: u32) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  80 |     pub fn push_samples(&mut self, samples: &[f32]) -> Vec<VoiceAudioFrame> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn pending_sample_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 106 |     pub fn frame_sample_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_empty` is never used
[INFO] [stdout]   --> src/audio/voice_io/playback_queue.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl VoicePlaybackQueue {
[INFO] [stdout]    | ----------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/audio/voice_io/smoothing.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl VoiceSmoothingConfig {
[INFO] [stdout]    | ------------------------- associated function in this implementation
[INFO] [stdout] 11 |     pub fn new(ramp_ms: u32) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_match_session` is never used
[INFO] [stdout]    --> src/screens/in_match.rs:167:8
[INFO] [stdout]     |
[INFO] [stdout] 167 | pub fn create_match_session(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `offline` is never used
[INFO] [stdout]   --> src/screens/lobby.rs:64:12
[INFO] [stdout]    |
[INFO] [stdout] 63 | impl LobbyNetworkUiInfo {
[INFO] [stdout]    | ----------------------- associated function in this implementation
[INFO] [stdout] 64 |     pub fn offline() -> Self {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_lobby_session` is never used
[INFO] [stdout]    --> src/screens/lobby.rs:102:8
[INFO] [stdout]     |
[INFO] [stdout] 102 | pub fn create_lobby_session(map_data: &MapData) -> LobbySession {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `NetworkAuthorityMode` is never used
[INFO] [stdout]   --> src/network/dto.rs:24:10
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub enum NetworkAuthorityMode {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `revealed` is never used
[INFO] [stdout]    --> src/network/dto.rs:211:12
[INFO] [stdout]     |
[INFO] [stdout] 204 | impl PublicRoleDataDto {
[INFO] [stdout]     | ---------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 211 |     pub fn revealed(role_kind: RoleKindDto) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `value` is never used
[INFO] [stdout]   --> src/network/ids.rs:42:12
[INFO] [stdout]    |
[INFO] [stdout] 37 | impl NetworkMessageSequence {
[INFO] [stdout]    | --------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 42 |     pub fn value(self) -> u32 {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/network/ids.rs:54:12
[INFO] [stdout]    |
[INFO] [stdout] 51 | impl NetworkTick {
[INFO] [stdout]    | ---------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 54 |     pub fn new(value: u32) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `last_received_tick` is never read
[INFO] [stdout]   --> src/network/runtime.rs:43:9
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub struct ClientNetworkRuntime {
[INFO] [stdout]    |            -------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub last_received_tick: NetworkTick,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ClientNetworkRuntime` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `authority_mode`, `is_offline`, `is_host`, `is_client`, `is_authoritative_simulation`, and `local_network_player_id` are never used
[INFO] [stdout]    --> src/network/runtime.rs:100:12
[INFO] [stdout]     |
[INFO] [stdout]  65 | impl NetworkRuntime {
[INFO] [stdout]     | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 100 |     pub fn authority_mode(&self) -> NetworkAuthorityMode {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 108 |     pub fn is_offline(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 112 |     pub fn is_host(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 116 |     pub fn is_client(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 120 |     pub fn is_authoritative_simulation(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 124 |     pub fn local_network_player_id(&self) -> Option<NetworkPlayerId> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `clear_room_code`, `has_player`, and `connected_player` are never used
[INFO] [stdout]    --> src/network/runtime.rs:138:12
[INFO] [stdout]     |
[INFO] [stdout] 133 | impl HostNetworkRuntime {
[INFO] [stdout]     | ----------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 138 |     pub fn clear_room_code(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 157 |     pub fn has_player(&self, player_id: NetworkPlayerId) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 163 |     pub fn connected_player(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `mark_connected`, `mark_failed`, and `apply_join_rejected` are never used
[INFO] [stdout]    --> src/network/runtime.rs:223:12
[INFO] [stdout]     |
[INFO] [stdout] 216 | impl ClientNetworkRuntime {
[INFO] [stdout]     | ------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 223 |     pub fn mark_connected(&mut self, assigned_player_id: NetworkPlayerId) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 229 |     pub fn mark_failed(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 243 |     pub fn apply_join_rejected(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/network/entity_map.rs:45:12
[INFO] [stdout]     |
[INFO] [stdout]  40 | impl NetworkEntityMap {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  45 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 140 |     pub fn unregister_entity_by_network_id(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 217 |     pub fn network_entity_for_network_player(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 225 |     pub fn network_player_for_network_entity(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 233 |     pub fn contains_network_entity(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 241 |     pub fn contains_local_entity(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 249 |     pub fn contains_network_player(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 257 |     pub fn entity_mapping_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 261 |     pub fn player_mapping_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 265 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/network/apply_snapshot.rs:44:15
[INFO] [stdout]    |
[INFO] [stdout] 44 |     EntityMap(NetworkEntityMapError),
[INFO] [stdout]    |     --------- ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ApplySnapshotError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 44 -     EntityMap(NetworkEntityMapError),
[INFO] [stdout] 44 +     EntityMap(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `owner_network_entity_id` is never read
[INFO] [stdout]   --> src/network/apply_snapshot.rs:46:9
[INFO] [stdout]    |
[INFO] [stdout] 45 |     MissingCorpseOwner {
[INFO] [stdout]    |     ------------------ field in this variant
[INFO] [stdout] 46 |         owner_network_entity_id: NetworkEntityId,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ApplySnapshotError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `NetworkChannel` is never used
[INFO] [stdout]  --> src/network/transport.rs:5:10
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub enum NetworkChannel {
[INFO] [stdout]   |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `HostRecipient` is never used
[INFO] [stdout]   --> src/network/transport.rs:12:10
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub enum HostRecipient {
[INFO] [stdout]    |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ClientToHostPacket` is never constructed
[INFO] [stdout]   --> src/network/transport.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct ClientToHostPacket {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HostToClientPacket` is never constructed
[INFO] [stdout]   --> src/network/transport.rs:26:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub struct HostToClientPacket {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `TransportError` is never used
[INFO] [stdout]   --> src/network/transport.rs:33:10
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub enum TransportError {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `TransportResult` is never used
[INFO] [stdout]   --> src/network/transport.rs:39:10
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub type TransportResult<T> = Result<T, TransportError>;
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `NetworkTransport` is never used
[INFO] [stdout]   --> src/network/transport.rs:41:11
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub trait NetworkTransport {
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FakeNetworkTransport` is never constructed
[INFO] [stdout]   --> src/network/fake_transport.rs:26:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub struct FakeNetworkTransport {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `clear` are never used
[INFO] [stdout]   --> src/network/fake_transport.rs:34:12
[INFO] [stdout]    |
[INFO] [stdout] 33 | impl FakeNetworkTransport {
[INFO] [stdout]    | ------------------------- associated items in this implementation
[INFO] [stdout] 34 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub fn clear(&mut self) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FakeJoinExchangeResult` is never constructed
[INFO] [stdout]   --> src/network/fake_transport.rs:83:12
[INFO] [stdout]    |
[INFO] [stdout] 83 | pub struct FakeJoinExchangeResult {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `FakeJoinError` is never used
[INFO] [stdout]   --> src/network/fake_transport.rs:90:10
[INFO] [stdout]    |
[INFO] [stdout] 90 | pub enum FakeJoinError {
[INFO] [stdout]    |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_fake_join_handshake` is never used
[INFO] [stdout]    --> src/network/fake_transport.rs:107:8
[INFO] [stdout]     |
[INFO] [stdout] 107 | pub fn run_fake_join_handshake(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_join_request_packet` is never used
[INFO] [stdout]    --> src/network/fake_transport.rs:233:8
[INFO] [stdout]     |
[INFO] [stdout] 233 | pub fn build_join_request_packet(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_join_accepted_packet` is never used
[INFO] [stdout]    --> src/network/fake_transport.rs:249:8
[INFO] [stdout]     |
[INFO] [stdout] 249 | pub fn build_join_accepted_packet(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/network/udp_transport.rs:27:8
[INFO] [stdout]    |
[INFO] [stdout] 27 |     Io(io::Error),
[INFO] [stdout]    |     -- ^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `UdpTransportError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 27 -     Io(io::Error),
[INFO] [stdout] 27 +     Io(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/network/udp_transport.rs:28:15
[INFO] [stdout]    |
[INFO] [stdout] 28 |     Serialize(serde_json::Error),
[INFO] [stdout]    |     --------- ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `UdpTransportError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 28 -     Serialize(serde_json::Error),
[INFO] [stdout] 28 +     Serialize(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/network/udp_transport.rs:29:17
[INFO] [stdout]    |
[INFO] [stdout] 29 |     Deserialize(serde_json::Error),
[INFO] [stdout]    |     ----------- ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `UdpTransportError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 29 -     Deserialize(serde_json::Error),
[INFO] [stdout] 29 +     Deserialize(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/network/udp_transport.rs:30:20
[INFO] [stdout]    |
[INFO] [stdout] 30 |     InvalidAddress(String),
[INFO] [stdout]    |     -------------- ^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `UdpTransportError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 30 -     InvalidAddress(String),
[INFO] [stdout] 30 +     InvalidAddress(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `bind_dev_localhost` and `drain_client_messages` are never used
[INFO] [stdout]    --> src/network/udp_transport.rs:127:12
[INFO] [stdout]     |
[INFO] [stdout] 126 | impl UdpHostTransport {
[INFO] [stdout]     | --------------------- associated items in this implementation
[INFO] [stdout] 127 |     pub fn bind_dev_localhost() -> Result<Self, UdpTransportError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 205 |     pub fn drain_client_messages(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `connect_to_dev_localhost_host` is never used
[INFO] [stdout]    --> src/network/udp_transport.rs:284:12
[INFO] [stdout]     |
[INFO] [stdout] 283 | impl UdpClientTransport {
[INFO] [stdout]     | ----------------------- associated function in this implementation
[INFO] [stdout] 284 |     pub fn connect_to_dev_localhost_host() -> Result<Self, UdpTransportError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `clear` and `sample_count` are never used
[INFO] [stdout]    --> src/network/interpolation.rs:148:12
[INFO] [stdout]     |
[INFO] [stdout]  49 | impl NetworkTransformInterpolator {
[INFO] [stdout]     | --------------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 148 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 |     pub fn sample_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `remove_entity` and `interpolator_count` are never used
[INFO] [stdout]    --> src/network/interpolation.rs:208:12
[INFO] [stdout]     |
[INFO] [stdout] 157 | impl NetworkInterpolationSet {
[INFO] [stdout]     | ---------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 208 |     pub fn remove_entity(&mut self, network_entity_id: NetworkEntityId) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 221 |     pub fn interpolator_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LIVE_NETWORK_VOICE_FRAME_MS` is never used
[INFO] [stdout]   --> src/network/game_flow/client_send.rs:54:7
[INFO] [stdout]    |
[INFO] [stdout] 54 | const LIVE_NETWORK_VOICE_FRAME_MS: u32 = 20;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `HostLiveVoiceFrameBuildError` is never used
[INFO] [stdout]   --> src/network/game_flow/voice_flow.rs:51:6
[INFO] [stdout]    |
[INFO] [stdout] 51 | enum HostLiveVoiceFrameBuildError {
[INFO] [stdout]    |      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_host_live_voice_packet` is never used
[INFO] [stdout]    --> src/network/game_flow/voice_flow.rs:443:4
[INFO] [stdout]     |
[INFO] [stdout] 443 | fn build_host_live_voice_packet(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CONNECTION_WARN_AFTER_SECONDS` is never used
[INFO] [stdout]  --> src/network/reliability.rs:8:11
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub const CONNECTION_WARN_AFTER_SECONDS: f32 = 5.0;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CONNECTION_TIMEOUT_AFTER_SECONDS` is never used
[INFO] [stdout]  --> src/network/reliability.rs:9:11
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub const CONNECTION_TIMEOUT_AFTER_SECONDS: f32 = 15.0;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `first_sent_seconds` is never read
[INFO] [stdout]   --> src/network/reliability.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct PendingReliableLifecycleEvent {
[INFO] [stdout]    |            ----------------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub first_sent_seconds: f32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PendingReliableLifecycleEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `pending_count` is never used
[INFO] [stdout]    --> src/network/reliability.rs:120:12
[INFO] [stdout]     |
[INFO] [stdout]  35 | impl ReliableHostLifecycleTracker {
[INFO] [stdout]     | --------------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 120 |     pub fn pending_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ConnectionHealth` is never used
[INFO] [stdout]    --> src/network/reliability.rs:243:10
[INFO] [stdout]     |
[INFO] [stdout] 243 | pub enum ConnectionHealth {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `host_health`, `client_health`, and `clients` are never used
[INFO] [stdout]    --> src/network/reliability.rs:310:12
[INFO] [stdout]     |
[INFO] [stdout] 262 | impl HeartbeatTracker {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 310 |     pub fn host_health(&self, now_seconds: f32) -> ConnectionHealth {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 318 |     pub fn client_health(
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 331 |     pub fn clients(&self) -> &[HeartbeatPeerState] {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `elapsed_to_health` is never used
[INFO] [stdout]    --> src/network/reliability.rs:336:4
[INFO] [stdout]     |
[INFO] [stdout] 336 | fn elapsed_to_health(elapsed_seconds: f32) -> ConnectionHealth {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `config` and `hangover_remaining_frames` are never used
[INFO] [stdout]    --> src/network/voice/capture.rs:135:12
[INFO] [stdout]     |
[INFO] [stdout] 119 | impl VoiceCaptureProcessor {
[INFO] [stdout]     | -------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 135 |     pub fn config(&self) -> VoiceCaptureTuningConfig {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 139 |     pub fn hangover_remaining_frames(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_match_state_dto` is never used
[INFO] [stdout]   --> src/network/voice/context.rs:47:12
[INFO] [stdout]    |
[INFO] [stdout] 36 | impl VoiceGameContext {
[INFO] [stdout]    | --------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 47 |     pub fn from_match_state_dto(match_state: MatchStateDto) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `payload_len` is never used
[INFO] [stdout]   --> src/network/voice/packet.rs:80:12
[INFO] [stdout]    |
[INFO] [stdout] 79 | impl QueuedVoicePacket {
[INFO] [stdout]    | ---------------------- method in this implementation
[INFO] [stdout] 80 |     pub fn payload_len(&self) -> usize {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `speaker_state_count` is never used
[INFO] [stdout]   --> src/network/voice/playback.rs:63:12
[INFO] [stdout]    |
[INFO] [stdout] 51 | impl VoicePlaybackSmoother {
[INFO] [stdout]    | -------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 63 |     pub fn speaker_state_count(&self) -> usize {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `speaker_state_count` is never used
[INFO] [stdout]    --> src/network/voice/playback.rs:170:12
[INFO] [stdout]     |
[INFO] [stdout] 159 | impl VoicePlaybackConcealer {
[INFO] [stdout]     | --------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 170 |     pub fn speaker_state_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `drain_runtime_packets_to_playback_queue` is never used
[INFO] [stdout]    --> src/network/voice/playback.rs:313:8
[INFO] [stdout]     |
[INFO] [stdout] 313 | pub fn drain_runtime_packets_to_playback_queue(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `drain_runtime_packets_to_playback_queue_with_smoother` is never used
[INFO] [stdout]    --> src/network/voice/playback.rs:332:8
[INFO] [stdout]     |
[INFO] [stdout] 332 | pub fn drain_runtime_packets_to_playback_queue_with_smoother(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `drain_runtime_packets_to_playback_queue_with_smoother_and_concealer` is never used
[INFO] [stdout]    --> src/network/voice/playback.rs:351:8
[INFO] [stdout]     |
[INFO] [stdout] 351 | pub fn drain_runtime_packets_to_playback_queue_with_smoother_and_concealer(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_ghost` is never used
[INFO] [stdout]   --> src/network/voice/routing.rs:45:12
[INFO] [stdout]    |
[INFO] [stdout] 28 | impl VoiceParticipant {
[INFO] [stdout]    | --------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 45 |     pub fn is_ghost(self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `route_voice_packet` is never used
[INFO] [stdout]   --> src/network/voice/routing.rs:79:8
[INFO] [stdout]    |
[INFO] [stdout] 79 | pub fn route_voice_packet(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/network/voice/runtime.rs:103:12
[INFO] [stdout]     |
[INFO] [stdout]  84 | impl VoiceRuntime {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 103 |     pub fn with_jitter_settings(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 116 |     pub fn with_full_jitter_settings(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 225 |     pub fn queued_packets_for_speaker(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 236 |     pub fn take_queued_packets_for_speaker(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 257 |     pub fn take_all_queued_packets(&mut self) -> Vec<QueuedVoicePacket> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 388 |     pub fn total_queued_packets(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 395 |     pub fn speaker_buffer_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SUPPORTED_VOICE_CODEC_FRAME_SAMPLES` is never used
[INFO] [stdout]   --> src/network/voice/codec.rs:26:11
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub const SUPPORTED_VOICE_CODEC_FRAME_SAMPLES: usize = 960;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `pcm_i16_default` is never used
[INFO] [stdout]   --> src/network/voice/codec.rs:52:12
[INFO] [stdout]    |
[INFO] [stdout] 42 | impl VoiceCodecConfig {
[INFO] [stdout]    | --------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 52 |     pub fn pcm_i16_default() -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `payload_len` is never used
[INFO] [stdout]    --> src/network/voice/codec.rs:150:12
[INFO] [stdout]     |
[INFO] [stdout] 149 | impl VoiceCodecFrame {
[INFO] [stdout]     | -------------------- method in this implementation
[INFO] [stdout] 150 |     pub fn payload_len(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `PcmI16Le` is never constructed
[INFO] [stdout]    --> src/network/voice/codec.rs:156:5
[INFO] [stdout]     |
[INFO] [stdout] 155 | pub enum VoiceCodecEncoder {
[INFO] [stdout]     |          ----------------- variant in this enum
[INFO] [stdout] 156 |     PcmI16Le {
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `pcm_i16_default` and `kind` are never used
[INFO] [stdout]    --> src/network/voice/codec.rs:181:12
[INFO] [stdout]     |
[INFO] [stdout] 180 | impl VoiceCodecEncoder {
[INFO] [stdout]     | ---------------------- associated items in this implementation
[INFO] [stdout] 181 |     pub fn pcm_i16_default() -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 208 |     pub fn kind(&self) -> VoiceCodecKind {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `PcmI16Le` is never constructed
[INFO] [stdout]    --> src/network/voice/codec.rs:265:5
[INFO] [stdout]     |
[INFO] [stdout] 264 | pub enum VoiceCodecDecoder {
[INFO] [stdout]     |          ----------------- variant in this enum
[INFO] [stdout] 265 |     PcmI16Le {
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `pcm_i16_default`, `opus_default`, and `kind` are never used
[INFO] [stdout]    --> src/network/voice/codec.rs:290:12
[INFO] [stdout]     |
[INFO] [stdout] 289 | impl VoiceCodecDecoder {
[INFO] [stdout]     | ---------------------- associated items in this implementation
[INFO] [stdout] 290 |     pub fn pcm_i16_default() -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 296 |     pub fn opus_default() -> Result<Self, VoiceCodecError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 309 |     pub fn kind(&self) -> VoiceCodecKind {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `voice_codec_kind_from_payload_format` is never used
[INFO] [stdout]    --> src/network/voice/codec.rs:388:8
[INFO] [stdout]     |
[INFO] [stdout] 388 | pub fn voice_codec_kind_from_payload_format(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `speaker_decoder_count` are never used
[INFO] [stdout]    --> src/network/voice/codec.rs:509:12
[INFO] [stdout]     |
[INFO] [stdout] 508 | impl VoicePlaybackDecoderRuntime {
[INFO] [stdout]     | -------------------------------- associated items in this implementation
[INFO] [stdout] 509 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 519 |     pub fn speaker_decoder_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Deserialize` is never constructed
[INFO] [stdout]   --> src/network/rendezvous/protocol.rs:80:5
[INFO] [stdout]    |
[INFO] [stdout] 78 | pub enum RendezvousProtocolError {
[INFO] [stdout]    |          ----------------------- variant in this enum
[INFO] [stdout] 79 |     Serialize(serde_json::Error),
[INFO] [stdout] 80 |     Deserialize(serde_json::Error),
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `RendezvousProtocolError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_json_slice` is never used
[INFO] [stdout]   --> src/network/rendezvous/protocol.rs:92:12
[INFO] [stdout]    |
[INFO] [stdout] 83 | impl RendezvousClientWireMessage {
[INFO] [stdout]    | -------------------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 92 |     pub fn from_json_slice(bytes: &[u8]) -> Result<Self, RendezvousProtocolError> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `to_json_bytes`, and `from_json_slice` are never used
[INFO] [stdout]    --> src/network/rendezvous/protocol.rs:98:12
[INFO] [stdout]     |
[INFO] [stdout]  97 | impl RendezvousServerWireMessage {
[INFO] [stdout]     | -------------------------------- associated items in this implementation
[INFO] [stdout]  98 |     pub fn new(message: RendezvousToGameMessage) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn to_json_bytes(&self) -> Result<Vec<u8>, RendezvousProtocolError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 106 |     pub fn from_json_slice(bytes: &[u8]) -> Result<Self, RendezvousProtocolError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `to_json_bytes`, and `from_json_slice` are never used
[INFO] [stdout]    --> src/network/rendezvous/protocol.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 111 | impl PeerPunchWireMessage {
[INFO] [stdout]     | ------------------------- associated items in this implementation
[INFO] [stdout] 112 |     pub fn new(message: PeerPunchMessage) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 116 |     pub fn to_json_bytes(&self) -> Result<Vec<u8>, RendezvousProtocolError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 120 |     pub fn from_json_slice(bytes: &[u8]) -> Result<Self, RendezvousProtocolError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_ROOM_TTL_SECONDS` is never used
[INFO] [stdout]   --> src/network/rendezvous/server_state.rs:12:11
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub const DEFAULT_ROOM_TTL_SECONDS: f32 = 30.0;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RendezvousServerConfig` is never constructed
[INFO] [stdout]   --> src/network/rendezvous/server_state.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct RendezvousServerConfig {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RendezvousRoom` is never constructed
[INFO] [stdout]   --> src/network/rendezvous/server_state.rs:28:12
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub struct RendezvousRoom {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RendezvousServerAction` is never constructed
[INFO] [stdout]   --> src/network/rendezvous/server_state.rs:40:12
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub struct RendezvousServerAction {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RendezvousServerState` is never constructed
[INFO] [stdout]   --> src/network/rendezvous/server_state.rs:46:12
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub struct RendezvousServerState {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/network/rendezvous/server_state.rs:58:12
[INFO] [stdout]     |
[INFO] [stdout]  57 | impl RendezvousServerState {
[INFO] [stdout]     | -------------------------- associated items in this implementation
[INFO] [stdout]  58 |     pub fn new(config: RendezvousServerConfig) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  65 |     pub fn handle_message(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 117 |     pub fn expire_stale_rooms(&mut self, now_seconds: f32) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 140 |     pub fn room_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 144 |     pub fn room(&self, room_code: &str) -> Option<&RendezvousRoom> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 149 |     fn handle_register_host(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 241 |     fn handle_host_keepalive(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 285 |     fn handle_resolve_room(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 344 |     fn handle_client_keepalive(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `reject` is never used
[INFO] [stdout]    --> src/network/rendezvous/server_state.rs:381:4
[INFO] [stdout]     |
[INFO] [stdout] 381 | fn reject(recipient_addr: SocketAddr, reason: String) -> RendezvousServerAction {
[INFO] [stdout]     |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `role`, `room_code`, `observed_addr`, `client_addr`, `has_pending_outbound`, and `reset` are never used
[INFO] [stdout]    --> src/network/rendezvous/client.rs:110:12
[INFO] [stdout]     |
[INFO] [stdout]  86 | impl RendezvousClient {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 110 |     pub fn role(&self) -> Option<RendezvousClientRole> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 114 |     pub fn room_code(&self) -> Option<&str> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 118 |     pub fn observed_addr(&self) -> Option<SocketAddr> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 126 |     pub fn client_addr(&self) -> Option<SocketAddr> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 130 |     pub fn has_pending_outbound(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 401 |     pub fn reset(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/network/game_flow/client_receive.rs:312:21
[INFO] [stdout]     |
[INFO] [stdout] 312 |                     other => {
[INFO] [stdout]     |                     ^^^^^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/network/game_flow/client_receive.rs:312:21
[INFO] [stdout]     |
[INFO] [stdout]  63 |                     HostToClientMessage::JoinAccepted(accepted) => {
[INFO] [stdout]     |                     ------------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout]  79 |                     HostToClientMessage::JoinRejected(rejected) => {
[INFO] [stdout]     |                     ------------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout]  93 |                     HostToClientMessage::LobbySnapshot(snapshot) => {
[INFO] [stdout]     |                     -------------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 140 |                     HostToClientMessage::StartMatch(start_match) => {
[INFO] [stdout]     |                     -------------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 312 |                     other => {
[INFO] [stdout]     |                     ^^^^^ ...and 6 other patterns collectively make this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `spawn_room` is never read
[INFO] [stdout]  --> src/map/loader.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct MapData {
[INFO] [stdout]   |            ------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 9 |     pub spawn_room: String,
[INFO] [stdout]   |         ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `MapData` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `name` is never read
[INFO] [stdout]   --> src/map/loader.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub struct Room {
[INFO] [stdout]    |            ---- field in this struct
[INFO] [stdout] 29 |     pub name: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Room` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `room` is never read
[INFO] [stdout]   --> src/map/loader.rs:46:9
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub struct Doorway {
[INFO] [stdout]    |            ------- field in this struct
[INFO] [stdout] 46 |     pub room: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Doorway` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `obj_type` is never read
[INFO] [stdout]   --> src/map/loader.rs:56:9
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub struct Object {
[INFO] [stdout]    |            ------ field in this struct
[INFO] [stdout] 55 |     #[serde(rename = "type")]
[INFO] [stdout] 56 |     pub obj_type: String,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Object` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Scan` and `EatCorpse` are never constructed
[INFO] [stdout]   --> src/entities/action.rs:9:5
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub enum ActionKind {
[INFO] [stdout]    |          ---------- variants in this enum
[INFO] [stdout]  8 |     Kill,
[INFO] [stdout]  9 |     Scan,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 10 |     EatCorpse,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ActionKind` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `is_dead`, `is_ghost`, and `emit_audio` are never used
[INFO] [stdout]    --> src/entities/player.rs:25:12
[INFO] [stdout]     |
[INFO] [stdout]  23 | impl Player {
[INFO] [stdout]     | ----------- associated items in this implementation
[INFO] [stdout]  24 |     /// Create a new player at the given grid position with default values.
[INFO] [stdout]  25 |     pub fn new(entity_id: EntityId, x: f32, y: f32) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 125 |     pub fn is_dead(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 129 |     pub fn is_ghost(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 154 |     pub fn emit_audio(&self, queue: &mut Vec<AudioEvent>, cue: AudioCue) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_dead`, `is_ghost`, and `can_be_killed` are never used
[INFO] [stdout]   --> src/entities/life_state.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout]  9 | impl LifeState {
[INFO] [stdout]    | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 14 |     pub fn is_dead(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 18 |     pub fn is_ghost(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub fn can_be_killed(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `report` is never used
[INFO] [stdout]   --> src/entities/corpse.rs:63:12
[INFO] [stdout]    |
[INFO] [stdout] 32 | impl Corpse {
[INFO] [stdout]    | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 63 |     pub fn report(&mut self) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_corpse`, `corpse_exists`, `corpse_for_player_mut`, and `draw_corpses` are never used
[INFO] [stdout]    --> src/entities/entity_manager.rs:145:12
[INFO] [stdout]     |
[INFO] [stdout]  28 | impl EntityManager {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 145 |     pub fn get_corpse(
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 195 |     pub fn corpse_exists(
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 218 |     pub fn corpse_for_player_mut(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 235 |     pub fn draw_corpses(&self, tile_size: f32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `midpoint` is never used
[INFO] [stdout]   --> src/rendering/continuous_fov.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl Segment {
[INFO] [stdout]    | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub fn midpoint(&self) -> Vec2 {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `distance` is never read
[INFO] [stdout]   --> src/rendering/continuous_fov.rs:47:9
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub struct RayHit {
[INFO] [stdout]    |            ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 47 |     pub distance: f32,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `RayHit` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `toggle_continuous_fov_debug` is never used
[INFO] [stdout]   --> src/rendering/draw.rs:41:8
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub fn toggle_continuous_fov_debug() {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `toggle_continuous_fov_visuals` is never used
[INFO] [stdout]   --> src/rendering/draw.rs:54:8
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub fn toggle_continuous_fov_visuals() {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `toggle_continuous_entity_visibility` is never used
[INFO] [stdout]   --> src/rendering/draw.rs:67:8
[INFO] [stdout]    |
[INFO] [stdout] 67 | pub fn toggle_continuous_entity_visibility() {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_corpses` is never used
[INFO] [stdout]   --> src/rendering/draw.rs:82:8
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub fn draw_corpses<'a>(corpses: impl Iterator<Item = &'a Corpse>, tile_size: f32) {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `VisibleTiles` is never constructed
[INFO] [stdout]   --> src/rendering/fov.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct VisibleTiles{
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `is_visible`, and `set_visible` are never used
[INFO] [stdout]   --> src/rendering/fov.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | impl VisibleTiles{
[INFO] [stdout]    | ----------------- associated items in this implementation
[INFO] [stdout] 22 |     pub fn new(width: usize, height: usize) -> Self{
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub fn is_visible(&self, x: usize, y: usize) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub fn set_visible(&mut self, x: usize, y: usize) {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compute_visible_tiles` is never used
[INFO] [stdout]   --> src/rendering/fov.rs:45:8
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub fn compute_visible_tiles(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `render_meeting_screen` is never used
[INFO] [stdout]    --> src/rendering/screen.rs:122:8
[INFO] [stdout]     |
[INFO] [stdout] 122 | pub fn render_meeting_screen(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `render_interaction_prompt` is never used
[INFO] [stdout]   --> src/ui/hud.rs:80:8
[INFO] [stdout]    |
[INFO] [stdout] 80 | pub fn render_interaction_prompt(interactable: &Interactable) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `render_meeting_overlay` is never used
[INFO] [stdout]    --> src/ui/meeting.rs:453:8
[INFO] [stdout]     |
[INFO] [stdout] 453 | pub fn render_meeting_overlay(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TightCornerGroup` is never constructed
[INFO] [stdout]   --> src/systems/navigation.rs:82:8
[INFO] [stdout]    |
[INFO] [stdout] 82 | struct TightCornerGroup {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `detect_tight_corner_groups` is never used
[INFO] [stdout]   --> src/systems/navigation.rs:89:4
[INFO] [stdout]    |
[INFO] [stdout] 89 | fn detect_tight_corner_groups(_corners: &[CornerWaypoint]) -> Vec<TightCornerGroup> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ArrowRotationState` is never constructed
[INFO] [stdout]    --> src/systems/navigation.rs:129:8
[INFO] [stdout]     |
[INFO] [stdout] 129 | struct ArrowRotationState {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ROTATION_ACCELERATION` is never used
[INFO] [stdout]    --> src/systems/navigation.rs:143:7
[INFO] [stdout]     |
[INFO] [stdout] 143 | const ROTATION_ACCELERATION: f32 = 0.15;      
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_ROTATION_SPEED` is never used
[INFO] [stdout]    --> src/systems/navigation.rs:144:7
[INFO] [stdout]     |
[INFO] [stdout] 144 | const MAX_ROTATION_SPEED: f32 = 0.4;          
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DAMPING_FACTOR` is never used
[INFO] [stdout]    --> src/systems/navigation.rs:145:7
[INFO] [stdout]     |
[INFO] [stdout] 145 | const DAMPING_FACTOR: f32 = 0.85;             
[INFO] [stdout]     |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `update_arrow_rotation` is never used
[INFO] [stdout]    --> src/systems/navigation.rs:148:4
[INFO] [stdout]     |
[INFO] [stdout] 148 | fn update_arrow_rotation(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LOOKAHEAD_TILES` is never used
[INFO] [stdout]    --> src/systems/navigation.rs:172:7
[INFO] [stdout]     |
[INFO] [stdout] 172 | const LOOKAHEAD_TILES: usize = 4;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_smoothed_target` is never used
[INFO] [stdout]    --> src/systems/navigation.rs:181:4
[INFO] [stdout]     |
[INFO] [stdout] 181 | fn get_smoothed_target(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_lookahead_target` is never used
[INFO] [stdout]    --> src/systems/navigation.rs:224:4
[INFO] [stdout]     |
[INFO] [stdout] 224 | fn get_lookahead_target(p_x: f32, p_y: f32, waypoints: &[(usize, usize)], lookahead_distance: f32) -> Option<(f32, f32)> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PathProgress` is never constructed
[INFO] [stdout]    --> src/systems/navigation.rs:270:8
[INFO] [stdout]     |
[INFO] [stdout] 270 | struct PathProgress {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_path_progress` is never used
[INFO] [stdout]    --> src/systems/navigation.rs:284:4
[INFO] [stdout]     |
[INFO] [stdout] 284 | fn calculate_path_progress(_p_tile: (usize, usize)) -> PathProgress {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_remaining_path_distance` is never used
[INFO] [stdout]    --> src/systems/navigation.rs:519:4
[INFO] [stdout]     |
[INFO] [stdout] 519 | fn calculate_remaining_path_distance(waypoints: &[(usize, usize)]) -> f32 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `smooth_angle` is never used
[INFO] [stdout]    --> src/systems/navigation.rs:597:4
[INFO] [stdout]     |
[INFO] [stdout] 597 | fn smooth_angle(
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_rotation_smoothing` is never used
[INFO] [stdout]    --> src/systems/navigation.rs:745:4
[INFO] [stdout]     |
[INFO] [stdout] 745 | fn apply_rotation_smoothing(target_angle: f32, _tile_size: f32) -> f32 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_mut` is never used
[INFO] [stdout]    --> src/systems/interaction_slot.rs:100:12
[INFO] [stdout]     |
[INFO] [stdout]  70 | impl InteractionSlots {
[INFO] [stdout]     | --------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 100 |     pub fn get_mut(&mut self, channel: InteractionChannel) -> &mut InteractionSlot {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `discover_report_target` is never used
[INFO] [stdout]   --> src/systems/interaction_discovery.rs:37:8
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub fn discover_report_target(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `discover_faction_target` is never used
[INFO] [stdout]   --> src/systems/interaction_discovery.rs:79:8
[INFO] [stdout]    |
[INFO] [stdout] 79 | pub fn discover_faction_target(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `discover_role_target` is never used
[INFO] [stdout]    --> src/systems/interaction_discovery.rs:133:8
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub fn discover_role_target(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `populate_interaction_slots` is never used
[INFO] [stdout]    --> src/systems/interaction_discovery.rs:155:8
[INFO] [stdout]     |
[INFO] [stdout] 155 | pub fn populate_interaction_slots(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `nearest_visible_corpse` is never used
[INFO] [stdout]   --> src/systems/interaction_queries.rs:32:8
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub fn nearest_visible_corpse(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `nearest_visible_player` is never used
[INFO] [stdout]   --> src/systems/interaction_queries.rs:83:8
[INFO] [stdout]    |
[INFO] [stdout] 83 | pub fn nearest_visible_player(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_slots_with_target` is never used
[INFO] [stdout]   --> src/systems/slot_verification.rs:82:8
[INFO] [stdout]    |
[INFO] [stdout] 82 |     fn make_slots_with_target(channel: InteractionChannel, target: InteractionTarget) -> InteractionSlots {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_discussion` is never used
[INFO] [stdout]   --> src/systems/app_state.rs:60:12
[INFO] [stdout]    |
[INFO] [stdout] 59 | impl MeetingPhase {
[INFO] [stdout]    | ----------------- method in this implementation
[INFO] [stdout] 60 |     pub fn is_discussion(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_discussion_active` is never used
[INFO] [stdout]    --> src/systems/app_state.rs:108:12
[INFO] [stdout]     |
[INFO] [stdout]  73 | impl MeetingState {
[INFO] [stdout]     | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 108 |     pub fn is_discussion_active(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `enter_meeting_results` is never used
[INFO] [stdout]    --> src/systems/app_state.rs:156:8
[INFO] [stdout]     |
[INFO] [stdout] 156 | pub fn enter_meeting_results() -> MatchState {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `ForceLocalRole` is never constructed
[INFO] [stdout]   --> src/systems/match_setup.rs:61:5
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub enum RoleDebugOverride {
[INFO] [stdout]    |          ----------------- variant in this enum
[INFO] [stdout] 60 |     None,
[INFO] [stdout] 61 |     ForceLocalRole(RoleKind),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `RoleDebugOverride` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> src/systems/match_setup.rs:73:9
[INFO] [stdout]    |
[INFO] [stdout] 71 | pub struct SpawnedMatchPlayerRecord {
[INFO] [stdout]    |            ------------------------ fields in this struct
[INFO] [stdout] 72 |     pub entity_id: EntityId,
[INFO] [stdout] 73 |     pub name: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 74 |     pub is_local: bool,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 75 |     pub is_static_test_player: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 76 |     pub role_kind: RoleKind,
[INFO] [stdout] 77 |     pub spawn_id: String,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 78 |     pub spawn_room: String,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 79 |     pub spawn_center_x: f32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 80 |     pub spawn_center_y: f32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 81 |     pub actor_x: f32,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 82 |     pub actor_y: f32,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SpawnedMatchPlayerRecord` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `object_id` is never read
[INFO] [stdout]  --> src/tasks/minigame.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct HoldTask {
[INFO] [stdout]   |            -------- field in this struct
[INFO] [stdout] 5 |     pub object_id: String,
[INFO] [stdout]   |         ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `HoldTask` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `has_task` is never used
[INFO] [stdout]   --> src/tasks/manager.rs:76:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | impl TaskManager {
[INFO] [stdout]    | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 76 |     pub fn has_task(&self, object_id: &str) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_task_list_task`, `appears_in_task_list`, and `uses_task_navigation` are never used
[INFO] [stdout]   --> src/tasks/activity.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl ActivityKind {
[INFO] [stdout]    | ----------------- methods in this implementation
[INFO] [stdout] 11 |     pub fn is_task_list_task(self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 15 |     pub fn appears_in_task_list(self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 19 |     pub fn uses_task_navigation(self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `LocalOnly` is never constructed
[INFO] [stdout]   --> src/tasks/activity.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub enum ActivityCompletionPolicy {
[INFO] [stdout]    |          ------------------------ variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 29 |     LocalOnly,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ActivityCompletionPolicy` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `role_action` and `world_action` are never used
[INFO] [stdout]   --> src/tasks/activity.rs:57:12
[INFO] [stdout]    |
[INFO] [stdout] 45 | impl ActivityLaunchSpec {
[INFO] [stdout]    | ----------------------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 57 |     pub fn role_action(
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 68 |     pub fn world_action(
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `task_list_task` is never used
[INFO] [stdout]    --> src/tasks/activity.rs:134:12
[INFO] [stdout]     |
[INFO] [stdout] 120 | impl ActiveActivity {
[INFO] [stdout]     | ------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 134 |     pub fn task_list_task(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `output_info`, `pending_sound_count`, and `clear_voice_stream` are never used
[INFO] [stdout]    --> src/audio/engine.rs:295:12
[INFO] [stdout]     |
[INFO] [stdout] 164 | impl AudioEngine {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 295 |     pub fn output_info(&self) -> &AudioOutputDeviceInfo {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 341 |     pub fn pending_sound_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 365 |     pub fn clear_voice_stream(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `buffered_sample_count` is never used
[INFO] [stdout]    --> src/audio/voice_io/capture.rs:190:12
[INFO] [stdout]     |
[INFO] [stdout]  84 | impl VoiceCaptureRuntime {
[INFO] [stdout]     | ------------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 190 |     pub fn buffered_sample_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `open_mic_started_logged` is never read
[INFO] [stdout]   --> src/audio/voice_io/debug.rs:72:5
[INFO] [stdout]    |
[INFO] [stdout] 68 | pub struct VoiceCaptureDebugState {
[INFO] [stdout]    |            ---------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 72 |     open_mic_started_logged: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `VoiceCaptureDebugState` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `capture_enabled`, `runtime_started`, `ensure_capture_runtime_started`, and `update_open_mic_debug` are never used
[INFO] [stdout]    --> src/audio/voice_io/debug.rs:80:12
[INFO] [stdout]     |
[INFO] [stdout]  75 | impl VoiceCaptureDebugState {
[INFO] [stdout]     | --------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  80 |     pub fn capture_enabled(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  84 |     pub fn runtime_started(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  88 |     pub fn ensure_capture_runtime_started(&mut self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 103 |     pub fn update_open_mic_debug(&mut self, context_label: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/audio/voice_io/smoothing.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl VoiceSmoothingConfig {
[INFO] [stdout]    | ------------------------- associated function in this implementation
[INFO] [stdout] 11 |     pub fn new(ramp_ms: u32) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_match_session` is never used
[INFO] [stdout]    --> src/screens/in_match.rs:167:8
[INFO] [stdout]     |
[INFO] [stdout] 167 | pub fn create_match_session(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `offline` is never used
[INFO] [stdout]   --> src/screens/lobby.rs:64:12
[INFO] [stdout]    |
[INFO] [stdout] 63 | impl LobbyNetworkUiInfo {
[INFO] [stdout]    | ----------------------- associated function in this implementation
[INFO] [stdout] 64 |     pub fn offline() -> Self {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_lobby_session` is never used
[INFO] [stdout]    --> src/screens/lobby.rs:102:8
[INFO] [stdout]     |
[INFO] [stdout] 102 | pub fn create_lobby_session(map_data: &MapData) -> LobbySession {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `NetworkAuthorityMode` is never used
[INFO] [stdout]   --> src/network/dto.rs:24:10
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub enum NetworkAuthorityMode {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `revealed` is never used
[INFO] [stdout]    --> src/network/dto.rs:211:12
[INFO] [stdout]     |
[INFO] [stdout] 204 | impl PublicRoleDataDto {
[INFO] [stdout]     | ---------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 211 |     pub fn revealed(role_kind: RoleKindDto) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `value` is never used
[INFO] [stdout]   --> src/network/ids.rs:42:12
[INFO] [stdout]    |
[INFO] [stdout] 37 | impl NetworkMessageSequence {
[INFO] [stdout]    | --------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 42 |     pub fn value(self) -> u32 {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/network/ids.rs:54:12
[INFO] [stdout]    |
[INFO] [stdout] 51 | impl NetworkTick {
[INFO] [stdout]    | ---------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 54 |     pub fn new(value: u32) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `last_received_tick` is never read
[INFO] [stdout]   --> src/network/runtime.rs:43:9
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub struct ClientNetworkRuntime {
[INFO] [stdout]    |            -------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub last_received_tick: NetworkTick,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ClientNetworkRuntime` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `authority_mode`, `is_offline`, `is_host`, `is_client`, `is_authoritative_simulation`, and `local_network_player_id` are never used
[INFO] [stdout]    --> src/network/runtime.rs:100:12
[INFO] [stdout]     |
[INFO] [stdout]  65 | impl NetworkRuntime {
[INFO] [stdout]     | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 100 |     pub fn authority_mode(&self) -> NetworkAuthorityMode {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 108 |     pub fn is_offline(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 112 |     pub fn is_host(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 116 |     pub fn is_client(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 120 |     pub fn is_authoritative_simulation(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 124 |     pub fn local_network_player_id(&self) -> Option<NetworkPlayerId> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `clear_room_code`, `has_player`, and `connected_player` are never used
[INFO] [stdout]    --> src/network/runtime.rs:138:12
[INFO] [stdout]     |
[INFO] [stdout] 133 | impl HostNetworkRuntime {
[INFO] [stdout]     | ----------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 138 |     pub fn clear_room_code(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 157 |     pub fn has_player(&self, player_id: NetworkPlayerId) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 163 |     pub fn connected_player(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `mark_connected` and `mark_failed` are never used
[INFO] [stdout]    --> src/network/runtime.rs:223:12
[INFO] [stdout]     |
[INFO] [stdout] 216 | impl ClientNetworkRuntime {
[INFO] [stdout]     | ------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 223 |     pub fn mark_connected(&mut self, assigned_player_id: NetworkPlayerId) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 229 |     pub fn mark_failed(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `network_entity_for_network_player`, `network_player_for_network_entity`, `contains_network_entity`, `contains_local_entity`, and `contains_network_player` are never used
[INFO] [stdout]    --> src/network/entity_map.rs:217:12
[INFO] [stdout]     |
[INFO] [stdout]  40 | impl NetworkEntityMap {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 217 |     pub fn network_entity_for_network_player(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 225 |     pub fn network_player_for_network_entity(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 233 |     pub fn contains_network_entity(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 241 |     pub fn contains_local_entity(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 249 |     pub fn contains_network_player(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/network/apply_snapshot.rs:44:15
[INFO] [stdout]    |
[INFO] [stdout] 44 |     EntityMap(NetworkEntityMapError),
[INFO] [stdout]    |     --------- ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ApplySnapshotError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 44 -     EntityMap(NetworkEntityMapError),
[INFO] [stdout] 44 +     EntityMap(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `owner_network_entity_id` is never read
[INFO] [stdout]   --> src/network/apply_snapshot.rs:46:9
[INFO] [stdout]    |
[INFO] [stdout] 45 |     MissingCorpseOwner {
[INFO] [stdout]    |     ------------------ field in this variant
[INFO] [stdout] 46 |         owner_network_entity_id: NetworkEntityId,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ApplySnapshotError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `ReliableUnordered` and `UnreliableSequenced` are never constructed
[INFO] [stdout]  --> src/network/transport.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub enum NetworkChannel {
[INFO] [stdout]   |          -------------- variants in this enum
[INFO] [stdout] 6 |     ReliableOrdered,
[INFO] [stdout] 7 |     ReliableUnordered,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 8 |     UnreliableSequenced,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `NetworkChannel` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Player` and `Broadcast` are never constructed
[INFO] [stdout]   --> src/network/transport.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub enum HostRecipient {
[INFO] [stdout]    |          ------------- variants in this enum
[INFO] [stdout] 13 |     PendingClient,
[INFO] [stdout] 14 |     Player(NetworkPlayerId),
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 15 |     Broadcast,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `HostRecipient` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `NotConnected`, `SendFailed`, and `ReceiveFailed` are never constructed
[INFO] [stdout]   --> src/network/transport.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub enum TransportError {
[INFO] [stdout]    |          -------------- variants in this enum
[INFO] [stdout] 34 |     NotConnected,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 35 |     SendFailed(String),
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 36 |     ReceiveFailed(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TransportError` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `clear` is never used
[INFO] [stdout]   --> src/network/fake_transport.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 33 | impl FakeNetworkTransport {
[INFO] [stdout]    | ------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub fn clear(&mut self) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_join_request_packet` is never used
[INFO] [stdout]    --> src/network/fake_transport.rs:233:8
[INFO] [stdout]     |
[INFO] [stdout] 233 | pub fn build_join_request_packet(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_join_accepted_packet` is never used
[INFO] [stdout]    --> src/network/fake_transport.rs:249:8
[INFO] [stdout]     |
[INFO] [stdout] 249 | pub fn build_join_accepted_packet(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/network/udp_transport.rs:27:8
[INFO] [stdout]    |
[INFO] [stdout] 27 |     Io(io::Error),
[INFO] [stdout]    |     -- ^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `UdpTransportError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 27 -     Io(io::Error),
[INFO] [stdout] 27 +     Io(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/network/udp_transport.rs:28:15
[INFO] [stdout]    |
[INFO] [stdout] 28 |     Serialize(serde_json::Error),
[INFO] [stdout]    |     --------- ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `UdpTransportError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 28 -     Serialize(serde_json::Error),
[INFO] [stdout] 28 +     Serialize(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/network/udp_transport.rs:29:17
[INFO] [stdout]    |
[INFO] [stdout] 29 |     Deserialize(serde_json::Error),
[INFO] [stdout]    |     ----------- ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `UdpTransportError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 29 -     Deserialize(serde_json::Error),
[INFO] [stdout] 29 +     Deserialize(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `bind_dev_localhost` and `drain_client_messages` are never used
[INFO] [stdout]    --> src/network/udp_transport.rs:127:12
[INFO] [stdout]     |
[INFO] [stdout] 126 | impl UdpHostTransport {
[INFO] [stdout]     | --------------------- associated items in this implementation
[INFO] [stdout] 127 |     pub fn bind_dev_localhost() -> Result<Self, UdpTransportError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 205 |     pub fn drain_client_messages(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `connect_to_dev_localhost_host` is never used
[INFO] [stdout]    --> src/network/udp_transport.rs:284:12
[INFO] [stdout]     |
[INFO] [stdout] 283 | impl UdpClientTransport {
[INFO] [stdout]     | ----------------------- associated function in this implementation
[INFO] [stdout] 284 |     pub fn connect_to_dev_localhost_host() -> Result<Self, UdpTransportError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `clear` and `sample_count` are never used
[INFO] [stdout]    --> src/network/interpolation.rs:148:12
[INFO] [stdout]     |
[INFO] [stdout]  49 | impl NetworkTransformInterpolator {
[INFO] [stdout]     | --------------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 148 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 |     pub fn sample_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `remove_entity` and `interpolator_count` are never used
[INFO] [stdout]    --> src/network/interpolation.rs:208:12
[INFO] [stdout]     |
[INFO] [stdout] 157 | impl NetworkInterpolationSet {
[INFO] [stdout]     | ---------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 208 |     pub fn remove_entity(&mut self, network_entity_id: NetworkEntityId) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 221 |     pub fn interpolator_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LIVE_NETWORK_VOICE_FRAME_MS` is never used
[INFO] [stdout]   --> src/network/game_flow/client_send.rs:54:7
[INFO] [stdout]    |
[INFO] [stdout] 54 | const LIVE_NETWORK_VOICE_FRAME_MS: u32 = 20;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CONNECTION_WARN_AFTER_SECONDS` is never used
[INFO] [stdout]  --> src/network/reliability.rs:8:11
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub const CONNECTION_WARN_AFTER_SECONDS: f32 = 5.0;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CONNECTION_TIMEOUT_AFTER_SECONDS` is never used
[INFO] [stdout]  --> src/network/reliability.rs:9:11
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub const CONNECTION_TIMEOUT_AFTER_SECONDS: f32 = 15.0;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `first_sent_seconds` is never read
[INFO] [stdout]   --> src/network/reliability.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct PendingReliableLifecycleEvent {
[INFO] [stdout]    |            ----------------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub first_sent_seconds: f32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PendingReliableLifecycleEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `pending_count` is never used
[INFO] [stdout]    --> src/network/reliability.rs:120:12
[INFO] [stdout]     |
[INFO] [stdout]  35 | impl ReliableHostLifecycleTracker {
[INFO] [stdout]     | --------------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 120 |     pub fn pending_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ConnectionHealth` is never used
[INFO] [stdout]    --> src/network/reliability.rs:243:10
[INFO] [stdout]     |
[INFO] [stdout] 243 | pub enum ConnectionHealth {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `host_health`, `client_health`, and `clients` are never used
[INFO] [stdout]    --> src/network/reliability.rs:310:12
[INFO] [stdout]     |
[INFO] [stdout] 262 | impl HeartbeatTracker {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 310 |     pub fn host_health(&self, now_seconds: f32) -> ConnectionHealth {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 318 |     pub fn client_health(
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 331 |     pub fn clients(&self) -> &[HeartbeatPeerState] {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `elapsed_to_health` is never used
[INFO] [stdout]    --> src/network/reliability.rs:336:4
[INFO] [stdout]     |
[INFO] [stdout] 336 | fn elapsed_to_health(elapsed_seconds: f32) -> ConnectionHealth {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `config` is never used
[INFO] [stdout]    --> src/network/voice/capture.rs:135:12
[INFO] [stdout]     |
[INFO] [stdout] 119 | impl VoiceCaptureProcessor {
[INFO] [stdout]     | -------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 135 |     pub fn config(&self) -> VoiceCaptureTuningConfig {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `drain_runtime_packets_to_playback_queue` is never used
[INFO] [stdout]    --> src/network/voice/playback.rs:313:8
[INFO] [stdout]     |
[INFO] [stdout] 313 | pub fn drain_runtime_packets_to_playback_queue(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `drain_runtime_packets_to_playback_queue_with_smoother` is never used
[INFO] [stdout]    --> src/network/voice/playback.rs:332:8
[INFO] [stdout]     |
[INFO] [stdout] 332 | pub fn drain_runtime_packets_to_playback_queue_with_smoother(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `with_jitter_settings`, `take_queued_packets_for_speaker`, and `take_all_queued_packets` are never used
[INFO] [stdout]    --> src/network/voice/runtime.rs:103:12
[INFO] [stdout]     |
[INFO] [stdout]  84 | impl VoiceRuntime {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 103 |     pub fn with_jitter_settings(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 236 |     pub fn take_queued_packets_for_speaker(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 257 |     pub fn take_all_queued_packets(&mut self) -> Vec<QueuedVoicePacket> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `payload_len` is never used
[INFO] [stdout]    --> src/network/voice/codec.rs:150:12
[INFO] [stdout]     |
[INFO] [stdout] 149 | impl VoiceCodecFrame {
[INFO] [stdout]     | -------------------- method in this implementation
[INFO] [stdout] 150 |     pub fn payload_len(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `kind` is never used
[INFO] [stdout]    --> src/network/voice/codec.rs:208:12
[INFO] [stdout]     |
[INFO] [stdout] 180 | impl VoiceCodecEncoder {
[INFO] [stdout]     | ---------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 208 |     pub fn kind(&self) -> VoiceCodecKind {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `kind` is never used
[INFO] [stdout]    --> src/network/voice/codec.rs:309:12
[INFO] [stdout]     |
[INFO] [stdout] 289 | impl VoiceCodecDecoder {
[INFO] [stdout]     | ---------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 309 |     pub fn kind(&self) -> VoiceCodecKind {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/network/voice/codec.rs:509:12
[INFO] [stdout]     |
[INFO] [stdout] 508 | impl VoicePlaybackDecoderRuntime {
[INFO] [stdout]     | -------------------------------- associated function in this implementation
[INFO] [stdout] 509 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `reset` is never used
[INFO] [stdout]    --> src/network/rendezvous/client.rs:401:12
[INFO] [stdout]     |
[INFO] [stdout]  86 | impl RendezvousClient {
[INFO] [stdout]     | --------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 401 |     pub fn reset(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/geometry/traversal.rs:229:39
[INFO] [stdout]     |
[INFO] [stdout] 229 |         assert!(samples.is_empty() || samples.len() >= 0,
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 34.15s
[INFO] running `Command { std: "docker" "inspect" "e063f5e1ad38852e27f3ae3165da0e95cba7da017e5d6375c8be737e5a0a08b8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e063f5e1ad38852e27f3ae3165da0e95cba7da017e5d6375c8be737e5a0a08b8", kill_on_drop: false }`
[INFO] [stdout] e063f5e1ad38852e27f3ae3165da0e95cba7da017e5d6375c8be737e5a0a08b8
