[INFO] cloning repository https://github.com/icryo/ancarna
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/icryo/ancarna" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ficryo%2Fancarna", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ficryo%2Fancarna'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 7f9892c8baa886be1709c130318569a76182a115
[INFO] checking icryo/ancarna against master#f8463896a9b36a04899c013bd8825a7fd29dd7a4 for pr-151920
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ficryo%2Fancarna" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/icryo/ancarna
[INFO] finished tweaking git repo https://github.com/icryo/ancarna
[INFO] tweaked toml for git repo https://github.com/icryo/ancarna written to /workspace/builds/worker-0-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/icryo/ancarna on toolchain f8463896a9b36a04899c013bd8825a7fd29dd7a4
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+f8463896a9b36a04899c013bd8825a7fd29dd7a4" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/icryo/ancarna 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" "+f8463896a9b36a04899c013bd8825a7fd29dd7a4" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded tokio-test v0.4.5
[INFO] [stderr]   Downloaded onig v6.5.1
[INFO] [stderr]   Downloaded tracing-appender v0.2.4
[INFO] [stderr]   Downloaded tui-textarea v0.7.0
[INFO] [stderr]   Downloaded boa_interner v0.19.1
[INFO] [stderr]   Downloaded jsonxf v1.1.1
[INFO] [stderr]   Downloaded boa_macros v0.19.1
[INFO] [stderr]   Downloaded boa_gc v0.19.1
[INFO] [stderr]   Downloaded throbber-widgets-tui v0.8.0
[INFO] [stderr]   Downloaded wiremock v0.6.5
[INFO] [stderr]   Downloaded boa_string v0.19.1
[INFO] [stderr]   Downloaded scraper v0.22.0
[INFO] [stderr]   Downloaded deadpool v0.12.3
[INFO] [stderr]   Downloaded boa_ast v0.19.1
[INFO] [stderr]   Downloaded ryu-js v1.0.2
[INFO] [stderr]   Downloaded boa_profiler v0.19.1
[INFO] [stderr]   Downloaded boa_parser v0.19.1
[INFO] [stderr]   Downloaded tui-tree-widget v0.23.1
[INFO] [stderr]   Downloaded onig_sys v69.9.1
[INFO] [stderr]   Downloaded openapiv3 v2.2.0
[INFO] [stderr]   Downloaded boa_engine v0.19.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:61361fe0aef631f17e9d025a70c5a647956f8c671dd02950a60ad3f5cc5526d7" "/opt/rustwide/cargo-home/bin/cargo" "+f8463896a9b36a04899c013bd8825a7fd29dd7a4" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] bae886ef4d6e38785d0267b007f087c563e682628fa617c6d45b422901e9561c
[INFO] running `Command { std: "docker" "start" "-a" "bae886ef4d6e38785d0267b007f087c563e682628fa617c6d45b422901e9561c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "bae886ef4d6e38785d0267b007f087c563e682628fa617c6d45b422901e9561c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "bae886ef4d6e38785d0267b007f087c563e682628fa617c6d45b422901e9561c", kill_on_drop: false }`
[INFO] [stdout] bae886ef4d6e38785d0267b007f087c563e682628fa617c6d45b422901e9561c
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:61361fe0aef631f17e9d025a70c5a647956f8c671dd02950a60ad3f5cc5526d7" "/opt/rustwide/cargo-home/bin/cargo" "+f8463896a9b36a04899c013bd8825a7fd29dd7a4" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 0097c3e30e51d467c0265733d00f47f5f7b05304aaa244be9d74dda9b185aa2a
[INFO] running `Command { std: "docker" "start" "-a" "0097c3e30e51d467c0265733d00f47f5f7b05304aaa244be9d74dda9b185aa2a", kill_on_drop: false }`
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]     Checking stable_deref_trait v1.2.1
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]     Checking bitflags v2.10.0
[INFO] [stderr]    Compiling libc v0.2.180
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]     Checking mio v1.1.1
[INFO] [stderr]     Checking getrandom v0.2.17
[INFO] [stderr]    Compiling zerocopy v0.8.37
[INFO] [stderr]    Compiling siphasher v1.0.2
[INFO] [stderr]     Checking zerofrom v0.1.6
[INFO] [stderr]    Compiling time-macros v0.2.26
[INFO] [stderr]     Checking time-core v0.1.8
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]    Compiling zmij v1.0.18
[INFO] [stderr]     Checking unicode-width v0.2.0
[INFO] [stderr]     Checking http v1.4.0
[INFO] [stderr]    Compiling darling_core v0.23.0
[INFO] [stderr]     Checking yoke v0.8.1
[INFO] [stderr]     Checking tracing v0.1.44
[INFO] [stderr]    Compiling phf_shared v0.11.3
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking castaway v0.2.4
[INFO] [stderr]    Compiling yoke-derive v0.7.5
[INFO] [stderr]     Checking block-padding v0.3.3
[INFO] [stderr]     Checking zerovec v0.11.5
[INFO] [stderr]    Compiling phf_generator v0.11.3
[INFO] [stderr]     Checking zerotrie v0.2.3
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]     Checking futures-util v0.3.31
[INFO] [stderr]     Checking inout v0.1.4
[INFO] [stderr]     Checking tokio v1.49.0
[INFO] [stderr]    Compiling phf_macros v0.11.3
[INFO] [stderr]    Compiling zerovec-derive v0.10.3
[INFO] [stderr]    Compiling instability v0.3.11
[INFO] [stderr]    Compiling indoc v2.0.7
[INFO] [stderr]     Checking num-integer v0.1.46
[INFO] [stderr]     Checking cipher v0.4.4
[INFO] [stderr]     Checking flate2 v1.1.8
[INFO] [stderr]    Compiling jobserver v0.1.34
[INFO] [stderr]    Compiling rustix v1.1.3
[INFO] [stderr]     Checking signal-hook-mio v0.2.5
[INFO] [stderr]     Checking tinystr v0.8.2
[INFO] [stderr]     Checking potential_utf v0.1.4
[INFO] [stderr]     Checking phf v0.11.3
[INFO] [stderr]     Checking http-body v1.0.1
[INFO] [stderr]     Checking icu_collections v2.1.1
[INFO] [stderr]    Compiling phf_codegen v0.11.3
[INFO] [stderr]     Checking alloc-no-stdlib v2.0.4
[INFO] [stderr]     Checking linux-raw-sys v0.11.0
[INFO] [stderr]    Compiling cc v1.2.55
[INFO] [stderr]     Checking alloc-stdlib v0.2.2
[INFO] [stderr]     Checking icu_locale_core v2.1.1
[INFO] [stderr]    Compiling icu_locid_transform_data v1.5.1
[INFO] [stderr]     Checking time v0.3.46
[INFO] [stderr]     Checking litemap v0.7.5
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]     Checking brotli-decompressor v5.0.0
[INFO] [stderr]     Checking sha2 v0.10.9
[INFO] [stderr]     Checking hmac v0.12.1
[INFO] [stderr]     Checking itertools v0.14.0
[INFO] [stderr]    Compiling strum_macros v0.27.2
[INFO] [stderr]     Checking yoke v0.7.5
[INFO] [stderr]    Compiling cmake v0.1.57
[INFO] [stderr]     Checking zerovec v0.10.4
[INFO] [stderr]    Compiling icu_provider_macros v1.5.0
[INFO] [stderr]     Checking thiserror v2.0.18
[INFO] [stderr]     Checking rustc-hash v2.1.1
[INFO] [stderr]     Checking icu_provider v2.1.1
[INFO] [stderr]     Checking fast-float v0.2.0
[INFO] [stderr]     Checking sptr v0.3.2
[INFO] [stderr]    Compiling icu_properties_data v1.5.1
[INFO] [stderr]     Checking kasuari v0.4.11
[INFO] [stderr]     Checking boa_string v0.19.1
[INFO] [stderr]     Checking brotli v8.0.2
[INFO] [stderr]     Checking tinystr v0.7.6
[INFO] [stderr]     Checking icu_properties v2.1.2
[INFO] [stderr]     Checking icu_normalizer v2.1.1
[INFO] [stderr]     Checking icu_locid v1.5.0
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling aws-lc-sys v0.37.0
[INFO] [stderr]     Checking indexmap v2.13.0
[INFO] [stderr]     Checking serde_json v1.0.149
[INFO] [stderr]     Checking num-bigint v0.4.6
[INFO] [stderr]     Checking icu_provider v1.5.0
[INFO] [stderr]     Checking unicode-truncate v2.0.1
[INFO] [stderr]    Compiling darling_macro v0.23.0
[INFO] [stderr]     Checking pbkdf2 v0.12.2
[INFO] [stderr]     Checking salsa20 v0.10.2
[INFO] [stderr]    Compiling string_cache_codegen v0.5.4
[INFO] [stderr]    Compiling darling v0.23.0
[INFO] [stderr]     Checking webpki-roots v1.0.5
[INFO] [stderr]     Checking compact_str v0.9.0
[INFO] [stderr]     Checking idna_adapter v1.2.1
[INFO] [stderr]    Compiling strum_macros v0.26.4
[INFO] [stderr]     Checking idna v1.1.0
[INFO] [stderr]    Compiling boa_macros v0.19.1
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]     Checking lru v0.16.3
[INFO] [stderr]    Compiling cookie v0.18.1
[INFO] [stderr]     Checking thin-vec v0.2.14
[INFO] [stderr]     Checking boa_profiler v0.19.1
[INFO] [stderr]    Compiling unicase v2.9.0
[INFO] [stderr]     Checking compression-core v0.4.31
[INFO] [stderr]     Checking url v2.5.8
[INFO] [stderr]     Checking unicode-truncate v1.1.0
[INFO] [stderr]     Checking strum v0.27.2
[INFO] [stderr]    Compiling mime_guess v2.0.5
[INFO] [stderr]    Compiling onig_sys v69.9.1
[INFO] [stderr]    Compiling markup5ever v0.14.1
[INFO] [stderr]     Checking scrypt v0.11.0
[INFO] [stderr]     Checking ratatui-core v0.1.0
[INFO] [stderr]     Checking icu_locid_transform v1.5.0
[INFO] [stderr]     Checking crossterm v0.28.1
[INFO] [stderr]     Checking icu_collections v1.5.0
[INFO] [stderr]    Compiling derive_more-impl v2.1.1
[INFO] [stderr]     Checking lru v0.12.5
[INFO] [stderr]     Checking http-body-util v0.1.3
[INFO] [stderr]     Checking aes v0.8.4
[INFO] [stderr]     Checking cbc v0.1.2
[INFO] [stderr]     Checking hdrhistogram v7.5.4
[INFO] [stderr]     Checking compact_str v0.8.1
[INFO] [stderr]    Compiling bytemuck_derive v1.10.2
[INFO] [stderr]    Compiling memoffset v0.9.1
[INFO] [stderr]     Checking cassowary v0.3.0
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking psl-types v2.0.11
[INFO] [stderr]    Compiling icu_normalizer_data v1.5.1
[INFO] [stderr]     Checking dtoa v1.0.11
[INFO] [stderr]     Checking publicsuffix v2.3.0
[INFO] [stderr]     Checking pkcs5 v0.7.1
[INFO] [stderr]     Checking icu_properties v1.5.1
[INFO] [stderr]     Checking dtoa-short v0.3.5
[INFO] [stderr]     Checking derive_more v2.1.1
[INFO] [stderr]     Checking string_cache v0.8.9
[INFO] [stderr]    Compiling selectors v0.26.0
[INFO] [stderr]     Checking pxfm v0.1.27
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]     Checking ahash v0.8.12
[INFO] [stderr]     Checking line-clipping v0.3.5
[INFO] [stderr]    Compiling cssparser-macros v0.6.1
[INFO] [stderr]    Compiling num-bigint-dig v0.8.6
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]    Compiling portable-atomic v1.13.1
[INFO] [stderr]     Checking ratatui-widgets v0.3.0
[INFO] [stderr]     Checking hashbrown v0.14.5
[INFO] [stderr]     Checking pkcs8 v0.10.2
[INFO] [stderr]     Checking bytemuck v1.25.0
[INFO] [stderr]     Checking cssparser v0.34.0
[INFO] [stderr]     Checking compression-codecs v0.4.36
[INFO] [stderr]     Checking strum v0.26.3
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking crossterm v0.29.0
[INFO] [stderr]     Checking gethostname v1.1.0
[INFO] [stderr]     Checking ratatui v0.29.0
[INFO] [stderr]     Checking cookie_store v0.22.0
[INFO] [stderr]     Checking png v0.18.0
[INFO] [stderr]    Compiling num_enum_derive v0.7.5
[INFO] [stderr]     Checking tokio-util v0.7.18
[INFO] [stderr]     Checking async-compression v0.4.37
[INFO] [stderr]     Checking boa_gc v0.19.1
[INFO] [stderr]     Checking getrandom v0.3.4
[INFO] [stderr]     Checking futures-executor v0.3.31
[INFO] [stderr]     Checking tracing-serde v0.2.0
[INFO] [stderr]     Checking serde_spanned v0.6.9
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking toml_datetime v0.6.11
[INFO] [stderr]     Checking matchers v0.2.0
[INFO] [stderr]     Checking h2 v0.4.13
[INFO] [stderr]     Checking tower v0.5.3
[INFO] [stderr]     Checking num-iter v0.1.45
[INFO] [stderr]     Checking pem v3.0.6
[INFO] [stderr]     Checking sha1 v0.10.6
[INFO] [stderr]     Checking getopts v0.2.24
[INFO] [stderr]     Checking servo_arc v0.4.3
[INFO] [stderr]    Compiling derive_more v0.99.20
[INFO] [stderr]    Compiling match_token v0.1.0
[INFO] [stderr]     Checking regress v0.10.5
[INFO] [stderr]     Checking quick-xml v0.38.4
[INFO] [stderr]     Checking data-encoding v2.10.0
[INFO] [stderr]     Checking winnow v0.7.14
[INFO] [stderr]     Checking x11rb-protocol v0.13.2
[INFO] [stderr]     Checking clap_builder v4.5.56
[INFO] [stderr]     Checking html5ever v0.29.1
[INFO] [stderr]     Checking boa_interner v0.19.1
[INFO] [stderr]     Checking num_enum v0.7.5
[INFO] [stderr]     Checking yaml-rust v0.4.5
[INFO] [stderr]     Checking dirs-sys v0.4.1
[INFO] [stderr]     Checking boa_ast v0.19.1
[INFO] [stderr]     Checking icu_normalizer v1.5.0
[INFO] [stderr]     Checking tracing-subscriber v0.3.22
[INFO] [stderr]     Checking plist v1.8.0
[INFO] [stderr]     Checking ratatui-macros v0.7.0
[INFO] [stderr]     Checking tower-http v0.6.8
[INFO] [stderr]     Checking futures v0.3.31
[INFO] [stderr]     Checking ratatui-crossterm v0.1.0
[INFO] [stderr]     Checking intrusive-collections v0.9.7
[INFO] [stderr]     Checking dashmap v5.5.3
[INFO] [stderr]     Checking moxcms v0.7.11
[INFO] [stderr]     Checking hyper v1.8.1
[INFO] [stderr]     Checking pkcs1 v0.7.5
[INFO] [stderr]     Checking simple_asn1 v0.6.3
[INFO] [stderr]     Checking webpki-roots v0.26.11
[INFO] [stderr]     Checking yasna v0.5.2
[INFO] [stderr]     Checking bincode v1.3.3
[INFO] [stderr]     Checking regex v1.12.2
[INFO] [stderr]     Checking signature v2.2.0
[INFO] [stderr]     Checking md-5 v0.10.6
[INFO] [stderr]    Compiling clap_derive v4.5.55
[INFO] [stderr]     Checking num_cpus v1.17.0
[INFO] [stderr]     Checking ryu-js v1.0.2
[INFO] [stderr]     Checking deadpool-runtime v0.1.4
[INFO] [stderr]     Checking pollster v0.3.0
[INFO] [stderr]     Checking serde_yaml v0.9.34+deprecated
[INFO] [stderr]     Checking rsa v0.9.10
[INFO] [stderr]     Checking deadpool v0.12.3
[INFO] [stderr]     Checking digest_auth v0.3.1
[INFO] [stderr]     Checking toml_edit v0.22.27
[INFO] [stderr]     Checking chrono v0.4.43
[INFO] [stderr]     Checking scraper v0.22.0
[INFO] [stderr]     Checking rcgen v0.13.2
[INFO] [stderr]     Checking boa_parser v0.19.1
[INFO] [stderr]     Checking jsonwebtoken v9.3.1
[INFO] [stderr]     Checking ratatui v0.30.0
[INFO] [stderr]     Checking tracing-appender v0.2.4
[INFO] [stderr]     Checking throbber-widgets-tui v0.8.0
[INFO] [stderr]     Checking tui-tree-widget v0.23.1
[INFO] [stderr]     Checking tui-textarea v0.7.0
[INFO] [stderr]     Checking directories v5.0.1
[INFO] [stderr]     Checking jsonxf v1.1.1
[INFO] [stderr]     Checking uuid v1.20.0
[INFO] [stderr]     Checking tokio-stream v0.1.18
[INFO] [stderr]     Checking openapiv3 v2.2.0
[INFO] [stderr]     Checking assert-json-diff v2.0.2
[INFO] [stderr]     Checking cfb-mode v0.8.2
[INFO] [stderr]     Checking yansi v1.0.1
[INFO] [stderr]     Checking urlencoding v2.1.3
[INFO] [stderr]     Checking tempfile v3.24.0
[INFO] [stderr]     Checking onig v6.5.1
[INFO] [stderr]     Checking hyper-util v0.1.19
[INFO] [stderr]     Checking pretty_assertions v1.4.1
[INFO] [stderr]     Checking tokio-test v0.4.5
[INFO] [stderr]     Checking clap v4.5.56
[INFO] [stderr]     Checking x11rb v0.13.2
[INFO] [stderr]     Checking syntect v5.3.0
[INFO] [stderr]     Checking boa_engine v0.19.1
[INFO] [stderr]     Checking toml v0.8.23
[INFO] [stderr]     Checking wiremock v0.6.5
[INFO] [stderr]     Checking image v0.25.9
[INFO] [stderr]     Checking arboard v3.6.1
[INFO] [stderr]    Compiling aws-lc-rs v1.15.4
[INFO] [stderr]    Compiling rustls v0.23.36
[INFO] [stderr]     Checking rustls-webpki v0.103.9
[INFO] [stderr]     Checking tokio-rustls v0.26.4
[INFO] [stderr]     Checking tungstenite v0.24.0
[INFO] [stderr]     Checking hyper-rustls v0.27.7
[INFO] [stderr]     Checking reqwest v0.12.28
[INFO] [stderr]     Checking tokio-tungstenite v0.24.0
[INFO] [stderr]     Checking reqwest-middleware v0.4.2
[INFO] [stderr]     Checking ancarna v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `PayloadProcessor`
[INFO] [stdout]   --> src/fuzzer/mod.rs:13:37
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub use encoding::{PayloadEncoding, PayloadProcessor};
[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: `ExportFormat`
[INFO] [stdout]   --> src/fuzzer/mod.rs:16:46
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub use results::{FuzzResult, FuzzResultSet, ExportFormat};
[INFO] [stdout]    |                                              ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Request` and `Response`
[INFO] [stdout]   --> src/scanner/graphql/mod.rs:16:19
[INFO] [stdout]    |
[INFO] [stdout] 16 | use crate::http::{Request, Response};
[INFO] [stdout]    |                   ^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `pkcs8::DecodePrivateKey`
[INFO] [stdout]   --> src/scanner/oob/interactsh.rs:15:11
[INFO] [stdout]    |
[INFO] [stdout] 15 | use rsa::{pkcs8::DecodePrivateKey, Pkcs1v15Encrypt, RsaPrivateKey, RsaPublicKey};
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `HttpRequest`, `MatcherCondition`, `MatcherType`, and `TemplateInfo`
[INFO] [stdout]   --> src/scanner/templates/mod.rs:12:28
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub use parser::{Template, TemplateInfo, HttpRequest, Matcher, MatcherType, MatcherCondition, Severity};
[INFO] [stdout]    |                            ^^^^^^^^^^^^  ^^^^^^^^^^^           ^^^^^^^^^^^  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `MatchResult`, `execute_matcher`, and `execute_matchers`
[INFO] [stdout]   --> src/scanner/templates/mod.rs:13:19
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub use matcher::{MatchResult, execute_matcher, execute_matchers};
[INFO] [stdout]    |                   ^^^^^^^^^^^  ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ActiveScanResult` and `TemplateVariables`
[INFO] [stdout]   --> src/scanner/templates/mod.rs:14:38
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub use executor::{TemplateExecutor, TemplateVariables, ActiveScanResult};
[INFO] [stdout]    |                                      ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AuthzTester`, `IdorTester`, and `UserSession`
[INFO] [stdout]   --> src/scanner/mod.rs:21:17
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub use authz::{AuthzTester, UserSession, IdorTester};
[INFO] [stdout]    |                 ^^^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `graphql::GraphQLScanner`
[INFO] [stdout]   --> src/scanner/mod.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub use graphql::GraphQLScanner;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `OobManager` and `OobPayloadGenerator`
[INFO] [stdout]   --> src/scanner/mod.rs:23:15
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub use oob::{OobManager, OobPayloadGenerator};
[INFO] [stdout]    |               ^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `TemplateExecutor` and `Template`
[INFO] [stdout]   --> src/scanner/mod.rs:24:21
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub use templates::{Template, TemplateExecutor};
[INFO] [stdout]    |                     ^^^^^^^^  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `upload::UploadScanner`
[INFO] [stdout]   --> src/scanner/mod.rs:25:9
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub use upload::UploadScanner;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PayloadProcessor`
[INFO] [stdout]   --> src/fuzzer/mod.rs:13:37
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub use encoding::{PayloadEncoding, PayloadProcessor};
[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: `ExportFormat`
[INFO] [stdout]   --> src/fuzzer/mod.rs:16:46
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub use results::{FuzzResult, FuzzResultSet, ExportFormat};
[INFO] [stdout]    |                                              ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Request` and `Response`
[INFO] [stdout]   --> src/scanner/graphql/mod.rs:16:19
[INFO] [stdout]    |
[INFO] [stdout] 16 | use crate::http::{Request, Response};
[INFO] [stdout]    |                   ^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `pkcs8::DecodePrivateKey`
[INFO] [stdout]   --> src/scanner/oob/interactsh.rs:15:11
[INFO] [stdout]    |
[INFO] [stdout] 15 | use rsa::{pkcs8::DecodePrivateKey, Pkcs1v15Encrypt, RsaPrivateKey, RsaPublicKey};
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Template`
[INFO] [stdout]   --> src/scanner/templates/tests.rs:11:72
[INFO] [stdout]    |
[INFO] [stdout] 11 |         Matcher, MatcherCondition, MatcherPart, MatcherType, Severity, Template,
[INFO] [stdout]    |                                                                        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `HttpRequest`, `MatcherCondition`, `MatcherType`, and `TemplateInfo`
[INFO] [stdout]   --> src/scanner/templates/mod.rs:12:28
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub use parser::{Template, TemplateInfo, HttpRequest, Matcher, MatcherType, MatcherCondition, Severity};
[INFO] [stdout]    |                            ^^^^^^^^^^^^  ^^^^^^^^^^^           ^^^^^^^^^^^  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `MatchResult`, `execute_matcher`, and `execute_matchers`
[INFO] [stdout]   --> src/scanner/templates/mod.rs:13:19
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub use matcher::{MatchResult, execute_matcher, execute_matchers};
[INFO] [stdout]    |                   ^^^^^^^^^^^  ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ActiveScanResult` and `TemplateVariables`
[INFO] [stdout]   --> src/scanner/templates/mod.rs:14:38
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub use executor::{TemplateExecutor, TemplateVariables, ActiveScanResult};
[INFO] [stdout]    |                                      ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AuthzTester`, `IdorTester`, and `UserSession`
[INFO] [stdout]   --> src/scanner/mod.rs:21:17
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub use authz::{AuthzTester, UserSession, IdorTester};
[INFO] [stdout]    |                 ^^^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `graphql::GraphQLScanner`
[INFO] [stdout]   --> src/scanner/mod.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub use graphql::GraphQLScanner;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `OobManager` and `OobPayloadGenerator`
[INFO] [stdout]   --> src/scanner/mod.rs:23:15
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub use oob::{OobManager, OobPayloadGenerator};
[INFO] [stdout]    |               ^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `TemplateExecutor` and `Template`
[INFO] [stdout]   --> src/scanner/mod.rs:24:21
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub use templates::{Template, TemplateExecutor};
[INFO] [stdout]    |                     ^^^^^^^^  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `upload::UploadScanner`
[INFO] [stdout]   --> src/scanner/mod.rs:25:9
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub use upload::UploadScanner;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/proxy/server.rs:657:13
[INFO] [stdout]     |
[INFO] [stdout] 657 |         let mut final_status_line = status_line.clone();
[INFO] [stdout]     |             ----^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/proxy/server.rs:657:13
[INFO] [stdout]     |
[INFO] [stdout] 657 |         let mut final_status_line = status_line.clone();
[INFO] [stdout]     |             ----^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]     --> src/app/state.rs:5075:13
[INFO] [stdout]      |
[INFO] [stdout] 4575 |             KeyCode::Esc => {
[INFO] [stdout]      |             ------------ matches all the relevant values
[INFO] [stdout] ...
[INFO] [stdout] 5075 |             KeyCode::Esc if state.status_is_error => {
[INFO] [stdout]      |             ^^^^^^^^^^^^ no value can reach this
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]     --> src/app/state.rs:5075:13
[INFO] [stdout]      |
[INFO] [stdout] 4575 |             KeyCode::Esc => {
[INFO] [stdout]      |             ------------ matches all the relevant values
[INFO] [stdout] ...
[INFO] [stdout] 5075 |             KeyCode::Esc if state.status_is_error => {
[INFO] [stdout]      |             ^^^^^^^^^^^^ no value can reach this
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `requested_subprotocol`
[INFO] [stdout]    --> src/proxy/server.rs:930:9
[INFO] [stdout]     |
[INFO] [stdout] 930 |     let requested_subprotocol = headers.get("sec-websocket-protocol").cloned();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_requested_subprotocol`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `session`
[INFO] [stdout]    --> src/scanner/authz/mod.rs:410:9
[INFO] [stdout]     |
[INFO] [stdout] 410 |         session: &UserSession,
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_session`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `nosqli_payloads`
[INFO] [stdout]    --> src/scanner/graphql/mod.rs:750:13
[INFO] [stdout]     |
[INFO] [stdout] 750 |         let nosqli_payloads = vec![
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_nosqli_payloads`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `requested_subprotocol`
[INFO] [stdout]    --> src/proxy/server.rs:930:9
[INFO] [stdout]     |
[INFO] [stdout] 930 |     let requested_subprotocol = headers.get("sec-websocket-protocol").cloned();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_requested_subprotocol`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/scanner/oob/interactsh.rs:271:13
[INFO] [stdout]     |
[INFO] [stdout] 271 |         let mut cipher = Aes256CfbDec::new((&key_padded).into(), iv.into());
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `session`
[INFO] [stdout]    --> src/scanner/authz/mod.rs:410:9
[INFO] [stdout]     |
[INFO] [stdout] 410 |         session: &UserSession,
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_session`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `nosqli_payloads`
[INFO] [stdout]    --> src/scanner/graphql/mod.rs:750:13
[INFO] [stdout]     |
[INFO] [stdout] 750 |         let nosqli_payloads = vec![
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_nosqli_payloads`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/scanner/oob/interactsh.rs:271:13
[INFO] [stdout]     |
[INFO] [stdout] 271 |         let mut cipher = Aes256CfbDec::new((&key_padded).into(), iv.into());
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `title_style`
[INFO] [stdout]     --> src/tui/mod.rs:1308:9
[INFO] [stdout]      |
[INFO] [stdout] 1308 |     let title_style = if focused {
[INFO] [stdout]      |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_title_style`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `is_editing`
[INFO] [stdout]     --> src/tui/mod.rs:2924:9
[INFO] [stdout]      |
[INFO] [stdout] 2924 |     let is_editing = matches!(
[INFO] [stdout]      |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_is_editing`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `title_style`
[INFO] [stdout]     --> src/tui/mod.rs:1308:9
[INFO] [stdout]      |
[INFO] [stdout] 1308 |     let title_style = if focused {
[INFO] [stdout]      |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_title_style`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `is_editing`
[INFO] [stdout]     --> src/tui/mod.rs:2924:9
[INFO] [stdout]      |
[INFO] [stdout] 2924 |     let is_editing = matches!(
[INFO] [stdout]      |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_is_editing`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `show_status` and `show_error` are never used
[INFO] [stdout]     --> src/app/state.rs:1336:12
[INFO] [stdout]      |
[INFO] [stdout] 1334 | impl AppState {
[INFO] [stdout]      | ------------- methods in this implementation
[INFO] [stdout] 1335 |     /// Show a status message (auto-clears after 5 seconds)
[INFO] [stdout] 1336 |     pub fn show_status(&mut self, msg: impl Into<String>) {
[INFO] [stdout]      |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1343 |     pub fn show_error(&mut self, msg: impl Into<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: struct `UserSession` is never constructed
[INFO] [stdout]   --> src/scanner/authz/mod.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub struct UserSession {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `with_privilege_level`, `with_cookie`, `with_header`, `as_baseline`, and `cookie_header` are never used
[INFO] [stdout]   --> src/scanner/authz/mod.rs:53:12
[INFO] [stdout]    |
[INFO] [stdout] 51 | impl UserSession {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout] 52 |     /// Create a new user session
[INFO] [stdout] 53 |     pub fn new(name: &str) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 64 |     pub fn with_privilege_level(mut self, level: u8) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 70 |     pub fn with_cookie(mut self, name: &str, value: &str) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 76 |     pub fn with_header(mut self, name: &str, value: &str) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 82 |     pub fn as_baseline(mut self) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 88 |     pub fn cookie_header(&self) -> Option<String> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AuthzTestResult` is never constructed
[INFO] [stdout]    --> src/scanner/authz/mod.rs:105:12
[INFO] [stdout]     |
[INFO] [stdout] 105 | pub struct AuthzTestResult {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `EnforcementStatus` is never used
[INFO] [stdout]    --> src/scanner/authz/mod.rs:128:10
[INFO] [stdout]     |
[INFO] [stdout] 128 | pub enum EnforcementStatus {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_vulnerable` is never used
[INFO] [stdout]    --> src/scanner/authz/mod.rs:141:12
[INFO] [stdout]     |
[INFO] [stdout] 139 | impl AuthzTestResult {
[INFO] [stdout]     | -------------------- method in this implementation
[INFO] [stdout] 140 |     /// Check if this result indicates a vulnerability
[INFO] [stdout] 141 |     pub fn is_vulnerable(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ComparisonMode` is never used
[INFO] [stdout]    --> src/scanner/authz/mod.rs:148:10
[INFO] [stdout]     |
[INFO] [stdout] 148 | pub enum ComparisonMode {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AuthzConfig` is never constructed
[INFO] [stdout]    --> src/scanner/authz/mod.rs:163:12
[INFO] [stdout]     |
[INFO] [stdout] 163 | pub struct AuthzConfig {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AuthzTester` is never constructed
[INFO] [stdout]    --> src/scanner/authz/mod.rs:205:12
[INFO] [stdout]     |
[INFO] [stdout] 205 | pub struct AuthzTester {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/scanner/authz/mod.rs:220:12
[INFO] [stdout]     |
[INFO] [stdout] 218 | impl AuthzTester {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout] 219 |     /// Create a new authorization tester
[INFO] [stdout] 220 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 225 |     pub fn with_config(config: AuthzConfig) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 242 |     pub fn add_session(&mut self, session: UserSession) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 247 |     pub fn sessions(&self) -> &[UserSession] {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 252 |     pub fn clear_sessions(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 257 |     pub async fn test_request(&self, request: &Request) -> Result<Vec<AuthzTestResult>> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 310 |     async fn send_request(&self, request: &Request, session: &UserSession) -> Result<Response> {
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 376 |     fn is_access_granted(&self, response: &Response) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 406 |     fn check_enforcement(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 474 |     fn calculate_similarity(&self, a: &[u8], b: &[u8]) -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 505 |     pub async fn get_results(&self) -> Vec<AuthzTestResult> {
[INFO] [stdout]     |                  ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 510 |     pub async fn get_vulnerabilities(&self) -> Vec<AuthzTestResult> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 521 |     pub async fn generate_findings(&self) -> Vec<Finding> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 566 |     pub async fn clear_results(&self) {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `IdorTester` is never constructed
[INFO] [stdout]    --> src/scanner/authz/mod.rs:578:12
[INFO] [stdout]     |
[INFO] [stdout] 578 | pub struct IdorTester {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `IdorPattern` is never constructed
[INFO] [stdout]    --> src/scanner/authz/mod.rs:587:12
[INFO] [stdout]     |
[INFO] [stdout] 587 | pub struct IdorPattern {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `default_patterns`, `add_session`, and `test_idor` are never used
[INFO] [stdout]    --> src/scanner/authz/mod.rs:598:12
[INFO] [stdout]     |
[INFO] [stdout] 596 | impl IdorTester {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout] 597 |     /// Create a new IDOR tester
[INFO] [stdout] 598 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 606 |     fn default_patterns() -> Vec<IdorPattern> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 636 |     pub fn add_session(&mut self, session: UserSession) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 641 |     pub async fn test_idor(&self, request: &Request) -> Result<Vec<AuthzTestResult>> {
[INFO] [stdout]     |                  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `GRAPHQL_PATHS` is never used
[INFO] [stdout]   --> src/scanner/graphql/mod.rs:25:7
[INFO] [stdout]    |
[INFO] [stdout] 25 | const GRAPHQL_PATHS: &[&str] = &[
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `INTROSPECTION_QUERY` is never used
[INFO] [stdout]   --> src/scanner/graphql/mod.rs:40:7
[INFO] [stdout]    |
[INFO] [stdout] 40 | const INTROSPECTION_QUERY: &str = r#"
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SIMPLE_INTROSPECTION` is never used
[INFO] [stdout]    --> src/scanner/graphql/mod.rs:137:7
[INFO] [stdout]     |
[INFO] [stdout] 137 | const SIMPLE_INTROSPECTION: &str = r#"{ __schema { types { name } } }"#;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TYPE_INTROSPECTION` is never used
[INFO] [stdout]    --> src/scanner/graphql/mod.rs:140:7
[INFO] [stdout]     |
[INFO] [stdout] 140 | const TYPE_INTROSPECTION: &str = r#"{ __type(name: "Query") { name fields { name type { name } } } }"#;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GraphQLSchema` is never constructed
[INFO] [stdout]    --> src/scanner/graphql/mod.rs:144:12
[INFO] [stdout]     |
[INFO] [stdout] 144 | pub struct GraphQLSchema {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GraphQLType` is never constructed
[INFO] [stdout]    --> src/scanner/graphql/mod.rs:161:12
[INFO] [stdout]     |
[INFO] [stdout] 161 | pub struct GraphQLType {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GraphQLField` is never constructed
[INFO] [stdout]    --> src/scanner/graphql/mod.rs:174:12
[INFO] [stdout]     |
[INFO] [stdout] 174 | pub struct GraphQLField {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GraphQLArgument` is never constructed
[INFO] [stdout]    --> src/scanner/graphql/mod.rs:187:12
[INFO] [stdout]     |
[INFO] [stdout] 187 | pub struct GraphQLArgument {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GraphQLFinding` is never constructed
[INFO] [stdout]    --> src/scanner/graphql/mod.rs:198:12
[INFO] [stdout]     |
[INFO] [stdout] 198 | pub struct GraphQLFinding {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `GraphQLVulnType` is never used
[INFO] [stdout]    --> src/scanner/graphql/mod.rs:213:10
[INFO] [stdout]     |
[INFO] [stdout] 213 | pub enum GraphQLVulnType {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GraphQLScanner` is never constructed
[INFO] [stdout]    --> src/scanner/graphql/mod.rs:254:12
[INFO] [stdout]     |
[INFO] [stdout] 254 | pub struct GraphQLScanner {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/scanner/graphql/mod.rs:269:12
[INFO] [stdout]     |
[INFO] [stdout] 267 | impl GraphQLScanner {
[INFO] [stdout]     | ------------------- associated items in this implementation
[INFO] [stdout] 268 |     /// Create a new GraphQL scanner
[INFO] [stdout] 269 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 283 |     pub fn with_headers(mut self, headers: HashMap<String, String>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 289 |     pub fn with_auth(mut self, token: &str) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 296 |     pub async fn detect_endpoints(&self, base_url: &str) -> Result<Vec<String>> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 318 |     fn is_graphql_response(&self, response: &Value) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 323 |     async fn send_query(&self, url: &str, query: &str) -> Result<Value> {
[INFO] [stdout]     |              ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 344 |     async fn send_query_with_vars(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 371 |     pub async fn scan(&self, url: &str) -> Result<Vec<Finding>> {
[INFO] [stdout]     |                  ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 415 |     async fn test_introspection(&self, url: &str) -> Result<Option<Finding>> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 442 |     async fn test_field_suggestions(&self, url: &str) -> Result<Option<Finding>> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 476 |     async fn test_batching(&self, url: &str) -> Result<Option<Finding>> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 516 |     async fn test_deep_nesting(&self, url: &str) -> Result<Option<Finding>> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 564 |     async fn test_debug_mode(&self, url: &str) -> Result<Option<Finding>> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 598 |     pub async fn extract_schema(&self, url: &str) -> Result<GraphQLSchema> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 650 |     fn parse_type(&self, data: &Value) -> Option<GraphQLType> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 672 |     fn parse_field(&self, data: &Value) -> Option<GraphQLField> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 693 |     fn parse_argument(&self, data: &Value) -> Option<GraphQLArgument> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 707 |     fn get_type_name(&self, type_ref: &Value) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 737 |     async fn test_injection(&self, schema: &GraphQLSchema, url: &str) -> Result<Vec<Finding>> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 808 |     fn check_sensitive_fields(&self, schema: &GraphQLSchema, url: &str) -> Option<Finding> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `InteractionType` is never used
[INFO] [stdout]   --> src/scanner/oob/mod.rs:23:10
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub enum InteractionType {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Interaction` is never constructed
[INFO] [stdout]   --> src/scanner/oob/mod.rs:53:12
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub struct Interaction {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HttpInteraction` is never constructed
[INFO] [stdout]   --> src/scanner/oob/mod.rs:74:12
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub struct HttpInteraction {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DnsInteraction` is never constructed
[INFO] [stdout]   --> src/scanner/oob/mod.rs:87:12
[INFO] [stdout]    |
[INFO] [stdout] 87 | pub struct DnsInteraction {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CallbackUrl` is never constructed
[INFO] [stdout]   --> src/scanner/oob/mod.rs:96:12
[INFO] [stdout]    |
[INFO] [stdout] 96 | pub struct CallbackUrl {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CallbackContext` is never constructed
[INFO] [stdout]    --> src/scanner/oob/mod.rs:111:12
[INFO] [stdout]     |
[INFO] [stdout] 111 | pub struct CallbackContext {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `OobClient` is never used
[INFO] [stdout]    --> src/scanner/oob/mod.rs:123:11
[INFO] [stdout]     |
[INFO] [stdout] 123 | pub trait OobClient: Send + Sync {
[INFO] [stdout]     |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `OobManager` is never constructed
[INFO] [stdout]    --> src/scanner/oob/mod.rs:144:12
[INFO] [stdout]     |
[INFO] [stdout] 144 | pub struct OobManager {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/scanner/oob/mod.rs:157:12
[INFO] [stdout]     |
[INFO] [stdout] 155 | impl OobManager {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout] 156 |     /// Create a new OOB manager without a client
[INFO] [stdout] 157 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 167 |     pub async fn with_interactsh(server_url: Option<&str>) -> Result<Self> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 178 |     pub fn with_ttl(mut self, ttl: Duration) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 184 |     pub fn is_available(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 189 |     pub fn generate_http_callback(&self, context: CallbackContext) -> Result<CallbackUrl> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 202 |     pub fn generate_dns_callback(&self, context: CallbackContext) -> Result<CallbackUrl> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 215 |     pub async fn poll(&self) -> Result<Vec<Interaction>> {
[INFO] [stdout]     |                  ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 233 |     pub fn has_interaction(&self, correlation_id: &str) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 241 |     pub fn get_interactions(&self, correlation_id: &str) -> Vec<Interaction> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 249 |     pub fn get_callback_context(&self, correlation_id: &str) -> Option<CallbackUrl> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 257 |     pub fn cleanup_expired(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 265 |     pub fn get_base_domain(&self) -> Option<&str> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `OobPayloadGenerator` is never constructed
[INFO] [stdout]    --> src/scanner/oob/mod.rs:277:12
[INFO] [stdout]     |
[INFO] [stdout] 277 | pub struct OobPayloadGenerator;
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated functions are never used
[INFO] [stdout]    --> src/scanner/oob/mod.rs:281:12
[INFO] [stdout]     |
[INFO] [stdout] 279 | impl OobPayloadGenerator {
[INFO] [stdout]     | ------------------------ associated functions in this implementation
[INFO] [stdout] 280 |     /// Generate blind XSS payloads with callback
[INFO] [stdout] 281 |     pub fn blind_xss_payloads(callback_url: &str) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 294 |     pub fn blind_ssrf_payloads(callback_hostname: &str) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 308 |     pub fn blind_xxe_payloads(callback_hostname: &str, callback_url: &str) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 345 |     pub fn blind_cmdi_payloads(callback_hostname: &str) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 366 |     pub fn blind_sqli_oob_payloads(callback_hostname: &str) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 393 |     pub fn log4shell_payloads(callback_hostname: &str) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 408 |     pub fn blind_ssti_payloads(callback_hostname: &str) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_INTERACTSH_SERVER` is never used
[INFO] [stdout]   --> src/scanner/oob/interactsh.rs:22:11
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub const DEFAULT_INTERACTSH_SERVER: &str = "https://oast.me";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `InteractshClient` is never constructed
[INFO] [stdout]   --> src/scanner/oob/interactsh.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct InteractshClient {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RegisterRequest` is never constructed
[INFO] [stdout]   --> src/scanner/oob/interactsh.rs:48:8
[INFO] [stdout]    |
[INFO] [stdout] 48 | struct RegisterRequest {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RegisterResponse` is never constructed
[INFO] [stdout]   --> src/scanner/oob/interactsh.rs:59:8
[INFO] [stdout]    |
[INFO] [stdout] 59 | struct RegisterResponse {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PollResponse` is never constructed
[INFO] [stdout]   --> src/scanner/oob/interactsh.rs:67:8
[INFO] [stdout]    |
[INFO] [stdout] 67 | struct PollResponse {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `InteractionData` is never constructed
[INFO] [stdout]   --> src/scanner/oob/interactsh.rs:74:8
[INFO] [stdout]    |
[INFO] [stdout] 74 | struct InteractionData {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `register`, `public_key_to_base64`, `next_callback_id`, and `decrypt_data` are never used
[INFO] [stdout]    --> src/scanner/oob/interactsh.rs:93:18
[INFO] [stdout]     |
[INFO] [stdout]  91 | impl InteractshClient {
[INFO] [stdout]     | --------------------- associated items in this implementation
[INFO] [stdout]  92 |     /// Create a new Interactsh client
[INFO] [stdout]  93 |     pub async fn new(server_url: Option<&str>) -> Result<Self> {
[INFO] [stdout]     |                  ^^^
[INFO] [stdout] ...
[INFO] [stdout] 154 |     async fn register(&mut self) -> Result<()> {
[INFO] [stdout]     |              ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 208 |     fn public_key_to_base64(&self) -> Result<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 218 |     fn next_callback_id(&self) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 236 |     fn decrypt_data(&self, encrypted: &str, aes_key: &str) -> Result<InteractionData> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_template` is never used
[INFO] [stdout]   --> src/scanner/templates/mod.rs:49:8
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub fn load_template(path: &Path) -> Result<Template> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bundled_passive_templates` is never used
[INFO] [stdout]   --> src/scanner/templates/mod.rs:70:8
[INFO] [stdout]    |
[INFO] [stdout] 70 | pub fn bundled_passive_templates() -> Vec<Template> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bundled_active_templates` is never used
[INFO] [stdout]   --> src/scanner/templates/mod.rs:80:8
[INFO] [stdout]    |
[INFO] [stdout] 80 | pub fn bundled_active_templates() -> Vec<Template> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `as_str` is never used
[INFO] [stdout]   --> src/scanner/templates/parser.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | impl Severity {
[INFO] [stdout]    | ------------- method in this implementation
[INFO] [stdout] 23 |     pub fn as_str(&self) -> &'static str {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `inverted` is never read
[INFO] [stdout]    --> src/scanner/templates/parser.rs:145:9
[INFO] [stdout]     |
[INFO] [stdout] 104 | pub struct Matcher {
[INFO] [stdout]     |            ------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 145 |     pub inverted: bool,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Matcher` 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 functions `header_contains` and `or` are never used
[INFO] [stdout]    --> src/scanner/templates/parser.rs:207:12
[INFO] [stdout]     |
[INFO] [stdout] 156 | impl Matcher {
[INFO] [stdout]     | ------------ associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 207 |     pub fn header_contains(header: &str, value: &str) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 289 |     pub fn or(matchers: Vec<Matcher>) -> Self {
[INFO] [stdout]     |            ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `active`, `tags`, and `has_tag` are never used
[INFO] [stdout]    --> src/scanner/templates/parser.rs:423:12
[INFO] [stdout]     |
[INFO] [stdout] 389 | impl Template {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 423 |     pub fn active(id: &str) -> TemplateBuilder {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 428 |     pub fn tags(&self) -> Vec<&str> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 433 |     pub fn has_tag(&self, tag: &str) -> bool {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `reference` is never used
[INFO] [stdout]    --> src/scanner/templates/parser.rs:498:12
[INFO] [stdout]     |
[INFO] [stdout] 452 | impl TemplateBuilder {
[INFO] [stdout]     | -------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 498 |     pub fn reference(mut self, reference: &str) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `variable_regex` is never used
[INFO] [stdout]   --> src/scanner/templates/executor.rs:20:4
[INFO] [stdout]    |
[INFO] [stdout] 20 | fn variable_regex() -> &'static Regex {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TemplateVariables` is never constructed
[INFO] [stdout]   --> src/scanner/templates/executor.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub struct TemplateVariables {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from_url`, `with_var`, and `substitute` are never used
[INFO] [stdout]    --> src/scanner/templates/executor.rs:50:12
[INFO] [stdout]     |
[INFO] [stdout]  48 | impl TemplateVariables {
[INFO] [stdout]     | ---------------------- associated items in this implementation
[INFO] [stdout]  49 |     /// Create variables from a base URL
[INFO] [stdout]  50 |     pub fn from_url(url: &str) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  93 |     pub fn with_var(mut self, name: &str, value: &str) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     pub fn substitute(&self, input: &str) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ActiveScanResult` is never constructed
[INFO] [stdout]    --> src/scanner/templates/executor.rs:130:12
[INFO] [stdout]     |
[INFO] [stdout] 130 | pub struct ActiveScanResult {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/scanner/templates/executor.rs:185:12
[INFO] [stdout]     |
[INFO] [stdout] 151 | impl TemplateExecutor {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 185 |     pub fn passive_only(mut self, passive_only: bool) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 191 |     pub fn add_templates(&mut self, templates: Vec<Template>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 201 |     pub fn templates_with_tag(&self, tag: &str) -> Vec<&Template> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 317 |     pub fn execute_with_tag(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 343 |     pub fn execute_with_min_severity(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 372 |     pub async fn execute_active(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 396 |     async fn execute_active_template(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 445 |     async fn execute_single_request(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 499 |     fn build_request_from_template(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 564 |     pub async fn execute_active_with_tag(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 591 |     pub fn active_templates(&self) -> Vec<&Template> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 599 |     pub fn passive_templates(&self) -> Vec<&Template> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_payload_combinations` is never used
[INFO] [stdout]    --> src/scanner/templates/executor.rs:608:4
[INFO] [stdout]     |
[INFO] [stdout] 608 | fn generate_payload_combinations(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `severity_level` is never used
[INFO] [stdout]    --> src/scanner/templates/executor.rs:651:4
[INFO] [stdout]     |
[INFO] [stdout] 651 | fn severity_level(severity: TemplateSeverity) -> u8 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DANGEROUS_EXTENSIONS` is never used
[INFO] [stdout]   --> src/scanner/upload/mod.rs:26:7
[INFO] [stdout]    |
[INFO] [stdout] 26 | const DANGEROUS_EXTENSIONS: &[&str] = &[
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `EXTENSION_BYPASSES` is never used
[INFO] [stdout]   --> src/scanner/upload/mod.rs:37:7
[INFO] [stdout]    |
[INFO] [stdout] 37 | const EXTENSION_BYPASSES: &[&str] = &[
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DANGEROUS_MIMES` is never used
[INFO] [stdout]   --> src/scanner/upload/mod.rs:83:7
[INFO] [stdout]    |
[INFO] [stdout] 83 | const DANGEROUS_MIMES: &[(&str, &str)] = &[
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SAFE_MIMES` is never used
[INFO] [stdout]   --> src/scanner/upload/mod.rs:97:7
[INFO] [stdout]    |
[INFO] [stdout] 97 | const SAFE_MIMES: &[&str] = &[
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PolyglotPayload` is never constructed
[INFO] [stdout]    --> src/scanner/upload/mod.rs:108:8
[INFO] [stdout]     |
[INFO] [stdout] 108 | struct PolyglotPayload {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `POLYGLOT_PAYLOADS` is never used
[INFO] [stdout]    --> src/scanner/upload/mod.rs:122:7
[INFO] [stdout]     |
[INFO] [stdout] 122 | const POLYGLOT_PAYLOADS: &[PolyglotPayload] = &[
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PATH_TRAVERSAL_FILENAMES` is never used
[INFO] [stdout]    --> src/scanner/upload/mod.rs:166:7
[INFO] [stdout]     |
[INFO] [stdout] 166 | const PATH_TRAVERSAL_FILENAMES: &[&str] = &[
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `UploadTestResult` is never constructed
[INFO] [stdout]    --> src/scanner/upload/mod.rs:182:12
[INFO] [stdout]     |
[INFO] [stdout] 182 | pub struct UploadTestResult {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `UploadVulnerability` is never used
[INFO] [stdout]    --> src/scanner/upload/mod.rs:201:10
[INFO] [stdout]     |
[INFO] [stdout] 201 | pub enum UploadVulnerability {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `UploadScanner` is never constructed
[INFO] [stdout]    --> src/scanner/upload/mod.rs:236:12
[INFO] [stdout]     |
[INFO] [stdout] 236 | pub struct UploadScanner {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/scanner/upload/mod.rs:259:12
[INFO] [stdout]     |
[INFO] [stdout] 257 | impl UploadScanner {
[INFO] [stdout]     | ------------------ associated items in this implementation
[INFO] [stdout] 258 |     /// Create a new upload scanner
[INFO] [stdout] 259 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 277 |     pub fn with_headers(mut self, headers: HashMap<String, String>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 283 |     pub fn with_cookie(mut self, cookie: &str) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 289 |     pub fn with_upload_path(mut self, path: &str) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 295 |     pub fn configure(
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 310 |     pub async fn scan_upload_endpoint(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 355 |     async fn test_dangerous_extensions(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 403 |     async fn test_extension_bypasses(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 459 |     async fn test_mime_type_bypass(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 497 |     async fn test_polyglot_uploads(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 555 |     async fn test_path_traversal_upload(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 598 |     async fn test_svg_xss(&self, url: &str, field_name: &str) -> Result<Option<Finding>> {
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 636 |     async fn upload_file(
[INFO] [stdout]     |              ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 684 |     async fn verify_php_execution(&self, _result: &UploadTestResult) -> bool {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_test_file` is never used
[INFO] [stdout]    --> src/scanner/upload/mod.rs:700:8
[INFO] [stdout]     |
[INFO] [stdout] 700 | pub fn generate_test_file(extension: &str, payload: &str) -> Vec<u8> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `show_status` and `show_error` are never used
[INFO] [stdout]     --> src/app/state.rs:1336:12
[INFO] [stdout]      |
[INFO] [stdout] 1334 | impl AppState {
[INFO] [stdout]      | ------------- methods in this implementation
[INFO] [stdout] 1335 |     /// Show a status message (auto-clears after 5 seconds)
[INFO] [stdout] 1336 |     pub fn show_status(&mut self, msg: impl Into<String>) {
[INFO] [stdout]      |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1343 |     pub fn show_error(&mut self, msg: impl Into<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: method `as_baseline` is never used
[INFO] [stdout]   --> src/scanner/authz/mod.rs:82:12
[INFO] [stdout]    |
[INFO] [stdout] 51 | impl UserSession {
[INFO] [stdout]    | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 82 |     pub fn as_baseline(mut self) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]    --> src/scanner/authz/mod.rs:107:9
[INFO] [stdout]     |
[INFO] [stdout] 105 | pub struct AuthzTestResult {
[INFO] [stdout]     |            --------------- fields in this struct
[INFO] [stdout] 106 |     /// Session that was used
[INFO] [stdout] 107 |     pub session_name: String,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] 108 |     /// Session privilege level
[INFO] [stdout] 109 |     pub privilege_level: u8,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 110 |     /// Original request URL
[INFO] [stdout] 111 |     pub url: String,
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 112 |     /// HTTP method
[INFO] [stdout] 113 |     pub method: String,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 114 |     /// Response status code
[INFO] [stdout] 115 |     pub status_code: u16,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 116 |     /// Response body length
[INFO] [stdout] 117 |     pub response_length: usize,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 118 |     /// Whether access was granted
[INFO] [stdout] 119 |     pub access_granted: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 123 |     pub response: Option<Response>,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `AuthzTestResult` 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 `Enforced`, `Unknown`, and `Baseline` are never constructed
[INFO] [stdout]    --> src/scanner/authz/mod.rs:130:5
[INFO] [stdout]     |
[INFO] [stdout] 128 | pub enum EnforcementStatus {
[INFO] [stdout]     |          ----------------- variants in this enum
[INFO] [stdout] 129 |     /// Authorization is properly enforced (access denied for lower privilege)
[INFO] [stdout] 130 |     Enforced,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 134 |     Unknown,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 135 |     /// This is the baseline request
[INFO] [stdout] 136 |     Baseline,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `EnforcementStatus` 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 `StatusCode`, `BodyLength`, `BodySimilarity`, and `PatternMatch` are never constructed
[INFO] [stdout]    --> src/scanner/authz/mod.rs:150:5
[INFO] [stdout]     |
[INFO] [stdout] 148 | pub enum ComparisonMode {
[INFO] [stdout]     |          -------------- variants in this enum
[INFO] [stdout] 149 |     /// Compare status codes only
[INFO] [stdout] 150 |     StatusCode,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 151 |     /// Compare response body length (with tolerance)
[INFO] [stdout] 152 |     BodyLength,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 153 |     /// Compare response body content similarity
[INFO] [stdout] 154 |     BodySimilarity,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 155 |     /// Compare specific patterns in response
[INFO] [stdout] 156 |     PatternMatch,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ComparisonMode` 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 `comparison_mode`, `length_tolerance`, `similarity_threshold`, `success_patterns`, and `timeout_secs` are never read
[INFO] [stdout]    --> src/scanner/authz/mod.rs:165:9
[INFO] [stdout]     |
[INFO] [stdout] 163 | pub struct AuthzConfig {
[INFO] [stdout]     |            ----------- fields in this struct
[INFO] [stdout] 164 |     /// Comparison mode for detecting bypasses
[INFO] [stdout] 165 |     pub comparison_mode: ComparisonMode,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 166 |     /// Body length tolerance (percentage)
[INFO] [stdout] 167 |     pub length_tolerance: f32,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 168 |     /// Similarity threshold (0.0 - 1.0)
[INFO] [stdout] 169 |     pub similarity_threshold: f32,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 177 |     pub success_patterns: Vec<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 178 |     /// Request timeout in seconds
[INFO] [stdout] 179 |     pub timeout_secs: u64,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `AuthzConfig` 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 `AuthzTester` is never constructed
[INFO] [stdout]    --> src/scanner/authz/mod.rs:205:12
[INFO] [stdout]     |
[INFO] [stdout] 205 | pub struct AuthzTester {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/scanner/authz/mod.rs:220:12
[INFO] [stdout]     |
[INFO] [stdout] 218 | impl AuthzTester {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout] 219 |     /// Create a new authorization tester
[INFO] [stdout] 220 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 225 |     pub fn with_config(config: AuthzConfig) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 242 |     pub fn add_session(&mut self, session: UserSession) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 247 |     pub fn sessions(&self) -> &[UserSession] {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 252 |     pub fn clear_sessions(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 257 |     pub async fn test_request(&self, request: &Request) -> Result<Vec<AuthzTestResult>> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 310 |     async fn send_request(&self, request: &Request, session: &UserSession) -> Result<Response> {
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 376 |     fn is_access_granted(&self, response: &Response) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 406 |     fn check_enforcement(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 474 |     fn calculate_similarity(&self, a: &[u8], b: &[u8]) -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 505 |     pub async fn get_results(&self) -> Vec<AuthzTestResult> {
[INFO] [stdout]     |                  ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 510 |     pub async fn get_vulnerabilities(&self) -> Vec<AuthzTestResult> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 521 |     pub async fn generate_findings(&self) -> Vec<Finding> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 566 |     pub async fn clear_results(&self) {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `IdorTester` is never constructed
[INFO] [stdout]    --> src/scanner/authz/mod.rs:578:12
[INFO] [stdout]     |
[INFO] [stdout] 578 | pub struct IdorTester {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `IdorPattern` is never constructed
[INFO] [stdout]    --> src/scanner/authz/mod.rs:587:12
[INFO] [stdout]     |
[INFO] [stdout] 587 | pub struct IdorPattern {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `default_patterns`, `add_session`, and `test_idor` are never used
[INFO] [stdout]    --> src/scanner/authz/mod.rs:598:12
[INFO] [stdout]     |
[INFO] [stdout] 596 | impl IdorTester {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout] 597 |     /// Create a new IDOR tester
[INFO] [stdout] 598 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 606 |     fn default_patterns() -> Vec<IdorPattern> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 636 |     pub fn add_session(&mut self, session: UserSession) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 641 |     pub async fn test_idor(&self, request: &Request) -> Result<Vec<AuthzTestResult>> {
[INFO] [stdout]     |                  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `GRAPHQL_PATHS` is never used
[INFO] [stdout]   --> src/scanner/graphql/mod.rs:25:7
[INFO] [stdout]    |
[INFO] [stdout] 25 | const GRAPHQL_PATHS: &[&str] = &[
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `INTROSPECTION_QUERY` is never used
[INFO] [stdout]   --> src/scanner/graphql/mod.rs:40:7
[INFO] [stdout]    |
[INFO] [stdout] 40 | const INTROSPECTION_QUERY: &str = r#"
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SIMPLE_INTROSPECTION` is never used
[INFO] [stdout]    --> src/scanner/graphql/mod.rs:137:7
[INFO] [stdout]     |
[INFO] [stdout] 137 | const SIMPLE_INTROSPECTION: &str = r#"{ __schema { types { name } } }"#;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TYPE_INTROSPECTION` is never used
[INFO] [stdout]    --> src/scanner/graphql/mod.rs:140:7
[INFO] [stdout]     |
[INFO] [stdout] 140 | const TYPE_INTROSPECTION: &str = r#"{ __type(name: "Query") { name fields { name type { name } } } }"#;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GraphQLSchema` is never constructed
[INFO] [stdout]    --> src/scanner/graphql/mod.rs:144:12
[INFO] [stdout]     |
[INFO] [stdout] 144 | pub struct GraphQLSchema {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GraphQLFinding` is never constructed
[INFO] [stdout]    --> src/scanner/graphql/mod.rs:198:12
[INFO] [stdout]     |
[INFO] [stdout] 198 | pub struct GraphQLFinding {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `GraphQLVulnType` is never used
[INFO] [stdout]    --> src/scanner/graphql/mod.rs:213:10
[INFO] [stdout]     |
[INFO] [stdout] 213 | pub enum GraphQLVulnType {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `client`, `timeout`, `max_nesting_depth`, and `max_batch_size` are never read
[INFO] [stdout]    --> src/scanner/graphql/mod.rs:256:5
[INFO] [stdout]     |
[INFO] [stdout] 254 | pub struct GraphQLScanner {
[INFO] [stdout]     |            -------------- fields in this struct
[INFO] [stdout] 255 |     /// HTTP client
[INFO] [stdout] 256 |     client: Client,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 257 |     /// Request timeout
[INFO] [stdout] 258 |     timeout: std::time::Duration,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 262 |     max_nesting_depth: usize,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 263 |     /// Maximum batch size to test
[INFO] [stdout] 264 |     max_batch_size: usize,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/scanner/graphql/mod.rs:283:12
[INFO] [stdout]     |
[INFO] [stdout] 267 | impl GraphQLScanner {
[INFO] [stdout]     | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 283 |     pub fn with_headers(mut self, headers: HashMap<String, String>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 289 |     pub fn with_auth(mut self, token: &str) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 296 |     pub async fn detect_endpoints(&self, base_url: &str) -> Result<Vec<String>> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 318 |     fn is_graphql_response(&self, response: &Value) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 323 |     async fn send_query(&self, url: &str, query: &str) -> Result<Value> {
[INFO] [stdout]     |              ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 344 |     async fn send_query_with_vars(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 371 |     pub async fn scan(&self, url: &str) -> Result<Vec<Finding>> {
[INFO] [stdout]     |                  ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 415 |     async fn test_introspection(&self, url: &str) -> Result<Option<Finding>> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 442 |     async fn test_field_suggestions(&self, url: &str) -> Result<Option<Finding>> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 476 |     async fn test_batching(&self, url: &str) -> Result<Option<Finding>> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 516 |     async fn test_deep_nesting(&self, url: &str) -> Result<Option<Finding>> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 564 |     async fn test_debug_mode(&self, url: &str) -> Result<Option<Finding>> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 598 |     pub async fn extract_schema(&self, url: &str) -> Result<GraphQLSchema> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 737 |     async fn test_injection(&self, schema: &GraphQLSchema, url: &str) -> Result<Vec<Finding>> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 808 |     fn check_sensitive_fields(&self, schema: &GraphQLSchema, url: &str) -> Option<Finding> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `url`, `hostname`, `correlation_id`, `created_at`, and `context` are never read
[INFO] [stdout]    --> src/scanner/oob/mod.rs:98:9
[INFO] [stdout]     |
[INFO] [stdout]  96 | pub struct CallbackUrl {
[INFO] [stdout]     |            ----------- fields in this struct
[INFO] [stdout]  97 |     /// The full URL to use in payloads
[INFO] [stdout]  98 |     pub url: String,
[INFO] [stdout]     |         ^^^
[INFO] [stdout]  99 |     /// DNS hostname for DNS-based detection
[INFO] [stdout] 100 |     pub hostname: String,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 101 |     /// Unique correlation ID for this callback
[INFO] [stdout] 102 |     pub correlation_id: String,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] 103 |     /// When this callback was created
[INFO] [stdout] 104 |     pub created_at: Instant,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 105 |     /// Context about what this callback is testing
[INFO] [stdout] 106 |     pub context: CallbackContext,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `CallbackUrl` 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 `target_url`, `parameter`, `vuln_type`, and `template_id` are never read
[INFO] [stdout]    --> src/scanner/oob/mod.rs:113:9
[INFO] [stdout]     |
[INFO] [stdout] 111 | pub struct CallbackContext {
[INFO] [stdout]     |            --------------- fields in this struct
[INFO] [stdout] 112 |     /// Original request URL being tested
[INFO] [stdout] 113 |     pub target_url: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 114 |     /// Parameter being tested
[INFO] [stdout] 115 |     pub parameter: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] 116 |     /// Vulnerability type being tested
[INFO] [stdout] 117 |     pub vuln_type: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] 118 |     /// Template ID that generated this callback
[INFO] [stdout] 119 |     pub template_id: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `CallbackContext` 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 `generate_http_callback`, `generate_dns_callback`, `poll_interactions`, `get_interactions`, `has_interaction`, and `get_base_domain` are never used
[INFO] [stdout]    --> src/scanner/oob/mod.rs:125:8
[INFO] [stdout]     |
[INFO] [stdout] 123 | pub trait OobClient: Send + Sync {
[INFO] [stdout]     |           --------- methods in this trait
[INFO] [stdout] 124 |     /// Generate a unique callback URL for HTTP interactions
[INFO] [stdout] 125 |     fn generate_http_callback(&self, context: CallbackContext) -> Result<CallbackUrl>;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 128 |     fn generate_dns_callback(&self, context: CallbackContext) -> Result<CallbackUrl>;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 131 |     fn poll_interactions(&self) -> Result<Vec<Interaction>>;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 134 |     fn get_interactions(&self, correlation_id: &str) -> Vec<Interaction>;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 137 |     fn has_interaction(&self, correlation_id: &str) -> bool;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 140 |     fn get_base_domain(&self) -> &str;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `pending_callbacks`, `interactions`, and `callback_ttl` are never read
[INFO] [stdout]    --> src/scanner/oob/mod.rs:148:5
[INFO] [stdout]     |
[INFO] [stdout] 144 | pub struct OobManager {
[INFO] [stdout]     |            ---------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 148 |     pending_callbacks: Arc<RwLock<HashMap<String, CallbackUrl>>>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 149 |     /// Received interactions indexed by correlation ID
[INFO] [stdout] 150 |     interactions: Arc<RwLock<HashMap<String, Vec<Interaction>>>>,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 151 |     /// Callback expiry duration
[INFO] [stdout] 152 |     callback_ttl: Duration,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/scanner/oob/mod.rs:167:18
[INFO] [stdout]     |
[INFO] [stdout] 155 | impl OobManager {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 167 |     pub async fn with_interactsh(server_url: Option<&str>) -> Result<Self> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 178 |     pub fn with_ttl(mut self, ttl: Duration) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 189 |     pub fn generate_http_callback(&self, context: CallbackContext) -> Result<CallbackUrl> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 202 |     pub fn generate_dns_callback(&self, context: CallbackContext) -> Result<CallbackUrl> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 215 |     pub async fn poll(&self) -> Result<Vec<Interaction>> {
[INFO] [stdout]     |                  ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 233 |     pub fn has_interaction(&self, correlation_id: &str) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 241 |     pub fn get_interactions(&self, correlation_id: &str) -> Vec<Interaction> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 249 |     pub fn get_callback_context(&self, correlation_id: &str) -> Option<CallbackUrl> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 257 |     pub fn cleanup_expired(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 265 |     pub fn get_base_domain(&self) -> Option<&str> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `blind_ssrf_payloads`, `blind_xxe_payloads`, `blind_sqli_oob_payloads`, and `blind_ssti_payloads` are never used
[INFO] [stdout]    --> src/scanner/oob/mod.rs:294:12
[INFO] [stdout]     |
[INFO] [stdout] 279 | impl OobPayloadGenerator {
[INFO] [stdout]     | ------------------------ associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 294 |     pub fn blind_ssrf_payloads(callback_hostname: &str) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 308 |     pub fn blind_xxe_payloads(callback_hostname: &str, callback_url: &str) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 366 |     pub fn blind_sqli_oob_payloads(callback_hostname: &str) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 408 |     pub fn blind_ssti_payloads(callback_hostname: &str) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_INTERACTSH_SERVER` is never used
[INFO] [stdout]   --> src/scanner/oob/interactsh.rs:22:11
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub const DEFAULT_INTERACTSH_SERVER: &str = "https://oast.me";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `InteractshClient` is never constructed
[INFO] [stdout]   --> src/scanner/oob/interactsh.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct InteractshClient {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RegisterRequest` is never constructed
[INFO] [stdout]   --> src/scanner/oob/interactsh.rs:48:8
[INFO] [stdout]    |
[INFO] [stdout] 48 | struct RegisterRequest {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RegisterResponse` is never constructed
[INFO] [stdout]   --> src/scanner/oob/interactsh.rs:59:8
[INFO] [stdout]    |
[INFO] [stdout] 59 | struct RegisterResponse {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PollResponse` is never constructed
[INFO] [stdout]   --> src/scanner/oob/interactsh.rs:67:8
[INFO] [stdout]    |
[INFO] [stdout] 67 | struct PollResponse {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `InteractionData` is never constructed
[INFO] [stdout]   --> src/scanner/oob/interactsh.rs:74:8
[INFO] [stdout]    |
[INFO] [stdout] 74 | struct InteractionData {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `register`, `public_key_to_base64`, `next_callback_id`, and `decrypt_data` are never used
[INFO] [stdout]    --> src/scanner/oob/interactsh.rs:93:18
[INFO] [stdout]     |
[INFO] [stdout]  91 | impl InteractshClient {
[INFO] [stdout]     | --------------------- associated items in this implementation
[INFO] [stdout]  92 |     /// Create a new Interactsh client
[INFO] [stdout]  93 |     pub async fn new(server_url: Option<&str>) -> Result<Self> {
[INFO] [stdout]     |                  ^^^
[INFO] [stdout] ...
[INFO] [stdout] 154 |     async fn register(&mut self) -> Result<()> {
[INFO] [stdout]     |              ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 208 |     fn public_key_to_base64(&self) -> Result<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 218 |     fn next_callback_id(&self) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 236 |     fn decrypt_data(&self, encrypted: &str, aes_key: &str) -> Result<InteractionData> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_template` is never used
[INFO] [stdout]   --> src/scanner/templates/mod.rs:49:8
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub fn load_template(path: &Path) -> Result<Template> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `as_str` is never used
[INFO] [stdout]   --> src/scanner/templates/parser.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | impl Severity {
[INFO] [stdout]    | ------------- method in this implementation
[INFO] [stdout] 23 |     pub fn as_str(&self) -> &'static str {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `inverted` is never read
[INFO] [stdout]    --> src/scanner/templates/parser.rs:145:9
[INFO] [stdout]     |
[INFO] [stdout] 104 | pub struct Matcher {
[INFO] [stdout]     |            ------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 145 |     pub inverted: bool,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Matcher` 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 `header_contains` is never used
[INFO] [stdout]    --> src/scanner/templates/parser.rs:207:12
[INFO] [stdout]     |
[INFO] [stdout] 156 | impl Matcher {
[INFO] [stdout]     | ------------ associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 207 |     pub fn header_contains(header: &str, value: &str) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `active` and `tags` are never used
[INFO] [stdout]    --> src/scanner/templates/parser.rs:423:12
[INFO] [stdout]     |
[INFO] [stdout] 389 | impl Template {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 423 |     pub fn active(id: &str) -> TemplateBuilder {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 428 |     pub fn tags(&self) -> Vec<&str> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `reference` is never used
[INFO] [stdout]    --> src/scanner/templates/parser.rs:498:12
[INFO] [stdout]     |
[INFO] [stdout] 452 | impl TemplateBuilder {
[INFO] [stdout]     | -------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 498 |     pub fn reference(mut self, reference: &str) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ActiveScanResult` is never constructed
[INFO] [stdout]    --> src/scanner/templates/executor.rs:130:12
[INFO] [stdout]     |
[INFO] [stdout] 130 | pub struct ActiveScanResult {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/scanner/templates/executor.rs:185:12
[INFO] [stdout]     |
[INFO] [stdout] 151 | impl TemplateExecutor {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 185 |     pub fn passive_only(mut self, passive_only: bool) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 191 |     pub fn add_templates(&mut self, templates: Vec<Template>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 201 |     pub fn templates_with_tag(&self, tag: &str) -> Vec<&Template> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 343 |     pub fn execute_with_min_severity(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 372 |     pub async fn execute_active(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 396 |     async fn execute_active_template(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 445 |     async fn execute_single_request(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 499 |     fn build_request_from_template(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 564 |     pub async fn execute_active_with_tag(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 591 |     pub fn active_templates(&self) -> Vec<&Template> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 599 |     pub fn passive_templates(&self) -> Vec<&Template> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_payload_combinations` is never used
[INFO] [stdout]    --> src/scanner/templates/executor.rs:608:4
[INFO] [stdout]     |
[INFO] [stdout] 608 | fn generate_payload_combinations(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `severity_level` is never used
[INFO] [stdout]    --> src/scanner/templates/executor.rs:651:4
[INFO] [stdout]     |
[INFO] [stdout] 651 | fn severity_level(severity: TemplateSeverity) -> u8 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DANGEROUS_EXTENSIONS` is never used
[INFO] [stdout]   --> src/scanner/upload/mod.rs:26:7
[INFO] [stdout]    |
[INFO] [stdout] 26 | const DANGEROUS_EXTENSIONS: &[&str] = &[
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DANGEROUS_MIMES` is never used
[INFO] [stdout]   --> src/scanner/upload/mod.rs:83:7
[INFO] [stdout]    |
[INFO] [stdout] 83 | const DANGEROUS_MIMES: &[(&str, &str)] = &[
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SAFE_MIMES` is never used
[INFO] [stdout]   --> src/scanner/upload/mod.rs:97:7
[INFO] [stdout]    |
[INFO] [stdout] 97 | const SAFE_MIMES: &[&str] = &[
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name`, `extension`, and `payload_type` are never read
[INFO] [stdout]    --> src/scanner/upload/mod.rs:110:5
[INFO] [stdout]     |
[INFO] [stdout] 108 | struct PolyglotPayload {
[INFO] [stdout]     |        --------------- fields in this struct
[INFO] [stdout] 109 |     /// Payload name
[INFO] [stdout] 110 |     name: &'static str,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 116 |     extension: &'static str,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 117 |     /// What code it contains
[INFO] [stdout] 118 |     payload_type: &'static str,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PATH_TRAVERSAL_FILENAMES` is never used
[INFO] [stdout]    --> src/scanner/upload/mod.rs:166:7
[INFO] [stdout]     |
[INFO] [stdout] 166 | const PATH_TRAVERSAL_FILENAMES: &[&str] = &[
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `UploadTestResult` is never constructed
[INFO] [stdout]    --> src/scanner/upload/mod.rs:182:12
[INFO] [stdout]     |
[INFO] [stdout] 182 | pub struct UploadTestResult {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `UploadVulnerability` is never used
[INFO] [stdout]    --> src/scanner/upload/mod.rs:201:10
[INFO] [stdout]     |
[INFO] [stdout] 201 | pub enum UploadVulnerability {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]    --> src/scanner/upload/mod.rs:238:5
[INFO] [stdout]     |
[INFO] [stdout] 236 | pub struct UploadScanner {
[INFO] [stdout]     |            ------------- fields in this struct
[INFO] [stdout] 237 |     /// HTTP client
[INFO] [stdout] 238 |     client: Client,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 239 |     /// Custom headers
[INFO] [stdout] 240 |     headers: HashMap<String, String>,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 241 |     /// Request timeout
[INFO] [stdout] 242 |     timeout: std::time::Duration,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 248 |     test_mime_bypass: bool,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 249 |     /// Whether to test polyglot files
[INFO] [stdout] 250 |     test_polyglots: bool,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 251 |     /// Whether to verify upload by accessing the file
[INFO] [stdout] 252 |     verify_upload: bool,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] 253 |     /// Base path where uploads might be accessible
[INFO] [stdout] 254 |     upload_base_path: Option<String>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/scanner/upload/mod.rs:277:12
[INFO] [stdout]     |
[INFO] [stdout] 257 | impl UploadScanner {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 277 |     pub fn with_headers(mut self, headers: HashMap<String, String>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 283 |     pub fn with_cookie(mut self, cookie: &str) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 289 |     pub fn with_upload_path(mut self, path: &str) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 295 |     pub fn configure(
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 310 |     pub async fn scan_upload_endpoint(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 355 |     async fn test_dangerous_extensions(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 403 |     async fn test_extension_bypasses(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 459 |     async fn test_mime_type_bypass(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 497 |     async fn test_polyglot_uploads(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 555 |     async fn test_path_traversal_upload(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 598 |     async fn test_svg_xss(&self, url: &str, field_name: &str) -> Result<Option<Finding>> {
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 636 |     async fn upload_file(
[INFO] [stdout]     |              ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 684 |     async fn verify_php_execution(&self, _result: &UploadTestResult) -> bool {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 40s
[INFO] running `Command { std: "docker" "inspect" "0097c3e30e51d467c0265733d00f47f5f7b05304aaa244be9d74dda9b185aa2a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "0097c3e30e51d467c0265733d00f47f5f7b05304aaa244be9d74dda9b185aa2a", kill_on_drop: false }`
[INFO] [stdout] 0097c3e30e51d467c0265733d00f47f5f7b05304aaa244be9d74dda9b185aa2a
