[INFO] cloning repository https://github.com/Tailored-Alloys/toolpath_viewer
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Tailored-Alloys/toolpath_viewer" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FTailored-Alloys%2Ftoolpath_viewer", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FTailored-Alloys%2Ftoolpath_viewer'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 7d41fb16c92cecb3aa9837a2528a70ebda03d1c0
[INFO] checking Tailored-Alloys/toolpath_viewer against master#e1613686e0efc80a1a18b1263625450a8de3fb04 for pr-154492
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FTailored-Alloys%2Ftoolpath_viewer" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/Tailored-Alloys/toolpath_viewer
[INFO] finished tweaking git repo https://github.com/Tailored-Alloys/toolpath_viewer
[INFO] tweaked toml for git repo https://github.com/Tailored-Alloys/toolpath_viewer written to /workspace/builds/worker-5-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Tailored-Alloys/toolpath_viewer on toolchain e1613686e0efc80a1a18b1263625450a8de3fb04
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+e1613686e0efc80a1a18b1263625450a8de3fb04" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Tailored-Alloys/toolpath_viewer 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" "+e1613686e0efc80a1a18b1263625450a8de3fb04" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded deflate64 v0.1.11
[INFO] [stderr]   Downloaded usvg v0.37.0
[INFO] [stderr]   Downloaded usvg-tree v0.37.0
[INFO] [stderr]   Downloaded rctree v0.5.0
[INFO] [stderr]   Downloaded svgtypes v0.13.0
[INFO] [stderr]   Downloaded egui_extras v0.27.2
[INFO] [stderr]   Downloaded usvg-parser v0.37.0
[INFO] [stderr]   Downloaded resvg v0.37.0
[INFO] [stderr]   Downloaded winresource v0.1.30
[INFO] [stderr]   Downloaded kurbo v0.9.5
[INFO] [stderr]   Downloaded mime_guess2 v2.3.1
[INFO] [stderr]   Downloaded nalgebra v0.32.6
[INFO] [stderr]   Downloaded lucide-icons v0.575.0
[INFO] [stderr]   Downloaded nalgebra-glm v0.18.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+e1613686e0efc80a1a18b1263625450a8de3fb04" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 4746ef04a66e2e03f374d31332409b00b83f4d3f1531e7c8e85c10f97e601455
[INFO] running `Command { std: "docker" "start" "-a" "4746ef04a66e2e03f374d31332409b00b83f4d3f1531e7c8e85c10f97e601455", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "4746ef04a66e2e03f374d31332409b00b83f4d3f1531e7c8e85c10f97e601455", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4746ef04a66e2e03f374d31332409b00b83f4d3f1531e7c8e85c10f97e601455", kill_on_drop: false }`
[INFO] [stdout] 4746ef04a66e2e03f374d31332409b00b83f4d3f1531e7c8e85c10f97e601455
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+e1613686e0efc80a1a18b1263625450a8de3fb04" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] d78ce918c42bc29ad89bf88eba64e27914ab0b720e7dd7bffe4707337e0d6e9f
[INFO] running `Command { std: "docker" "start" "-a" "d78ce918c42bc29ad89bf88eba64e27914ab0b720e7dd7bffe4707337e0d6e9f", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]    Compiling quote v1.0.45
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]     Checking linux-raw-sys v0.12.1
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling wayland-sys v0.31.10
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling wayland-backend v0.3.14
[INFO] [stderr]    Compiling memchr v2.8.0
[INFO] [stderr]     Checking dlib v0.5.3
[INFO] [stderr]    Compiling wayland-client v0.31.13
[INFO] [stderr]    Compiling zerocopy v0.8.42
[INFO] [stderr]    Compiling winnow v0.7.15
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]     Checking concurrent-queue v2.5.0
[INFO] [stderr]     Checking futures-io v0.3.32
[INFO] [stderr]    Compiling hashbrown v0.16.1
[INFO] [stderr]     Checking float-cmp v0.9.0
[INFO] [stderr]    Compiling gl_generator v0.14.0
[INFO] [stderr]    Compiling toml_datetime v1.0.0+spec-1.1.0
[INFO] [stderr]     Checking event-listener v5.4.1
[INFO] [stderr]     Checking strict-num v0.1.1
[INFO] [stderr]     Checking futures-lite v2.6.1
[INFO] [stderr]    Compiling cfg_aliases v0.1.1
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]    Compiling quick-xml v0.39.2
[INFO] [stderr]     Checking tracing-core v0.1.36
[INFO] [stderr]     Checking ab_glyph_rasterizer v0.1.10
[INFO] [stderr]     Checking event-listener-strategy v0.5.4
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]     Checking unicode-ident v1.0.24
[INFO] [stderr]     Checking ab_glyph v0.2.32
[INFO] [stderr]     Checking form_urlencoded v1.2.2
[INFO] [stderr]    Compiling async-io v2.6.0
[INFO] [stderr]     Checking linux-raw-sys v0.4.15
[INFO] [stderr]     Checking png v0.17.16
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]    Compiling indexmap v2.13.0
[INFO] [stderr]     Checking async-channel v2.5.0
[INFO] [stderr]     Checking memmap2 v0.9.10
[INFO] [stderr]     Checking piper v0.2.5
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]     Checking kurbo v0.9.5
[INFO] [stderr]    Compiling zstd-sys v2.0.16+zstd.1.5.7
[INFO] [stderr]    Compiling wayland-scanner v0.31.9
[INFO] [stderr]    Compiling endi v1.1.1
[INFO] [stderr]    Compiling smithay-client-toolkit v0.18.1
[INFO] [stderr]    Compiling unicase v2.9.0
[INFO] [stderr]    Compiling siphasher v1.0.2
[INFO] [stderr]     Checking x11-dl v2.21.0
[INFO] [stderr]     Checking async-lock v3.4.2
[INFO] [stderr]    Compiling phf_shared v0.11.3
[INFO] [stderr]     Checking rctree v0.5.0
[INFO] [stderr]     Checking blocking v1.6.2
[INFO] [stderr]     Checking x11rb-protocol v0.13.2
[INFO] [stderr]    Compiling phf v0.11.3
[INFO] [stderr]    Compiling glutin_egl_sys v0.6.0
[INFO] [stderr]    Compiling glutin_glx_sys v0.5.0
[INFO] [stderr]     Checking svgtypes v0.13.0
[INFO] [stderr]     Checking rand_core v0.9.5
[INFO] [stderr]    Compiling winit v0.29.15
[INFO] [stderr]     Checking aho-corasick v1.1.4
[INFO] [stderr]    Compiling matrixmultiply v0.3.10
[INFO] [stderr]    Compiling lzma-sys v0.1.20
[INFO] [stderr]    Compiling bzip2-sys v0.1.13+1.0.8
[INFO] [stderr]     Checking simplecss v0.2.2
[INFO] [stderr]     Checking imagesize v0.12.0
[INFO] [stderr]     Checking raw-window-handle v0.5.2
[INFO] [stderr]     Checking roxmltree v0.19.0
[INFO] [stderr]    Compiling smithay-client-toolkit v0.20.0
[INFO] [stderr]     Checking data-url v0.3.2
[INFO] [stderr]    Compiling zstd-safe v7.2.4
[INFO] [stderr]     Checking regex-automata v0.4.14
[INFO] [stderr]     Checking uuid v1.22.0
[INFO] [stderr]    Compiling mime_guess2 v2.3.1
[INFO] [stderr]     Checking async-executor v1.14.0
[INFO] [stderr]     Checking xkbcommon-dl v0.4.2
[INFO] [stderr]     Checking async-broadcast v0.7.2
[INFO] [stderr]    Compiling glutin v0.31.3
[INFO] [stderr]    Compiling toml_parser v1.0.9+spec-1.1.0
[INFO] [stderr]     Checking inout v0.1.4
[INFO] [stderr]     Checking num-integer v0.1.46
[INFO] [stderr]    Compiling serde_spanned v1.0.4
[INFO] [stderr]    Compiling toml_datetime v0.7.5+spec-1.1.0
[INFO] [stderr]     Checking approx v0.5.1
[INFO] [stderr]     Checking num-complex v0.4.6
[INFO] [stderr]     Checking ordered-stream v0.2.0
[INFO] [stderr]     Checking futures-task v0.3.32
[INFO] [stderr]     Checking pico-args v0.5.0
[INFO] [stderr]     Checking xmlwriter v0.1.0
[INFO] [stderr]     Checking serde_json v1.0.149
[INFO] [stderr]     Checking crc v3.4.0
[INFO] [stderr]     Checking num-rational v0.4.2
[INFO] [stderr]     Checking cipher v0.4.4
[INFO] [stderr]    Compiling toml_edit v0.25.4+spec-1.1.0
[INFO] [stderr]    Compiling toml v0.9.12+spec-1.1.0
[INFO] [stderr]     Checking async-fs v2.2.0
[INFO] [stderr]     Checking hmac v0.12.1
[INFO] [stderr]    Compiling gl v0.14.0
[INFO] [stderr]    Compiling glutin-winit v0.4.2
[INFO] [stderr]     Checking home v0.5.12
[INFO] [stderr]     Checking ciborium-io v0.2.2
[INFO] [stderr]    Compiling rfd v0.15.4
[INFO] [stderr]     Checking bumpalo v3.20.2
[INFO] [stderr]     Checking pxfm v0.1.28
[INFO] [stderr]     Checking plotters-backend v0.3.7
[INFO] [stderr]    Compiling zip v2.4.2
[INFO] [stderr]    Compiling winresource v0.1.30
[INFO] [stderr]     Checking plotters-svg v0.3.7
[INFO] [stderr]     Checking zopfli v0.8.3
[INFO] [stderr]     Checking time v0.3.47
[INFO] [stderr]     Checking clap_builder v4.6.0
[INFO] [stderr]     Checking bzip2 v0.5.2
[INFO] [stderr]     Checking pbkdf2 v0.12.2
[INFO] [stderr]     Checking aes v0.8.4
[INFO] [stderr]    Compiling proc-macro-crate v3.5.0
[INFO] [stderr]    Compiling toolpath_viewer v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Checking xz2 v0.1.7
[INFO] [stderr]     Checking lzma-rs v0.3.0
[INFO] [stderr]     Checking png v0.18.1
[INFO] [stderr]     Checking glow v0.13.1
[INFO] [stderr]     Checking constant_time_eq v0.3.1
[INFO] [stderr]     Checking polling v3.11.0
[INFO] [stderr]     Checking gethostname v1.1.0
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]     Checking cast v0.3.0
[INFO] [stderr]     Checking regex v1.12.3
[INFO] [stderr]     Checking termcolor v1.4.1
[INFO] [stderr]     Checking web-time v0.2.4
[INFO] [stderr]     Checking deflate64 v0.1.11
[INFO] [stderr]     Checking pollster v0.4.0
[INFO] [stderr]     Checking humantime v2.3.0
[INFO] [stderr]     Checking criterion-plot v0.5.0
[INFO] [stderr]     Checking plotters v0.3.7
[INFO] [stderr]     Checking oorandom v11.1.5
[INFO] [stderr]     Checking anes v0.1.6
[INFO] [stderr]     Checking lucide-icons v0.575.0
[INFO] [stderr]     Checking async-signal v0.2.13
[INFO] [stderr]     Checking async-net v2.0.0
[INFO] [stderr]     Checking env_logger v0.10.2
[INFO] [stderr]     Checking async-process v2.5.0
[INFO] [stderr]     Checking wayland-csd-frame v0.3.0
[INFO] [stderr]     Checking clap v4.6.0
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling bytemuck_derive v1.10.2
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.1
[INFO] [stderr]    Compiling zerocopy-derive v0.8.42
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling zerovec-derive v0.11.2
[INFO] [stderr]    Compiling enumflags2_derive v0.7.12
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]    Compiling async-recursion v1.1.1
[INFO] [stderr]    Compiling serde_repr v0.1.20
[INFO] [stderr]    Compiling nalgebra-macros v0.2.2
[INFO] [stderr]    Compiling zeroize_derive v1.4.3
[INFO] [stderr]     Checking wayland-protocols v0.32.11
[INFO] [stderr]     Checking wayland-protocols v0.31.2
[INFO] [stderr]     Checking wayland-cursor v0.31.13
[INFO] [stderr]     Checking futures-util v0.3.32
[INFO] [stderr]    Compiling enum-map-derive v0.17.0
[INFO] [stderr]     Checking zstd v0.13.3
[INFO] [stderr]     Checking moxcms v0.8.1
[INFO] [stderr]     Checking bytemuck v1.25.0
[INFO] [stderr]     Checking zeroize v1.8.2
[INFO] [stderr]     Checking zerofrom v0.1.6
[INFO] [stderr]     Checking yoke v0.8.1
[INFO] [stderr]     Checking zerovec v0.11.5
[INFO] [stderr]     Checking zerotrie v0.2.3
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking tiny-skia-path v0.11.4
[INFO] [stderr]     Checking safe_arch v0.7.4
[INFO] [stderr]     Checking calloop v0.12.4
[INFO] [stderr]     Checking thiserror v2.0.18
[INFO] [stderr]     Checking rgb v0.8.53
[INFO] [stderr]     Checking tracing v0.1.44
[INFO] [stderr]     Checking image v0.24.9
[INFO] [stderr]     Checking calloop v0.14.4
[INFO] [stderr]     Checking tiny-skia v0.11.4
[INFO] [stderr]     Checking tinystr v0.8.2
[INFO] [stderr]     Checking potential_utf v0.1.4
[INFO] [stderr]     Checking icu_locale_core v2.1.1
[INFO] [stderr]     Checking usvg-tree v0.37.0
[INFO] [stderr]     Checking wide v0.7.33
[INFO] [stderr]     Checking icu_collections v2.1.1
[INFO] [stderr]     Checking calloop-wayland-source v0.2.0
[INFO] [stderr]     Checking usvg-parser v0.37.0
[INFO] [stderr]     Checking calloop-wayland-source v0.4.1
[INFO] [stderr]     Checking ecolor v0.27.2
[INFO] [stderr]     Checking emath v0.27.2
[INFO] [stderr]     Checking enumflags2 v0.7.12
[INFO] [stderr]     Checking zvariant_utils v3.3.0
[INFO] [stderr]     Checking enum-map v2.7.3
[INFO] [stderr]     Checking tinytemplate v1.2.1
[INFO] [stderr]     Checking icu_provider v2.1.1
[INFO] [stderr]     Checking usvg v0.37.0
[INFO] [stderr]     Checking icu_properties v2.1.2
[INFO] [stderr]     Checking icu_normalizer v2.1.1
[INFO] [stderr]     Checking resvg v0.37.0
[INFO] [stderr]    Compiling zvariant_derive v5.10.0
[INFO] [stderr]     Checking simba v0.8.1
[INFO] [stderr]    Compiling zvariant v5.10.0
[INFO] [stderr]     Checking image v0.25.10
[INFO] [stderr]     Checking wayland-protocols-wlr v0.2.0
[INFO] [stderr]     Checking wayland-protocols-plasma v0.2.0
[INFO] [stderr]     Checking wayland-protocols-misc v0.3.11
[INFO] [stderr]     Checking wayland-protocols-wlr v0.3.11
[INFO] [stderr]     Checking wayland-protocols-experimental v20250721.0.1
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]     Checking half v2.7.1
[INFO] [stderr]     Checking idna_adapter v1.2.1
[INFO] [stderr]     Checking epaint v0.27.2
[INFO] [stderr]     Checking rand_chacha v0.9.0
[INFO] [stderr]     Checking idna v1.1.0
[INFO] [stderr]     Checking ciborium-ll v0.2.2
[INFO] [stderr]     Checking rand v0.9.2
[INFO] [stderr]     Checking ciborium v0.2.2
[INFO] [stderr]     Checking url v2.5.8
[INFO] [stderr]     Checking criterion v0.5.1
[INFO] [stderr]     Checking webbrowser v0.8.15
[INFO] [stderr]     Checking sctk-adwaita v0.8.3
[INFO] [stderr]     Checking smithay-clipboard v0.7.3
[INFO] [stderr]     Checking x11rb v0.13.2
[INFO] [stderr]    Compiling zbus_names v4.3.1
[INFO] [stderr]     Checking egui v0.27.2
[INFO] [stderr]    Compiling zbus_macros v5.14.0
[INFO] [stderr]     Checking nalgebra v0.32.6
[INFO] [stderr]     Checking arboard v3.6.1
[INFO] [stderr]     Checking zbus v5.14.0
[INFO] [stderr]     Checking egui-winit v0.27.2
[INFO] [stderr]     Checking egui_extras v0.27.2
[INFO] [stderr]     Checking egui_glow v0.27.2
[INFO] [stderr]     Checking nalgebra-glm v0.18.0
[INFO] [stderr]     Checking ashpd v0.11.1
[INFO] [stdout] warning: unused imports: `Color` and `Point3D`
[INFO] [stdout]  --> src/domain/entities/vector.rs:5:45
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::domain::value_objects::{Point2D, Point3D, Color};
[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: `entities::*`
[INFO] [stdout]   --> src/domain/mod.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub use entities::*;
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `value_objects::*`
[INFO] [stdout]   --> src/domain/mod.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub use value_objects::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SliceStack`
[INFO] [stdout]  --> src/application/ports/renderer_port.rs:5:38
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::domain::entities::{Layer, SliceStack, Vector};
[INFO] [stdout]   |                                      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::domain::value_objects::Color`
[INFO] [stdout]  --> src/application/ports/config_port.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::domain::value_objects::Color;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `VectorType`
[INFO] [stdout]  --> src/application/dto/layer_dto.rs:5:38
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::domain::entities::{Layer, VectorType};
[INFO] [stdout]   |                                      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `layer_dto::*`
[INFO] [stdout]  --> src/application/dto/mod.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub use layer_dto::*;
[INFO] [stdout]   |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `warn`
[INFO] [stdout]   --> src/infrastructure/file_adapters/cli_parser.rs:19:31
[INFO] [stdout]    |
[INFO] [stdout] 19 | use log::{debug, info, trace, warn};
[INFO] [stdout]    |                               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `debug`
[INFO] [stdout]   --> src/infrastructure/rendering/gl_renderer.rs:13:11
[INFO] [stdout]    |
[INFO] [stdout] 13 | use log::{debug, info};
[INFO] [stdout]    |           ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `log::info`
[INFO] [stdout]  --> src/infrastructure/rendering/line_batch.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use log::info;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `warn`
[INFO] [stdout]  --> src/infrastructure/config/mod.rs:8:24
[INFO] [stdout]   |
[INFO] [stdout] 8 | use log::{debug, info, warn};
[INFO] [stdout]   |                        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::env`
[INFO] [stdout]    --> src/infrastructure/config/mod.rs:114:9
[INFO] [stdout]     |
[INFO] [stdout] 114 |     use std::env;
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Color`
[INFO] [stdout]   --> src/presentation/app.rs:19:46
[INFO] [stdout]    |
[INFO] [stdout] 19 | use crate::domain::value_objects::{Bounds2D, Color, Point2D};
[INFO] [stdout]    |                                              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SnapshotFormat`
[INFO] [stdout]   --> src/presentation/app.rs:26:23
[INFO] [stdout]    |
[INFO] [stdout] 26 |     RulerMeasurement, SnapshotFormat,
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `debug`
[INFO] [stdout]   --> src/presentation/window.rs:24:11
[INFO] [stdout]    |
[INFO] [stdout] 24 | use log::{debug, info};
[INFO] [stdout]    |           ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Rounding`
[INFO] [stdout]  --> src/presentation/components/popups.rs:7:31
[INFO] [stdout]   |
[INFO] [stdout] 7 | use egui::{Context, RichText, Rounding};
[INFO] [stdout]   |                               ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `layout::TOOLBAR_HEIGHT`
[INFO] [stdout]   --> src/presentation/mod.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub use layout::TOOLBAR_HEIGHT;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Color` and `Point3D`
[INFO] [stdout]  --> src/domain/entities/vector.rs:5:45
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::domain::value_objects::{Point2D, Point3D, Color};
[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: `entities::*`
[INFO] [stdout]   --> src/domain/mod.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub use entities::*;
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `value_objects::*`
[INFO] [stdout]   --> src/domain/mod.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub use value_objects::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SliceStack`
[INFO] [stdout]  --> src/application/ports/renderer_port.rs:5:38
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::domain::entities::{Layer, SliceStack, Vector};
[INFO] [stdout]   |                                      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::domain::value_objects::Color`
[INFO] [stdout]  --> src/application/ports/config_port.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::domain::value_objects::Color;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `VectorType`
[INFO] [stdout]  --> src/application/dto/layer_dto.rs:5:38
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::domain::entities::{Layer, VectorType};
[INFO] [stdout]   |                                      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `layer_dto::*`
[INFO] [stdout]  --> src/application/dto/mod.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub use layer_dto::*;
[INFO] [stdout]   |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `warn`
[INFO] [stdout]   --> src/infrastructure/file_adapters/cli_parser.rs:19:31
[INFO] [stdout]    |
[INFO] [stdout] 19 | use log::{debug, info, trace, warn};
[INFO] [stdout]    |                               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `debug`
[INFO] [stdout]   --> src/infrastructure/rendering/gl_renderer.rs:13:11
[INFO] [stdout]    |
[INFO] [stdout] 13 | use log::{debug, info};
[INFO] [stdout]    |           ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `log::info`
[INFO] [stdout]  --> src/infrastructure/rendering/line_batch.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use log::info;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `warn`
[INFO] [stdout]  --> src/infrastructure/config/mod.rs:8:24
[INFO] [stdout]   |
[INFO] [stdout] 8 | use log::{debug, info, warn};
[INFO] [stdout]   |                        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Color`
[INFO] [stdout]   --> src/presentation/app.rs:19:46
[INFO] [stdout]    |
[INFO] [stdout] 19 | use crate::domain::value_objects::{Bounds2D, Color, Point2D};
[INFO] [stdout]    |                                              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SnapshotFormat`
[INFO] [stdout]   --> src/presentation/app.rs:26:23
[INFO] [stdout]    |
[INFO] [stdout] 26 |     RulerMeasurement, SnapshotFormat,
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `debug`
[INFO] [stdout]   --> src/presentation/window.rs:24:11
[INFO] [stdout]    |
[INFO] [stdout] 24 | use log::{debug, info};
[INFO] [stdout]    |           ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Rounding`
[INFO] [stdout]  --> src/presentation/components/popups.rs:7:31
[INFO] [stdout]   |
[INFO] [stdout] 7 | use egui::{Context, RichText, Rounding};
[INFO] [stdout]   |                               ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `layout::TOOLBAR_HEIGHT`
[INFO] [stdout]   --> src/presentation/mod.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub use layout::TOOLBAR_HEIGHT;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BufRead`
[INFO] [stdout]   --> src/infrastructure/file_adapters/cli_parser.rs:22:15
[INFO] [stdout]    |
[INFO] [stdout] 22 | use std::io::{BufRead, BufReader, Read};
[INFO] [stdout]    |               ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BufRead`
[INFO] [stdout]   --> src/infrastructure/file_adapters/cli_parser.rs:22:15
[INFO] [stdout]    |
[INFO] [stdout] 22 | use std::io::{BufRead, BufReader, Read};
[INFO] [stdout]    |               ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tool_state`
[INFO] [stdout]     --> src/presentation/app.rs:1241:5
[INFO] [stdout]      |
[INFO] [stdout] 1241 |     tool_state: &crate::presentation::ToolState,
[INFO] [stdout]      |     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tool_state`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/presentation/components/tool_panel.rs:59:29
[INFO] [stdout]    |
[INFO] [stdout] 59 |                         let mut tool_btn = |ui: &mut egui::Ui,
[INFO] [stdout]    |                             ----^^^^^^^^
[INFO] [stdout]    |                             |
[INFO] [stdout]    |                             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tool_mode`
[INFO] [stdout]   --> src/presentation/components/tool_panel.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 28 |     tool_mode: &mut ToolMode,
[INFO] [stdout]    |     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tool_mode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ruler_start`
[INFO] [stdout]   --> src/presentation/components/tool_panel.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 29 |     ruler_start: &mut Option<crate::domain::value_objects::Point2D>,
[INFO] [stdout]    |     ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ruler_start`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ruler_end`
[INFO] [stdout]   --> src/presentation/components/tool_panel.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 30 |     ruler_end: &mut Option<crate::domain::value_objects::Point2D>,
[INFO] [stdout]    |     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ruler_end`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `LoadingState` is more private than the item `AppState::loading_state`
[INFO] [stdout]   --> src/presentation/app.rs:55:5
[INFO] [stdout]    |
[INFO] [stdout] 55 |     pub loading_state: Arc<Mutex<LoadingState>>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ field `AppState::loading_state` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `LoadingState` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/presentation/app.rs:33:1
[INFO] [stdout]    |
[INFO] [stdout] 33 | enum LoadingState {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `BaseContour`, `DepthContour`, `CoincidingContour`, `Support`, and `Travel` are never constructed
[INFO] [stdout]   --> src/domain/entities/vector.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub enum VectorType {
[INFO] [stdout]    |          ---------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 15 |     BaseContour,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 16 |     /// Depth contour for variable depth regions
[INFO] [stdout] 17 |     DepthContour,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 18 |     /// Coinciding contour (overlapping regions)
[INFO] [stdout] 19 |     CoincidingContour,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 23 |     Support,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 24 |     /// Travel move (non-printing)
[INFO] [stdout] 25 |     Travel,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `VectorType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `is_closed`, `ring_index`, and `part_id` are never read
[INFO] [stdout]   --> src/domain/entities/vector.rs:44:9
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct Vector {
[INFO] [stdout]    |            ------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub is_closed: bool,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 48 |     pub ring_index: Option<u32>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 49 |     /// Part ID this vector belongs to
[INFO] [stdout] 50 |     pub part_id: Option<String>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Vector` 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: fields `overhang_angle`, `depth`, and `hit_angle` are never read
[INFO] [stdout]    --> src/domain/entities/vector.rs:144:9
[INFO] [stdout]     |
[INFO] [stdout] 136 | pub struct VectorParameters {
[INFO] [stdout]     |            ---------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 144 |     pub overhang_angle: Option<f32>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] 145 |     /// Depth for variable depth processing
[INFO] [stdout] 146 |     pub depth: Option<f32>,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 147 |     /// Surface hit angle in degrees
[INFO] [stdout] 148 |     pub hit_angle: Option<f32>,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `VectorParameters` 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 `wait_times` is never read
[INFO] [stdout]   --> src/domain/entities/layer.rs:16:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct LayerParameters {
[INFO] [stdout]    |            --------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 16 |     pub wait_times: Vec<(u32, u32)>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `LayerParameters` 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: fields `thickness` and `part_id` are never read
[INFO] [stdout]   --> src/domain/entities/layer.rs:27:9
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct Layer {
[INFO] [stdout]    |            ----- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 27 |     pub thickness: f32,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 31 |     pub part_id: Option<String>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Layer` 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 `with_vectors`, `get_vectors_by_type`, `boundaries`, `contours`, `hatches`, and `depth_contours` are never used
[INFO] [stdout]   --> src/domain/entities/layer.rs:50:12
[INFO] [stdout]    |
[INFO] [stdout] 36 | impl Layer {
[INFO] [stdout]    | ---------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 50 |     pub fn with_vectors(index: usize, z_height: f32, vectors: Vec<Vector>) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 67 |     pub fn get_vectors_by_type(&self, vector_type: VectorType) -> Vec<&Vector> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 75 |     pub fn boundaries(&self) -> Vec<&Vector> {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 80 |     pub fn contours(&self) -> Vec<&Vector> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 85 |     pub fn hatches(&self) -> Vec<&Vector> {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 90 |     pub fn depth_contours(&self) -> Vec<&Vector> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `z_min`, `z_max`, and `build_height` are never read
[INFO] [stdout]   --> src/domain/entities/slice_stack.rs:18:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct SliceStackStats {
[INFO] [stdout]    |            --------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 18 |     pub z_min: f32,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 19 |     /// Maximum Z height
[INFO] [stdout] 20 |     pub z_max: f32,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 21 |     /// Build height (z_max - z_min)
[INFO] [stdout] 22 |     pub build_height: f32,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SliceStackStats` 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: fields `name`, `platform_bounds`, and `units` are never read
[INFO] [stdout]   --> src/domain/entities/slice_stack.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub struct SliceStack {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] 28 |     /// Name/identifier for this slice stack
[INFO] [stdout] 29 |     pub name: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 35 |     pub platform_bounds: Option<(Point2D, Point2D)>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 36 |     /// Unit of measurement (typically "mm")
[INFO] [stdout] 37 |     pub units: String,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SliceStack` 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 `add_layer`, `get_layer_mut`, `is_empty`, and `get_layer_by_z` are never used
[INFO] [stdout]   --> src/domain/entities/slice_stack.rs:64:12
[INFO] [stdout]    |
[INFO] [stdout] 40 | impl SliceStack {
[INFO] [stdout]    | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 64 |     pub fn add_layer(&mut self, layer: Layer) {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 74 |     pub fn get_layer_mut(&mut self, index: usize) -> Option<&mut Layer> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 84 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 94 |     pub fn get_layer_by_z(&self, z: f32) -> Option<&Layer> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `created`, `generator`, `material`, and `machine` are never read
[INFO] [stdout]   --> src/domain/entities/toolpath.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct ToolpathMetadata {
[INFO] [stdout]    |            ---------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 14 |     pub created: Option<String>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 15 |     /// Software that generated the file
[INFO] [stdout] 16 |     pub generator: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 17 |     /// Material information
[INFO] [stdout] 18 |     pub material: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 19 |     /// Machine/printer name
[INFO] [stdout] 20 |     pub machine: Option<String>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ToolpathMetadata` 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 `parts` is never read
[INFO] [stdout]   --> src/domain/entities/toolpath.rs:33:9
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub struct Toolpath {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub parts: Vec<String>,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Toolpath` 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 `layer_count` and `is_empty` are never used
[INFO] [stdout]   --> src/domain/entities/toolpath.rs:56:12
[INFO] [stdout]    |
[INFO] [stdout] 36 | impl Toolpath {
[INFO] [stdout]    | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 56 |     pub fn layer_count(&self) -> usize {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 61 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `distance_squared`, `lerp`, and `to_array` are never used
[INFO] [stdout]   --> src/domain/value_objects/point.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl Point2D {
[INFO] [stdout]    | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 31 |     pub fn distance_squared(&self, other: &Point2D) -> f32 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub fn lerp(&self, other: &Point2D, t: f32) -> Point2D {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 46 |     pub fn to_array(&self) -> [f32; 2] {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Point3D` is never constructed
[INFO] [stdout]   --> src/domain/value_objects/point.rs:65:12
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub struct Point3D {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `zero`, `distance_to`, `to_2d`, and `to_array` are never used
[INFO] [stdout]   --> src/domain/value_objects/point.rs:73:18
[INFO] [stdout]    |
[INFO] [stdout] 71 | impl Point3D {
[INFO] [stdout]    | ------------ associated items in this implementation
[INFO] [stdout] 72 |     /// Create a new 3D point
[INFO] [stdout] 73 |     pub const fn new(x: f32, y: f32, z: f32) -> Self {
[INFO] [stdout]    |                  ^^^
[INFO] [stdout] ...
[INFO] [stdout] 78 |     pub const fn zero() -> Self {
[INFO] [stdout]    |                  ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 83 |     pub fn distance_to(&self, other: &Point3D) -> f32 {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 91 |     pub fn to_2d(&self) -> Point2D {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 96 |     pub fn to_array(&self) -> [f32; 3] {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/domain/value_objects/color.rs:46:12
[INFO] [stdout]     |
[INFO] [stdout]  14 | impl Color {
[INFO] [stdout]     | ---------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  46 |     pub fn from_rgb_bytes(r: u8, g: u8, b: u8) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  51 |     pub fn from_rgba_bytes(r: u8, g: u8, b: u8, a: u8) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  61 |     pub fn to_hex(&self) -> String {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  76 |     pub fn to_rgb_array(&self) -> [f32; 3] {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  81 |     pub fn blend(&self, other: &Color, t: f32) -> Color {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  96 |     pub fn heat_gradient(t: f32) -> Color {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 149 |     pub const BLACK: Color = Color::rgb(0.0, 0.0, 0.0);
[INFO] [stdout]     |               ^^^^^
[INFO] [stdout] 150 |     pub const RED: Color = Color::rgb(1.0, 0.0, 0.0);
[INFO] [stdout]     |               ^^^
[INFO] [stdout] 151 |     pub const GREEN: Color = Color::rgb(0.0, 1.0, 0.0);
[INFO] [stdout] 152 |     pub const BLUE: Color = Color::rgb(0.0, 0.0, 1.0);
[INFO] [stdout]     |               ^^^^
[INFO] [stdout] 153 |     pub const YELLOW: Color = Color::rgb(1.0, 1.0, 0.0);
[INFO] [stdout]     |               ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 157 |     pub const TRANSPARENT: Color = Color::new(0.0, 0.0, 0.0, 0.0);
[INFO] [stdout]     |               ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from_coords`, `is_valid`, `include`, `union`, `contains`, and `pad` are never used
[INFO] [stdout]   --> src/domain/value_objects/bounds.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl Bounds2D {
[INFO] [stdout]    | ------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 21 |     pub fn from_coords(min_x: f32, min_y: f32, max_x: f32, max_y: f32) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub fn is_valid(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 60 |     pub fn include(&mut self, point: &Point2D) {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 68 |     pub fn union(&self, other: &Bounds2D) -> Bounds2D {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 82 |     pub fn contains(&self, point: &Point2D) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 90 |     pub fn pad(&self, padding: f32) -> Bounds2D {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Bounds3D` is never constructed
[INFO] [stdout]    --> src/domain/value_objects/bounds.rs:106:12
[INFO] [stdout]     |
[INFO] [stdout] 106 | pub struct Bounds3D {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `empty`, `to_2d`, and `depth` are never used
[INFO] [stdout]    --> src/domain/value_objects/bounds.rs:113:12
[INFO] [stdout]     |
[INFO] [stdout] 111 | impl Bounds3D {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] 112 |     /// Create a new bounding box
[INFO] [stdout] 113 |     pub fn new(min: Point3D, max: Point3D) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 118 |     pub fn empty() -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 126 |     pub fn to_2d(&self) -> Bounds2D {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 134 |     pub fn depth(&self) -> f32 {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `signed_polygon_area` is never used
[INFO] [stdout]   --> src/domain/services/geometry.rs:36:8
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub fn signed_polygon_area(points: &[Point2D]) -> f32 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `polygon_area` is never used
[INFO] [stdout]   --> src/domain/services/geometry.rs:54:8
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub fn polygon_area(points: &[Point2D]) -> f32 {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_counter_clockwise` is never used
[INFO] [stdout]   --> src/domain/services/geometry.rs:59:8
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub fn is_counter_clockwise(points: &[Point2D]) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `polygon_centroid` is never used
[INFO] [stdout]   --> src/domain/services/geometry.rs:64:8
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub fn polygon_centroid(points: &[Point2D]) -> Option<Point2D> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `simplify_polyline` is never used
[INFO] [stdout]   --> src/domain/services/geometry.rs:77:8
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub fn simplify_polyline(points: &[Point2D], epsilon: f32) -> Vec<Point2D> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_bounds` is never used
[INFO] [stdout]    --> src/domain/services/geometry.rs:163:8
[INFO] [stdout]     |
[INFO] [stdout] 163 | pub fn calculate_bounds(points: &[Point2D]) -> Option<(Point2D, Point2D)> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `InvalidFormat` is never constructed
[INFO] [stdout]   --> src/application/ports/file_port.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub enum FileError {
[INFO] [stdout]    |          --------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 19 |     InvalidFormat(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `FileError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `FileSaver` is never used
[INFO] [stdout]   --> src/application/ports/file_port.rs:59:11
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub trait FileSaver: Send + Sync {
[INFO] [stdout]    |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `OpenGLError` and `BufferError` are never constructed
[INFO] [stdout]   --> src/application/ports/renderer_port.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub enum RenderError {
[INFO] [stdout]    |          ----------- variants in this enum
[INFO] [stdout] 12 |     #[error("OpenGL error: {0}")]
[INFO] [stdout] 13 |     OpenGLError(String),
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 19 |     BufferError(String),
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `RenderError` 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 `rotation` is never read
[INFO] [stdout]    --> src/application/ports/renderer_port.rs:246:9
[INFO] [stdout]     |
[INFO] [stdout] 240 | pub struct ViewState {
[INFO] [stdout]     |            --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 246 |     pub rotation: f32,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ViewState` 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 `render_vector` and `viewport_size` are never used
[INFO] [stdout]    --> src/application/ports/renderer_port.rs:353:8
[INFO] [stdout]     |
[INFO] [stdout] 328 | pub trait Renderer: Send {
[INFO] [stdout]     |           -------- methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 353 |     fn render_vector(
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 361 |     fn viewport_size(&self) -> (u32, u32);
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `BatchRenderer` is never used
[INFO] [stdout]    --> src/application/ports/renderer_port.rs:365:11
[INFO] [stdout]     |
[INFO] [stdout] 365 | pub trait BatchRenderer: Renderer {
[INFO] [stdout]     |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `NotFound` and `SerializationError` are never constructed
[INFO] [stdout]   --> src/application/ports/config_port.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub enum ConfigError {
[INFO] [stdout]    |          ----------- variants in this enum
[INFO] [stdout] 12 |     #[error("Config file not found: {0}")]
[INFO] [stdout] 13 |     NotFound(String),
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 22 |     SerializationError(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ConfigError` 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 `save` and `default_config` are never used
[INFO] [stdout]    --> src/application/ports/config_port.rs:139:8
[INFO] [stdout]     |
[INFO] [stdout] 134 | pub trait ConfigManager: Send + Sync {
[INFO] [stdout]     |           ------------- methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 139 |     fn save(&self, config: &AppConfig) -> ConfigResult<()>;
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 142 |     fn default_config(&self) -> AppConfig {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `supported_extensions` is never used
[INFO] [stdout]   --> src/application/use_cases/load_toolpath.rs:43:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl LoadToolpathUseCase {
[INFO] [stdout]    | ------------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub fn supported_extensions(&self) -> Vec<&str> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `go_to_z` is never used
[INFO] [stdout]    --> src/application/use_cases/navigate_layers.rs:106:12
[INFO] [stdout]     |
[INFO] [stdout]  36 | impl NavigateLayersUseCase {
[INFO] [stdout]     | -------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 106 |     pub fn go_to_z(&mut self, z: f32) -> bool {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `color_scheme` is never read
[INFO] [stdout]   --> src/application/use_cases/render_view.rs:56:9
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub struct RenderViewUseCase {
[INFO] [stdout]    |            ----------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 56 |     pub color_scheme: ColorScheme,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `fit_to_layer`, `render_layer`, `render_vector`, and `reset_view` are never used
[INFO] [stdout]    --> src/application/use_cases/render_view.rs:78:12
[INFO] [stdout]     |
[INFO] [stdout]  59 | impl RenderViewUseCase {
[INFO] [stdout]     | ---------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  78 |     pub fn fit_to_layer(&mut self, layer: &Layer, viewport_width: f32, viewport_height: f32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  86 |     pub fn render_layer<R: Renderer>(
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  95 |     pub fn render_vector<R: Renderer>(
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 137 |     pub fn reset_view(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `DepthContours` is never constructed
[INFO] [stdout]    --> src/application/use_cases/render_view.rs:164:5
[INFO] [stdout]     |
[INFO] [stdout] 161 | pub enum DisplayOption {
[INFO] [stdout]     |          ------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 164 |     DepthContours,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `DisplayOption` 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: struct `LayerSummary` is never constructed
[INFO] [stdout]  --> src/application/dto/layer_dto.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct LayerSummary {
[INFO] [stdout]   |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ToolpathStats` is never constructed
[INFO] [stdout]   --> src/application/dto/layer_dto.rs:35:12
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub struct ToolpathStats {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `finalize` is never used
[INFO] [stdout]    --> src/infrastructure/file_adapters/cli_parser.rs:702:8
[INFO] [stdout]     |
[INFO] [stdout] 238 | impl CliParserState {
[INFO] [stdout]     | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 702 |     fn finalize(mut self) -> FileResult<Toolpath> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `with_scale` is never used
[INFO] [stdout]   --> src/infrastructure/file_adapters/ilt_loader.rs:47:12
[INFO] [stdout]    |
[INFO] [stdout] 38 | impl IltLoader {
[INFO] [stdout]    | -------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 47 |     pub fn with_scale(scale: f32) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CliLoader` is never constructed
[INFO] [stdout]    --> src/infrastructure/file_adapters/ilt_loader.rs:333:12
[INFO] [stdout]     |
[INFO] [stdout] 333 | pub struct CliLoader;
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/infrastructure/file_adapters/ilt_loader.rs:337:12
[INFO] [stdout]     |
[INFO] [stdout] 335 | impl CliLoader {
[INFO] [stdout]     | -------------- associated function in this implementation
[INFO] [stdout] 336 |     /// Create a new CLI loader
[INFO] [stdout] 337 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_color_scheme` and `set_view_offset_x` are never used
[INFO] [stdout]    --> src/infrastructure/rendering/gl_renderer.rs:190:12
[INFO] [stdout]     |
[INFO] [stdout] 165 | impl GlRenderer {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 190 |     pub fn set_color_scheme(&mut self, scheme: ColorScheme) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 195 |     pub fn set_view_offset_x(&mut self, offset: f32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_vec4` and `set_float` are never used
[INFO] [stdout]   --> src/infrastructure/rendering/shader.rs:79:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl ShaderProgram {
[INFO] [stdout]    | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 79 |     pub fn set_vec4(&self, name: &str, x: f32, y: f32, z: f32, w: f32) {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 87 |     pub fn set_float(&self, name: &str, value: f32) {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SIMPLE_VERTEX_SHADER` is never used
[INFO] [stdout]    --> src/infrastructure/rendering/shader.rs:168:11
[INFO] [stdout]     |
[INFO] [stdout] 168 | pub const SIMPLE_VERTEX_SHADER: &str = r#"
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SIMPLE_FRAGMENT_SHADER` is never used
[INFO] [stdout]    --> src/infrastructure/rendering/shader.rs:182:11
[INFO] [stdout]     |
[INFO] [stdout] 182 | pub const SIMPLE_FRAGMENT_SHADER: &str = r#"
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/infrastructure/rendering/line_batch.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl LineVertex {
[INFO] [stdout]    | --------------- associated function in this implementation
[INFO] [stdout] 21 |     pub fn new(x: f32, y: f32, color: &Color) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `segment_count` is never used
[INFO] [stdout]    --> src/infrastructure/rendering/line_batch.rs:257:12
[INFO] [stdout]     |
[INFO] [stdout]  53 | impl LineBatch {
[INFO] [stdout]     | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 257 |     pub fn segment_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `with_path`, `config_dir`, and `ensure_dir` are never used
[INFO] [stdout]   --> src/infrastructure/config/mod.rs:28:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl JsonConfigManager {
[INFO] [stdout]    | ---------------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub fn with_path(path: PathBuf) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub fn config_dir(&self) -> PathBuf {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |     fn ensure_dir(&self) -> ConfigResult<()> {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AppContext` is never constructed
[INFO] [stdout]   --> src/presentation/app.rs:74:12
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub struct AppContext {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `x` and `y` are never read
[INFO] [stdout]   --> src/presentation/window.rs:57:17
[INFO] [stdout]    |
[INFO] [stdout] 57 |     MouseMove { x: f32, y: f32 },
[INFO] [stdout]    |     ---------   ^       ^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     fields in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `AppEvent` 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 `any_mouse_pressed` and `is_dragging` are never used
[INFO] [stdout]    --> src/presentation/input.rs:126:12
[INFO] [stdout]     |
[INFO] [stdout] 105 | impl InputState {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 126 |     pub fn any_mouse_pressed(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 131 |     pub fn is_dragging(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TOOL_BTN_SIZE` is never used
[INFO] [stdout]   --> src/presentation/layout.rs:33:11
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub const TOOL_BTN_SIZE: f32 = 28.0;
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TOOL_ICON_SIZE` is never used
[INFO] [stdout]   --> src/presentation/layout.rs:36:11
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub const TOOL_ICON_SIZE: f32 = 14.0;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TOOL_PANEL_HEIGHT` is never used
[INFO] [stdout]   --> src/presentation/layout.rs:39:11
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub const TOOL_PANEL_HEIGHT: f32 = 44.0;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SCALE_BAR_RESERVE` is never used
[INFO] [stdout]   --> src/presentation/layout.rs:45:11
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub const SCALE_BAR_RESERVE: f32 = 48.0;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `show_file_info`, `show_controls`, and `show_grid` are never read
[INFO] [stdout]   --> src/presentation/layout.rs:71:9
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub struct VisibilityFlags {
[INFO] [stdout]    |            --------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 71 |     pub show_file_info: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 72 |     /// Whether controls popup is open
[INFO] [stdout] 73 |     pub show_controls: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 74 |     /// Whether the grid is enabled (affects grid label overlay)
[INFO] [stdout] 75 |     pub show_grid: bool,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `VisibilityFlags` 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: fields `screen`, `scale_bar`, and `viewport` are never read
[INFO] [stdout]    --> src/presentation/layout.rs:89:9
[INFO] [stdout]     |
[INFO] [stdout]  87 | pub struct LayoutRegions {
[INFO] [stdout]     |            ------------- fields in this struct
[INFO] [stdout]  88 |     /// Full screen rect
[INFO] [stdout]  89 |     pub screen: Rect,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 110 |     pub scale_bar: Option<Rect>,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 113 |     pub viewport: Rect,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `LayoutRegions` 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 `top` is never read
[INFO] [stdout]    --> src/presentation/layout.rs:122:9
[INFO] [stdout]     |
[INFO] [stdout] 118 | pub struct ToolPanelRegion {
[INFO] [stdout]     |            --------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 122 |     pub top: f32,
[INFO] [stdout]     |         ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ToolPanelRegion` 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: fields `filter_min` and `filter_max` are never read
[INFO] [stdout]   --> src/presentation/components/gradient_scale.rs:18:9
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct GradientOutput {
[INFO] [stdout]    |            -------------- fields in this struct
[INFO] [stdout] 18 |     pub filter_min: f32,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 19 |     pub filter_max: f32,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GradientOutput` 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 `snapshot_format` is never read
[INFO] [stdout]   --> src/presentation/ui.rs:71:9
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub struct ToolState {
[INFO] [stdout]    |            --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 71 |     pub snapshot_format: SnapshotFormat,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ToolState` 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: variant `Svg` is never constructed
[INFO] [stdout]   --> src/presentation/ui.rs:95:5
[INFO] [stdout]    |
[INFO] [stdout] 93 | pub enum SnapshotFormat {
[INFO] [stdout]    |          -------------- variant in this enum
[INFO] [stdout] 94 |     Png,
[INFO] [stdout] 95 |     Svg,
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SnapshotFormat` 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: fields `vector_view_enabled`, `vector_index`, and `vector_view_playing` are never read
[INFO] [stdout]    --> src/presentation/ui.rs:151:9
[INFO] [stdout]     |
[INFO] [stdout] 121 | pub struct UiOutput {
[INFO] [stdout]     |            -------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 151 |     pub vector_view_enabled: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 152 |     /// Current vector index (0-based) when vector view is active
[INFO] [stdout] 153 |     pub vector_index: usize,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] 154 |     /// Whether vector playback is active
[INFO] [stdout] 155 |     pub vector_view_playing: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `UiOutput` 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: fields `show_wait_markers` and `layer_jump_value` are never read
[INFO] [stdout]    --> src/presentation/ui.rs:191:9
[INFO] [stdout]     |
[INFO] [stdout] 178 | pub struct UiState {
[INFO] [stdout]     |            ------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 191 |     pub show_wait_markers: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 209 |     pub layer_jump_value: String,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `logo_texture` is never read
[INFO] [stdout]    --> src/presentation/ui.rs:291:5
[INFO] [stdout]     |
[INFO] [stdout] 283 | pub struct UiRenderer {
[INFO] [stdout]     |            ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 291 |     logo_texture: Option<egui::TextureHandle>,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `destroy` is never used
[INFO] [stdout]    --> src/presentation/ui.rs:714:12
[INFO] [stdout]     |
[INFO] [stdout] 294 | impl UiRenderer {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 714 |     pub fn destroy(&mut self) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tool_state`
[INFO] [stdout]     --> src/presentation/app.rs:1241:5
[INFO] [stdout]      |
[INFO] [stdout] 1241 |     tool_state: &crate::presentation::ToolState,
[INFO] [stdout]      |     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tool_state`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/presentation/components/tool_panel.rs:59:29
[INFO] [stdout]    |
[INFO] [stdout] 59 |                         let mut tool_btn = |ui: &mut egui::Ui,
[INFO] [stdout]    |                             ----^^^^^^^^
[INFO] [stdout]    |                             |
[INFO] [stdout]    |                             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tool_mode`
[INFO] [stdout]   --> src/presentation/components/tool_panel.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 28 |     tool_mode: &mut ToolMode,
[INFO] [stdout]    |     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tool_mode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ruler_start`
[INFO] [stdout]   --> src/presentation/components/tool_panel.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 29 |     ruler_start: &mut Option<crate::domain::value_objects::Point2D>,
[INFO] [stdout]    |     ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ruler_start`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ruler_end`
[INFO] [stdout]   --> src/presentation/components/tool_panel.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 30 |     ruler_end: &mut Option<crate::domain::value_objects::Point2D>,
[INFO] [stdout]    |     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ruler_end`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `LoadingState` is more private than the item `AppState::loading_state`
[INFO] [stdout]   --> src/presentation/app.rs:55:5
[INFO] [stdout]    |
[INFO] [stdout] 55 |     pub loading_state: Arc<Mutex<LoadingState>>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ field `AppState::loading_state` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `LoadingState` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/presentation/app.rs:33:1
[INFO] [stdout]    |
[INFO] [stdout] 33 | enum LoadingState {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `BaseContour`, `DepthContour`, `CoincidingContour`, `Support`, and `Travel` are never constructed
[INFO] [stdout]   --> src/domain/entities/vector.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub enum VectorType {
[INFO] [stdout]    |          ---------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 15 |     BaseContour,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 16 |     /// Depth contour for variable depth regions
[INFO] [stdout] 17 |     DepthContour,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 18 |     /// Coinciding contour (overlapping regions)
[INFO] [stdout] 19 |     CoincidingContour,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 23 |     Support,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 24 |     /// Travel move (non-printing)
[INFO] [stdout] 25 |     Travel,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `VectorType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `ring_index` and `part_id` are never read
[INFO] [stdout]   --> src/domain/entities/vector.rs:48:9
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct Vector {
[INFO] [stdout]    |            ------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 48 |     pub ring_index: Option<u32>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 49 |     /// Part ID this vector belongs to
[INFO] [stdout] 50 |     pub part_id: Option<String>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Vector` 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: fields `overhang_angle`, `depth`, and `hit_angle` are never read
[INFO] [stdout]    --> src/domain/entities/vector.rs:144:9
[INFO] [stdout]     |
[INFO] [stdout] 136 | pub struct VectorParameters {
[INFO] [stdout]     |            ---------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 144 |     pub overhang_angle: Option<f32>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] 145 |     /// Depth for variable depth processing
[INFO] [stdout] 146 |     pub depth: Option<f32>,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 147 |     /// Surface hit angle in degrees
[INFO] [stdout] 148 |     pub hit_angle: Option<f32>,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `VectorParameters` 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 `wait_times` is never read
[INFO] [stdout]   --> src/domain/entities/layer.rs:16:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct LayerParameters {
[INFO] [stdout]    |            --------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 16 |     pub wait_times: Vec<(u32, u32)>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `LayerParameters` 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: fields `thickness` and `part_id` are never read
[INFO] [stdout]   --> src/domain/entities/layer.rs:27:9
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct Layer {
[INFO] [stdout]    |            ----- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 27 |     pub thickness: f32,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 31 |     pub part_id: Option<String>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Layer` 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 `with_vectors`, `boundaries`, `contours`, and `depth_contours` are never used
[INFO] [stdout]   --> src/domain/entities/layer.rs:50:12
[INFO] [stdout]    |
[INFO] [stdout] 36 | impl Layer {
[INFO] [stdout]    | ---------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 50 |     pub fn with_vectors(index: usize, z_height: f32, vectors: Vec<Vector>) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 75 |     pub fn boundaries(&self) -> Vec<&Vector> {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 80 |     pub fn contours(&self) -> Vec<&Vector> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 90 |     pub fn depth_contours(&self) -> Vec<&Vector> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `build_height` is never read
[INFO] [stdout]   --> src/domain/entities/slice_stack.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct SliceStackStats {
[INFO] [stdout]    |            --------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub build_height: f32,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SliceStackStats` 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: fields `name`, `platform_bounds`, and `units` are never read
[INFO] [stdout]   --> src/domain/entities/slice_stack.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub struct SliceStack {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] 28 |     /// Name/identifier for this slice stack
[INFO] [stdout] 29 |     pub name: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 35 |     pub platform_bounds: Option<(Point2D, Point2D)>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 36 |     /// Unit of measurement (typically "mm")
[INFO] [stdout] 37 |     pub units: String,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SliceStack` 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 `get_layer_mut`, `is_empty`, and `get_layer_by_z` are never used
[INFO] [stdout]   --> src/domain/entities/slice_stack.rs:74:12
[INFO] [stdout]    |
[INFO] [stdout] 40 | impl SliceStack {
[INFO] [stdout]    | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 74 |     pub fn get_layer_mut(&mut self, index: usize) -> Option<&mut Layer> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 84 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 94 |     pub fn get_layer_by_z(&self, z: f32) -> Option<&Layer> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `created`, `generator`, `material`, and `machine` are never read
[INFO] [stdout]   --> src/domain/entities/toolpath.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct ToolpathMetadata {
[INFO] [stdout]    |            ---------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 14 |     pub created: Option<String>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 15 |     /// Software that generated the file
[INFO] [stdout] 16 |     pub generator: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 17 |     /// Material information
[INFO] [stdout] 18 |     pub material: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 19 |     /// Machine/printer name
[INFO] [stdout] 20 |     pub machine: Option<String>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ToolpathMetadata` 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 `parts` is never read
[INFO] [stdout]   --> src/domain/entities/toolpath.rs:33:9
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub struct Toolpath {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub parts: Vec<String>,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Toolpath` 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 `layer_count` and `is_empty` are never used
[INFO] [stdout]   --> src/domain/entities/toolpath.rs:56:12
[INFO] [stdout]    |
[INFO] [stdout] 36 | impl Toolpath {
[INFO] [stdout]    | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 56 |     pub fn layer_count(&self) -> usize {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 61 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `distance_squared` and `to_array` are never used
[INFO] [stdout]   --> src/domain/value_objects/point.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl Point2D {
[INFO] [stdout]    | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 31 |     pub fn distance_squared(&self, other: &Point2D) -> f32 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 46 |     pub fn to_array(&self) -> [f32; 2] {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Point3D` is never constructed
[INFO] [stdout]   --> src/domain/value_objects/point.rs:65:12
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub struct Point3D {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `zero`, `distance_to`, `to_2d`, and `to_array` are never used
[INFO] [stdout]   --> src/domain/value_objects/point.rs:73:18
[INFO] [stdout]    |
[INFO] [stdout] 71 | impl Point3D {
[INFO] [stdout]    | ------------ associated items in this implementation
[INFO] [stdout] 72 |     /// Create a new 3D point
[INFO] [stdout] 73 |     pub const fn new(x: f32, y: f32, z: f32) -> Self {
[INFO] [stdout]    |                  ^^^
[INFO] [stdout] ...
[INFO] [stdout] 78 |     pub const fn zero() -> Self {
[INFO] [stdout]    |                  ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 83 |     pub fn distance_to(&self, other: &Point3D) -> f32 {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 91 |     pub fn to_2d(&self) -> Point2D {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 96 |     pub fn to_array(&self) -> [f32; 3] {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/domain/value_objects/color.rs:46:12
[INFO] [stdout]     |
[INFO] [stdout]  14 | impl Color {
[INFO] [stdout]     | ---------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  46 |     pub fn from_rgb_bytes(r: u8, g: u8, b: u8) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  51 |     pub fn from_rgba_bytes(r: u8, g: u8, b: u8, a: u8) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  76 |     pub fn to_rgb_array(&self) -> [f32; 3] {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  81 |     pub fn blend(&self, other: &Color, t: f32) -> Color {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  96 |     pub fn heat_gradient(t: f32) -> Color {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 149 |     pub const BLACK: Color = Color::rgb(0.0, 0.0, 0.0);
[INFO] [stdout]     |               ^^^^^
[INFO] [stdout] 150 |     pub const RED: Color = Color::rgb(1.0, 0.0, 0.0);
[INFO] [stdout]     |               ^^^
[INFO] [stdout] 151 |     pub const GREEN: Color = Color::rgb(0.0, 1.0, 0.0);
[INFO] [stdout] 152 |     pub const BLUE: Color = Color::rgb(0.0, 0.0, 1.0);
[INFO] [stdout]     |               ^^^^
[INFO] [stdout] 153 |     pub const YELLOW: Color = Color::rgb(1.0, 1.0, 0.0);
[INFO] [stdout]     |               ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 157 |     pub const TRANSPARENT: Color = Color::new(0.0, 0.0, 0.0, 0.0);
[INFO] [stdout]     |               ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from_coords`, `is_valid`, `include`, `union`, `contains`, and `pad` are never used
[INFO] [stdout]   --> src/domain/value_objects/bounds.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl Bounds2D {
[INFO] [stdout]    | ------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 21 |     pub fn from_coords(min_x: f32, min_y: f32, max_x: f32, max_y: f32) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub fn is_valid(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 60 |     pub fn include(&mut self, point: &Point2D) {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 68 |     pub fn union(&self, other: &Bounds2D) -> Bounds2D {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 82 |     pub fn contains(&self, point: &Point2D) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 90 |     pub fn pad(&self, padding: f32) -> Bounds2D {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Bounds3D` is never constructed
[INFO] [stdout]    --> src/domain/value_objects/bounds.rs:106:12
[INFO] [stdout]     |
[INFO] [stdout] 106 | pub struct Bounds3D {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `empty`, `to_2d`, and `depth` are never used
[INFO] [stdout]    --> src/domain/value_objects/bounds.rs:113:12
[INFO] [stdout]     |
[INFO] [stdout] 111 | impl Bounds3D {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] 112 |     /// Create a new bounding box
[INFO] [stdout] 113 |     pub fn new(min: Point3D, max: Point3D) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 118 |     pub fn empty() -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 126 |     pub fn to_2d(&self) -> Bounds2D {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 134 |     pub fn depth(&self) -> f32 {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_counter_clockwise` is never used
[INFO] [stdout]   --> src/domain/services/geometry.rs:59:8
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub fn is_counter_clockwise(points: &[Point2D]) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `polygon_centroid` is never used
[INFO] [stdout]   --> src/domain/services/geometry.rs:64:8
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub fn polygon_centroid(points: &[Point2D]) -> Option<Point2D> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `simplify_polyline` is never used
[INFO] [stdout]   --> src/domain/services/geometry.rs:77:8
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub fn simplify_polyline(points: &[Point2D], epsilon: f32) -> Vec<Point2D> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_bounds` is never used
[INFO] [stdout]    --> src/domain/services/geometry.rs:163:8
[INFO] [stdout]     |
[INFO] [stdout] 163 | pub fn calculate_bounds(points: &[Point2D]) -> Option<(Point2D, Point2D)> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `InvalidFormat` is never constructed
[INFO] [stdout]   --> src/application/ports/file_port.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub enum FileError {
[INFO] [stdout]    |          --------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 19 |     InvalidFormat(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `FileError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `FileSaver` is never used
[INFO] [stdout]   --> src/application/ports/file_port.rs:59:11
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub trait FileSaver: Send + Sync {
[INFO] [stdout]    |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `OpenGLError` and `BufferError` are never constructed
[INFO] [stdout]   --> src/application/ports/renderer_port.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub enum RenderError {
[INFO] [stdout]    |          ----------- variants in this enum
[INFO] [stdout] 12 |     #[error("OpenGL error: {0}")]
[INFO] [stdout] 13 |     OpenGLError(String),
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 19 |     BufferError(String),
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `RenderError` 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 `rotation` is never read
[INFO] [stdout]    --> src/application/ports/renderer_port.rs:246:9
[INFO] [stdout]     |
[INFO] [stdout] 240 | pub struct ViewState {
[INFO] [stdout]     |            --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 246 |     pub rotation: f32,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ViewState` 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 `render_vector` and `viewport_size` are never used
[INFO] [stdout]    --> src/application/ports/renderer_port.rs:353:8
[INFO] [stdout]     |
[INFO] [stdout] 328 | pub trait Renderer: Send {
[INFO] [stdout]     |           -------- methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 353 |     fn render_vector(
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 361 |     fn viewport_size(&self) -> (u32, u32);
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `BatchRenderer` is never used
[INFO] [stdout]    --> src/application/ports/renderer_port.rs:365:11
[INFO] [stdout]     |
[INFO] [stdout] 365 | pub trait BatchRenderer: Renderer {
[INFO] [stdout]     |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `NotFound` and `SerializationError` are never constructed
[INFO] [stdout]   --> src/application/ports/config_port.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub enum ConfigError {
[INFO] [stdout]    |          ----------- variants in this enum
[INFO] [stdout] 12 |     #[error("Config file not found: {0}")]
[INFO] [stdout] 13 |     NotFound(String),
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 22 |     SerializationError(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ConfigError` 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 `save` is never used
[INFO] [stdout]    --> src/application/ports/config_port.rs:139:8
[INFO] [stdout]     |
[INFO] [stdout] 134 | pub trait ConfigManager: Send + Sync {
[INFO] [stdout]     |           ------------- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 139 |     fn save(&self, config: &AppConfig) -> ConfigResult<()>;
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `supported_extensions` is never used
[INFO] [stdout]   --> src/application/use_cases/load_toolpath.rs:43:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl LoadToolpathUseCase {
[INFO] [stdout]    | ------------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub fn supported_extensions(&self) -> Vec<&str> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `go_to_z` is never used
[INFO] [stdout]    --> src/application/use_cases/navigate_layers.rs:106:12
[INFO] [stdout]     |
[INFO] [stdout]  36 | impl NavigateLayersUseCase {
[INFO] [stdout]     | -------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 106 |     pub fn go_to_z(&mut self, z: f32) -> bool {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `color_scheme` is never read
[INFO] [stdout]   --> src/application/use_cases/render_view.rs:56:9
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub struct RenderViewUseCase {
[INFO] [stdout]    |            ----------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 56 |     pub color_scheme: ColorScheme,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `fit_to_layer`, `render_layer`, `render_vector`, and `reset_view` are never used
[INFO] [stdout]    --> src/application/use_cases/render_view.rs:78:12
[INFO] [stdout]     |
[INFO] [stdout]  59 | impl RenderViewUseCase {
[INFO] [stdout]     | ---------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  78 |     pub fn fit_to_layer(&mut self, layer: &Layer, viewport_width: f32, viewport_height: f32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  86 |     pub fn render_layer<R: Renderer>(
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  95 |     pub fn render_vector<R: Renderer>(
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 137 |     pub fn reset_view(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `DepthContours` is never constructed
[INFO] [stdout]    --> src/application/use_cases/render_view.rs:164:5
[INFO] [stdout]     |
[INFO] [stdout] 161 | pub enum DisplayOption {
[INFO] [stdout]     |          ------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 164 |     DepthContours,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `DisplayOption` 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: struct `LayerSummary` is never constructed
[INFO] [stdout]  --> src/application/dto/layer_dto.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct LayerSummary {
[INFO] [stdout]   |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ToolpathStats` is never constructed
[INFO] [stdout]   --> src/application/dto/layer_dto.rs:35:12
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub struct ToolpathStats {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `finalize` is never used
[INFO] [stdout]    --> src/infrastructure/file_adapters/cli_parser.rs:702:8
[INFO] [stdout]     |
[INFO] [stdout] 238 | impl CliParserState {
[INFO] [stdout]     | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 702 |     fn finalize(mut self) -> FileResult<Toolpath> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `with_scale` is never used
[INFO] [stdout]   --> src/infrastructure/file_adapters/ilt_loader.rs:47:12
[INFO] [stdout]    |
[INFO] [stdout] 38 | impl IltLoader {
[INFO] [stdout]    | -------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 47 |     pub fn with_scale(scale: f32) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CliLoader` is never constructed
[INFO] [stdout]    --> src/infrastructure/file_adapters/ilt_loader.rs:333:12
[INFO] [stdout]     |
[INFO] [stdout] 333 | pub struct CliLoader;
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/infrastructure/file_adapters/ilt_loader.rs:337:12
[INFO] [stdout]     |
[INFO] [stdout] 335 | impl CliLoader {
[INFO] [stdout]     | -------------- associated function in this implementation
[INFO] [stdout] 336 |     /// Create a new CLI loader
[INFO] [stdout] 337 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_color_scheme` and `set_view_offset_x` are never used
[INFO] [stdout]    --> src/infrastructure/rendering/gl_renderer.rs:190:12
[INFO] [stdout]     |
[INFO] [stdout] 165 | impl GlRenderer {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 190 |     pub fn set_color_scheme(&mut self, scheme: ColorScheme) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 195 |     pub fn set_view_offset_x(&mut self, offset: f32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_vec4` and `set_float` are never used
[INFO] [stdout]   --> src/infrastructure/rendering/shader.rs:79:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl ShaderProgram {
[INFO] [stdout]    | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 79 |     pub fn set_vec4(&self, name: &str, x: f32, y: f32, z: f32, w: f32) {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 87 |     pub fn set_float(&self, name: &str, value: f32) {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SIMPLE_VERTEX_SHADER` is never used
[INFO] [stdout]    --> src/infrastructure/rendering/shader.rs:168:11
[INFO] [stdout]     |
[INFO] [stdout] 168 | pub const SIMPLE_VERTEX_SHADER: &str = r#"
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SIMPLE_FRAGMENT_SHADER` is never used
[INFO] [stdout]    --> src/infrastructure/rendering/shader.rs:182:11
[INFO] [stdout]     |
[INFO] [stdout] 182 | pub const SIMPLE_FRAGMENT_SHADER: &str = r#"
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/infrastructure/rendering/line_batch.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl LineVertex {
[INFO] [stdout]    | --------------- associated function in this implementation
[INFO] [stdout] 21 |     pub fn new(x: f32, y: f32, color: &Color) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `segment_count` is never used
[INFO] [stdout]    --> src/infrastructure/rendering/line_batch.rs:257:12
[INFO] [stdout]     |
[INFO] [stdout]  53 | impl LineBatch {
[INFO] [stdout]     | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 257 |     pub fn segment_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `with_path`, `config_dir`, and `ensure_dir` are never used
[INFO] [stdout]   --> src/infrastructure/config/mod.rs:28:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl JsonConfigManager {
[INFO] [stdout]    | ---------------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub fn with_path(path: PathBuf) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub fn config_dir(&self) -> PathBuf {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |     fn ensure_dir(&self) -> ConfigResult<()> {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AppContext` is never constructed
[INFO] [stdout]   --> src/presentation/app.rs:74:12
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub struct AppContext {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `x` and `y` are never read
[INFO] [stdout]   --> src/presentation/window.rs:57:17
[INFO] [stdout]    |
[INFO] [stdout] 57 |     MouseMove { x: f32, y: f32 },
[INFO] [stdout]    |     ---------   ^       ^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     fields in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `AppEvent` 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 `any_mouse_pressed` and `is_dragging` are never used
[INFO] [stdout]    --> src/presentation/input.rs:126:12
[INFO] [stdout]     |
[INFO] [stdout] 105 | impl InputState {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 126 |     pub fn any_mouse_pressed(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 131 |     pub fn is_dragging(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TOOL_BTN_SIZE` is never used
[INFO] [stdout]   --> src/presentation/layout.rs:33:11
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub const TOOL_BTN_SIZE: f32 = 28.0;
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TOOL_ICON_SIZE` is never used
[INFO] [stdout]   --> src/presentation/layout.rs:36:11
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub const TOOL_ICON_SIZE: f32 = 14.0;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TOOL_PANEL_HEIGHT` is never used
[INFO] [stdout]   --> src/presentation/layout.rs:39:11
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub const TOOL_PANEL_HEIGHT: f32 = 44.0;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SCALE_BAR_RESERVE` is never used
[INFO] [stdout]   --> src/presentation/layout.rs:45:11
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub const SCALE_BAR_RESERVE: f32 = 48.0;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `show_file_info`, `show_controls`, and `show_grid` are never read
[INFO] [stdout]   --> src/presentation/layout.rs:71:9
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub struct VisibilityFlags {
[INFO] [stdout]    |            --------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 71 |     pub show_file_info: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 72 |     /// Whether controls popup is open
[INFO] [stdout] 73 |     pub show_controls: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 74 |     /// Whether the grid is enabled (affects grid label overlay)
[INFO] [stdout] 75 |     pub show_grid: bool,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `VisibilityFlags` 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: fields `screen`, `scale_bar`, and `viewport` are never read
[INFO] [stdout]    --> src/presentation/layout.rs:89:9
[INFO] [stdout]     |
[INFO] [stdout]  87 | pub struct LayoutRegions {
[INFO] [stdout]     |            ------------- fields in this struct
[INFO] [stdout]  88 |     /// Full screen rect
[INFO] [stdout]  89 |     pub screen: Rect,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 110 |     pub scale_bar: Option<Rect>,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 113 |     pub viewport: Rect,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `LayoutRegions` 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 `top` is never read
[INFO] [stdout]    --> src/presentation/layout.rs:122:9
[INFO] [stdout]     |
[INFO] [stdout] 118 | pub struct ToolPanelRegion {
[INFO] [stdout]     |            --------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 122 |     pub top: f32,
[INFO] [stdout]     |         ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ToolPanelRegion` 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: fields `filter_min` and `filter_max` are never read
[INFO] [stdout]   --> src/presentation/components/gradient_scale.rs:18:9
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct GradientOutput {
[INFO] [stdout]    |            -------------- fields in this struct
[INFO] [stdout] 18 |     pub filter_min: f32,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 19 |     pub filter_max: f32,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GradientOutput` 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 `snapshot_format` is never read
[INFO] [stdout]   --> src/presentation/ui.rs:71:9
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub struct ToolState {
[INFO] [stdout]    |            --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 71 |     pub snapshot_format: SnapshotFormat,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ToolState` 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: variant `Svg` is never constructed
[INFO] [stdout]   --> src/presentation/ui.rs:95:5
[INFO] [stdout]    |
[INFO] [stdout] 93 | pub enum SnapshotFormat {
[INFO] [stdout]    |          -------------- variant in this enum
[INFO] [stdout] 94 |     Png,
[INFO] [stdout] 95 |     Svg,
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SnapshotFormat` 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: fields `vector_view_enabled`, `vector_index`, and `vector_view_playing` are never read
[INFO] [stdout]    --> src/presentation/ui.rs:151:9
[INFO] [stdout]     |
[INFO] [stdout] 121 | pub struct UiOutput {
[INFO] [stdout]     |            -------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 151 |     pub vector_view_enabled: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 152 |     /// Current vector index (0-based) when vector view is active
[INFO] [stdout] 153 |     pub vector_index: usize,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] 154 |     /// Whether vector playback is active
[INFO] [stdout] 155 |     pub vector_view_playing: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `UiOutput` 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: fields `show_wait_markers` and `layer_jump_value` are never read
[INFO] [stdout]    --> src/presentation/ui.rs:191:9
[INFO] [stdout]     |
[INFO] [stdout] 178 | pub struct UiState {
[INFO] [stdout]     |            ------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 191 |     pub show_wait_markers: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 209 |     pub layer_jump_value: String,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `logo_texture` is never read
[INFO] [stdout]    --> src/presentation/ui.rs:291:5
[INFO] [stdout]     |
[INFO] [stdout] 283 | pub struct UiRenderer {
[INFO] [stdout]     |            ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 291 |     logo_texture: Option<egui::TextureHandle>,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `destroy` is never used
[INFO] [stdout]    --> src/presentation/ui.rs:714:12
[INFO] [stdout]     |
[INFO] [stdout] 294 | impl UiRenderer {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 714 |     pub fn destroy(&mut self) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 34s
[INFO] running `Command { std: "docker" "inspect" "d78ce918c42bc29ad89bf88eba64e27914ab0b720e7dd7bffe4707337e0d6e9f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d78ce918c42bc29ad89bf88eba64e27914ab0b720e7dd7bffe4707337e0d6e9f", kill_on_drop: false }`
[INFO] [stdout] d78ce918c42bc29ad89bf88eba64e27914ab0b720e7dd7bffe4707337e0d6e9f
