[INFO] cloning repository https://github.com/sogh/rust-marble-party
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/sogh/rust-marble-party" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsogh%2Frust-marble-party", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsogh%2Frust-marble-party'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 829bc3695eb8b9320b6f958888d997b4f6f03708
[INFO] checking sogh/rust-marble-party against 3d50c25bc66853bf0ad205529d0f305a1d841b5e for pr-159598
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsogh%2Frust-marble-party" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/sogh/rust-marble-party
[INFO] finished tweaking git repo https://github.com/sogh/rust-marble-party
[INFO] tweaked toml for git repo https://github.com/sogh/rust-marble-party written to /workspace/builds/worker-7-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/sogh/rust-marble-party on toolchain 3d50c25bc66853bf0ad205529d0f305a1d841b5e
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+3d50c25bc66853bf0ad205529d0f305a1d841b5e" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/sogh/rust-marble-party 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" "+3d50c25bc66853bf0ad205529d0f305a1d841b5e" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded atomicow v1.1.0
[INFO] [stderr]   Downloaded typewit v1.14.2
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:00c5645b54fe3ce5dae1417175e3c7fb6a6646c021d554ecd63a097b8b9f3602" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 48bb38bb3c81ea9d3d0135a52200f87dad22b75d1900bd0cb29e90959da3a454
[INFO] running `Command { std: "docker" "start" "48bb38bb3c81ea9d3d0135a52200f87dad22b75d1900bd0cb29e90959da3a454", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "48bb38bb3c81ea9d3d0135a52200f87dad22b75d1900bd0cb29e90959da3a454", 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" "48bb38bb3c81ea9d3d0135a52200f87dad22b75d1900bd0cb29e90959da3a454" "/opt/rustwide/cargo-home/bin/cargo" "+3d50c25bc66853bf0ad205529d0f305a1d841b5e" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "48bb38bb3c81ea9d3d0135a52200f87dad22b75d1900bd0cb29e90959da3a454", 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" "48bb38bb3c81ea9d3d0135a52200f87dad22b75d1900bd0cb29e90959da3a454" "/opt/rustwide/cargo-home/bin/cargo" "+3d50c25bc66853bf0ad205529d0f305a1d841b5e" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.105
[INFO] [stderr]    Compiling quote v1.0.43
[INFO] [stderr]    Compiling libc v0.2.179
[INFO] [stderr]    Compiling zerocopy v0.8.31
[INFO] [stderr]     Checking bitflags v2.10.0
[INFO] [stderr]    Compiling indexmap v2.12.1
[INFO] [stderr]    Compiling winnow v0.7.14
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling once_cell v1.21.3
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]     Checking event-listener v5.4.1
[INFO] [stderr]    Compiling syn v2.0.113
[INFO] [stderr]     Checking event-listener-strategy v0.5.4
[INFO] [stderr]    Compiling erased-serde v0.4.9
[INFO] [stderr]    Compiling libm v0.2.15
[INFO] [stderr]     Checking futures-lite v2.6.1
[INFO] [stderr]    Compiling nix v0.30.1
[INFO] [stderr]     Checking fixedbitset v0.4.2
[INFO] [stderr]    Compiling getrandom v0.2.16
[INFO] [stderr]    Compiling const-random-macro v0.1.16
[INFO] [stderr]    Compiling uuid v1.12.1
[INFO] [stderr]     Checking async-channel v2.5.0
[INFO] [stderr]     Checking const-random v0.1.18
[INFO] [stderr]     Checking getrandom v0.3.4
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking disqualified v1.0.0
[INFO] [stderr]     Checking bevy_ptr v0.15.3
[INFO] [stderr]     Checking async-executor v1.13.3
[INFO] [stderr]     Checking num-traits v0.2.19
[INFO] [stderr]     Checking itertools v0.13.0
[INFO] [stderr]     Checking lock_api v0.4.14
[INFO] [stderr]     Checking bevy_tasks v0.15.3
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]    Compiling naga v23.1.0
[INFO] [stderr]    Compiling find-msvc-tools v0.1.6
[INFO] [stderr]     Checking typewit v1.14.2
[INFO] [stderr]    Compiling cc v1.2.51
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]     Checking ctrlc v3.5.1
[INFO] [stderr]     Checking const_panic v0.2.15
[INFO] [stderr]     Checking spirv v0.3.0+sdk-1.3.268.0
[INFO] [stderr]     Checking crossbeam-channel v0.5.15
[INFO] [stderr]     Checking rand_distr v0.4.3
[INFO] [stderr]     Checking tinyvec v1.10.0
[INFO] [stderr]    Compiling wgpu-hal v23.0.1
[INFO] [stderr]     Checking wgpu-types v23.0.0
[INFO] [stderr]     Checking gpu-descriptor-types v0.2.0
[INFO] [stderr]     Checking gpu-alloc-types v0.3.0
[INFO] [stderr]     Checking regex-automata v0.4.13
[INFO] [stderr]     Checking gpu-descriptor v0.3.2
[INFO] [stderr]     Checking gpu-alloc v0.6.0
[INFO] [stderr]     Checking khronos-egl v6.0.0
[INFO] [stderr]     Checking blocking v1.6.2
[INFO] [stderr]    Compiling wgpu-core v23.0.1
[INFO] [stderr]     Checking async-lock v3.4.2
[INFO] [stderr]     Checking glow v0.14.2
[INFO] [stderr]     Checking constant_time_eq v0.3.1
[INFO] [stderr]    Compiling blake3 v1.8.2
[INFO] [stderr]     Checking async-broadcast v0.5.1
[INFO] [stderr]     Checking flate2 v1.1.5
[INFO] [stderr]     Checking async-fs v2.2.0
[INFO] [stderr]    Compiling bevy_macro_utils v0.15.3
[INFO] [stderr]    Compiling encase_derive_impl v0.10.0
[INFO] [stderr]     Checking stackfuture v0.3.1
[INFO] [stderr]     Checking fdeflate v0.3.7
[INFO] [stderr]     Checking pxfm v0.1.27
[INFO] [stderr]    Compiling wgpu v23.0.1
[INFO] [stderr]     Checking atomicow v1.1.0
[INFO] [stderr]     Checking twox-hash v1.6.3
[INFO] [stderr]     Checking png v0.18.0
[INFO] [stderr]     Checking accesskit v0.17.1
[INFO] [stderr]     Checking ktx2 v0.3.0
[INFO] [stderr]     Checking ruzstd v0.7.3
[INFO] [stderr]     Checking bit-vec v0.6.3
[INFO] [stderr]     Checking sysinfo v0.32.1
[INFO] [stderr]     Checking bit-set v0.5.3
[INFO] [stderr]     Checking offset-allocator v0.2.0
[INFO] [stderr]    Compiling rustix v1.1.3
[INFO] [stderr]     Checking linux-raw-sys v0.11.0
[INFO] [stderr]    Compiling alsa-sys v0.3.1
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]    Compiling zmij v1.0.12
[INFO] [stderr]     Checking regex v1.12.2
[INFO] [stderr]     Checking matchers v0.2.0
[INFO] [stderr]    Compiling libudev-sys v0.1.4
[INFO] [stderr]    Compiling x11-dl v2.21.0
[INFO] [stderr]     Checking euclid v0.22.11
[INFO] [stderr]     Checking tracing-log v0.2.0
[INFO] [stderr]     Checking fontconfig-parser v0.5.8
[INFO] [stderr]    Compiling bytemuck_derive v1.10.2
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling derive_more-impl v1.0.0
[INFO] [stderr]    Compiling bevy_utils_proc_macros v0.15.3
[INFO] [stderr]    Compiling assert_type_match v0.1.1
[INFO] [stderr]    Compiling bevy_reflect_derive v0.15.3
[INFO] [stderr]    Compiling bevy_ecs_macros v0.15.3
[INFO] [stderr]     Checking bytemuck v1.24.0
[INFO] [stderr]    Compiling bevy_derive v0.15.3
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]     Checking tracing v0.1.44
[INFO] [stderr]    Compiling bevy_asset_macros v0.15.3
[INFO] [stderr]    Compiling encase_derive v0.10.0
[INFO] [stderr]     Checking moxcms v0.7.11
[INFO] [stderr]    Compiling bevy_encase_derive v0.15.3
[INFO] [stderr]    Compiling bevy_render_macros v0.15.3
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking font-types v0.7.3
[INFO] [stderr]     Checking tracing-subscriber v0.3.22
[INFO] [stderr]     Checking guillotiere v0.6.2
[INFO] [stderr]     Checking read-fonts v0.22.7
[INFO] [stderr]     Checking derive_more v1.0.0
[INFO] [stderr]     Checking serde v1.0.228
[INFO] [stderr]     Checking dlib v0.5.2
[INFO] [stderr]     Checking memmap2 v0.9.9
[INFO] [stderr]     Checking inotify-sys v0.1.5
[INFO] [stderr]    Compiling winit v0.30.12
[INFO] [stderr]     Checking unicode-script v0.5.8
[INFO] [stderr]     Checking glam v0.29.3
[INFO] [stderr]     Checking smol_str v0.2.2
[INFO] [stderr]     Checking hashbrown v0.14.5
[INFO] [stderr]     Checking petgraph v0.6.5
[INFO] [stderr]     Checking ron v0.8.1
[INFO] [stderr]     Checking bevy_utils v0.15.3
[INFO] [stderr]     Checking unicode-properties v0.1.4
[INFO] [stderr]    Compiling cpal v0.15.3
[INFO] [stderr]     Checking xkbcommon-dl v0.4.2
[INFO] [stderr]     Checking rustybuzz v0.14.1
[INFO] [stderr]    Compiling gltf-derive v1.4.1
[INFO] [stderr]     Checking image v0.25.9
[INFO] [stderr]     Checking serde_json v1.0.149
[INFO] [stderr]     Checking fontdb v0.16.2
[INFO] [stderr]     Checking inotify v0.11.0
[INFO] [stderr]     Checking alsa v0.9.1
[INFO] [stderr]     Checking polling v3.11.0
[INFO] [stderr]     Checking gethostname v1.1.0
[INFO] [stderr]     Checking x11rb v0.13.2
[INFO] [stderr]     Checking calloop v0.13.0
[INFO] [stderr]     Checking ogg v0.8.0
[INFO] [stderr]     Checking rangemap v1.7.1
[INFO] [stderr]    Compiling gilrs v0.11.0
[INFO] [stderr]     Checking lewton v0.10.2
[INFO] [stderr]     Checking gilrs-core v0.6.6
[INFO] [stderr]     Checking gltf-json v1.4.1
[INFO] [stderr]     Checking grid v0.14.0
[INFO] [stderr]     Checking taffy v0.5.2
[INFO] [stderr]     Checking rodio v0.19.0
[INFO] [stderr]     Checking naga_oil v0.16.0
[INFO] [stderr]    Compiling bevy_gizmos_macros v0.15.3
[INFO] [stderr]     Checking bevy_reflect v0.15.3
[INFO] [stderr]     Checking encase v0.10.0
[INFO] [stderr]     Checking hexasphere v15.1.0
[INFO] [stderr]     Checking bevy_mikktspace v0.15.3
[INFO] [stderr]     Checking skrifa v0.22.3
[INFO] [stderr]    Compiling bevy_state_macros v0.15.3
[INFO] [stderr]     Checking approx v0.5.1
[INFO] [stderr]     Checking swash v0.1.19
[INFO] [stderr]     Checking gltf v1.4.1
[INFO] [stderr]     Checking accesskit_winit v0.23.1
[INFO] [stderr]     Checking cosmic-text v0.12.1
[INFO] [stderr]     Checking bevy_ecs v0.15.4
[INFO] [stderr]     Checking bevy_math v0.15.3
[INFO] [stderr]     Checking bevy_color v0.15.4
[INFO] [stderr]     Checking bevy_app v0.15.3
[INFO] [stderr]     Checking bevy_core v0.15.3
[INFO] [stderr]     Checking bevy_asset v0.15.3
[INFO] [stderr]     Checking bevy_a11y v0.15.3
[INFO] [stderr]     Checking bevy_time v0.15.3
[INFO] [stderr]     Checking bevy_log v0.15.3
[INFO] [stderr]     Checking bevy_hierarchy v0.15.3
[INFO] [stderr]     Checking bevy_input v0.15.3
[INFO] [stderr]     Checking bevy_diagnostic v0.15.3
[INFO] [stderr]     Checking bevy_transform v0.15.3
[INFO] [stderr]     Checking bevy_state v0.15.3
[INFO] [stderr]     Checking bevy_window v0.15.3
[INFO] [stderr]     Checking bevy_gilrs v0.15.3
[INFO] [stderr]     Checking bevy_image v0.15.3
[INFO] [stderr]     Checking bevy_audio v0.15.3
[INFO] [stderr]     Checking bevy_mesh v0.15.3
[INFO] [stderr]     Checking bevy_winit v0.15.3
[INFO] [stderr]     Checking bevy_render v0.15.3
[INFO] [stderr]     Checking bevy_core_pipeline v0.15.3
[INFO] [stderr]     Checking bevy_picking v0.15.3
[INFO] [stderr]     Checking bevy_animation v0.15.3
[INFO] [stderr]     Checking bevy_scene v0.15.3
[INFO] [stderr]     Checking bevy_sprite v0.15.3
[INFO] [stderr]     Checking bevy_pbr v0.15.3
[INFO] [stderr]     Checking bevy_text v0.15.3
[INFO] [stderr]     Checking bevy_ui v0.15.3
[INFO] [stderr]     Checking bevy_gizmos v0.15.3
[INFO] [stderr]     Checking bevy_gltf v0.15.3
[INFO] [stderr]     Checking bevy_internal v0.15.3
[INFO] [stderr]     Checking bevy v0.15.3
[INFO] [stderr]     Checking marble_party v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `bowl::Bowl`
[INFO] [stdout]   --> src/track/segments/mod.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub use bowl::Bowl;
[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: `fork::Fork`
[INFO] [stdout]   --> src/track/segments/mod.rs:25:9
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub use fork::Fork;
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ProceduralTrack`
[INFO] [stdout]  --> src/track/mod.rs:8:54
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub use generator::{TrackGenerator, GeneratorConfig, ProceduralTrack};
[INFO] [stdout]   |                                                      ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `bowl::Bowl`
[INFO] [stdout]   --> src/track/segments/mod.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub use bowl::Bowl;
[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: `fork::Fork`
[INFO] [stdout]   --> src/track/segments/mod.rs:25:9
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub use fork::Fork;
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ProceduralTrack`
[INFO] [stdout]  --> src/track/mod.rs:8:54
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub use generator::{TrackGenerator, GeneratorConfig, ProceduralTrack};
[INFO] [stdout]   |                                                      ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `top_y`
[INFO] [stdout]    --> src/track/segments/funnel.rs:206:13
[INFO] [stdout]     |
[INFO] [stdout] 206 |         let top_y = self.entry.position.y;
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_top_y`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]    --> src/track/segments/funnel.rs:211:13
[INFO] [stdout]     |
[INFO] [stdout] 211 |         let t = ((point.y - bottom_y) / self.depth).clamp(0.0, 1.0);
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `slope_dir`
[INFO] [stdout]    --> src/track/segments/starting_gate.rs:157:13
[INFO] [stdout]     |
[INFO] [stdout] 157 |         let slope_dir = slope_vec.normalize();
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_slope_dir`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `slope_length`
[INFO] [stdout]    --> src/track/segments/starting_gate.rs:158:13
[INFO] [stdout]     |
[INFO] [stdout] 158 |         let slope_length = slope_vec.length();
[INFO] [stdout]     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_slope_length`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `segment_length`
[INFO] [stdout]    --> src/track/segments/tube_adapter.rs:276:13
[INFO] [stdout]     |
[INFO] [stdout] 276 |         let segment_length = segment_vec.length();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_segment_length`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `segment_dir`
[INFO] [stdout]    --> src/track/segments/tube_adapter.rs:277:13
[INFO] [stdout]     |
[INFO] [stdout] 277 |         let segment_dir = segment_vec.normalize();
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_segment_dir`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `floor_y`
[INFO] [stdout]    --> src/track/generator.rs:341:48
[INFO] [stdout]     |
[INFO] [stdout] 341 |         if let PortProfile::FlatFloor { width, floor_y } = &exit_port.profile {
[INFO] [stdout]     |                                                ^^^^^^^ help: try ignoring the field: `floor_y: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `diameter`
[INFO] [stdout]    --> src/track/generator.rs:490:33
[INFO] [stdout]     |
[INFO] [stdout] 490 |             PortProfile::Tube { diameter } => {
[INFO] [stdout]     |                                 ^^^^^^^^ help: try ignoring the field: `diameter: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `diameter`
[INFO] [stdout]    --> src/track/generator.rs:514:37
[INFO] [stdout]     |
[INFO] [stdout] 514 |             PortProfile::HalfPipe { diameter } => {
[INFO] [stdout]     |                                     ^^^^^^^^ help: try ignoring the field: `diameter: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `width`
[INFO] [stdout]    --> src/track/generator.rs:535:38
[INFO] [stdout]     |
[INFO] [stdout] 535 |             PortProfile::FlatFloor { width, floor_y } => {
[INFO] [stdout]     |                                      ^^^^^ help: try ignoring the field: `width: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `floor_y`
[INFO] [stdout]    --> src/track/generator.rs:535:45
[INFO] [stdout]     |
[INFO] [stdout] 535 |             PortProfile::FlatFloor { width, floor_y } => {
[INFO] [stdout]     |                                             ^^^^^^^ help: try ignoring the field: `floor_y: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `effective_width`, `is_circular`, and `is_flat` are never used
[INFO] [stdout]   --> src/track/mod.rs:71:12
[INFO] [stdout]    |
[INFO] [stdout] 49 | impl PortProfile {
[INFO] [stdout]    | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 71 |     pub fn effective_width(&self) -> f32 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81 |     pub fn is_circular(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 86 |     pub fn is_flat(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `radius` is never read
[INFO] [stdout]    --> src/track/mod.rs:117:9
[INFO] [stdout]     |
[INFO] [stdout] 109 | pub struct Port {
[INFO] [stdout]     |            ---- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 117 |     pub radius: f32,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Port` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `can_connect` and `right` are never used
[INFO] [stdout]    --> src/track/mod.rs:147:12
[INFO] [stdout]     |
[INFO] [stdout] 122 | impl Port {
[INFO] [stdout]     | --------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 147 |     pub fn can_connect(&self, other: &Port) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 240 |     pub fn right(&self) -> Vec3 {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `center` and `size` are never used
[INFO] [stdout]    --> src/track/mod.rs:320:12
[INFO] [stdout]     |
[INFO] [stdout] 268 | impl AABB {
[INFO] [stdout]     | --------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 320 |     pub fn center(&self) -> Vec3 {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 325 |     pub fn size(&self) -> Vec3 {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_in_core_region` and `descent` are never used
[INFO] [stdout]    --> src/track/mod.rs:351:8
[INFO] [stdout]     |
[INFO] [stdout] 344 | pub trait Segment: Send + Sync {
[INFO] [stdout]     |           ------- methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 351 |     fn is_in_core_region(&self, point: Vec3) -> bool;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 374 |     fn descent(&self) -> f32 {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `smooth_k` is never read
[INFO] [stdout]    --> src/track/mod.rs:401:5
[INFO] [stdout]     |
[INFO] [stdout] 398 | pub struct Track {
[INFO] [stdout]     |            ----- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 401 |     smooth_k: f32,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `try_add_segment`, `sdf`, `clear`, `is_in_any_core_region`, and `find_segment` are never used
[INFO] [stdout]    --> src/track/mod.rs:461:12
[INFO] [stdout]     |
[INFO] [stdout] 410 | impl Track {
[INFO] [stdout]     | ---------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 461 |     pub fn try_add_segment(&mut self, segment: Box<dyn Segment>) -> Result<(), ConnectionError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 498 |     pub fn sdf(&self, point: Vec3) -> f32 {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 653 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 659 |     pub fn is_in_any_core_region(&self, point: Vec3) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 670 |     pub fn find_segment(&self, point: Vec3) -> i32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `smooth_min` is never used
[INFO] [stdout]    --> src/track/mod.rs:708:8
[INFO] [stdout]     |
[INFO] [stdout] 708 | pub fn smooth_min(a: f32, b: f32, k: f32) -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `capsule_sdf` is never used
[INFO] [stdout]    --> src/track/mod.rs:717:8
[INFO] [stdout]     |
[INFO] [stdout] 717 | pub fn capsule_sdf(point: Vec3, a: Vec3, b: Vec3, radius: f32) -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `bump_amplitude` is never read
[INFO] [stdout]   --> src/track/segments/spiral_tube.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub struct SpiralTube {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 15 |     pub bump_amplitude: f32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `at_origin` and `spine` are never used
[INFO] [stdout]    --> src/track/segments/spiral_tube.rs:57:12
[INFO] [stdout]     |
[INFO] [stdout]  28 | impl SpiralTube {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  57 |     pub fn at_origin(loops: f32, descent: f32, helix_radius: f32, tube_radius: f32) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 145 |     pub fn spine(&self) -> &[Vec3] {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `at_origin` is never used
[INFO] [stdout]   --> src/track/segments/straight_tube.rs:43:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl StraightTube {
[INFO] [stdout]    | ----------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub fn at_origin(length: f32, tube_radius: f32) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `left`, `right`, and `spine` are never used
[INFO] [stdout]    --> src/track/segments/curved_tube.rs:48:12
[INFO] [stdout]     |
[INFO] [stdout]  24 | impl CurvedTube {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  48 |     pub fn left(arc_angle: f32, arc_radius: f32, tube_radius: f32, entry_port: Port) -> Self {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout]  53 |     pub fn right(arc_angle: f32, arc_radius: f32, tube_radius: f32, entry_port: Port) -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 136 |     pub fn spine(&self) -> &[Vec3] {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `length` and `slope_angle` are never read
[INFO] [stdout]   --> src/track/segments/flat_slope.rs:8:9
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub struct FlatSlope {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout]  7 |     /// Length of the slope
[INFO] [stdout]  8 |     pub length: f32,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 14 |     pub slope_angle: f32,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `at_origin` is never used
[INFO] [stdout]    --> src/track/segments/flat_slope.rs:134:12
[INFO] [stdout]     |
[INFO] [stdout]  38 | impl FlatSlope {
[INFO] [stdout]     | -------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 134 |     pub fn at_origin(length: f32, width: f32, wall_height: f32, slope_angle: f32) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `length` is never read
[INFO] [stdout]  --> src/track/segments/narrowing_tube.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct NarrowingTube {
[INFO] [stdout]   |            ------------- field in this struct
[INFO] [stdout] 6 |     /// Length of the tube
[INFO] [stdout] 7 |     pub length: f32,
[INFO] [stdout]   |         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `at_origin` is never used
[INFO] [stdout]   --> src/track/segments/narrowing_tube.rs:48:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl NarrowingTube {
[INFO] [stdout]    | ------------------ associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 48 |     pub fn at_origin(length: f32, entry_radius: f32, exit_radius: f32) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `length` is never read
[INFO] [stdout]  --> src/track/segments/widening_tube.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct WideningTube {
[INFO] [stdout]   |            ------------ field in this struct
[INFO] [stdout] 6 |     /// Length of the tube
[INFO] [stdout] 7 |     pub length: f32,
[INFO] [stdout]   |         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `at_origin` is never used
[INFO] [stdout]   --> src/track/segments/widening_tube.rs:48:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl WideningTube {
[INFO] [stdout]    | ----------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 48 |     pub fn at_origin(length: f32, entry_radius: f32, exit_radius: f32) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `wall_thickness` is never read
[INFO] [stdout]   --> src/track/segments/funnel.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub struct Funnel {
[INFO] [stdout]    |            ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 14 |     pub wall_thickness: f32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `at_origin` is never used
[INFO] [stdout]   --> src/track/segments/funnel.rs:68:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | impl Funnel {
[INFO] [stdout]    | ----------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 68 |     pub fn at_origin(depth: f32, top_radius: f32, bottom_radius: f32) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `wall_thickness` is never read
[INFO] [stdout]   --> src/track/segments/half_pipe.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub struct HalfPipe {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 12 |     pub wall_thickness: f32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `at_origin` is never used
[INFO] [stdout]   --> src/track/segments/half_pipe.rs:87:12
[INFO] [stdout]    |
[INFO] [stdout] 27 | impl HalfPipe {
[INFO] [stdout]    | ------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 87 |     pub fn at_origin(length: f32, radius: f32) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Bowl` is never constructed
[INFO] [stdout]  --> src/track/segments/bowl.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct Bowl {
[INFO] [stdout]   |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new` and `at_origin` are never used
[INFO] [stdout]   --> src/track/segments/bowl.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | impl Bowl {
[INFO] [stdout]    | --------- associated functions in this implementation
[INFO] [stdout] 22 |     pub fn new(radius: f32, exit_hole_radius: f32, entry_port: Port) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 54 |     pub fn at_origin(radius: f32, exit_hole_radius: f32) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OVERLAP_DISTANCE` is never used
[INFO] [stdout]   --> src/track/segments/bowl.rs:66:7
[INFO] [stdout]    |
[INFO] [stdout] 66 | const OVERLAP_DISTANCE: f32 = 1.0;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Fork` is never constructed
[INFO] [stdout]  --> src/track/segments/fork.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct Fork {
[INFO] [stdout]   |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new` and `at_origin` are never used
[INFO] [stdout]    --> src/track/segments/fork.rs:28:12
[INFO] [stdout]     |
[INFO] [stdout]  27 | impl Fork {
[INFO] [stdout]     | --------- associated functions in this implementation
[INFO] [stdout]  28 |     pub fn new(length: f32, tube_radius: f32, split_angle: f32, entry_port: Port) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     pub fn at_origin(length: f32, tube_radius: f32, split_angle: f32) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OVERLAP_DISTANCE` is never used
[INFO] [stdout]    --> src/track/segments/fork.rs:112:7
[INFO] [stdout]     |
[INFO] [stdout] 112 | const OVERLAP_DISTANCE: f32 = 1.0;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `length` and `slope_angle` are never read
[INFO] [stdout]   --> src/track/segments/starting_gate.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct StartingGate {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 15 |     pub length: f32,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 19 |     pub slope_angle: f32,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `for_marbles` is never used
[INFO] [stdout]    --> src/track/segments/starting_gate.rs:130:12
[INFO] [stdout]     |
[INFO] [stdout]  43 | impl StartingGate {
[INFO] [stdout]     | ----------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 130 |     pub fn for_marbles(
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OVERLAP_DISTANCE` is never used
[INFO] [stdout]    --> src/track/segments/starting_gate.rs:195:7
[INFO] [stdout]     |
[INFO] [stdout] 195 | const OVERLAP_DISTANCE: f32 = 2.5;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `length` and `direction` are never read
[INFO] [stdout]   --> src/track/segments/tube_adapter.rs:8:9
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub struct TubeAdapter {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout]  7 |     /// Length of the adapter segment
[INFO] [stdout]  8 |     pub length: f32,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 22 |     direction: Vec3,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `length` and `direction` are never read
[INFO] [stdout]   --> src/track/segments/reverse_tube_adapter.rs:8:9
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub struct ReverseTubeAdapter {
[INFO] [stdout]    |            ------------------ fields in this struct
[INFO] [stdout]  7 |     /// Length of the adapter segment
[INFO] [stdout]  8 |     pub length: f32,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 22 |     direction: Vec3,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `wall_front_left` and `wall_front_right` are never read
[INFO] [stdout]   --> src/track/segments/finish_line.rs:37:5
[INFO] [stdout]    |
[INFO] [stdout] 30 | struct FinishLineCorners {
[INFO] [stdout]    |        ----------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 37 |     wall_front_left: Vec3,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 38 |     wall_front_right: Vec3,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `for_marbles` is never used
[INFO] [stdout]    --> src/track/segments/finish_line.rs:130:12
[INFO] [stdout]     |
[INFO] [stdout]  45 | impl FinishLine {
[INFO] [stdout]     | --------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 130 |     pub fn for_marbles(
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `force_descent` is never read
[INFO] [stdout]   --> src/track/generator.rs:34:9
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct GeneratorConfig {
[INFO] [stdout]    |            --------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 34 |     pub force_descent: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GeneratorConfig` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `total` and `select` are never used
[INFO] [stdout]   --> src/track/generator.rs:90:8
[INFO] [stdout]    |
[INFO] [stdout] 88 | impl SegmentWeights {
[INFO] [stdout]    | ------------------- methods in this implementation
[INFO] [stdout] 89 |     /// Get total weight for normalization
[INFO] [stdout] 90 |     fn total(&self) -> f32 {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 97 |     fn select(&self, rng: &mut impl Rng) -> SegmentType {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `with_seed` and `reseed` are never used
[INFO] [stdout]    --> src/track/generator.rs:159:12
[INFO] [stdout]     |
[INFO] [stdout] 150 | impl TrackGenerator {
[INFO] [stdout]     | ------------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 159 |     pub fn with_seed(seed: u64) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 608 |     pub fn reseed(&mut self, seed: u64) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ProceduralTrack` is never constructed
[INFO] [stdout]    --> src/track/generator.rs:660:12
[INFO] [stdout]     |
[INFO] [stdout] 660 | pub struct ProceduralTrack {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `generate_segment_sequence` is never used
[INFO] [stdout]    --> src/track/generator.rs:677:19
[INFO] [stdout]     |
[INFO] [stdout] 674 | impl TrackGenerator {
[INFO] [stdout]     | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 677 |     pub(crate) fn generate_segment_sequence(&mut self, num_segments: usize) -> Vec<SegmentType> {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `top_y`
[INFO] [stdout]    --> src/track/segments/funnel.rs:206:13
[INFO] [stdout]     |
[INFO] [stdout] 206 |         let top_y = self.entry.position.y;
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_top_y`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]    --> src/track/segments/funnel.rs:211:13
[INFO] [stdout]     |
[INFO] [stdout] 211 |         let t = ((point.y - bottom_y) / self.depth).clamp(0.0, 1.0);
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `slope_dir`
[INFO] [stdout]    --> src/track/segments/starting_gate.rs:157:13
[INFO] [stdout]     |
[INFO] [stdout] 157 |         let slope_dir = slope_vec.normalize();
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_slope_dir`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `slope_length`
[INFO] [stdout]    --> src/track/segments/starting_gate.rs:158:13
[INFO] [stdout]     |
[INFO] [stdout] 158 |         let slope_length = slope_vec.length();
[INFO] [stdout]     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_slope_length`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `segment_length`
[INFO] [stdout]    --> src/track/segments/tube_adapter.rs:276:13
[INFO] [stdout]     |
[INFO] [stdout] 276 |         let segment_length = segment_vec.length();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_segment_length`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `segment_dir`
[INFO] [stdout]    --> src/track/segments/tube_adapter.rs:277:13
[INFO] [stdout]     |
[INFO] [stdout] 277 |         let segment_dir = segment_vec.normalize();
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_segment_dir`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `floor_y`
[INFO] [stdout]    --> src/track/generator.rs:341:48
[INFO] [stdout]     |
[INFO] [stdout] 341 |         if let PortProfile::FlatFloor { width, floor_y } = &exit_port.profile {
[INFO] [stdout]     |                                                ^^^^^^^ help: try ignoring the field: `floor_y: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `diameter`
[INFO] [stdout]    --> src/track/generator.rs:490:33
[INFO] [stdout]     |
[INFO] [stdout] 490 |             PortProfile::Tube { diameter } => {
[INFO] [stdout]     |                                 ^^^^^^^^ help: try ignoring the field: `diameter: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `diameter`
[INFO] [stdout]    --> src/track/generator.rs:514:37
[INFO] [stdout]     |
[INFO] [stdout] 514 |             PortProfile::HalfPipe { diameter } => {
[INFO] [stdout]     |                                     ^^^^^^^^ help: try ignoring the field: `diameter: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `width`
[INFO] [stdout]    --> src/track/generator.rs:535:38
[INFO] [stdout]     |
[INFO] [stdout] 535 |             PortProfile::FlatFloor { width, floor_y } => {
[INFO] [stdout]     |                                      ^^^^^ help: try ignoring the field: `width: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `floor_y`
[INFO] [stdout]    --> src/track/generator.rs:535:45
[INFO] [stdout]     |
[INFO] [stdout] 535 |             PortProfile::FlatFloor { width, floor_y } => {
[INFO] [stdout]     |                                             ^^^^^^^ help: try ignoring the field: `floor_y: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `effective_width`, `is_circular`, and `is_flat` are never used
[INFO] [stdout]   --> src/track/mod.rs:71:12
[INFO] [stdout]    |
[INFO] [stdout] 49 | impl PortProfile {
[INFO] [stdout]    | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 71 |     pub fn effective_width(&self) -> f32 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81 |     pub fn is_circular(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 86 |     pub fn is_flat(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `radius` is never read
[INFO] [stdout]    --> src/track/mod.rs:117:9
[INFO] [stdout]     |
[INFO] [stdout] 109 | pub struct Port {
[INFO] [stdout]     |            ---- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 117 |     pub radius: f32,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Port` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `can_connect` and `right` are never used
[INFO] [stdout]    --> src/track/mod.rs:147:12
[INFO] [stdout]     |
[INFO] [stdout] 122 | impl Port {
[INFO] [stdout]     | --------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 147 |     pub fn can_connect(&self, other: &Port) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 240 |     pub fn right(&self) -> Vec3 {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `center` and `size` are never used
[INFO] [stdout]    --> src/track/mod.rs:320:12
[INFO] [stdout]     |
[INFO] [stdout] 268 | impl AABB {
[INFO] [stdout]     | --------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 320 |     pub fn center(&self) -> Vec3 {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 325 |     pub fn size(&self) -> Vec3 {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_in_core_region` and `descent` are never used
[INFO] [stdout]    --> src/track/mod.rs:351:8
[INFO] [stdout]     |
[INFO] [stdout] 344 | pub trait Segment: Send + Sync {
[INFO] [stdout]     |           ------- methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 351 |     fn is_in_core_region(&self, point: Vec3) -> bool;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 374 |     fn descent(&self) -> f32 {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `smooth_k` is never read
[INFO] [stdout]    --> src/track/mod.rs:401:5
[INFO] [stdout]     |
[INFO] [stdout] 398 | pub struct Track {
[INFO] [stdout]     |            ----- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 401 |     smooth_k: f32,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `try_add_segment`, `sdf`, `clear`, `is_in_any_core_region`, and `find_segment` are never used
[INFO] [stdout]    --> src/track/mod.rs:461:12
[INFO] [stdout]     |
[INFO] [stdout] 410 | impl Track {
[INFO] [stdout]     | ---------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 461 |     pub fn try_add_segment(&mut self, segment: Box<dyn Segment>) -> Result<(), ConnectionError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 498 |     pub fn sdf(&self, point: Vec3) -> f32 {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 653 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 659 |     pub fn is_in_any_core_region(&self, point: Vec3) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 670 |     pub fn find_segment(&self, point: Vec3) -> i32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `smooth_min` is never used
[INFO] [stdout]    --> src/track/mod.rs:708:8
[INFO] [stdout]     |
[INFO] [stdout] 708 | pub fn smooth_min(a: f32, b: f32, k: f32) -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `capsule_sdf` is never used
[INFO] [stdout]    --> src/track/mod.rs:717:8
[INFO] [stdout]     |
[INFO] [stdout] 717 | pub fn capsule_sdf(point: Vec3, a: Vec3, b: Vec3, radius: f32) -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `bump_amplitude` is never read
[INFO] [stdout]   --> src/track/segments/spiral_tube.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub struct SpiralTube {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 15 |     pub bump_amplitude: f32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `at_origin` and `spine` are never used
[INFO] [stdout]    --> src/track/segments/spiral_tube.rs:57:12
[INFO] [stdout]     |
[INFO] [stdout]  28 | impl SpiralTube {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  57 |     pub fn at_origin(loops: f32, descent: f32, helix_radius: f32, tube_radius: f32) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 145 |     pub fn spine(&self) -> &[Vec3] {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `at_origin` is never used
[INFO] [stdout]   --> src/track/segments/straight_tube.rs:43:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl StraightTube {
[INFO] [stdout]    | ----------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub fn at_origin(length: f32, tube_radius: f32) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `left`, `right`, and `spine` are never used
[INFO] [stdout]    --> src/track/segments/curved_tube.rs:48:12
[INFO] [stdout]     |
[INFO] [stdout]  24 | impl CurvedTube {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  48 |     pub fn left(arc_angle: f32, arc_radius: f32, tube_radius: f32, entry_port: Port) -> Self {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout]  53 |     pub fn right(arc_angle: f32, arc_radius: f32, tube_radius: f32, entry_port: Port) -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 136 |     pub fn spine(&self) -> &[Vec3] {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `length` and `slope_angle` are never read
[INFO] [stdout]   --> src/track/segments/flat_slope.rs:8:9
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub struct FlatSlope {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout]  7 |     /// Length of the slope
[INFO] [stdout]  8 |     pub length: f32,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 14 |     pub slope_angle: f32,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `at_origin` is never used
[INFO] [stdout]    --> src/track/segments/flat_slope.rs:134:12
[INFO] [stdout]     |
[INFO] [stdout]  38 | impl FlatSlope {
[INFO] [stdout]     | -------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 134 |     pub fn at_origin(length: f32, width: f32, wall_height: f32, slope_angle: f32) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `length` is never read
[INFO] [stdout]  --> src/track/segments/narrowing_tube.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct NarrowingTube {
[INFO] [stdout]   |            ------------- field in this struct
[INFO] [stdout] 6 |     /// Length of the tube
[INFO] [stdout] 7 |     pub length: f32,
[INFO] [stdout]   |         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `at_origin` is never used
[INFO] [stdout]   --> src/track/segments/narrowing_tube.rs:48:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl NarrowingTube {
[INFO] [stdout]    | ------------------ associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 48 |     pub fn at_origin(length: f32, entry_radius: f32, exit_radius: f32) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `length` is never read
[INFO] [stdout]  --> src/track/segments/widening_tube.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct WideningTube {
[INFO] [stdout]   |            ------------ field in this struct
[INFO] [stdout] 6 |     /// Length of the tube
[INFO] [stdout] 7 |     pub length: f32,
[INFO] [stdout]   |         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `at_origin` is never used
[INFO] [stdout]   --> src/track/segments/widening_tube.rs:48:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl WideningTube {
[INFO] [stdout]    | ----------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 48 |     pub fn at_origin(length: f32, entry_radius: f32, exit_radius: f32) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `wall_thickness` is never read
[INFO] [stdout]   --> src/track/segments/funnel.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub struct Funnel {
[INFO] [stdout]    |            ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 14 |     pub wall_thickness: f32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `at_origin` is never used
[INFO] [stdout]   --> src/track/segments/funnel.rs:68:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | impl Funnel {
[INFO] [stdout]    | ----------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 68 |     pub fn at_origin(depth: f32, top_radius: f32, bottom_radius: f32) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `wall_thickness` is never read
[INFO] [stdout]   --> src/track/segments/half_pipe.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub struct HalfPipe {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 12 |     pub wall_thickness: f32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `at_origin` is never used
[INFO] [stdout]   --> src/track/segments/half_pipe.rs:87:12
[INFO] [stdout]    |
[INFO] [stdout] 27 | impl HalfPipe {
[INFO] [stdout]    | ------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 87 |     pub fn at_origin(length: f32, radius: f32) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Bowl` is never constructed
[INFO] [stdout]  --> src/track/segments/bowl.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct Bowl {
[INFO] [stdout]   |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new` and `at_origin` are never used
[INFO] [stdout]   --> src/track/segments/bowl.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | impl Bowl {
[INFO] [stdout]    | --------- associated functions in this implementation
[INFO] [stdout] 22 |     pub fn new(radius: f32, exit_hole_radius: f32, entry_port: Port) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 54 |     pub fn at_origin(radius: f32, exit_hole_radius: f32) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OVERLAP_DISTANCE` is never used
[INFO] [stdout]   --> src/track/segments/bowl.rs:66:7
[INFO] [stdout]    |
[INFO] [stdout] 66 | const OVERLAP_DISTANCE: f32 = 1.0;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Fork` is never constructed
[INFO] [stdout]  --> src/track/segments/fork.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct Fork {
[INFO] [stdout]   |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new` and `at_origin` are never used
[INFO] [stdout]    --> src/track/segments/fork.rs:28:12
[INFO] [stdout]     |
[INFO] [stdout]  27 | impl Fork {
[INFO] [stdout]     | --------- associated functions in this implementation
[INFO] [stdout]  28 |     pub fn new(length: f32, tube_radius: f32, split_angle: f32, entry_port: Port) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     pub fn at_origin(length: f32, tube_radius: f32, split_angle: f32) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OVERLAP_DISTANCE` is never used
[INFO] [stdout]    --> src/track/segments/fork.rs:112:7
[INFO] [stdout]     |
[INFO] [stdout] 112 | const OVERLAP_DISTANCE: f32 = 1.0;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `length` and `slope_angle` are never read
[INFO] [stdout]   --> src/track/segments/starting_gate.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct StartingGate {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 15 |     pub length: f32,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 19 |     pub slope_angle: f32,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `for_marbles` is never used
[INFO] [stdout]    --> src/track/segments/starting_gate.rs:130:12
[INFO] [stdout]     |
[INFO] [stdout]  43 | impl StartingGate {
[INFO] [stdout]     | ----------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 130 |     pub fn for_marbles(
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OVERLAP_DISTANCE` is never used
[INFO] [stdout]    --> src/track/segments/starting_gate.rs:195:7
[INFO] [stdout]     |
[INFO] [stdout] 195 | const OVERLAP_DISTANCE: f32 = 2.5;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `length` and `direction` are never read
[INFO] [stdout]   --> src/track/segments/tube_adapter.rs:8:9
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub struct TubeAdapter {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout]  7 |     /// Length of the adapter segment
[INFO] [stdout]  8 |     pub length: f32,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 22 |     direction: Vec3,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `length` and `direction` are never read
[INFO] [stdout]   --> src/track/segments/reverse_tube_adapter.rs:8:9
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub struct ReverseTubeAdapter {
[INFO] [stdout]    |            ------------------ fields in this struct
[INFO] [stdout]  7 |     /// Length of the adapter segment
[INFO] [stdout]  8 |     pub length: f32,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 22 |     direction: Vec3,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `wall_front_left` and `wall_front_right` are never read
[INFO] [stdout]   --> src/track/segments/finish_line.rs:37:5
[INFO] [stdout]    |
[INFO] [stdout] 30 | struct FinishLineCorners {
[INFO] [stdout]    |        ----------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 37 |     wall_front_left: Vec3,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 38 |     wall_front_right: Vec3,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `for_marbles` is never used
[INFO] [stdout]    --> src/track/segments/finish_line.rs:130:12
[INFO] [stdout]     |
[INFO] [stdout]  45 | impl FinishLine {
[INFO] [stdout]     | --------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 130 |     pub fn for_marbles(
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `force_descent` is never read
[INFO] [stdout]   --> src/track/generator.rs:34:9
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct GeneratorConfig {
[INFO] [stdout]    |            --------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 34 |     pub force_descent: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GeneratorConfig` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `total` and `select` are never used
[INFO] [stdout]   --> src/track/generator.rs:90:8
[INFO] [stdout]    |
[INFO] [stdout] 88 | impl SegmentWeights {
[INFO] [stdout]    | ------------------- methods in this implementation
[INFO] [stdout] 89 |     /// Get total weight for normalization
[INFO] [stdout] 90 |     fn total(&self) -> f32 {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 97 |     fn select(&self, rng: &mut impl Rng) -> SegmentType {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `with_seed` and `reseed` are never used
[INFO] [stdout]    --> src/track/generator.rs:159:12
[INFO] [stdout]     |
[INFO] [stdout] 150 | impl TrackGenerator {
[INFO] [stdout]     | ------------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 159 |     pub fn with_seed(seed: u64) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 608 |     pub fn reseed(&mut self, seed: u64) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ProceduralTrack` is never constructed
[INFO] [stdout]    --> src/track/generator.rs:660:12
[INFO] [stdout]     |
[INFO] [stdout] 660 | pub struct ProceduralTrack {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 3m 52s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: naga v23.1.0, nix v0.30.1, wgpu v23.0.1, wgpu-core v23.0.1, wgpu-hal v23.0.1, winit v0.30.12
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 7`
[INFO] running `Command { std: "docker" "inspect" "48bb38bb3c81ea9d3d0135a52200f87dad22b75d1900bd0cb29e90959da3a454", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "48bb38bb3c81ea9d3d0135a52200f87dad22b75d1900bd0cb29e90959da3a454", kill_on_drop: false }`
[INFO] [stdout] 48bb38bb3c81ea9d3d0135a52200f87dad22b75d1900bd0cb29e90959da3a454
