[INFO] cloning repository https://github.com/ramsesyok/defsim
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/ramsesyok/defsim" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Framsesyok%2Fdefsim", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Framsesyok%2Fdefsim'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 679f0136c7aa14f6bb4e583f2b717f046d668a81
[INFO] checking ramsesyok/defsim/679f0136c7aa14f6bb4e583f2b717f046d668a81 against master#292be5c7c05138d753bbd4b30db7a3f1a5c914f7 for pr-148271
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Framsesyok%2Fdefsim" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/ramsesyok/defsim
[INFO] finished tweaking git repo https://github.com/ramsesyok/defsim
[INFO] tweaked toml for git repo https://github.com/ramsesyok/defsim written to /workspace/builds/worker-0-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/ramsesyok/defsim on toolchain 292be5c7c05138d753bbd4b30db7a3f1a5c914f7
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+292be5c7c05138d753bbd4b30db7a3f1a5c914f7" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/ramsesyok/defsim 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" "+292be5c7c05138d753bbd4b30db7a3f1a5c914f7" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+292be5c7c05138d753bbd4b30db7a3f1a5c914f7" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] caa9f684e65ab464012da399ef5ca2e5298748787fe6caf7fe8c1771a8e22edc
[INFO] running `Command { std: "docker" "start" "-a" "caa9f684e65ab464012da399ef5ca2e5298748787fe6caf7fe8c1771a8e22edc", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "caa9f684e65ab464012da399ef5ca2e5298748787fe6caf7fe8c1771a8e22edc", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "caa9f684e65ab464012da399ef5ca2e5298748787fe6caf7fe8c1771a8e22edc", kill_on_drop: false }`
[INFO] [stdout] caa9f684e65ab464012da399ef5ca2e5298748787fe6caf7fe8c1771a8e22edc
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+292be5c7c05138d753bbd4b30db7a3f1a5c914f7" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 40d56b99e29a87d8d785df429bef408ea05554b5f65390ce7df9d8bea38b0e68
[INFO] running `Command { std: "docker" "start" "-a" "40d56b99e29a87d8d785df429bef408ea05554b5f65390ce7df9d8bea38b0e68", kill_on_drop: false }`
[INFO] [stderr]    Compiling serde_json v1.0.143
[INFO] [stderr]     Checking regex-syntax v0.8.5
[INFO] [stderr]    Compiling syn v2.0.106
[INFO] [stderr]     Checking thread_local v1.1.9
[INFO] [stderr]     Checking tracing-log v0.2.0
[INFO] [stderr]     Checking hashbrown v0.15.5
[INFO] [stderr]     Checking clap_builder v4.5.44
[INFO] [stderr]     Checking time v0.3.41
[INFO] [stderr]     Checking tokio v1.47.1
[INFO] [stderr]     Checking indexmap v2.11.0
[INFO] [stderr]     Checking regex-automata v0.4.9
[INFO] [stderr]     Checking regex v1.11.1
[INFO] [stderr]    Compiling serde_derive v1.0.219
[INFO] [stderr]    Compiling tracing-attributes v0.1.30
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling clap_derive v4.5.45
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking tracing v0.1.41
[INFO] [stderr]     Checking clap v4.5.45
[INFO] [stderr]     Checking serde v1.0.219
[INFO] [stderr]     Checking tracing-serde v0.2.0
[INFO] [stderr]     Checking serde_yaml v0.9.34+deprecated
[INFO] [stderr]     Checking tracing-subscriber v0.3.19
[INFO] [stderr]     Checking tracing-appender v0.2.3
[INFO] [stderr]     Checking defsim v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `HashMap`
[INFO] [stdout]  --> src/models/sensor.rs:1:33
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::{HashSet, HashMap};
[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 imports: `error` and `trace`
[INFO] [stdout]  --> src/models/missile.rs:5:27
[INFO] [stdout]   |
[INFO] [stdout] 5 | use tracing::{info, warn, error, debug, trace};
[INFO] [stdout]   |                           ^^^^^         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `TargetPriority`
[INFO] [stdout]   --> src/models/mod.rs:50:37
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub use command_post::{CommandPost, TargetPriority};
[INFO] [stdout]    |                                     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DetectionEventType`, `DetectionEvent`, `DetectionStats`, and `SensorNetwork`
[INFO] [stdout]   --> src/models/mod.rs:51:26
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub use sensor::{Sensor, SensorNetwork, DetectionEvent, DetectionEventType, DetectionStats};
[INFO] [stdout]    |                          ^^^^^^^^^^^^^  ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BatteryStats`, `LaunchRecord`, `LaunchStats`, and `LauncherBattery`
[INFO] [stdout]   --> src/models/mod.rs:52:30
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub use launcher::{Launcher, LauncherBattery, LaunchRecord, LaunchStats, BatteryStats};
[INFO] [stdout]    |                              ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Attitude3D`, `GuidancePhase`, and `MissileEndReason`
[INFO] [stdout]   --> src/models/mod.rs:53:28
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub use missile::{Missile, GuidancePhase, MissileEndReason, Attitude3D};
[INFO] [stdout]    |                            ^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `debug`, `error`, and `warn`
[INFO] [stdout]   --> src/scenario.rs:41:21
[INFO] [stdout]    |
[INFO] [stdout] 41 | use tracing::{info, warn, error, debug};
[INFO] [stdout]    |                     ^^^^  ^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `error` and `warn`
[INFO] [stdout]   --> src/simulation.rs:48:21
[INFO] [stdout]    |
[INFO] [stdout] 48 | use tracing::{info, warn, error, debug, trace};
[INFO] [stdout]    |                     ^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `trace` and `warn`
[INFO] [stdout]   --> src/main.rs:11:21
[INFO] [stdout]    |
[INFO] [stdout] 11 | use tracing::{info, warn, error, debug, trace};
[INFO] [stdout]    |                     ^^^^                ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashMap`
[INFO] [stdout]  --> src/models/sensor.rs:1:33
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::{HashSet, HashMap};
[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 imports: `error` and `trace`
[INFO] [stdout]  --> src/models/missile.rs:5:27
[INFO] [stdout]   |
[INFO] [stdout] 5 | use tracing::{info, warn, error, debug, trace};
[INFO] [stdout]   |                           ^^^^^         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `TargetPriority`
[INFO] [stdout]   --> src/models/mod.rs:50:37
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub use command_post::{CommandPost, TargetPriority};
[INFO] [stdout]    |                                     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DetectionEventType`, `DetectionEvent`, `DetectionStats`, and `SensorNetwork`
[INFO] [stdout]   --> src/models/mod.rs:51:26
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub use sensor::{Sensor, SensorNetwork, DetectionEvent, DetectionEventType, DetectionStats};
[INFO] [stdout]    |                          ^^^^^^^^^^^^^  ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BatteryStats`, `LaunchRecord`, `LaunchStats`, and `LauncherBattery`
[INFO] [stdout]   --> src/models/mod.rs:52:30
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub use launcher::{Launcher, LauncherBattery, LaunchRecord, LaunchStats, BatteryStats};
[INFO] [stdout]    |                              ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Attitude3D`, `GuidancePhase`, and `MissileEndReason`
[INFO] [stdout]   --> src/models/mod.rs:53:28
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub use missile::{Missile, GuidancePhase, MissileEndReason, Attitude3D};
[INFO] [stdout]    |                            ^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `debug`, `error`, and `warn`
[INFO] [stdout]   --> src/scenario.rs:41:21
[INFO] [stdout]    |
[INFO] [stdout] 41 | use tracing::{info, warn, error, debug};
[INFO] [stdout]    |                     ^^^^  ^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `error` and `warn`
[INFO] [stdout]   --> src/simulation.rs:48:21
[INFO] [stdout]    |
[INFO] [stdout] 48 | use tracing::{info, warn, error, debug, trace};
[INFO] [stdout]    |                     ^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `trace` and `warn`
[INFO] [stdout]   --> src/main.rs:11:21
[INFO] [stdout]    |
[INFO] [stdout] 11 | use tracing::{info, warn, error, debug, trace};
[INFO] [stdout]    |                     ^^^^                ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `angle_xy` is never used
[INFO] [stdout]   --> src/models/common.rs:80:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl Position3D {
[INFO] [stdout]    | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 80 |     pub fn angle_xy(&self) -> f64 {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `normalize` is never used
[INFO] [stdout]    --> src/models/common.rs:160:12
[INFO] [stdout]     |
[INFO] [stdout] 128 | impl Velocity3D {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 160 |     pub fn normalize(&self) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `AgentType` is never used
[INFO] [stdout]    --> src/models/common.rs:323:10
[INFO] [stdout]     |
[INFO] [stdout] 323 | pub enum AgentType {
[INFO] [stdout]     |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SimulationConstants` is never constructed
[INFO] [stdout]    --> src/models/common.rs:339:12
[INFO] [stdout]     |
[INFO] [stdout] 339 | pub struct SimulationConstants {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `deg_to_rad` is never used
[INFO] [stdout]    --> src/models/common.rs:371:12
[INFO] [stdout]     |
[INFO] [stdout] 371 |     pub fn deg_to_rad(degrees: f64) -> f64 {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_position`, `get_velocity`, and `set_velocity` are never used
[INFO] [stdout]   --> src/models/traits.rs:60:8
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub trait IMovable {
[INFO] [stdout]    |           -------- methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 60 |     fn get_position(&self) -> Position3D;
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 67 |     fn get_velocity(&self) -> Velocity3D;
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81 |     fn set_velocity(&mut self, velocity: Velocity3D);
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `ISensor` is never used
[INFO] [stdout]   --> src/models/traits.rs:87:11
[INFO] [stdout]    |
[INFO] [stdout] 87 | pub trait ISensor {
[INFO] [stdout]    |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `launch`, `assign`, `get_remaining_missiles`, and `get_cooldown_remaining` are never used
[INFO] [stdout]    --> src/models/traits.rs:131:8
[INFO] [stdout]     |
[INFO] [stdout] 119 | pub trait IPlatform {
[INFO] [stdout]     |           --------- methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 131 |     fn launch(&mut self, target_id: String) -> Option<Box<dyn IAgent>>;
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 144 |     fn assign(&mut self, target_id: String) -> bool;
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 158 |     fn get_remaining_missiles(&self) -> u32;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 165 |     fn get_cooldown_remaining(&self) -> f64;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `IMissile` is never used
[INFO] [stdout]    --> src/models/traits.rs:171:11
[INFO] [stdout]     |
[INFO] [stdout] 171 | pub trait IMissile {
[INFO] [stdout]     |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_endgame_phase` is never used
[INFO] [stdout]    --> src/models/traits.rs:238:8
[INFO] [stdout]     |
[INFO] [stdout] 200 | pub trait ICollision {
[INFO] [stdout]     |           ---------- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 238 |     fn is_endgame_phase(&self, target_position: Position3D) -> bool;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `IAllocator` is never used
[INFO] [stdout]    --> src/models/traits.rs:245:11
[INFO] [stdout]     |
[INFO] [stdout] 245 | pub trait IAllocator {
[INFO] [stdout]     |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `arrival_radius` and `detected_targets` are never read
[INFO] [stdout]   --> src/models/command_post.rs:38:9
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub struct CommandPost {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub arrival_radius: f64,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 42 |     pub detected_targets: Vec<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CommandPost` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/models/command_post.rs:78:12
[INFO] [stdout]     |
[INFO] [stdout]  49 | impl CommandPost {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  78 |     pub fn receive_detections(&mut self, target_ids: Vec<String>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  90 |     pub fn calculate_target_priorities(&mut self, targets: &[Target]) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 134 |     fn calculate_tgo(&self, target: &Target) -> f64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 151 |     pub fn select_best_launcher(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 194 |     pub fn execute_assignments(&mut self, launchers: &mut [Box<dyn IPlatform>]) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 298 |     pub fn on_missile_destroyed(&mut self, missile_id: String) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 312 |     pub fn on_target_destroyed(&mut self, target_id: String) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `target_id`, `target_position`, `distance`, and `event_type` are never read
[INFO] [stdout]   --> src/models/sensor.rs:36:9
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub struct DetectionEvent {
[INFO] [stdout]    |            -------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub target_id: String,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 37 |     /// イベント発生時のターゲット位置
[INFO] [stdout] 38 |     pub target_position: Position3D,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 39 |     /// センサーからターゲットまでの距離（メートル）
[INFO] [stdout] 40 |     pub distance: f64,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 41 |     /// 検知イベントの種類
[INFO] [stdout] 42 |     pub event_type: DetectionEventType,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DetectionEvent` 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 `distance_to_target`, `get_recent_detections`, `get_detection_stats`, `clear_detection_history`, and `is_in_detection_range` are never used
[INFO] [stdout]    --> src/models/sensor.rs:164:12
[INFO] [stdout]     |
[INFO] [stdout]  58 | impl Sensor {
[INFO] [stdout]     | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 164 |     pub fn distance_to_target(&self, target: &Target) -> f64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 186 |     pub fn get_recent_detections(&self, count: usize) -> Vec<&DetectionEvent> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 201 |     pub fn get_detection_stats(&self) -> DetectionStats {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 224 |     pub fn clear_detection_history(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 249 |     pub fn is_in_detection_range(&self, position: Position3D) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DetectionStats` is never constructed
[INFO] [stdout]    --> src/models/sensor.rs:271:12
[INFO] [stdout]     |
[INFO] [stdout] 271 | pub struct DetectionStats {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SensorNetwork` is never constructed
[INFO] [stdout]    --> src/models/sensor.rs:363:12
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct SensorNetwork {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `add_sensor`, `network_detect`, `get_network_stats`, and `get_sensors_covering_area` are never used
[INFO] [stdout]    --> src/models/sensor.rs:376:12
[INFO] [stdout]     |
[INFO] [stdout] 370 | impl SensorNetwork {
[INFO] [stdout]     | ------------------ associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 376 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 388 |     pub fn add_sensor(&mut self, sensor: Sensor) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 405 |     pub fn network_detect(&mut self, targets: &[Target], current_time: f64) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 435 |     pub fn get_network_stats(&self) -> Vec<(String, DetectionStats)> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 455 |     pub fn get_sensors_covering_area(&self, center: Position3D, radius: f64) -> Vec<&Sensor> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `timestamp`, `missile_id`, `target_id`, and `launch_position` are never read
[INFO] [stdout]   --> src/models/launcher.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct LaunchRecord {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout] 13 |     /// 発射時刻（シミュレーション開始からの経過秒数）
[INFO] [stdout] 14 |     pub timestamp: f64,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 15 |     /// 発射されたミサイルのID
[INFO] [stdout] 16 |     pub missile_id: String,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 17 |     /// ターゲットのID
[INFO] [stdout] 18 |     pub target_id: String,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 19 |     /// 発射位置
[INFO] [stdout] 20 |     pub launch_position: Position3D,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `LaunchRecord` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/models/launcher.rs:106:12
[INFO] [stdout]     |
[INFO] [stdout]  62 | impl Launcher {
[INFO] [stdout]     | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 106 |     pub fn fire_missile(&mut self, target_id: String, current_time: f64) -> Option<Missile> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 165 |     pub fn clear_queue(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 176 |     pub fn remove_target_from_queue(&mut self, target_id: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 187 |     pub fn reload(&mut self, count: u32) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 195 |     pub fn reload_full(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 249 |     pub fn get_launch_stats(&self) -> LaunchStats {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 276 |     pub fn get_recent_launches(&self, count: usize) -> Vec<&LaunchRecord> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 297 |     pub fn calculate_efficiency(&self, time_elapsed: f64) -> f64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 317 |     pub fn get_position(&self) -> Position3D {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 332 |     pub fn distance_to_target(&self, target_position: Position3D) -> f64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LaunchStats` is never constructed
[INFO] [stdout]    --> src/models/launcher.rs:341:12
[INFO] [stdout]     |
[INFO] [stdout] 341 | pub struct LaunchStats {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LauncherBattery` is never constructed
[INFO] [stdout]    --> src/models/launcher.rs:467:12
[INFO] [stdout]     |
[INFO] [stdout] 467 | pub struct LauncherBattery {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `add_launcher`, `total_available_missiles`, `ready_launchers_count`, `select_best_launcher`, and `get_battery_stats` are never used
[INFO] [stdout]    --> src/models/launcher.rs:487:12
[INFO] [stdout]     |
[INFO] [stdout] 476 | impl LauncherBattery {
[INFO] [stdout]     | -------------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 487 |     pub fn new(id: String, battery_position: Position3D) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 500 |     pub fn add_launcher(&mut self, launcher: Launcher) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 509 |     pub fn total_available_missiles(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 518 |     pub fn ready_launchers_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 534 |     pub fn select_best_launcher(&self, target_position: Position3D) -> Option<usize> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 567 |     pub fn get_battery_stats(&self) -> BatteryStats {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BatteryStats` is never constructed
[INFO] [stdout]    --> src/models/launcher.rs:588:12
[INFO] [stdout]     |
[INFO] [stdout] 588 | pub struct BatteryStats {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TargetLost` is never constructed
[INFO] [stdout]   --> src/models/missile.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub enum MissileEndReason {
[INFO] [stdout]    |          ---------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 30 |     TargetLost,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MissileEndReason` 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 `roll` is never read
[INFO] [stdout]   --> src/models/missile.rs:96:9
[INFO] [stdout]    |
[INFO] [stdout] 90 | pub struct Attitude3D {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 96 |     pub roll: f64,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Attitude3D` 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 `seed` is never read
[INFO] [stdout]   --> src/simulation.rs:54:9
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub struct SimulationEngine {
[INFO] [stdout]    |            ---------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 54 |     pub seed: u64,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `launcher_id` and `priority` are never read
[INFO] [stdout]    --> src/simulation.rs:346:9
[INFO] [stdout]     |
[INFO] [stdout] 345 | pub struct MissileAssignment {
[INFO] [stdout]     |            ----------------- fields in this struct
[INFO] [stdout] 346 |     pub launcher_id: String,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 347 |     pub target_id: String,
[INFO] [stdout] 348 |     pub priority: f64,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `angle_xy` is never used
[INFO] [stdout]   --> src/models/common.rs:80:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl Position3D {
[INFO] [stdout]    | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 80 |     pub fn angle_xy(&self) -> f64 {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `normalize` is never used
[INFO] [stdout]    --> src/models/common.rs:160:12
[INFO] [stdout]     |
[INFO] [stdout] 128 | impl Velocity3D {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 160 |     pub fn normalize(&self) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `AgentType` is never used
[INFO] [stdout]    --> src/models/common.rs:323:10
[INFO] [stdout]     |
[INFO] [stdout] 323 | pub enum AgentType {
[INFO] [stdout]     |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SimulationConstants` is never constructed
[INFO] [stdout]    --> src/models/common.rs:339:12
[INFO] [stdout]     |
[INFO] [stdout] 339 | pub struct SimulationConstants {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `deg_to_rad` is never used
[INFO] [stdout]    --> src/models/common.rs:371:12
[INFO] [stdout]     |
[INFO] [stdout] 371 |     pub fn deg_to_rad(degrees: f64) -> f64 {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_position`, `get_velocity`, and `set_velocity` are never used
[INFO] [stdout]   --> src/models/traits.rs:60:8
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub trait IMovable {
[INFO] [stdout]    |           -------- methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 60 |     fn get_position(&self) -> Position3D;
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 67 |     fn get_velocity(&self) -> Velocity3D;
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81 |     fn set_velocity(&mut self, velocity: Velocity3D);
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `ISensor` is never used
[INFO] [stdout]   --> src/models/traits.rs:87:11
[INFO] [stdout]    |
[INFO] [stdout] 87 | pub trait ISensor {
[INFO] [stdout]    |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `launch`, `assign`, `get_remaining_missiles`, and `get_cooldown_remaining` are never used
[INFO] [stdout]    --> src/models/traits.rs:131:8
[INFO] [stdout]     |
[INFO] [stdout] 119 | pub trait IPlatform {
[INFO] [stdout]     |           --------- methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 131 |     fn launch(&mut self, target_id: String) -> Option<Box<dyn IAgent>>;
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 144 |     fn assign(&mut self, target_id: String) -> bool;
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 158 |     fn get_remaining_missiles(&self) -> u32;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 165 |     fn get_cooldown_remaining(&self) -> f64;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `IMissile` is never used
[INFO] [stdout]    --> src/models/traits.rs:171:11
[INFO] [stdout]     |
[INFO] [stdout] 171 | pub trait IMissile {
[INFO] [stdout]     |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_endgame_phase` is never used
[INFO] [stdout]    --> src/models/traits.rs:238:8
[INFO] [stdout]     |
[INFO] [stdout] 200 | pub trait ICollision {
[INFO] [stdout]     |           ---------- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 238 |     fn is_endgame_phase(&self, target_position: Position3D) -> bool;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `IAllocator` is never used
[INFO] [stdout]    --> src/models/traits.rs:245:11
[INFO] [stdout]     |
[INFO] [stdout] 245 | pub trait IAllocator {
[INFO] [stdout]     |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `arrival_radius` and `detected_targets` are never read
[INFO] [stdout]   --> src/models/command_post.rs:38:9
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub struct CommandPost {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub arrival_radius: f64,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 42 |     pub detected_targets: Vec<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CommandPost` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/models/command_post.rs:78:12
[INFO] [stdout]     |
[INFO] [stdout]  49 | impl CommandPost {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  78 |     pub fn receive_detections(&mut self, target_ids: Vec<String>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  90 |     pub fn calculate_target_priorities(&mut self, targets: &[Target]) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 134 |     fn calculate_tgo(&self, target: &Target) -> f64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 151 |     pub fn select_best_launcher(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 194 |     pub fn execute_assignments(&mut self, launchers: &mut [Box<dyn IPlatform>]) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 298 |     pub fn on_missile_destroyed(&mut self, missile_id: String) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 312 |     pub fn on_target_destroyed(&mut self, target_id: String) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `target_id`, `target_position`, `distance`, and `event_type` are never read
[INFO] [stdout]   --> src/models/sensor.rs:36:9
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub struct DetectionEvent {
[INFO] [stdout]    |            -------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub target_id: String,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 37 |     /// イベント発生時のターゲット位置
[INFO] [stdout] 38 |     pub target_position: Position3D,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 39 |     /// センサーからターゲットまでの距離（メートル）
[INFO] [stdout] 40 |     pub distance: f64,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 41 |     /// 検知イベントの種類
[INFO] [stdout] 42 |     pub event_type: DetectionEventType,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DetectionEvent` 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 `distance_to_target`, `get_recent_detections`, `get_detection_stats`, `clear_detection_history`, and `is_in_detection_range` are never used
[INFO] [stdout]    --> src/models/sensor.rs:164:12
[INFO] [stdout]     |
[INFO] [stdout]  58 | impl Sensor {
[INFO] [stdout]     | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 164 |     pub fn distance_to_target(&self, target: &Target) -> f64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 186 |     pub fn get_recent_detections(&self, count: usize) -> Vec<&DetectionEvent> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 201 |     pub fn get_detection_stats(&self) -> DetectionStats {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 224 |     pub fn clear_detection_history(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 249 |     pub fn is_in_detection_range(&self, position: Position3D) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DetectionStats` is never constructed
[INFO] [stdout]    --> src/models/sensor.rs:271:12
[INFO] [stdout]     |
[INFO] [stdout] 271 | pub struct DetectionStats {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SensorNetwork` is never constructed
[INFO] [stdout]    --> src/models/sensor.rs:363:12
[INFO] [stdout]     |
[INFO] [stdout] 363 | pub struct SensorNetwork {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `add_sensor`, `network_detect`, `get_network_stats`, and `get_sensors_covering_area` are never used
[INFO] [stdout]    --> src/models/sensor.rs:376:12
[INFO] [stdout]     |
[INFO] [stdout] 370 | impl SensorNetwork {
[INFO] [stdout]     | ------------------ associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 376 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 388 |     pub fn add_sensor(&mut self, sensor: Sensor) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 405 |     pub fn network_detect(&mut self, targets: &[Target], current_time: f64) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 435 |     pub fn get_network_stats(&self) -> Vec<(String, DetectionStats)> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 455 |     pub fn get_sensors_covering_area(&self, center: Position3D, radius: f64) -> Vec<&Sensor> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `timestamp`, `missile_id`, `target_id`, and `launch_position` are never read
[INFO] [stdout]   --> src/models/launcher.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct LaunchRecord {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout] 13 |     /// 発射時刻（シミュレーション開始からの経過秒数）
[INFO] [stdout] 14 |     pub timestamp: f64,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 15 |     /// 発射されたミサイルのID
[INFO] [stdout] 16 |     pub missile_id: String,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 17 |     /// ターゲットのID
[INFO] [stdout] 18 |     pub target_id: String,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 19 |     /// 発射位置
[INFO] [stdout] 20 |     pub launch_position: Position3D,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `LaunchRecord` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/models/launcher.rs:106:12
[INFO] [stdout]     |
[INFO] [stdout]  62 | impl Launcher {
[INFO] [stdout]     | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 106 |     pub fn fire_missile(&mut self, target_id: String, current_time: f64) -> Option<Missile> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 165 |     pub fn clear_queue(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 176 |     pub fn remove_target_from_queue(&mut self, target_id: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 187 |     pub fn reload(&mut self, count: u32) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 195 |     pub fn reload_full(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 249 |     pub fn get_launch_stats(&self) -> LaunchStats {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 276 |     pub fn get_recent_launches(&self, count: usize) -> Vec<&LaunchRecord> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 297 |     pub fn calculate_efficiency(&self, time_elapsed: f64) -> f64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 317 |     pub fn get_position(&self) -> Position3D {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 332 |     pub fn distance_to_target(&self, target_position: Position3D) -> f64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LaunchStats` is never constructed
[INFO] [stdout]    --> src/models/launcher.rs:341:12
[INFO] [stdout]     |
[INFO] [stdout] 341 | pub struct LaunchStats {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LauncherBattery` is never constructed
[INFO] [stdout]    --> src/models/launcher.rs:467:12
[INFO] [stdout]     |
[INFO] [stdout] 467 | pub struct LauncherBattery {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `add_launcher`, `total_available_missiles`, `ready_launchers_count`, `select_best_launcher`, and `get_battery_stats` are never used
[INFO] [stdout]    --> src/models/launcher.rs:487:12
[INFO] [stdout]     |
[INFO] [stdout] 476 | impl LauncherBattery {
[INFO] [stdout]     | -------------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 487 |     pub fn new(id: String, battery_position: Position3D) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 500 |     pub fn add_launcher(&mut self, launcher: Launcher) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 509 |     pub fn total_available_missiles(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 518 |     pub fn ready_launchers_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 534 |     pub fn select_best_launcher(&self, target_position: Position3D) -> Option<usize> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 567 |     pub fn get_battery_stats(&self) -> BatteryStats {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BatteryStats` is never constructed
[INFO] [stdout]    --> src/models/launcher.rs:588:12
[INFO] [stdout]     |
[INFO] [stdout] 588 | pub struct BatteryStats {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TargetLost` is never constructed
[INFO] [stdout]   --> src/models/missile.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub enum MissileEndReason {
[INFO] [stdout]    |          ---------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 30 |     TargetLost,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MissileEndReason` 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 `roll` is never read
[INFO] [stdout]   --> src/models/missile.rs:96:9
[INFO] [stdout]    |
[INFO] [stdout] 90 | pub struct Attitude3D {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 96 |     pub roll: f64,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Attitude3D` 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 `seed` is never read
[INFO] [stdout]   --> src/simulation.rs:54:9
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub struct SimulationEngine {
[INFO] [stdout]    |            ---------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 54 |     pub seed: u64,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `launcher_id` and `priority` are never read
[INFO] [stdout]    --> src/simulation.rs:346:9
[INFO] [stdout]     |
[INFO] [stdout] 345 | pub struct MissileAssignment {
[INFO] [stdout]     |            ----------------- fields in this struct
[INFO] [stdout] 346 |     pub launcher_id: String,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 347 |     pub target_id: String,
[INFO] [stdout] 348 |     pub priority: f64,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 27.56s
[INFO] running `Command { std: "docker" "inspect" "40d56b99e29a87d8d785df429bef408ea05554b5f65390ce7df9d8bea38b0e68", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "40d56b99e29a87d8d785df429bef408ea05554b5f65390ce7df9d8bea38b0e68", kill_on_drop: false }`
[INFO] [stdout] 40d56b99e29a87d8d785df429bef408ea05554b5f65390ce7df9d8bea38b0e68
