[INFO] cloning repository https://github.com/mssky9527/Rscan
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/mssky9527/Rscan" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmssky9527%2FRscan", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmssky9527%2FRscan'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 22bd8b222c360c7ea0bfbb0b62ede774d3bf9563
[INFO] checking mssky9527/Rscan against try#3857be5045fe74bd0f296f6f4c23db10f8857f73 for pr-156807
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmssky9527%2FRscan" "/workspace/builds/worker-5-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/mssky9527/Rscan
[INFO] finished tweaking git repo https://github.com/mssky9527/Rscan
[INFO] tweaked toml for git repo https://github.com/mssky9527/Rscan written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/mssky9527/Rscan on toolchain 3857be5045fe74bd0f296f6f4c23db10f8857f73
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+3857be5045fe74bd0f296f6f4c23db10f8857f73" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/mssky9527/Rscan 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" "+3857be5045fe74bd0f296f6f4c23db10f8857f73" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[ERROR] error running command: no output for 300 seconds
[INFO] checking mssky9527/Rscan against try#3857be5045fe74bd0f296f6f4c23db10f8857f73 for pr-156807
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmssky9527%2FRscan" "/workspace/builds/worker-5-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/mssky9527/Rscan
[INFO] finished tweaking git repo https://github.com/mssky9527/Rscan
[INFO] tweaked toml for git repo https://github.com/mssky9527/Rscan written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/mssky9527/Rscan on toolchain 3857be5045fe74bd0f296f6f4c23db10f8857f73
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+3857be5045fe74bd0f296f6f4c23db10f8857f73" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/mssky9527/Rscan 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" "+3857be5045fe74bd0f296f6f4c23db10f8857f73" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded metrics-macros v0.7.1
[INFO] [stderr]   Downloaded windows-registry v0.5.2
[INFO] [stderr]   Downloaded resolv-conf v0.7.4
[INFO] [stderr]   Downloaded metrics v0.21.1
[INFO] [stderr]   Downloaded cidr-utils v0.6.1
[INFO] [stderr]   Downloaded cidr v0.2.3
[INFO] [stderr]   Downloaded rustls v0.23.28
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+3857be5045fe74bd0f296f6f4c23db10f8857f73" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 4fd949c4e9d121c0c3a855056f81db60deeeb8fc9001cba59d4b909950b2daff
[INFO] running `Command { std: "docker" "start" "-a" "4fd949c4e9d121c0c3a855056f81db60deeeb8fc9001cba59d4b909950b2daff", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "4fd949c4e9d121c0c3a855056f81db60deeeb8fc9001cba59d4b909950b2daff", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4fd949c4e9d121c0c3a855056f81db60deeeb8fc9001cba59d4b909950b2daff", kill_on_drop: false }`
[INFO] [stdout] 4fd949c4e9d121c0c3a855056f81db60deeeb8fc9001cba59d4b909950b2daff
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+3857be5045fe74bd0f296f6f4c23db10f8857f73" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 03bb0d15e705aef781cf3bafb2bff91d8434b9ad232db344d7356f239c4d3f9a
[INFO] running `Command { std: "docker" "start" "-a" "03bb0d15e705aef781cf3bafb2bff91d8434b9ad232db344d7356f239c4d3f9a", kill_on_drop: false }`
[INFO] [stderr]    Compiling cc v1.2.27
[INFO] [stderr]     Checking tracing-core v0.1.34
[INFO] [stderr]    Compiling syn v2.0.103
[INFO] [stderr]     Checking signal-hook-registry v1.4.5
[INFO] [stderr]    Compiling ahash v0.7.8
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]     Checking bitflags v2.9.1
[INFO] [stderr]     Checking unicode-normalization v0.1.24
[INFO] [stderr]     Checking dlv-list v0.3.0
[INFO] [stderr]     Checking unicode-bidi v0.3.18
[INFO] [stderr]     Checking data-encoding v2.9.0
[INFO] [stderr]     Checking winnow v0.5.40
[INFO] [stderr]     Checking clap_builder v4.5.40
[INFO] [stderr]     Checking dirs-sys v0.4.1
[INFO] [stderr]     Checking ahash v0.8.12
[INFO] [stderr]     Checking lru-cache v0.1.2
[INFO] [stderr]     Checking is-terminal v0.4.16
[INFO] [stderr]     Checking thread_local v1.1.9
[INFO] [stderr]     Checking csv-core v0.1.12
[INFO] [stderr]     Checking cidr v0.2.3
[INFO] [stderr]     Checking resolv-conf v0.7.4
[INFO] [stderr]     Checking env_logger v0.10.2
[INFO] [stderr]     Checking sha2 v0.10.9
[INFO] [stderr]     Checking dirs v5.0.1
[INFO] [stderr]     Checking hashbrown v0.12.3
[INFO] [stderr]     Checking md5 v0.7.0
[INFO] [stderr]     Checking tracing-log v0.2.0
[INFO] [stderr]     Checking tracing-subscriber v0.3.19
[INFO] [stderr]    Compiling openssl-sys v0.9.109
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]     Checking idna v0.4.0
[INFO] [stderr]     Checking num-integer v0.1.46
[INFO] [stderr]     Checking ordered-multimap v0.4.3
[INFO] [stderr]    Compiling openssl v0.10.73
[INFO] [stderr]    Compiling native-tls v0.2.14
[INFO] [stderr]     Checking rust-ini v0.18.0
[INFO] [stderr]     Checking num-bigint v0.4.6
[INFO] [stderr]     Checking cidr-utils v0.6.1
[INFO] [stderr]    Compiling rustls v0.21.12
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling serde_derive v1.0.219
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.0
[INFO] [stderr]    Compiling zerovec-derive v0.11.1
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling tokio-macros v2.5.0
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling thiserror-impl v2.0.12
[INFO] [stderr]    Compiling tracing-attributes v0.1.30
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling async-trait v0.1.88
[INFO] [stderr]    Compiling enum-as-inner v0.6.1
[INFO] [stderr]    Compiling metrics-macros v0.7.1
[INFO] [stderr]    Compiling clap_derive v4.5.40
[INFO] [stderr]     Checking rustls-webpki v0.101.7
[INFO] [stderr]     Checking sct v0.7.1
[INFO] [stderr]     Checking metrics v0.21.1
[INFO] [stderr]     Checking tokio v1.45.1
[INFO] [stderr]     Checking futures-util v0.3.31
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking zerofrom v0.1.6
[INFO] [stderr]     Checking yoke v0.8.0
[INFO] [stderr]     Checking tracing v0.1.41
[INFO] [stderr]     Checking zerovec v0.11.2
[INFO] [stderr]     Checking zerotrie v0.2.2
[INFO] [stderr]    Compiling thiserror v2.0.12
[INFO] [stderr]    Compiling pest v2.8.1
[INFO] [stderr]     Checking clap v4.5.40
[INFO] [stderr]     Checking tinystr v0.8.1
[INFO] [stderr]     Checking potential_utf v0.1.2
[INFO] [stderr]     Checking serde v1.0.219
[INFO] [stderr]     Checking icu_locale_core v2.0.0
[INFO] [stderr]     Checking icu_collections v2.0.0
[INFO] [stderr]     Checking icu_provider v2.0.0
[INFO] [stderr]    Compiling pest_meta v2.8.1
[INFO] [stderr]     Checking icu_normalizer v2.0.0
[INFO] [stderr]     Checking icu_properties v2.0.1
[INFO] [stderr]     Checking futures-executor v0.3.31
[INFO] [stderr]     Checking futures v0.3.31
[INFO] [stderr]     Checking idna_adapter v1.2.1
[INFO] [stderr]     Checking idna v1.0.3
[INFO] [stderr]     Checking tokio-util v0.7.15
[INFO] [stderr]     Checking tokio-native-tls v0.3.1
[INFO] [stderr]     Checking tower v0.5.2
[INFO] [stderr]    Compiling pest_generator v2.8.1
[INFO] [stderr]     Checking tower-http v0.6.6
[INFO] [stderr]     Checking h2 v0.4.10
[INFO] [stderr]     Checking ipnet v2.11.0
[INFO] [stderr]     Checking url v2.5.4
[INFO] [stderr]     Checking serde_spanned v0.6.9
[INFO] [stderr]     Checking serde_json v1.0.140
[INFO] [stderr]     Checking toml_datetime v0.6.11
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking ron v0.7.1
[INFO] [stderr]     Checking toml v0.5.11
[INFO] [stderr]     Checking chrono v0.4.41
[INFO] [stderr]     Checking csv v1.3.1
[INFO] [stderr]    Compiling pest_derive v2.8.1
[INFO] [stderr]     Checking toml_edit v0.19.15
[INFO] [stderr]     Checking json5 v0.4.1
[INFO] [stderr]     Checking trust-dns-proto v0.23.2
[INFO] [stderr]     Checking config v0.13.4
[INFO] [stderr]     Checking toml v0.7.8
[INFO] [stderr]     Checking hyper v1.6.0
[INFO] [stderr]     Checking trust-dns-resolver v0.23.2
[INFO] [stderr]     Checking hyper-util v0.1.14
[INFO] [stderr]     Checking hyper-tls v0.6.0
[INFO] [stderr]     Checking reqwest v0.12.20
[INFO] [stderr]     Checking rscan v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `anyhow`
[INFO] [stdout]  --> src/scanner/web.rs:4:22
[INFO] [stdout]   |
[INFO] [stdout] 4 | use anyhow::{Result, anyhow};
[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: `Ipv4Addr`
[INFO] [stdout]  --> src/scanner/network.rs:2:24
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::net::{IpAddr, Ipv4Addr};
[INFO] [stdout]   |                        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashSet`
[INFO] [stdout]  --> src/scanner/network.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::collections::HashSet;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]  --> src/scanner/network.rs:6:23
[INFO] [stdout]   |
[INFO] [stdout] 6 | use futures::stream::{self, StreamExt};
[INFO] [stdout]   |                       ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `info`
[INFO] [stdout]  --> src/scanner/mod.rs:6:18
[INFO] [stdout]   |
[INFO] [stdout] 6 | use log::{debug, info, warn};
[INFO] [stdout]   |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `PortState`, `Protocol`, and `ServiceInfo`
[INFO] [stdout]   --> src/scanner/mod.rs:10:75
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::core::{ScanResult, ScanStatus, ScanType, ScanMetadata, Target, ServiceInfo, Protocol, PortState};
[INFO] [stdout]    |                                                                           ^^^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `anyhow`
[INFO] [stdout]  --> src/subdomain.rs:1:22
[INFO] [stdout]   |
[INFO] [stdout] 1 | use anyhow::{Result, anyhow};
[INFO] [stdout]   |                      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashMap`
[INFO] [stdout]  --> src/subdomain.rs:3:33
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::{HashSet, HashMap};
[INFO] [stdout]   |                                 ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `anyhow`
[INFO] [stdout]  --> src/vuln.rs:4:22
[INFO] [stdout]   |
[INFO] [stdout] 4 | use anyhow::{Result, anyhow};
[INFO] [stdout]   |                      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `anyhow`
[INFO] [stdout]  --> src/scanner/web.rs:4:22
[INFO] [stdout]   |
[INFO] [stdout] 4 | use anyhow::{Result, anyhow};
[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: `Ipv4Addr`
[INFO] [stdout]  --> src/scanner/network.rs:2:24
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::net::{IpAddr, Ipv4Addr};
[INFO] [stdout]   |                        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashSet`
[INFO] [stdout]  --> src/scanner/network.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::collections::HashSet;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]  --> src/scanner/network.rs:6:23
[INFO] [stdout]   |
[INFO] [stdout] 6 | use futures::stream::{self, StreamExt};
[INFO] [stdout]   |                       ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `info`
[INFO] [stdout]  --> src/scanner/mod.rs:6:18
[INFO] [stdout]   |
[INFO] [stdout] 6 | use log::{debug, info, warn};
[INFO] [stdout]   |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `PortState`, `Protocol`, and `ServiceInfo`
[INFO] [stdout]   --> src/scanner/mod.rs:10:75
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::core::{ScanResult, ScanStatus, ScanType, ScanMetadata, Target, ServiceInfo, Protocol, PortState};
[INFO] [stdout]    |                                                                           ^^^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `anyhow`
[INFO] [stdout]  --> src/subdomain.rs:1:22
[INFO] [stdout]   |
[INFO] [stdout] 1 | use anyhow::{Result, anyhow};
[INFO] [stdout]   |                      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashMap`
[INFO] [stdout]  --> src/subdomain.rs:3:33
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::{HashSet, HashMap};
[INFO] [stdout]   |                                 ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `anyhow`
[INFO] [stdout]  --> src/vuln.rs:4:22
[INFO] [stdout]   |
[INFO] [stdout] 4 | use anyhow::{Result, anyhow};
[INFO] [stdout]   |                      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `StreamExt`
[INFO] [stdout]  --> src/scanner/network.rs:6:29
[INFO] [stdout]   |
[INFO] [stdout] 6 | use futures::stream::{self, StreamExt};
[INFO] [stdout]   |                             ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `StreamExt`
[INFO] [stdout]  --> src/scanner/network.rs:6:29
[INFO] [stdout]   |
[INFO] [stdout] 6 | use futures::stream::{self, StreamExt};
[INFO] [stdout]   |                             ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `add_error` is never used
[INFO] [stdout]   --> src/core/result.rs:68:12
[INFO] [stdout]    |
[INFO] [stdout] 51 | impl ScanResults {
[INFO] [stdout]    | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 68 |     pub fn add_error(&mut self, target: String, error_type: ErrorType, message: String) {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/core/target.rs:40:12
[INFO] [stdout]     |
[INFO] [stdout]  38 | impl Target {
[INFO] [stdout]     | ----------- associated items in this implementation
[INFO] [stdout]  39 |     /// 从字符串解析目标
[INFO] [stdout]  40 |     pub fn parse(input: &str) -> Result<Vec<Self>> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  65 |     fn parse_file(path: &str) -> Result<Vec<Self>> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  82 |     fn parse_cidr(input: &str) -> Result<Self> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  92 |     fn parse_range(input: &str) -> Result<Self> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 125 |     fn parse_url(input: &str) -> Result<Self> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 135 |     fn parse_ip(input: &str) -> Result<Self> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 145 |     fn parse_domain(input: &str) -> Result<Self> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 210 |     fn default_ports() -> Vec<u16> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 217 |     pub fn expand_ips(&self) -> Result<Vec<IpAddr>> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 275 |     pub fn get_ports(&self) -> Vec<u16> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 290 |     pub fn description(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `with_state`, `with_banner`, `with_service`, and `is_http_like` are never used
[INFO] [stdout]    --> src/core/service.rs:86:12
[INFO] [stdout]     |
[INFO] [stdout]  71 | impl ServiceInfo {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  86 |     pub fn with_state(mut self, state: PortState) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  91 |     pub fn with_banner(mut self, banner: String) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  96 |     pub fn with_service(mut self, service: ServiceDetails) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 105 |     pub fn is_http_like(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WafDetector` is never constructed
[INFO] [stdout]   --> src/detectors.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct WafDetector {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CdnDetector` is never constructed
[INFO] [stdout]   --> src/detectors.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct CdnDetector {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `OsDetector` is never constructed
[INFO] [stdout]   --> src/detectors.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct OsDetector {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WafResult` is never constructed
[INFO] [stdout]   --> src/detectors.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub struct WafResult {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CdnResult` is never constructed
[INFO] [stdout]   --> src/detectors.rs:42:12
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub struct CdnResult {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `OsResult` is never constructed
[INFO] [stdout]   --> src/detectors.rs:51:12
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub struct OsResult {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `with_timeout`, `detect`, and `test_waf_triggers` are never used
[INFO] [stdout]    --> src/detectors.rs:59:12
[INFO] [stdout]     |
[INFO] [stdout]  58 | impl WafDetector {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout]  59 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 101 |     pub fn with_timeout(mut self, timeout: Duration) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 107 |     pub async fn detect(&self, target: &str, port: u16) -> Result<WafResult> {
[INFO] [stdout]     |                  ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 165 |     pub async fn test_waf_triggers(&self, target: &str, port: u16) -> Result<WafResult> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `with_timeout`, `detect`, and `detect_by_multi_ip` are never used
[INFO] [stdout]    --> src/detectors.rs:247:12
[INFO] [stdout]     |
[INFO] [stdout] 246 | impl CdnDetector {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout] 247 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 281 |     pub fn with_timeout(mut self, timeout: Duration) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 287 |     pub async fn detect(&self, target: &str, port: u16) -> Result<CdnResult> {
[INFO] [stdout]     |                  ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 342 |     pub async fn detect_by_multi_ip(&self, domain: &str) -> Result<CdnResult> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `with_timeout`, `detect_by_ttl`, `detect_by_http`, and `detect` are never used
[INFO] [stdout]    --> src/detectors.rs:394:12
[INFO] [stdout]     |
[INFO] [stdout] 393 | impl OsDetector {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout] 394 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 417 |     pub fn with_timeout(mut self, timeout: Duration) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 423 |     pub async fn detect_by_ttl(&self, ip: IpAddr) -> Result<OsResult> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 481 |     pub async fn detect_by_http(&self, target: &str, port: u16) -> Result<OsResult> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 555 |     pub async fn detect(&self, target: &str) -> Result<OsResult> {
[INFO] [stdout]     |                  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `fingerprint_engine` is never read
[INFO] [stdout]   --> src/engine.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct ScanEngine {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] 15 |     config: Config,
[INFO] [stdout] 16 |     fingerprint_engine: FingerprintEngine,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `execute` is never used
[INFO] [stdout]    --> src/engine.rs:369:18
[INFO] [stdout]     |
[INFO] [stdout]  20 | impl ScanEngine {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 369 |     pub async fn execute(&mut self) -> Result<()> {
[INFO] [stdout]     |                  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `cpe` is never read
[INFO] [stdout]   --> src/fingerprint/mod.rs:25:9
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub struct DetectionResult {
[INFO] [stdout]    |            --------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub cpe: Option<String>,
[INFO] [stdout]    |         ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DetectionResult` 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 `product_name`, `match_type`, `pattern`, and `compiled_regex` are never read
[INFO] [stdout]   --> src/fingerprint/mod.rs:39:9
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub struct ExternalFingerprint {
[INFO] [stdout]    |            ------------------- fields in this struct
[INFO] [stdout] 39 |     pub product_name: String,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 40 |     pub match_type: String, // "Body", "Header", "Title", etc.
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 41 |     pub pattern: String,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 42 |     pub compiled_regex: Option<Regex>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ExternalFingerprint` 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 `detect_service_enhanced`, `generic_port_detection`, `extract_title`, and `get_probe_for_port` are never used
[INFO] [stdout]    --> src/fingerprint/mod.rs:121:12
[INFO] [stdout]     |
[INFO] [stdout]  45 | impl ProtocolDetector {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 121 |     pub fn detect_service_enhanced(&self, port: u16, banner: &str, body: &str, headers: &HashMap<String, String>) -> Result<Detecti...
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 179 |     fn generic_port_detection(&self, port: u16) -> Result<DetectionResult> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 209 |     fn extract_title(&self, body: &str) -> Option<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 472 |     pub fn get_probe_for_port(&self, port: u16) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SmbScanner` is never constructed
[INFO] [stdout]    --> src/fingerprint/mod.rs:483:12
[INFO] [stdout]     |
[INFO] [stdout] 483 | pub struct SmbScanner;
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `scan_smb` is never used
[INFO] [stdout]    --> src/fingerprint/mod.rs:486:18
[INFO] [stdout]     |
[INFO] [stdout] 485 | impl SmbScanner {
[INFO] [stdout]     | --------------- associated function in this implementation
[INFO] [stdout] 486 |     pub async fn scan_smb(target: &str) -> Result<SmbInfo> {
[INFO] [stdout]     |                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SmbInfo` is never constructed
[INFO] [stdout]    --> src/fingerprint/mod.rs:665:12
[INFO] [stdout]     |
[INFO] [stdout] 665 | pub struct SmbInfo {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WmiScanner` is never constructed
[INFO] [stdout]    --> src/fingerprint/mod.rs:675:12
[INFO] [stdout]     |
[INFO] [stdout] 675 | pub struct WmiScanner;
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `scan_wmi` is never used
[INFO] [stdout]    --> src/fingerprint/mod.rs:678:18
[INFO] [stdout]     |
[INFO] [stdout] 677 | impl WmiScanner {
[INFO] [stdout]     | --------------- associated function in this implementation
[INFO] [stdout] 678 |     pub async fn scan_wmi(target: &str) -> Result<WmiInfo> {
[INFO] [stdout]     |                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WmiInfo` is never constructed
[INFO] [stdout]    --> src/fingerprint/mod.rs:757:12
[INFO] [stdout]     |
[INFO] [stdout] 757 | pub struct WmiInfo {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SnmpScanner` is never constructed
[INFO] [stdout]    --> src/fingerprint/mod.rs:764:12
[INFO] [stdout]     |
[INFO] [stdout] 764 | pub struct SnmpScanner;
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `scan_snmp` and `extract_snmp_description` are never used
[INFO] [stdout]    --> src/fingerprint/mod.rs:767:18
[INFO] [stdout]     |
[INFO] [stdout] 766 | impl SnmpScanner {
[INFO] [stdout]     | ---------------- associated functions in this implementation
[INFO] [stdout] 767 |     pub async fn scan_snmp(target: &str) -> Result<SnmpInfo> {
[INFO] [stdout]     |                  ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 873 |     fn extract_snmp_description(data: &[u8]) -> Option<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SnmpInfo` is never constructed
[INFO] [stdout]    --> src/fingerprint/mod.rs:889:12
[INFO] [stdout]     |
[INFO] [stdout] 889 | pub struct SnmpInfo {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NetBiosScanner` is never constructed
[INFO] [stdout]    --> src/fingerprint/mod.rs:896:12
[INFO] [stdout]     |
[INFO] [stdout] 896 | pub struct NetBiosScanner;
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `scan_netbios`, `parse_netbios_response`, and `enumerate_shares` are never used
[INFO] [stdout]     --> src/fingerprint/mod.rs:899:18
[INFO] [stdout]      |
[INFO] [stdout]  898 | impl NetBiosScanner {
[INFO] [stdout]      | ------------------- associated functions in this implementation
[INFO] [stdout]  899 |     pub async fn scan_netbios(target: &str) -> Result<NetBiosInfo> {
[INFO] [stdout]      |                  ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  965 |     fn parse_netbios_response(data: &[u8], info: &mut NetBiosInfo) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1013 |     async fn enumerate_shares(target: &str) -> Result<Vec<String>> {
[INFO] [stdout]      |              ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NetBiosInfo` is never constructed
[INFO] [stdout]     --> src/fingerprint/mod.rs:1045:12
[INFO] [stdout]      |
[INFO] [stdout] 1045 | pub struct NetBiosInfo {
[INFO] [stdout]      |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_specialized_info` is never used
[INFO] [stdout]     --> src/fingerprint/mod.rs:1099:18
[INFO] [stdout]      |
[INFO] [stdout] 1057 | impl FingerprintEngine {
[INFO] [stdout]      | ---------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 1099 |     pub async fn get_specialized_info(&self, target: &str, port: u16) -> Result<Option<SpecializedInfo>> {
[INFO] [stdout]      |                  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `SpecializedInfo` is never used
[INFO] [stdout]     --> src/fingerprint/mod.rs:1129:10
[INFO] [stdout]      |
[INFO] [stdout] 1129 | pub enum SpecializedInfo {
[INFO] [stdout]      |          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DnsResolver` is never constructed
[INFO] [stdout]   --> src/network.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct DnsResolver {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NetworkDiscovery` is never constructed
[INFO] [stdout]   --> src/network.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct NetworkDiscovery {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HostDiscoveryResult` is never constructed
[INFO] [stdout]   --> src/network.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub struct HostDiscoveryResult {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `with_timeout`, and `reverse_lookup` are never used
[INFO] [stdout]   --> src/network.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 35 | impl DnsResolver {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout] 36 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub fn with_timeout(mut self, timeout: Duration) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 49 |     pub async fn reverse_lookup(&self, ip: IpAddr) -> Result<Option<String>> {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/network.rs:71:12
[INFO] [stdout]     |
[INFO] [stdout]  70 | impl NetworkDiscovery {
[INFO] [stdout]     | --------------------- associated items in this implementation
[INFO] [stdout]  71 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  79 |     pub fn with_timeout(mut self, timeout: Duration) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  85 |     pub fn with_max_concurrent(mut self, max_concurrent: usize) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  91 |     pub async fn ping(&self, ip: IpAddr) -> Result<HostDiscoveryResult> {
[INFO] [stdout]     |                  ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 134 |     pub async fn tcp_probe(&self, ip: IpAddr, port: u16) -> Result<bool> {
[INFO] [stdout]     |                  ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 144 |     async fn reverse_dns_lookup(&self, ip: IpAddr) -> Result<Option<String>> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 150 |     async fn get_mac_address(&self, ip: IpAddr) -> Result<Option<String>> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 191 |     pub async fn scan_network(&self, cidr: &str) -> Result<Vec<HostDiscoveryResult>> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 240 |     pub async fn scan_network_tcp(&self, cidr: &str, ports: &[u16]) -> Result<Vec<HostDiscoveryResult>> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Scanner` is never constructed
[INFO] [stdout]   --> src/scanner/mod.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct Scanner {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `scan_target` are never used
[INFO] [stdout]   --> src/scanner/mod.rs:22:18
[INFO] [stdout]    |
[INFO] [stdout] 21 | impl Scanner {
[INFO] [stdout]    | ------------ associated items in this implementation
[INFO] [stdout] 22 |     pub async fn new(config: &Config) -> Result<Self> {
[INFO] [stdout]    |                  ^^^
[INFO] [stdout] ...
[INFO] [stdout] 31 |     pub async fn scan_target(&self, target: &Target) -> Result<ScanResult> {
[INFO] [stdout]    |                  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `rate_limit` and `skip_ping` are never read
[INFO] [stdout]   --> src/scanner/port.rs:16:9
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct PortScanConfig {
[INFO] [stdout]    |            -------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 16 |     pub rate_limit: u64,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub skip_ping: bool,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PortScanConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NetworkScanConfig` is never constructed
[INFO] [stdout]   --> src/scanner/network.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct NetworkScanConfig {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NetworkScanResult` is never constructed
[INFO] [stdout]   --> src/scanner/network.rs:51:12
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub struct NetworkScanResult {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HostInfo` is never constructed
[INFO] [stdout]   --> src/scanner/network.rs:62:12
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub struct HostInfo {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NetworkScanMetadata` is never constructed
[INFO] [stdout]   --> src/scanner/network.rs:81:12
[INFO] [stdout]    |
[INFO] [stdout] 81 | pub struct NetworkScanMetadata {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NetworkScanner` is never constructed
[INFO] [stdout]   --> src/scanner/network.rs:92:12
[INFO] [stdout]    |
[INFO] [stdout] 92 | pub struct NetworkScanner {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/scanner/network.rs:100:18
[INFO] [stdout]     |
[INFO] [stdout]  99 | impl NetworkScanner {
[INFO] [stdout]     | ------------------- associated items in this implementation
[INFO] [stdout] 100 |     pub async fn new(config: &Config) -> Result<Self> {
[INFO] [stdout]     |                  ^^^
[INFO] [stdout] ...
[INFO] [stdout] 113 |     pub fn with_config(mut self, scan_config: NetworkScanConfig) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 119 |     pub async fn discover_hosts(&self, network: &str) -> Result<Vec<HostDiscoveryResult>> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 143 |     pub async fn ping_host(&self, ip: IpAddr) -> Result<bool> {
[INFO] [stdout]     |                  ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 154 |     pub async fn scan_network(&self, network: &str) -> Result<NetworkScanResult> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 272 |     async fn perform_traceroute(&self, ip: IpAddr) -> Result<Vec<IpAddr>> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 302 |     fn is_valid_cidr(cidr: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `clone` is never used
[INFO] [stdout]    --> src/scanner/network.rs:308:8
[INFO] [stdout]     |
[INFO] [stdout] 307 | impl NetworkDiscovery {
[INFO] [stdout]     | --------------------- method in this implementation
[INFO] [stdout] 308 |     fn clone(&self) -> Self {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `exploit_available` is never read
[INFO] [stdout]   --> src/vuln.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct VulnInfo {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 21 |     pub exploit_available: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `VulnInfo` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Medium`, `Low`, and `Info` are never constructed
[INFO] [stdout]   --> src/vuln.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub enum VulnSeverity {
[INFO] [stdout]    |          ------------ variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 30 |     Medium,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 31 |     Low,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 32 |     Info,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `VulnSeverity` 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 `max_retries` is never read
[INFO] [stdout]   --> src/vuln.rs:69:5
[INFO] [stdout]    |
[INFO] [stdout] 67 | pub struct VulnScanner {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] 68 |     timeout: Duration,
[INFO] [stdout] 69 |     max_retries: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `scan_all_vulns` is never used
[INFO] [stdout]   --> src/vuln.rs:93:18
[INFO] [stdout]    |
[INFO] [stdout] 73 | impl VulnScanner {
[INFO] [stdout]    | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 93 |     pub async fn scan_all_vulns(&self, target: IpAddr, ports: &[u16]) -> Result<Vec<VulnResult>> {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/detectors.rs:460:35
[INFO] [stdout]     |
[INFO] [stdout] 460 |                         } else if ttl <= 255 {
[INFO] [stdout]     |                                   ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `add_error` is never used
[INFO] [stdout]   --> src/core/result.rs:68:12
[INFO] [stdout]    |
[INFO] [stdout] 51 | impl ScanResults {
[INFO] [stdout]    | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 68 |     pub fn add_error(&mut self, target: String, error_type: ErrorType, message: String) {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/core/target.rs:40:12
[INFO] [stdout]     |
[INFO] [stdout]  38 | impl Target {
[INFO] [stdout]     | ----------- associated items in this implementation
[INFO] [stdout]  39 |     /// 从字符串解析目标
[INFO] [stdout]  40 |     pub fn parse(input: &str) -> Result<Vec<Self>> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  65 |     fn parse_file(path: &str) -> Result<Vec<Self>> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  82 |     fn parse_cidr(input: &str) -> Result<Self> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  92 |     fn parse_range(input: &str) -> Result<Self> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 125 |     fn parse_url(input: &str) -> Result<Self> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 135 |     fn parse_ip(input: &str) -> Result<Self> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 145 |     fn parse_domain(input: &str) -> Result<Self> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 210 |     fn default_ports() -> Vec<u16> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 217 |     pub fn expand_ips(&self) -> Result<Vec<IpAddr>> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 275 |     pub fn get_ports(&self) -> Vec<u16> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 290 |     pub fn description(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `with_state`, `with_banner`, `with_service`, and `is_http_like` are never used
[INFO] [stdout]    --> src/core/service.rs:86:12
[INFO] [stdout]     |
[INFO] [stdout]  71 | impl ServiceInfo {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  86 |     pub fn with_state(mut self, state: PortState) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  91 |     pub fn with_banner(mut self, banner: String) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  96 |     pub fn with_service(mut self, service: ServiceDetails) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 105 |     pub fn is_http_like(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WafDetector` is never constructed
[INFO] [stdout]   --> src/detectors.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct WafDetector {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CdnDetector` is never constructed
[INFO] [stdout]   --> src/detectors.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct CdnDetector {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `OsDetector` is never constructed
[INFO] [stdout]   --> src/detectors.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct OsDetector {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WafResult` is never constructed
[INFO] [stdout]   --> src/detectors.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub struct WafResult {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CdnResult` is never constructed
[INFO] [stdout]   --> src/detectors.rs:42:12
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub struct CdnResult {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `OsResult` is never constructed
[INFO] [stdout]   --> src/detectors.rs:51:12
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub struct OsResult {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `with_timeout`, `detect`, and `test_waf_triggers` are never used
[INFO] [stdout]    --> src/detectors.rs:59:12
[INFO] [stdout]     |
[INFO] [stdout]  58 | impl WafDetector {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout]  59 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 101 |     pub fn with_timeout(mut self, timeout: Duration) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 107 |     pub async fn detect(&self, target: &str, port: u16) -> Result<WafResult> {
[INFO] [stdout]     |                  ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 165 |     pub async fn test_waf_triggers(&self, target: &str, port: u16) -> Result<WafResult> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `with_timeout`, `detect`, and `detect_by_multi_ip` are never used
[INFO] [stdout]    --> src/detectors.rs:247:12
[INFO] [stdout]     |
[INFO] [stdout] 246 | impl CdnDetector {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout] 247 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 281 |     pub fn with_timeout(mut self, timeout: Duration) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 287 |     pub async fn detect(&self, target: &str, port: u16) -> Result<CdnResult> {
[INFO] [stdout]     |                  ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 342 |     pub async fn detect_by_multi_ip(&self, domain: &str) -> Result<CdnResult> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `with_timeout`, `detect_by_ttl`, `detect_by_http`, and `detect` are never used
[INFO] [stdout]    --> src/detectors.rs:394:12
[INFO] [stdout]     |
[INFO] [stdout] 393 | impl OsDetector {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout] 394 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 417 |     pub fn with_timeout(mut self, timeout: Duration) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 423 |     pub async fn detect_by_ttl(&self, ip: IpAddr) -> Result<OsResult> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 481 |     pub async fn detect_by_http(&self, target: &str, port: u16) -> Result<OsResult> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 555 |     pub async fn detect(&self, target: &str) -> Result<OsResult> {
[INFO] [stdout]     |                  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `fingerprint_engine` is never read
[INFO] [stdout]   --> src/engine.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct ScanEngine {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] 15 |     config: Config,
[INFO] [stdout] 16 |     fingerprint_engine: FingerprintEngine,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `execute` is never used
[INFO] [stdout]    --> src/engine.rs:369:18
[INFO] [stdout]     |
[INFO] [stdout]  20 | impl ScanEngine {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 369 |     pub async fn execute(&mut self) -> Result<()> {
[INFO] [stdout]     |                  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `cpe` is never read
[INFO] [stdout]   --> src/fingerprint/mod.rs:25:9
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub struct DetectionResult {
[INFO] [stdout]    |            --------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub cpe: Option<String>,
[INFO] [stdout]    |         ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DetectionResult` 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 `product_name`, `match_type`, `pattern`, and `compiled_regex` are never read
[INFO] [stdout]   --> src/fingerprint/mod.rs:39:9
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub struct ExternalFingerprint {
[INFO] [stdout]    |            ------------------- fields in this struct
[INFO] [stdout] 39 |     pub product_name: String,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 40 |     pub match_type: String, // "Body", "Header", "Title", etc.
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 41 |     pub pattern: String,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 42 |     pub compiled_regex: Option<Regex>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ExternalFingerprint` 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 `detect_service_enhanced`, `generic_port_detection`, `extract_title`, and `get_probe_for_port` are never used
[INFO] [stdout]    --> src/fingerprint/mod.rs:121:12
[INFO] [stdout]     |
[INFO] [stdout]  45 | impl ProtocolDetector {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 121 |     pub fn detect_service_enhanced(&self, port: u16, banner: &str, body: &str, headers: &HashMap<String, String>) -> Result<Detecti...
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 179 |     fn generic_port_detection(&self, port: u16) -> Result<DetectionResult> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 209 |     fn extract_title(&self, body: &str) -> Option<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 472 |     pub fn get_probe_for_port(&self, port: u16) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SmbScanner` is never constructed
[INFO] [stdout]    --> src/fingerprint/mod.rs:483:12
[INFO] [stdout]     |
[INFO] [stdout] 483 | pub struct SmbScanner;
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `scan_smb` is never used
[INFO] [stdout]    --> src/fingerprint/mod.rs:486:18
[INFO] [stdout]     |
[INFO] [stdout] 485 | impl SmbScanner {
[INFO] [stdout]     | --------------- associated function in this implementation
[INFO] [stdout] 486 |     pub async fn scan_smb(target: &str) -> Result<SmbInfo> {
[INFO] [stdout]     |                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SmbInfo` is never constructed
[INFO] [stdout]    --> src/fingerprint/mod.rs:665:12
[INFO] [stdout]     |
[INFO] [stdout] 665 | pub struct SmbInfo {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WmiScanner` is never constructed
[INFO] [stdout]    --> src/fingerprint/mod.rs:675:12
[INFO] [stdout]     |
[INFO] [stdout] 675 | pub struct WmiScanner;
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `scan_wmi` is never used
[INFO] [stdout]    --> src/fingerprint/mod.rs:678:18
[INFO] [stdout]     |
[INFO] [stdout] 677 | impl WmiScanner {
[INFO] [stdout]     | --------------- associated function in this implementation
[INFO] [stdout] 678 |     pub async fn scan_wmi(target: &str) -> Result<WmiInfo> {
[INFO] [stdout]     |                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WmiInfo` is never constructed
[INFO] [stdout]    --> src/fingerprint/mod.rs:757:12
[INFO] [stdout]     |
[INFO] [stdout] 757 | pub struct WmiInfo {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SnmpScanner` is never constructed
[INFO] [stdout]    --> src/fingerprint/mod.rs:764:12
[INFO] [stdout]     |
[INFO] [stdout] 764 | pub struct SnmpScanner;
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `scan_snmp` and `extract_snmp_description` are never used
[INFO] [stdout]    --> src/fingerprint/mod.rs:767:18
[INFO] [stdout]     |
[INFO] [stdout] 766 | impl SnmpScanner {
[INFO] [stdout]     | ---------------- associated functions in this implementation
[INFO] [stdout] 767 |     pub async fn scan_snmp(target: &str) -> Result<SnmpInfo> {
[INFO] [stdout]     |                  ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 873 |     fn extract_snmp_description(data: &[u8]) -> Option<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SnmpInfo` is never constructed
[INFO] [stdout]    --> src/fingerprint/mod.rs:889:12
[INFO] [stdout]     |
[INFO] [stdout] 889 | pub struct SnmpInfo {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NetBiosScanner` is never constructed
[INFO] [stdout]    --> src/fingerprint/mod.rs:896:12
[INFO] [stdout]     |
[INFO] [stdout] 896 | pub struct NetBiosScanner;
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `scan_netbios`, `parse_netbios_response`, and `enumerate_shares` are never used
[INFO] [stdout]     --> src/fingerprint/mod.rs:899:18
[INFO] [stdout]      |
[INFO] [stdout]  898 | impl NetBiosScanner {
[INFO] [stdout]      | ------------------- associated functions in this implementation
[INFO] [stdout]  899 |     pub async fn scan_netbios(target: &str) -> Result<NetBiosInfo> {
[INFO] [stdout]      |                  ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  965 |     fn parse_netbios_response(data: &[u8], info: &mut NetBiosInfo) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1013 |     async fn enumerate_shares(target: &str) -> Result<Vec<String>> {
[INFO] [stdout]      |              ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NetBiosInfo` is never constructed
[INFO] [stdout]     --> src/fingerprint/mod.rs:1045:12
[INFO] [stdout]      |
[INFO] [stdout] 1045 | pub struct NetBiosInfo {
[INFO] [stdout]      |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_specialized_info` is never used
[INFO] [stdout]     --> src/fingerprint/mod.rs:1099:18
[INFO] [stdout]      |
[INFO] [stdout] 1057 | impl FingerprintEngine {
[INFO] [stdout]      | ---------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 1099 |     pub async fn get_specialized_info(&self, target: &str, port: u16) -> Result<Option<SpecializedInfo>> {
[INFO] [stdout]      |                  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `SpecializedInfo` is never used
[INFO] [stdout]     --> src/fingerprint/mod.rs:1129:10
[INFO] [stdout]      |
[INFO] [stdout] 1129 | pub enum SpecializedInfo {
[INFO] [stdout]      |          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DnsResolver` is never constructed
[INFO] [stdout]   --> src/network.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct DnsResolver {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NetworkDiscovery` is never constructed
[INFO] [stdout]   --> src/network.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct NetworkDiscovery {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HostDiscoveryResult` is never constructed
[INFO] [stdout]   --> src/network.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub struct HostDiscoveryResult {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `with_timeout`, and `reverse_lookup` are never used
[INFO] [stdout]   --> src/network.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 35 | impl DnsResolver {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout] 36 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub fn with_timeout(mut self, timeout: Duration) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 49 |     pub async fn reverse_lookup(&self, ip: IpAddr) -> Result<Option<String>> {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/network.rs:71:12
[INFO] [stdout]     |
[INFO] [stdout]  70 | impl NetworkDiscovery {
[INFO] [stdout]     | --------------------- associated items in this implementation
[INFO] [stdout]  71 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  79 |     pub fn with_timeout(mut self, timeout: Duration) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  85 |     pub fn with_max_concurrent(mut self, max_concurrent: usize) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  91 |     pub async fn ping(&self, ip: IpAddr) -> Result<HostDiscoveryResult> {
[INFO] [stdout]     |                  ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 134 |     pub async fn tcp_probe(&self, ip: IpAddr, port: u16) -> Result<bool> {
[INFO] [stdout]     |                  ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 144 |     async fn reverse_dns_lookup(&self, ip: IpAddr) -> Result<Option<String>> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 150 |     async fn get_mac_address(&self, ip: IpAddr) -> Result<Option<String>> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 191 |     pub async fn scan_network(&self, cidr: &str) -> Result<Vec<HostDiscoveryResult>> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 240 |     pub async fn scan_network_tcp(&self, cidr: &str, ports: &[u16]) -> Result<Vec<HostDiscoveryResult>> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Scanner` is never constructed
[INFO] [stdout]   --> src/scanner/mod.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct Scanner {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `scan_target` are never used
[INFO] [stdout]   --> src/scanner/mod.rs:22:18
[INFO] [stdout]    |
[INFO] [stdout] 21 | impl Scanner {
[INFO] [stdout]    | ------------ associated items in this implementation
[INFO] [stdout] 22 |     pub async fn new(config: &Config) -> Result<Self> {
[INFO] [stdout]    |                  ^^^
[INFO] [stdout] ...
[INFO] [stdout] 31 |     pub async fn scan_target(&self, target: &Target) -> Result<ScanResult> {
[INFO] [stdout]    |                  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `rate_limit` and `skip_ping` are never read
[INFO] [stdout]   --> src/scanner/port.rs:16:9
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct PortScanConfig {
[INFO] [stdout]    |            -------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 16 |     pub rate_limit: u64,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub skip_ping: bool,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PortScanConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NetworkScanConfig` is never constructed
[INFO] [stdout]   --> src/scanner/network.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct NetworkScanConfig {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NetworkScanResult` is never constructed
[INFO] [stdout]   --> src/scanner/network.rs:51:12
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub struct NetworkScanResult {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HostInfo` is never constructed
[INFO] [stdout]   --> src/scanner/network.rs:62:12
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub struct HostInfo {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NetworkScanMetadata` is never constructed
[INFO] [stdout]   --> src/scanner/network.rs:81:12
[INFO] [stdout]    |
[INFO] [stdout] 81 | pub struct NetworkScanMetadata {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NetworkScanner` is never constructed
[INFO] [stdout]   --> src/scanner/network.rs:92:12
[INFO] [stdout]    |
[INFO] [stdout] 92 | pub struct NetworkScanner {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/scanner/network.rs:100:18
[INFO] [stdout]     |
[INFO] [stdout]  99 | impl NetworkScanner {
[INFO] [stdout]     | ------------------- associated items in this implementation
[INFO] [stdout] 100 |     pub async fn new(config: &Config) -> Result<Self> {
[INFO] [stdout]     |                  ^^^
[INFO] [stdout] ...
[INFO] [stdout] 113 |     pub fn with_config(mut self, scan_config: NetworkScanConfig) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 119 |     pub async fn discover_hosts(&self, network: &str) -> Result<Vec<HostDiscoveryResult>> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 143 |     pub async fn ping_host(&self, ip: IpAddr) -> Result<bool> {
[INFO] [stdout]     |                  ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 154 |     pub async fn scan_network(&self, network: &str) -> Result<NetworkScanResult> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 272 |     async fn perform_traceroute(&self, ip: IpAddr) -> Result<Vec<IpAddr>> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 302 |     fn is_valid_cidr(cidr: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `clone` is never used
[INFO] [stdout]    --> src/scanner/network.rs:308:8
[INFO] [stdout]     |
[INFO] [stdout] 307 | impl NetworkDiscovery {
[INFO] [stdout]     | --------------------- method in this implementation
[INFO] [stdout] 308 |     fn clone(&self) -> Self {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `exploit_available` is never read
[INFO] [stdout]   --> src/vuln.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct VulnInfo {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 21 |     pub exploit_available: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `VulnInfo` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Medium`, `Low`, and `Info` are never constructed
[INFO] [stdout]   --> src/vuln.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub enum VulnSeverity {
[INFO] [stdout]    |          ------------ variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 30 |     Medium,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 31 |     Low,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 32 |     Info,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `VulnSeverity` 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 `max_retries` is never read
[INFO] [stdout]   --> src/vuln.rs:69:5
[INFO] [stdout]    |
[INFO] [stdout] 67 | pub struct VulnScanner {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] 68 |     timeout: Duration,
[INFO] [stdout] 69 |     max_retries: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `scan_all_vulns` is never used
[INFO] [stdout]   --> src/vuln.rs:93:18
[INFO] [stdout]    |
[INFO] [stdout] 73 | impl VulnScanner {
[INFO] [stdout]    | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 93 |     pub async fn scan_all_vulns(&self, target: IpAddr, ports: &[u16]) -> Result<Vec<VulnResult>> {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> src/detectors.rs:460:35
[INFO] [stdout]     |
[INFO] [stdout] 460 |                         } else if ttl <= 255 {
[INFO] [stdout]     |                                   ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 41.40s
[INFO] running `Command { std: "docker" "inspect" "03bb0d15e705aef781cf3bafb2bff91d8434b9ad232db344d7356f239c4d3f9a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "03bb0d15e705aef781cf3bafb2bff91d8434b9ad232db344d7356f239c4d3f9a", kill_on_drop: false }`
[INFO] [stdout] 03bb0d15e705aef781cf3bafb2bff91d8434b9ad232db344d7356f239c4d3f9a
