[INFO] cloning repository https://github.com/Rubyy007/Rubix----Packet-Capzzzzz
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Rubyy007/Rubix----Packet-Capzzzzz" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FRubyy007%2FRubix----Packet-Capzzzzz", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FRubyy007%2FRubix----Packet-Capzzzzz'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 2d80b5a509bf6ed6a2c870fc9cb2b6c5899bf4ca
[INFO] checking Rubyy007/Rubix----Packet-Capzzzzz against eca445e5ae4a6679cc27d3a09106ce245e13a5a6 for pr-162478
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FRubyy007%2FRubix----Packet-Capzzzzz" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/Rubyy007/Rubix----Packet-Capzzzzz
[INFO] finished tweaking git repo https://github.com/Rubyy007/Rubix----Packet-Capzzzzz
[INFO] tweaked toml for git repo https://github.com/Rubyy007/Rubix----Packet-Capzzzzz written to /workspace/builds/worker-7-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Rubyy007/Rubix----Packet-Capzzzzz on toolchain eca445e5ae4a6679cc27d3a09106ce245e13a5a6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+eca445e5ae4a6679cc27d3a09106ce245e13a5a6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Rubyy007/Rubix----Packet-Capzzzzz already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+eca445e5ae4a6679cc27d3a09106ce245e13a5a6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded pcap v1.3.0
[INFO] [stderr]   Downloaded procfs v0.16.0
[INFO] [stderr]   Downloaded ipnetwork v0.20.0
[INFO] [stderr]   Downloaded openssl-sys v0.9.113
[INFO] [stderr]   Downloaded openssl v0.10.77
[INFO] [stderr]   Downloaded etherparse v0.15.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:8683fc1fc2eb5c9ac98e0d076ab094b2ffac7f99da555d2b6a2e27f346de2ec7" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 1dc0d111ff7458888814d1bb83e69b1c559b0ff351e5e600f7ddb499d252f9fb
[INFO] running `Command { std: "docker" "start" "1dc0d111ff7458888814d1bb83e69b1c559b0ff351e5e600f7ddb499d252f9fb", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "1dc0d111ff7458888814d1bb83e69b1c559b0ff351e5e600f7ddb499d252f9fb", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "1dc0d111ff7458888814d1bb83e69b1c559b0ff351e5e600f7ddb499d252f9fb" "/opt/rustwide/cargo-home/bin/cargo" "+eca445e5ae4a6679cc27d3a09106ce245e13a5a6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "1dc0d111ff7458888814d1bb83e69b1c559b0ff351e5e600f7ddb499d252f9fb", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "1dc0d111ff7458888814d1bb83e69b1c559b0ff351e5e600f7ddb499d252f9fb" "/opt/rustwide/cargo-home/bin/cargo" "+eca445e5ae4a6679cc27d3a09106ce245e13a5a6" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]     Checking errno v0.3.14
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]     Checking futures-channel v0.3.32
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]     Checking tracing v0.1.44
[INFO] [stderr]    Compiling tokio-macros v2.7.0
[INFO] [stderr]     Checking mio v1.2.0
[INFO] [stderr]     Checking signal-hook-registry v1.4.8
[INFO] [stderr]     Checking socket2 v0.6.3
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]     Checking typenum v1.20.0
[INFO] [stderr]     Checking regex-syntax v0.8.10
[INFO] [stderr]    Compiling libloading v0.6.7
[INFO] [stderr]     Checking futures-util v0.3.32
[INFO] [stderr]     Checking tokio v1.52.1
[INFO] [stderr]     Checking serde_json v1.0.149
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]     Checking mio v0.8.11
[INFO] [stderr]     Checking generic-array v0.14.7
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]     Checking event-listener v5.4.1
[INFO] [stderr]     Checking block-buffer v0.10.4
[INFO] [stderr]     Checking crypto-common v0.1.7
[INFO] [stderr]    Compiling nix v0.29.0
[INFO] [stderr]     Checking signal-hook v0.3.18
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]     Checking inotify-sys v0.1.5
[INFO] [stderr]    Compiling procfs v0.16.0
[INFO] [stderr]     Checking time v0.3.47
[INFO] [stderr]     Checking serde v1.0.228
[INFO] [stderr]     Checking matchers v0.2.0
[INFO] [stderr]     Checking clap_builder v4.6.0
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]     Checking tracing-serde v0.2.0
[INFO] [stderr]     Checking chrono v0.4.44
[INFO] [stderr]     Checking tracing-subscriber v0.3.23
[INFO] [stderr]     Checking thiserror v2.0.18
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking futures-executor v0.3.32
[INFO] [stderr]     Checking axum-core v0.4.5
[INFO] [stderr]    Compiling clap_derive v4.6.1
[INFO] [stderr]     Checking hyper v1.9.0
[INFO] [stderr]     Checking procfs-core v0.16.0
[INFO] [stderr]    Compiling pcap v1.3.0
[INFO] [stderr]     Checking tower v0.5.3
[INFO] [stderr]     Checking hyper-util v0.1.20
[INFO] [stderr]     Checking inotify v0.9.6
[INFO] [stderr]     Checking signal-hook-mio v0.2.5
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]     Checking event-listener-strategy v0.5.4
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]     Checking errno v0.2.8
[INFO] [stderr]     Checking serde_path_to_error v0.1.20
[INFO] [stderr]     Checking filetime v0.2.27
[INFO] [stderr]     Checking symlink v0.1.0
[INFO] [stderr]     Checking arrayvec v0.7.6
[INFO] [stderr]    Compiling rubix v1.0.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Checking dashmap v6.1.0
[INFO] [stderr]     Checking etherparse v0.15.0
[INFO] [stderr]     Checking tracing-appender v0.2.5
[INFO] [stderr]     Checking sha2 v0.10.9
[INFO] [stderr]     Checking serde_yaml v0.9.34+deprecated
[INFO] [stderr]     Checking clap v4.6.1
[INFO] [stderr]     Checking notify v6.1.1
[INFO] [stderr]     Checking crossterm v0.27.0
[INFO] [stderr]     Checking async-channel v2.5.0
[INFO] [stderr]     Checking futures v0.3.32
[INFO] [stderr]     Checking ipnetwork v0.20.0
[INFO] [stderr]     Checking tower-http v0.5.2
[INFO] [stderr]     Checking axum v0.7.9
[INFO] [stderr]     Checking getrandom v0.2.17
[INFO] [stderr]     Checking atty v0.2.14
[INFO] [stdout] warning: constant `DASHBOARD_LINES` is never used
[INFO] [stdout]   --> cli/main.rs:66:7
[INFO] [stdout]    |
[INFO] [stdout] 66 | const DASHBOARD_LINES: u16 = (4 + 2 + 5 + 1 + MAX_PROC_ROWS as u16 + 4 + 1
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tpad` is never used
[INFO] [stdout]    --> cli/main.rs:925:4
[INFO] [stdout]     |
[INFO] [stdout] 925 | fn tpad(s: &str, max: usize) -> String {
[INFO] [stdout]     |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DASHBOARD_LINES` is never used
[INFO] [stdout]   --> cli/main.rs:66:7
[INFO] [stdout]    |
[INFO] [stdout] 66 | const DASHBOARD_LINES: u16 = (4 + 2 + 5 + 1 + MAX_PROC_ROWS as u16 + 4 + 1
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tpad` is never used
[INFO] [stdout]    --> cli/main.rs:925:4
[INFO] [stdout]     |
[INFO] [stdout] 925 | fn tpad(s: &str, max: usize) -> String {
[INFO] [stdout]     |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `LiveStats` and `ProcStatSnapshot`
[INFO] [stdout]  --> src/types/mod.rs:9:17
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub use stats::{LiveStats, ProcStatSnapshot};
[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: `EngineStatsSnapshot`
[INFO] [stdout]  --> src/policy/mod.rs:8:44
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub use engine::{PolicyEngine, RuleAction, EngineStatsSnapshot};
[INFO] [stdout]   |                                            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `error`
[INFO] [stdout]   --> src/blocker/linux.rs:16:22
[INFO] [stdout]    |
[INFO] [stdout] 16 | use tracing::{debug, error, info, warn};
[INFO] [stdout]    |                      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `linux::LinuxBlocker`
[INFO] [stdout]   --> src/blocker/mod.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub use linux::LinuxBlocker;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CachedTimestamp`, `LoggingConfig`, and `RubixConfig`
[INFO] [stdout]   --> src/logger/mod.rs:12:30
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub use alert::{AlertLogger, CachedTimestamp, RubixConfig, LoggingConfig};
[INFO] [stdout]    |                              ^^^^^^^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `LiveStats` and `ProcStatSnapshot`
[INFO] [stdout]  --> src/types/mod.rs:9:17
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub use stats::{LiveStats, ProcStatSnapshot};
[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: `error`
[INFO] [stdout]   --> src/control/handler.rs:12:15
[INFO] [stdout]    |
[INFO] [stdout] 12 | use tracing::{error, info, warn};
[INFO] [stdout]    |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CommandResponse` and `Command`
[INFO] [stdout]   --> src/control/mod.rs:11:20
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use commands::{Command, CommandResponse};
[INFO] [stdout]    |                    ^^^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]   --> src/resolver/linux.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | use std::collections::HashMap;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `EngineStatsSnapshot`
[INFO] [stdout]  --> src/policy/mod.rs:8:44
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub use engine::{PolicyEngine, RuleAction, EngineStatsSnapshot};
[INFO] [stdout]   |                                            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `batch::BatchProcessor`
[INFO] [stdout]   --> src/export/mod.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub use batch::BatchProcessor;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `error`
[INFO] [stdout]   --> src/blocker/linux.rs:16:22
[INFO] [stdout]    |
[INFO] [stdout] 16 | use tracing::{debug, error, info, warn};
[INFO] [stdout]    |                      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `linux::LinuxBlocker`
[INFO] [stdout]   --> src/blocker/mod.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub use linux::LinuxBlocker;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CachedTimestamp`, `LoggingConfig`, and `RubixConfig`
[INFO] [stdout]   --> src/logger/mod.rs:12:30
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub use alert::{AlertLogger, CachedTimestamp, RubixConfig, LoggingConfig};
[INFO] [stdout]    |                              ^^^^^^^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `error`
[INFO] [stdout]   --> src/control/handler.rs:12:15
[INFO] [stdout]    |
[INFO] [stdout] 12 | use tracing::{error, info, warn};
[INFO] [stdout]    |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CommandResponse` and `Command`
[INFO] [stdout]   --> src/control/mod.rs:11:20
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use commands::{Command, CommandResponse};
[INFO] [stdout]    |                    ^^^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]   --> src/resolver/linux.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | use std::collections::HashMap;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `batch::BatchProcessor`
[INFO] [stdout]   --> src/export/mod.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub use batch::BatchProcessor;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `timestamp` is never read
[INFO] [stdout]   --> src/types/packet.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct Packet {
[INFO] [stdout]    |            ------ field in this struct
[INFO] [stdout] 11 |     #[serde(skip)]
[INFO] [stdout] 12 |     pub timestamp: Instant,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Packet` 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: methods `with_payload`, `has_payload`, `payload_len`, `key`, and `reverse_key` are never used
[INFO] [stdout]   --> src/types/packet.rs:49:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | impl Packet {
[INFO] [stdout]    | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 49 |     pub fn with_payload(mut self, data: Vec<u8>) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 55 |     pub fn has_payload(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 59 |     pub fn payload_len(&self) -> usize {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 63 |     pub fn key(&self) -> String {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 67 |     pub fn reverse_key(&self) -> String {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Igmp` is never constructed
[INFO] [stdout]   --> src/types/packet.rs:78:5
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub enum Protocol {
[INFO] [stdout]    |          -------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 78 |     Igmp,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Protocol` 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 function `from_u8` is never used
[INFO] [stdout]   --> src/types/packet.rs:83:12
[INFO] [stdout]    |
[INFO] [stdout] 82 | impl Protocol {
[INFO] [stdout]    | ------------- associated function in this implementation
[INFO] [stdout] 83 |     pub fn from_u8(value: u8) -> Self {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `NEXT_ID` is never used
[INFO] [stdout]   --> src/types/event.rs:17:8
[INFO] [stdout]    |
[INFO] [stdout] 17 | static NEXT_ID: AtomicU64 = AtomicU64::new(1);
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Priority` is never used
[INFO] [stdout]   --> src/types/event.rs:29:10
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub enum Priority {
[INFO] [stdout]    |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `EventType` is never used
[INFO] [stdout]   --> src/types/event.rs:48:10
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub enum EventType {
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Event` is never constructed
[INFO] [stdout]   --> src/types/event.rs:64:12
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub struct Event {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `with_packet`, and `is_high_priority` are never used
[INFO] [stdout]    --> src/types/event.rs:81:12
[INFO] [stdout]     |
[INFO] [stdout]  78 | impl Event {
[INFO] [stdout]     | ---------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  81 |     pub fn new(priority: Priority, event_type: EventType) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  93 |     pub fn with_packet(mut self, packet: Packet) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     pub fn is_high_priority(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `ansi_color`, `label`, `is_security`, and `is_normal` are never used
[INFO] [stdout]   --> src/types/stats.rs:57:12
[INFO] [stdout]    |
[INFO] [stdout] 53 | impl LogLevel {
[INFO] [stdout]    | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 57 |     pub fn ansi_color(self) -> &'static str {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 69 |     pub fn label(self) -> &'static str {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81 |     pub fn is_security(self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 87 |     pub fn is_normal(self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_NORMAL_RING_CAPACITY` is never used
[INFO] [stdout]    --> src/types/stats.rs:199:11
[INFO] [stdout]     |
[INFO] [stdout] 199 | pub const DEFAULT_NORMAL_RING_CAPACITY: usize = 200;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `cache_hits` is never read
[INFO] [stdout]   --> src/policy/engine.rs:31:9
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub struct EngineStats {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] 30 |     pub total_evaluations: AtomicU64,
[INFO] [stdout] 31 |     pub cache_hits:        AtomicU64,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `EngineStatsSnapshot` is never constructed
[INFO] [stdout]   --> src/policy/engine.rs:51:12
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub struct EngineStatsSnapshot {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `add_rule`, `block_ip`, `unblock_ip`, and `get_stats` are never used
[INFO] [stdout]    --> src/policy/engine.rs:76:12
[INFO] [stdout]     |
[INFO] [stdout]  67 | impl PolicyEngine {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  76 |     pub fn add_rule(&self, rule: Rule) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 186 |     pub fn block_ip(&self, ip: IpAddr) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 191 |     pub fn unblock_ip(&self, ip: &IpAddr) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 205 |     pub fn get_stats(&self) -> EngineStatsSnapshot {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_filter` is never used
[INFO] [stdout]    --> src/logger/mod.rs:140:4
[INFO] [stdout]     |
[INFO] [stdout] 140 | fn default_filter() -> EnvFilter {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `init`, `init_console`, and `init_dual` are never used
[INFO] [stdout]    --> src/logger/mod.rs:155:12
[INFO] [stdout]     |
[INFO] [stdout] 152 | impl Logger {
[INFO] [stdout]     | ----------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 155 |     pub fn init() -> Result<Self, Box<dyn std::error::Error>> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 177 |     pub fn init_console() -> Result<(), Box<dyn std::error::Error>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 191 |     pub fn init_dual() -> Result<Self, Box<dyn std::error::Error>> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> src/logger/alert.rs:69:9
[INFO] [stdout]    |
[INFO] [stdout] 67 | pub struct RubixConfig {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout] 68 |     #[serde(default)]
[INFO] [stdout] 69 |     pub mode: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 70 |     #[serde(default)]
[INFO] [stdout] 71 |     pub capture_interface: String,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 72 |     #[serde(default)]
[INFO] [stdout] 73 |     pub promiscuous: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 74 |     #[serde(default)]
[INFO] [stdout] 75 |     pub buffer_size_mb: u64,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 76 |     #[serde(default)]
[INFO] [stdout] 77 |     pub timeout_ms: u64,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 78 |     #[serde(default)]
[INFO] [stdout] 79 |     pub snaplen: u32,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 80 |     pub bpf_filter: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 81 |     #[serde(default)]
[INFO] [stdout] 82 |     pub trusted_cidrs: Vec<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 83 |     #[serde(default)]
[INFO] [stdout] 84 |     pub fast_path: FastPathConfig,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 85 |     #[serde(default)]
[INFO] [stdout] 86 |     pub blocking: BlockingConfig,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 89 |     pub export: ExportConfig,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `RubixConfig` 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 `enable_sampling`, `sampling_rate_high`, `enable_aggregation`, and `aggregation_window_ms` are never read
[INFO] [stdout]    --> src/logger/alert.rs:95:9
[INFO] [stdout]     |
[INFO] [stdout]  93 | pub struct FastPathConfig {
[INFO] [stdout]     |            -------------- fields in this struct
[INFO] [stdout]  94 |     #[serde(default)]
[INFO] [stdout]  95 |     pub enable_sampling: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout]  96 |     #[serde(default)]
[INFO] [stdout]  97 |     pub sampling_rate_high: f64,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]  98 |     #[serde(default)]
[INFO] [stdout]  99 |     pub enable_aggregation: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 100 |     #[serde(default)]
[INFO] [stdout] 101 |     pub aggregation_window_ms: u64,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `FastPathConfig` 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 `enabled`, `iptables_chain`, `block_timeout_seconds`, `default_action`, `auto_cleanup`, and `flush_on_exit` are never read
[INFO] [stdout]    --> src/logger/alert.rs:107:9
[INFO] [stdout]     |
[INFO] [stdout] 105 | pub struct BlockingConfig {
[INFO] [stdout]     |            -------------- fields in this struct
[INFO] [stdout] 106 |     #[serde(default)]
[INFO] [stdout] 107 |     pub enabled: bool,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 108 |     #[serde(default)]
[INFO] [stdout] 109 |     pub iptables_chain: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] 110 |     #[serde(default)]
[INFO] [stdout] 111 |     pub block_timeout_seconds: u64,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 112 |     #[serde(default)]
[INFO] [stdout] 113 |     pub default_action: String,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] 114 |     #[serde(default)]
[INFO] [stdout] 115 |     pub auto_cleanup: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] 116 |     #[serde(default)]
[INFO] [stdout] 117 |     pub flush_on_exit: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `BlockingConfig` 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 `normal_sample_divisor` and `normal_ring_capacity` are never read
[INFO] [stdout]    --> src/logger/alert.rs:137:9
[INFO] [stdout]     |
[INFO] [stdout] 121 | pub struct LoggingConfig {
[INFO] [stdout]     |            ------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 137 |     pub normal_sample_divisor: u64,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 138 |     #[serde(default)]
[INFO] [stdout] 139 |     pub normal_ring_capacity: usize,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `LoggingConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]    --> src/logger/alert.rs:147:9
[INFO] [stdout]     |
[INFO] [stdout] 145 | pub struct ExportConfig {
[INFO] [stdout]     |            ------------ fields in this struct
[INFO] [stdout] 146 |     #[serde(default)]
[INFO] [stdout] 147 |     pub enabled: bool,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 148 |     pub webhook_url: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 149 |     pub storage_path: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] 150 |     pub socket_addr: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 151 |     #[serde(default)]
[INFO] [stdout] 152 |     pub batch_size: usize,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 153 |     #[serde(default)]
[INFO] [stdout] 154 |     pub flush_interval_secs: u64,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 155 |     #[serde(default)]
[INFO] [stdout] 156 |     pub webhook_timeout_secs: u64,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 157 |     #[serde(default)]
[INFO] [stdout] 158 |     pub webhook_retry_count: u32,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ExportConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `alert_log_dir` is never used
[INFO] [stdout]    --> src/logger/alert.rs:219:4
[INFO] [stdout]     |
[INFO] [stdout] 219 | fn alert_log_dir() -> PathBuf {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `resolve_log_dir` is never used
[INFO] [stdout]    --> src/logger/alert.rs:231:4
[INFO] [stdout]     |
[INFO] [stdout] 231 | fn resolve_log_dir(file_path: &str) -> PathBuf {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Errors` is never constructed
[INFO] [stdout]    --> src/logger/alert.rs:256:5
[INFO] [stdout]     |
[INFO] [stdout] 253 | enum LogDest {
[INFO] [stdout]     |      ------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 256 |     Errors,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `LogDest` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `init_from_yaml`, `init_auto`, `init_with_config`, `init`, `log_error`, and `log_event` are never used
[INFO] [stdout]    --> src/logger/alert.rs:478:12
[INFO] [stdout]     |
[INFO] [stdout] 476 | impl AlertLogger {
[INFO] [stdout]     | ---------------- associated functions in this implementation
[INFO] [stdout] 477 |     /// Initialise from an explicit YAML file.
[INFO] [stdout] 478 |     pub fn init_from_yaml<P: AsRef<Path>>(path: P) -> Result<(), Box<dyn std::error::Error>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 492 |     pub fn init_auto() -> Result<(), Box<dyn std::error::Error>> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 506 |     pub fn init_with_config(channel_depth: usize, max_file_size_mb: u64) -> Result<(), std::io::Error> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 546 |     pub fn init() -> Result<(), std::io::Error> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 626 |     pub fn log_error(context: &str, detail: &str) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 634 |     pub fn log_event(event_type: &str, message: &str, details: &str) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from_u8` and `as_u8` are never used
[INFO] [stdout]    --> src/resolver/mod.rs:89:18
[INFO] [stdout]     |
[INFO] [stdout]  72 | impl Protocol {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  89 |     pub const fn from_u8(proto: u8) -> Self {
[INFO] [stdout]     |                  ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     pub const fn as_u8(&self) -> u8 {
[INFO] [stdout]     |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `all_processes`, `flow_count`, `is_refreshing`, and `last_refresh_ns` are never used
[INFO] [stdout]    --> src/resolver/cache.rs:92:12
[INFO] [stdout]     |
[INFO] [stdout]  55 | impl ProcessResolver {
[INFO] [stdout]     | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  92 |     pub fn all_processes(&self) -> Vec<ProcessInfo> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 106 |     pub fn flow_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 112 |     pub fn is_refreshing(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 119 |     pub fn last_refresh_ns(&self) -> u64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `WindowScan`, `MaimonScan`, `ServiceScan`, and `NmapScripting` are never constructed
[INFO] [stdout]   --> src/detector/mod.rs:72:5
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub enum ThreatKind {
[INFO] [stdout]    |          ---------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 72 |     WindowScan,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 73 |     MaimonScan,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 76 |     ServiceScan,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 77 |     NmapScripting,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ThreatKind` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `alert_key` is never used
[INFO] [stdout]    --> src/detector/mod.rs:125:12
[INFO] [stdout]     |
[INFO] [stdout]  81 | impl ThreatKind {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 125 |     pub fn alert_key(&self) -> AlertKey {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `color_ansi` is never used
[INFO] [stdout]    --> src/detector/mod.rs:225:12
[INFO] [stdout]     |
[INFO] [stdout] 203 | impl Severity {
[INFO] [stdout]     | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 225 |     pub fn color_ansi(&self) -> &'static str {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `timestamp` is never read
[INFO] [stdout]    --> src/detector/mod.rs:243:9
[INFO] [stdout]     |
[INFO] [stdout] 238 | pub struct ThreatEvent {
[INFO] [stdout]     |            ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 243 |     pub timestamp: Instant,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ThreatEvent` 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 `len` and `addresses` are never used
[INFO] [stdout]   --> src/detector/tracker.rs:98:22
[INFO] [stdout]    |
[INFO] [stdout] 67 | impl LocalIpSet {
[INFO] [stdout]    | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 98 |     #[inline] pub fn len(&self)       -> usize    { self.addrs.len() }
[INFO] [stdout]    |                      ^^^
[INFO] [stdout] 99 |     #[inline] pub fn addresses(&self) -> &[IpAddr] { &self.addrs }
[INFO] [stdout]    |                      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `first_seen` is never read
[INFO] [stdout]    --> src/detector/tracker.rs:308:9
[INFO] [stdout]     |
[INFO] [stdout] 299 | pub struct IpState {
[INFO] [stdout]     |            ------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 308 |     pub first_seen:    Instant,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `active_ips` is never used
[INFO] [stdout]    --> src/detector/tracker.rs:492:12
[INFO] [stdout]     |
[INFO] [stdout] 455 | impl ThreatTracker {
[INFO] [stdout]     | ------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 492 |     pub fn active_ips(&self) -> usize { self.states.len() }
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BatchProcessor` is never constructed
[INFO] [stdout]   --> src/export/batch.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub struct BatchProcessor {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/export/batch.rs:42:12
[INFO] [stdout]     |
[INFO] [stdout]  37 | impl BatchProcessor {
[INFO] [stdout]     | ------------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  42 |     pub fn new(capacity: usize, flush_interval_secs: u64) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  60 |     pub fn push(&mut self, event: ExportEvent) -> bool {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout]  77 |     pub fn should_flush(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  86 |     pub fn drain(&mut self) -> Vec<ExportEvent> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  93 |     pub fn len(&self) -> usize {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  99 |     pub fn drop_count(&self) -> u64 {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 105 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `export_threat`, `export_block`, and `export_alert` are never used
[INFO] [stdout]    --> src/export/dispatcher.rs:131:18
[INFO] [stdout]     |
[INFO] [stdout]  24 | impl ExportDispatcher {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 131 |     pub async fn export_threat(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 143 |     pub async fn export_block(
[INFO] [stdout]     |                  ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 155 |     pub async fn export_alert(
[INFO] [stdout]     |                  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StorageExport` is never constructed
[INFO] [stdout]    --> src/export/storage.rs:310:12
[INFO] [stdout]     |
[INFO] [stdout] 310 | pub struct StorageExport;
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/export/storage.rs:314:12
[INFO] [stdout]     |
[INFO] [stdout] 313 | impl StorageExport {
[INFO] [stdout]     | ------------------ associated function in this implementation
[INFO] [stdout] 314 |     pub fn new(_path: std::path::PathBuf) -> Result<Self, Box<dyn std::error::Error + Send + Sync>> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `timestamp` is never read
[INFO] [stdout]   --> src/types/packet.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct Packet {
[INFO] [stdout]    |            ------ field in this struct
[INFO] [stdout] 11 |     #[serde(skip)]
[INFO] [stdout] 12 |     pub timestamp: Instant,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Packet` 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: methods `with_payload`, `has_payload`, `payload_len`, `key`, and `reverse_key` are never used
[INFO] [stdout]   --> src/types/packet.rs:49:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | impl Packet {
[INFO] [stdout]    | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 49 |     pub fn with_payload(mut self, data: Vec<u8>) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 55 |     pub fn has_payload(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 59 |     pub fn payload_len(&self) -> usize {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 63 |     pub fn key(&self) -> String {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 67 |     pub fn reverse_key(&self) -> String {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `VtNoBlocks` is never constructed
[INFO] [stdout]   --> src/banner.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub enum TermCaps {
[INFO] [stdout]    |          -------- variant in this enum
[INFO] [stdout] 16 |     FullVt,      // Linux / macOS / Windows Terminal — full colour + Unicode
[INFO] [stdout] 17 |     VtNoBlocks,  // ConHost / legacy PowerShell — colour yes, ██ blocks no
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TermCaps` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Igmp` is never constructed
[INFO] [stdout]   --> src/types/packet.rs:78:5
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub enum Protocol {
[INFO] [stdout]    |          -------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 78 |     Igmp,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Protocol` 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 function `from_u8` is never used
[INFO] [stdout]   --> src/types/packet.rs:83:12
[INFO] [stdout]    |
[INFO] [stdout] 82 | impl Protocol {
[INFO] [stdout]    | ------------- associated function in this implementation
[INFO] [stdout] 83 |     pub fn from_u8(value: u8) -> Self {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `NEXT_ID` is never used
[INFO] [stdout]   --> src/types/event.rs:17:8
[INFO] [stdout]    |
[INFO] [stdout] 17 | static NEXT_ID: AtomicU64 = AtomicU64::new(1);
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Priority` is never used
[INFO] [stdout]   --> src/types/event.rs:29:10
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub enum Priority {
[INFO] [stdout]    |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `EventType` is never used
[INFO] [stdout]   --> src/types/event.rs:48:10
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub enum EventType {
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Event` is never constructed
[INFO] [stdout]   --> src/types/event.rs:64:12
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub struct Event {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `with_packet`, and `is_high_priority` are never used
[INFO] [stdout]    --> src/types/event.rs:81:12
[INFO] [stdout]     |
[INFO] [stdout]  78 | impl Event {
[INFO] [stdout]     | ---------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  81 |     pub fn new(priority: Priority, event_type: EventType) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  93 |     pub fn with_packet(mut self, packet: Packet) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     pub fn is_high_priority(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `ansi_color`, `label`, `is_security`, and `is_normal` are never used
[INFO] [stdout]   --> src/types/stats.rs:57:12
[INFO] [stdout]    |
[INFO] [stdout] 53 | impl LogLevel {
[INFO] [stdout]    | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 57 |     pub fn ansi_color(self) -> &'static str {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 69 |     pub fn label(self) -> &'static str {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81 |     pub fn is_security(self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 87 |     pub fn is_normal(self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_NORMAL_RING_CAPACITY` is never used
[INFO] [stdout]    --> src/types/stats.rs:199:11
[INFO] [stdout]     |
[INFO] [stdout] 199 | pub const DEFAULT_NORMAL_RING_CAPACITY: usize = 200;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `cache_hits` is never read
[INFO] [stdout]   --> src/policy/engine.rs:31:9
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub struct EngineStats {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] 30 |     pub total_evaluations: AtomicU64,
[INFO] [stdout] 31 |     pub cache_hits:        AtomicU64,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `EngineStatsSnapshot` is never constructed
[INFO] [stdout]   --> src/policy/engine.rs:51:12
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub struct EngineStatsSnapshot {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `add_rule`, `block_ip`, `unblock_ip`, and `get_stats` are never used
[INFO] [stdout]    --> src/policy/engine.rs:76:12
[INFO] [stdout]     |
[INFO] [stdout]  67 | impl PolicyEngine {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  76 |     pub fn add_rule(&self, rule: Rule) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 186 |     pub fn block_ip(&self, ip: IpAddr) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 191 |     pub fn unblock_ip(&self, ip: &IpAddr) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 205 |     pub fn get_stats(&self) -> EngineStatsSnapshot {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_filter` is never used
[INFO] [stdout]    --> src/logger/mod.rs:140:4
[INFO] [stdout]     |
[INFO] [stdout] 140 | fn default_filter() -> EnvFilter {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `init`, `init_console`, and `init_dual` are never used
[INFO] [stdout]    --> src/logger/mod.rs:155:12
[INFO] [stdout]     |
[INFO] [stdout] 152 | impl Logger {
[INFO] [stdout]     | ----------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 155 |     pub fn init() -> Result<Self, Box<dyn std::error::Error>> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 177 |     pub fn init_console() -> Result<(), Box<dyn std::error::Error>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 191 |     pub fn init_dual() -> Result<Self, Box<dyn std::error::Error>> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> src/logger/alert.rs:69:9
[INFO] [stdout]    |
[INFO] [stdout] 67 | pub struct RubixConfig {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout] 68 |     #[serde(default)]
[INFO] [stdout] 69 |     pub mode: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 70 |     #[serde(default)]
[INFO] [stdout] 71 |     pub capture_interface: String,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 72 |     #[serde(default)]
[INFO] [stdout] 73 |     pub promiscuous: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 74 |     #[serde(default)]
[INFO] [stdout] 75 |     pub buffer_size_mb: u64,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 76 |     #[serde(default)]
[INFO] [stdout] 77 |     pub timeout_ms: u64,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 78 |     #[serde(default)]
[INFO] [stdout] 79 |     pub snaplen: u32,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 80 |     pub bpf_filter: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 81 |     #[serde(default)]
[INFO] [stdout] 82 |     pub trusted_cidrs: Vec<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 83 |     #[serde(default)]
[INFO] [stdout] 84 |     pub fast_path: FastPathConfig,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 85 |     #[serde(default)]
[INFO] [stdout] 86 |     pub blocking: BlockingConfig,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 89 |     pub export: ExportConfig,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `RubixConfig` 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 `enable_sampling`, `sampling_rate_high`, `enable_aggregation`, and `aggregation_window_ms` are never read
[INFO] [stdout]    --> src/logger/alert.rs:95:9
[INFO] [stdout]     |
[INFO] [stdout]  93 | pub struct FastPathConfig {
[INFO] [stdout]     |            -------------- fields in this struct
[INFO] [stdout]  94 |     #[serde(default)]
[INFO] [stdout]  95 |     pub enable_sampling: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout]  96 |     #[serde(default)]
[INFO] [stdout]  97 |     pub sampling_rate_high: f64,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]  98 |     #[serde(default)]
[INFO] [stdout]  99 |     pub enable_aggregation: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 100 |     #[serde(default)]
[INFO] [stdout] 101 |     pub aggregation_window_ms: u64,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `FastPathConfig` 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 `enabled`, `iptables_chain`, `block_timeout_seconds`, `default_action`, `auto_cleanup`, and `flush_on_exit` are never read
[INFO] [stdout]    --> src/logger/alert.rs:107:9
[INFO] [stdout]     |
[INFO] [stdout] 105 | pub struct BlockingConfig {
[INFO] [stdout]     |            -------------- fields in this struct
[INFO] [stdout] 106 |     #[serde(default)]
[INFO] [stdout] 107 |     pub enabled: bool,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 108 |     #[serde(default)]
[INFO] [stdout] 109 |     pub iptables_chain: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] 110 |     #[serde(default)]
[INFO] [stdout] 111 |     pub block_timeout_seconds: u64,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 112 |     #[serde(default)]
[INFO] [stdout] 113 |     pub default_action: String,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] 114 |     #[serde(default)]
[INFO] [stdout] 115 |     pub auto_cleanup: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] 116 |     #[serde(default)]
[INFO] [stdout] 117 |     pub flush_on_exit: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `BlockingConfig` 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 `normal_sample_divisor` and `normal_ring_capacity` are never read
[INFO] [stdout]    --> src/logger/alert.rs:137:9
[INFO] [stdout]     |
[INFO] [stdout] 121 | pub struct LoggingConfig {
[INFO] [stdout]     |            ------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 137 |     pub normal_sample_divisor: u64,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 138 |     #[serde(default)]
[INFO] [stdout] 139 |     pub normal_ring_capacity: usize,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `LoggingConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]    --> src/logger/alert.rs:147:9
[INFO] [stdout]     |
[INFO] [stdout] 145 | pub struct ExportConfig {
[INFO] [stdout]     |            ------------ fields in this struct
[INFO] [stdout] 146 |     #[serde(default)]
[INFO] [stdout] 147 |     pub enabled: bool,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 148 |     pub webhook_url: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 149 |     pub storage_path: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] 150 |     pub socket_addr: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 151 |     #[serde(default)]
[INFO] [stdout] 152 |     pub batch_size: usize,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 153 |     #[serde(default)]
[INFO] [stdout] 154 |     pub flush_interval_secs: u64,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 155 |     #[serde(default)]
[INFO] [stdout] 156 |     pub webhook_timeout_secs: u64,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 157 |     #[serde(default)]
[INFO] [stdout] 158 |     pub webhook_retry_count: u32,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ExportConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `alert_log_dir` is never used
[INFO] [stdout]    --> src/logger/alert.rs:219:4
[INFO] [stdout]     |
[INFO] [stdout] 219 | fn alert_log_dir() -> PathBuf {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `resolve_log_dir` is never used
[INFO] [stdout]    --> src/logger/alert.rs:231:4
[INFO] [stdout]     |
[INFO] [stdout] 231 | fn resolve_log_dir(file_path: &str) -> PathBuf {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Errors` is never constructed
[INFO] [stdout]    --> src/logger/alert.rs:256:5
[INFO] [stdout]     |
[INFO] [stdout] 253 | enum LogDest {
[INFO] [stdout]     |      ------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 256 |     Errors,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `LogDest` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `init_from_yaml`, `init_auto`, `init_with_config`, `init`, `log_error`, and `log_event` are never used
[INFO] [stdout]    --> src/logger/alert.rs:478:12
[INFO] [stdout]     |
[INFO] [stdout] 476 | impl AlertLogger {
[INFO] [stdout]     | ---------------- associated functions in this implementation
[INFO] [stdout] 477 |     /// Initialise from an explicit YAML file.
[INFO] [stdout] 478 |     pub fn init_from_yaml<P: AsRef<Path>>(path: P) -> Result<(), Box<dyn std::error::Error>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 492 |     pub fn init_auto() -> Result<(), Box<dyn std::error::Error>> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 506 |     pub fn init_with_config(channel_depth: usize, max_file_size_mb: u64) -> Result<(), std::io::Error> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 546 |     pub fn init() -> Result<(), std::io::Error> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 626 |     pub fn log_error(context: &str, detail: &str) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 634 |     pub fn log_event(event_type: &str, message: &str, details: &str) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from_u8` and `as_u8` are never used
[INFO] [stdout]    --> src/resolver/mod.rs:89:18
[INFO] [stdout]     |
[INFO] [stdout]  72 | impl Protocol {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  89 |     pub const fn from_u8(proto: u8) -> Self {
[INFO] [stdout]     |                  ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     pub const fn as_u8(&self) -> u8 {
[INFO] [stdout]     |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `all_processes`, `flow_count`, `is_refreshing`, and `last_refresh_ns` are never used
[INFO] [stdout]    --> src/resolver/cache.rs:92:12
[INFO] [stdout]     |
[INFO] [stdout]  55 | impl ProcessResolver {
[INFO] [stdout]     | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  92 |     pub fn all_processes(&self) -> Vec<ProcessInfo> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 106 |     pub fn flow_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 112 |     pub fn is_refreshing(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 119 |     pub fn last_refresh_ns(&self) -> u64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `WindowScan`, `MaimonScan`, `ServiceScan`, and `NmapScripting` are never constructed
[INFO] [stdout]   --> src/detector/mod.rs:72:5
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub enum ThreatKind {
[INFO] [stdout]    |          ---------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 72 |     WindowScan,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 73 |     MaimonScan,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 76 |     ServiceScan,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 77 |     NmapScripting,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ThreatKind` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `alert_key` is never used
[INFO] [stdout]    --> src/detector/mod.rs:125:12
[INFO] [stdout]     |
[INFO] [stdout]  81 | impl ThreatKind {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 125 |     pub fn alert_key(&self) -> AlertKey {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `color_ansi` is never used
[INFO] [stdout]    --> src/detector/mod.rs:225:12
[INFO] [stdout]     |
[INFO] [stdout] 203 | impl Severity {
[INFO] [stdout]     | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 225 |     pub fn color_ansi(&self) -> &'static str {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `timestamp` is never read
[INFO] [stdout]    --> src/detector/mod.rs:243:9
[INFO] [stdout]     |
[INFO] [stdout] 238 | pub struct ThreatEvent {
[INFO] [stdout]     |            ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 243 |     pub timestamp: Instant,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ThreatEvent` 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 `len` and `addresses` are never used
[INFO] [stdout]   --> src/detector/tracker.rs:98:22
[INFO] [stdout]    |
[INFO] [stdout] 67 | impl LocalIpSet {
[INFO] [stdout]    | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 98 |     #[inline] pub fn len(&self)       -> usize    { self.addrs.len() }
[INFO] [stdout]    |                      ^^^
[INFO] [stdout] 99 |     #[inline] pub fn addresses(&self) -> &[IpAddr] { &self.addrs }
[INFO] [stdout]    |                      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `first_seen` is never read
[INFO] [stdout]    --> src/detector/tracker.rs:308:9
[INFO] [stdout]     |
[INFO] [stdout] 299 | pub struct IpState {
[INFO] [stdout]     |            ------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 308 |     pub first_seen:    Instant,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `active_ips` is never used
[INFO] [stdout]    --> src/detector/tracker.rs:492:12
[INFO] [stdout]     |
[INFO] [stdout] 455 | impl ThreatTracker {
[INFO] [stdout]     | ------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 492 |     pub fn active_ips(&self) -> usize { self.states.len() }
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BatchProcessor` is never constructed
[INFO] [stdout]   --> src/export/batch.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub struct BatchProcessor {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/export/batch.rs:42:12
[INFO] [stdout]     |
[INFO] [stdout]  37 | impl BatchProcessor {
[INFO] [stdout]     | ------------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  42 |     pub fn new(capacity: usize, flush_interval_secs: u64) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  60 |     pub fn push(&mut self, event: ExportEvent) -> bool {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout]  77 |     pub fn should_flush(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  86 |     pub fn drain(&mut self) -> Vec<ExportEvent> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  93 |     pub fn len(&self) -> usize {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  99 |     pub fn drop_count(&self) -> u64 {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 105 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `export_threat`, `export_block`, and `export_alert` are never used
[INFO] [stdout]    --> src/export/dispatcher.rs:131:18
[INFO] [stdout]     |
[INFO] [stdout]  24 | impl ExportDispatcher {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 131 |     pub async fn export_threat(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 143 |     pub async fn export_block(
[INFO] [stdout]     |                  ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 155 |     pub async fn export_alert(
[INFO] [stdout]     |                  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StorageExport` is never constructed
[INFO] [stdout]    --> src/export/storage.rs:310:12
[INFO] [stdout]     |
[INFO] [stdout] 310 | pub struct StorageExport;
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/export/storage.rs:314:12
[INFO] [stdout]     |
[INFO] [stdout] 313 | impl StorageExport {
[INFO] [stdout]     | ------------------ associated function in this implementation
[INFO] [stdout] 314 |     pub fn new(_path: std::path::PathBuf) -> Result<Self, Box<dyn std::error::Error + Send + Sync>> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `VtNoBlocks` is never constructed
[INFO] [stdout]   --> src/banner.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub enum TermCaps {
[INFO] [stdout]    |          -------- variant in this enum
[INFO] [stdout] 16 |     FullVt,      // Linux / macOS / Windows Terminal — full colour + Unicode
[INFO] [stdout] 17 |     VtNoBlocks,  // ConHost / legacy PowerShell — colour yes, ██ blocks no
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TermCaps` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 29.35s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: nix v0.29.0
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 8`
[INFO] running `Command { std: "docker" "inspect" "1dc0d111ff7458888814d1bb83e69b1c559b0ff351e5e600f7ddb499d252f9fb", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1dc0d111ff7458888814d1bb83e69b1c559b0ff351e5e600f7ddb499d252f9fb", kill_on_drop: false }`
[INFO] [stdout] 1dc0d111ff7458888814d1bb83e69b1c559b0ff351e5e600f7ddb499d252f9fb
