[INFO] cloning repository https://github.com/Enigmatikk/Thanatos
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Enigmatikk/Thanatos" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FEnigmatikk%2FThanatos", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FEnigmatikk%2FThanatos'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 6abfffe6fc8ce18f7fdb87ae64ec127f47a27fd3
[INFO] checking Enigmatikk/Thanatos against try#ed606620234c6b50f2414162c4bbabd5f4a925f3 for pr-147995
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FEnigmatikk%2FThanatos" "/workspace/builds/worker-6-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/Enigmatikk/Thanatos
[INFO] finished tweaking git repo https://github.com/Enigmatikk/Thanatos
[INFO] tweaked toml for git repo https://github.com/Enigmatikk/Thanatos written to /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Enigmatikk/Thanatos on toolchain ed606620234c6b50f2414162c4bbabd5f4a925f3
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ed606620234c6b50f2414162c4bbabd5f4a925f3" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Enigmatikk/Thanatos 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" "+ed606620234c6b50f2414162c4bbabd5f4a925f3" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+ed606620234c6b50f2414162c4bbabd5f4a925f3" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 0d4cb6d896edf28f2a6dac32843539625f1139629be246094f5e9c46da0db015
[INFO] running `Command { std: "docker" "start" "-a" "0d4cb6d896edf28f2a6dac32843539625f1139629be246094f5e9c46da0db015", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "0d4cb6d896edf28f2a6dac32843539625f1139629be246094f5e9c46da0db015", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "0d4cb6d896edf28f2a6dac32843539625f1139629be246094f5e9c46da0db015", kill_on_drop: false }`
[INFO] [stdout] 0d4cb6d896edf28f2a6dac32843539625f1139629be246094f5e9c46da0db015
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+ed606620234c6b50f2414162c4bbabd5f4a925f3" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 6fc6d6fe1cd13082b38291fa8ccbf341c17a805231c28ac7e4e0ef582b13611f
[INFO] running `Command { std: "docker" "start" "-a" "6fc6d6fe1cd13082b38291fa8ccbf341c17a805231c28ac7e4e0ef582b13611f", kill_on_drop: false }`
[INFO] [stderr]    Compiling unicode-ident v1.0.15
[INFO] [stderr]    Compiling libc v0.2.169
[INFO] [stderr]    Compiling serde v1.0.217
[INFO] [stderr]    Compiling target-lexicon v0.12.16
[INFO] [stderr]    Compiling smallvec v1.13.2
[INFO] [stderr]    Compiling indexmap v2.7.1
[INFO] [stderr]     Checking log v0.4.25
[INFO] [stderr]    Compiling xml-rs v0.8.25
[INFO] [stderr]    Compiling memoffset v0.6.5
[INFO] [stderr]    Compiling wayland-sys v0.29.5
[INFO] [stderr]    Compiling memoffset v0.7.1
[INFO] [stderr]    Compiling io-lifetimes v1.0.11
[INFO] [stderr]    Compiling memchr v2.7.4
[INFO] [stderr]     Checking event-listener-strategy v0.5.3
[INFO] [stderr]    Compiling proc-macro2 v1.0.93
[INFO] [stderr]    Compiling polling v2.8.0
[INFO] [stderr]    Compiling rustix v0.37.28
[INFO] [stderr]     Checking ttf-parser v0.25.1
[INFO] [stderr]     Checking waker-fn v1.2.0
[INFO] [stderr]     Checking async-channel v2.3.1
[INFO] [stderr]     Checking async-lock v2.8.0
[INFO] [stderr]     Checking futures-lite v1.13.0
[INFO] [stderr]    Compiling async-fs v1.6.0
[INFO] [stderr]    Compiling slotmap v1.0.7
[INFO] [stderr]    Compiling async-io v1.13.0
[INFO] [stderr]     Checking litemap v0.7.4
[INFO] [stderr]     Checking blocking v1.6.1
[INFO] [stderr]    Compiling quote v1.0.38
[INFO] [stderr]     Checking tracing-core v0.1.33
[INFO] [stderr]    Compiling cfg-expr v0.15.8
[INFO] [stderr]     Checking cpufeatures v0.2.16
[INFO] [stderr]    Compiling gl_generator v0.14.0
[INFO] [stderr]    Compiling aho-corasick v1.1.3
[INFO] [stderr]     Checking futures-util v0.3.31
[INFO] [stderr]     Checking sha1 v0.10.6
[INFO] [stderr]    Compiling syn v2.0.96
[INFO] [stderr]    Compiling wayland-scanner v0.29.5
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]     Checking async-executor v1.13.1
[INFO] [stderr]     Checking async-broadcast v0.5.1
[INFO] [stderr]    Compiling x11-dl v2.21.0
[INFO] [stderr]    Compiling smithay-client-toolkit v0.16.1
[INFO] [stderr]     Checking xcursor v0.3.8
[INFO] [stderr]     Checking icu_locid_transform_data v1.5.0
[INFO] [stderr]    Compiling ahash v0.8.11
[INFO] [stderr]     Checking icu_properties_data v1.5.0
[INFO] [stderr]     Checking arrayvec v0.7.6
[INFO] [stderr]     Checking raw-window-handle v0.5.2
[INFO] [stderr]     Checking icu_normalizer_data v1.5.0
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]     Checking rayon v1.10.0
[INFO] [stderr]    Compiling wayland-sys v0.30.1
[INFO] [stderr]     Checking instant v0.1.13
[INFO] [stderr]     Checking linux-raw-sys v0.4.15
[INFO] [stderr]    Compiling windows_x86_64_gnu v0.52.6
[INFO] [stderr]    Compiling glutin v0.30.10
[INFO] [stderr]     Checking half v2.4.1
[INFO] [stderr]     Checking x11rb-protocol v0.13.1
[INFO] [stderr]     Checking async-once-cell v0.5.4
[INFO] [stderr]    Compiling glutin_egl_sys v0.5.1
[INFO] [stderr]    Compiling glutin_glx_sys v0.4.0
[INFO] [stderr]     Checking gif v0.13.1
[INFO] [stderr]     Checking exr v1.73.0
[INFO] [stderr]    Compiling mime_guess2 v2.0.5
[INFO] [stderr]     Checking nix v0.24.3
[INFO] [stderr]    Compiling wayland-client v0.29.5
[INFO] [stderr]    Compiling toml_datetime v0.6.8
[INFO] [stderr]    Compiling serde_spanned v0.6.8
[INFO] [stderr]     Checking getrandom v0.2.15
[INFO] [stderr]     Checking owned_ttf_parser v0.25.0
[INFO] [stderr]    Compiling toml_edit v0.22.22
[INFO] [stderr]    Compiling toml_edit v0.19.15
[INFO] [stderr]    Compiling regex-automata v0.4.9
[INFO] [stderr]     Checking ab_glyph v0.2.29
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]    Compiling wayland-protocols v0.29.5
[INFO] [stderr]     Checking socket2 v0.4.10
[INFO] [stderr]     Checking nix v0.25.1
[INFO] [stderr]     Checking nix v0.26.4
[INFO] [stderr]     Checking xdg-home v1.3.0
[INFO] [stderr]     Checking memmap2 v0.5.10
[INFO] [stderr]     Checking parking_lot_core v0.9.10
[INFO] [stderr]    Compiling winit v0.28.7
[INFO] [stderr]     Checking mio v0.8.11
[INFO] [stderr]     Checking wayland-commons v0.29.5
[INFO] [stderr]     Checking parking_lot v0.12.3
[INFO] [stderr]     Checking jpeg-decoder v0.3.1
[INFO] [stderr]    Compiling zvariant_utils v1.0.1
[INFO] [stderr]    Compiling glutin-winit v0.3.0
[INFO] [stderr]     Checking tiff v0.9.1
[INFO] [stderr]    Compiling winapi v0.3.9
[INFO] [stderr]     Checking home v0.5.11
[INFO] [stderr]     Checking windows-targets v0.52.6
[INFO] [stderr]     Checking inotify-sys v0.1.5
[INFO] [stderr]     Checking dirs-sys-next v0.1.2
[INFO] [stderr]    Compiling ntapi v0.4.1
[INFO] [stderr]    Compiling rfd v0.12.1
[INFO] [stderr]     Checking web-time v0.2.4
[INFO] [stderr]     Checking glow v0.12.3
[INFO] [stderr]    Compiling proc-macro-crate v1.3.1
[INFO] [stderr]    Compiling anyhow v1.0.95
[INFO] [stderr]    Compiling serde_json v1.0.137
[INFO] [stderr]     Checking directories-next v2.0.0
[INFO] [stderr]    Compiling toml v0.8.19
[INFO] [stderr]     Checking inotify v0.9.6
[INFO] [stderr]     Checking windows-core v0.52.0
[INFO] [stderr]     Checking filetime v0.2.25
[INFO] [stderr]     Checking wayland-cursor v0.29.5
[INFO] [stderr]     Checking crossbeam-channel v0.5.14
[INFO] [stderr]    Compiling regex v1.11.1
[INFO] [stderr]     Checking itoa v1.0.14
[INFO] [stderr]     Checking base64 v0.13.1
[INFO] [stderr]     Checking notify v6.1.1
[INFO] [stderr]    Compiling system-deps v6.2.2
[INFO] [stderr]    Compiling synstructure v0.13.1
[INFO] [stderr]     Checking windows v0.52.0
[INFO] [stderr]    Compiling derivative v2.2.0
[INFO] [stderr]    Compiling zvariant_derive v3.15.2
[INFO] [stderr]    Compiling zbus_macros v3.15.2
[INFO] [stderr]    Compiling serde_derive v1.0.217
[INFO] [stderr]    Compiling zerocopy-derive v0.7.35
[INFO] [stderr]    Compiling bytemuck_derive v1.8.1
[INFO] [stderr]    Compiling zerofrom-derive v0.1.5
[INFO] [stderr]    Compiling yoke-derive v0.7.5
[INFO] [stderr]    Compiling zerovec-derive v0.10.3
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling enumflags2_derive v0.7.11
[INFO] [stderr]    Compiling glib-sys v0.18.1
[INFO] [stderr]    Compiling tracing-attributes v0.1.28
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling icu_provider_macros v1.5.0
[INFO] [stderr]    Compiling gobject-sys v0.18.0
[INFO] [stderr]    Compiling async-recursion v1.1.1
[INFO] [stderr]    Compiling enumn v0.1.14
[INFO] [stderr]    Compiling serde_repr v0.1.19
[INFO] [stderr]    Compiling async-trait v0.1.85
[INFO] [stderr]    Compiling atk-sys v0.18.2
[INFO] [stderr]     Checking zerocopy v0.7.35
[INFO] [stderr]    Compiling gdk-sys v0.18.2
[INFO] [stderr]    Compiling gio-sys v0.18.1
[INFO] [stderr]    Compiling pango-sys v0.18.0
[INFO] [stderr]     Checking bytemuck v1.21.0
[INFO] [stderr]    Compiling cairo-sys-rs v0.18.2
[INFO] [stderr]     Checking tiny-skia-path v0.8.4
[INFO] [stderr]     Checking tiny-skia v0.8.4
[INFO] [stderr]    Compiling gdk-pixbuf-sys v0.18.0
[INFO] [stderr]     Checking ppv-lite86 v0.2.20
[INFO] [stderr]     Checking tracing v0.1.41
[INFO] [stderr]    Compiling gtk-sys v0.18.2
[INFO] [stderr]     Checking qoi v0.4.1
[INFO] [stderr]     Checking zerofrom v0.1.5
[INFO] [stderr]    Compiling enum-map-derive v0.17.0
[INFO] [stderr]     Checking yoke v0.7.5
[INFO] [stderr]     Checking image v0.24.9
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking calloop v0.10.6
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking zerovec v0.10.4
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking tinystr v0.7.6
[INFO] [stderr]     Checking icu_collections v1.5.0
[INFO] [stderr]     Checking icu_locid v1.5.0
[INFO] [stderr]     Checking icu_provider v1.5.0
[INFO] [stderr]     Checking icu_locid_transform v1.5.0
[INFO] [stderr]     Checking enumflags2 v0.7.11
[INFO] [stderr]     Checking bitflags v2.8.0
[INFO] [stderr]     Checking accesskit v0.12.3
[INFO] [stderr]     Checking ecolor v0.24.1
[INFO] [stderr]     Checking emath v0.24.1
[INFO] [stderr]     Checking enum-map v2.7.3
[INFO] [stderr]     Checking zvariant v3.15.2
[INFO] [stderr]     Checking ron v0.8.1
[INFO] [stderr]     Checking epaint v0.24.1
[INFO] [stderr]     Checking icu_properties v1.5.1
[INFO] [stderr]     Checking accesskit_consumer v0.16.1
[INFO] [stderr]     Checking zbus_names v2.6.1
[INFO] [stderr]     Checking zbus v3.15.2
[INFO] [stderr]     Checking egui v0.24.1
[INFO] [stderr]     Checking icu_normalizer v1.5.0
[INFO] [stderr]     Checking idna_adapter v1.2.0
[INFO] [stderr]     Checking idna v1.0.3
[INFO] [stderr]     Checking url v2.5.4
[INFO] [stderr]     Checking webbrowser v0.8.15
[INFO] [stderr]     Checking x11rb v0.13.1
[INFO] [stderr]     Checking arboard v3.4.1
[INFO] [stderr]     Checking egui_glow v0.24.1
[INFO] [stderr]     Checking egui_extras v0.24.2
[INFO] [stderr]     Checking atspi-common v0.3.0
[INFO] [stderr]     Checking atspi-proxies v0.3.0
[INFO] [stderr]     Checking atspi-connection v0.3.0
[INFO] [stderr]     Checking atspi v0.19.0
[INFO] [stderr]     Checking accesskit_unix v0.6.2
[INFO] [stderr]     Checking sctk-adwaita v0.5.4
[INFO] [stderr]     Checking smithay-clipboard v0.6.6
[INFO] [stderr]     Checking accesskit_winit v0.15.0
[INFO] [stderr]     Checking egui-winit v0.24.1
[INFO] [stderr]     Checking eframe v0.24.1
[INFO] [stderr]     Checking thanatos v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `windows::core::Error`
[INFO] [stdout]   --> src/core/memory/mod.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use windows::core::Error;
[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: `windows::core::Error`
[INFO] [stdout]   --> src/main.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use windows::core::Error;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `windows::core::Error`
[INFO] [stdout]   --> src/core/memory/mod.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use windows::core::Error;
[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: `windows::core::Error`
[INFO] [stdout]   --> src/main.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use windows::core::Error;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/core/memory/mod.rs:433:19
[INFO] [stdout]     |
[INFO] [stdout] 433 |         if let Ok(mut buffer) = MemoryAccess::read_memory(process_id, current_address, batch_size) {
[INFO] [stdout]     |                   ----^^^^^^
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cc`
[INFO] [stdout]    --> src/main.rs:162:16
[INFO] [stdout]     |
[INFO] [stdout] 162 |     pub fn new(cc: &CreationContext) -> Self {
[INFO] [stdout]     |                ^^ help: if this is intentional, prefix it with an underscore: `_cc`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `analyzer`
[INFO] [stdout]    --> src/main.rs:210:19
[INFO] [stdout]     |
[INFO] [stdout] 210 |         if let Ok(analyzer) = ProcessAnalyzer::new(process_info.pid) {
[INFO] [stdout]     |                   ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_analyzer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `row`
[INFO] [stdout]    --> src/main.rs:346:25
[INFO] [stdout]     |
[INFO] [stdout] 346 |                     let row = ui.horizontal(|ui| {
[INFO] [stdout]     |                         ^^^ help: if this is intentional, prefix it with an underscore: `_row`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `addr`
[INFO] [stdout]     --> src/main.rs:1065:42
[INFO] [stdout]      |
[INFO] [stdout] 1065 |         self.analysis_receivers.retain(|(addr, rx)| {
[INFO] [stdout]      |                                          ^^^^ help: if this is intentional, prefix it with an underscore: `_addr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `frame`
[INFO] [stdout]     --> src/main.rs:1332:47
[INFO] [stdout]      |
[INFO] [stdout] 1332 |     fn update(&mut self, ctx: &egui::Context, frame: &mut eframe::Frame) {
[INFO] [stdout]      |                                               ^^^^^ help: if this is intentional, prefix it with an underscore: `_frame`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ACCENT_COLOR` is never used
[INFO] [stdout]   --> src/main.rs:16:7
[INFO] [stdout]    |
[INFO] [stdout] 16 | const ACCENT_COLOR: Color32 = Color32::from_rgb(0, 120, 215);
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SUCCESS_COLOR` is never used
[INFO] [stdout]   --> src/main.rs:19:7
[INFO] [stdout]    |
[INFO] [stdout] 19 | const SUCCESS_COLOR: Color32 = Color32::from_rgb(0, 255, 0);
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `text`, `accent`, and `background` are never read
[INFO] [stdout]   --> src/main.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 27 | struct Theme {
[INFO] [stdout]    |        ----- fields in this struct
[INFO] [stdout] 28 |     text: Color32,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 29 |     accent: Color32,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 30 |     background: Color32,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Theme` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/core/memory/mod.rs:433:19
[INFO] [stdout]     |
[INFO] [stdout] 433 |         if let Ok(mut buffer) = MemoryAccess::read_memory(process_id, current_address, batch_size) {
[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: method `show_panel` is never used
[INFO] [stdout]   --> src/main.rs:34:8
[INFO] [stdout]    |
[INFO] [stdout] 33 | impl Theme {
[INFO] [stdout]    | ---------- method in this implementation
[INFO] [stdout] 34 |     fn show_panel<R>(&self, ui: &mut Ui, add_contents: impl FnOnce(&mut Ui) -> R) -> R {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> src/main.rs:45:5
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub struct ThanatosApp {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout] 44 |     processes: Vec<ProcessInfo>,
[INFO] [stdout] 45 |     filtered_processes: Vec<ProcessInfo>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 57 |     search_text: String,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 63 |     theme: Theme,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 64 |     settings: Settings,
[INFO] [stdout] 65 |     dump_watcher: Option<Box<dyn Watcher>>,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 66 |     dump_receiver: Option<CrossbeamReceiver<notify::Result<Event>>>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 67 |     sort_by: String,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 68 |     sort_ascending: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]     --> src/main.rs:194:8
[INFO] [stdout]      |
[INFO] [stdout]  161 | impl ThanatosApp {
[INFO] [stdout]      | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  194 |     fn setup_dump_watcher<P: AsRef<std::path::Path>>(&self, path: P) -> Result<(Box<dyn Watcher>, CrossbeamReceiver<notify::Result<Event>...
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  225 |     fn show_settings_window(&mut self, ctx: &egui::Context) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  290 |     fn show_memory_viewer(&mut self, ui: &mut Ui, region: &MemoryRegion, process_id: u32) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  594 |     fn sort_processes(&self) -> Vec<ProcessInfo> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  616 |     fn refresh_memory_regions(&mut self) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  624 |     fn show_process_list(&mut self, ui: &mut Ui) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  958 |     fn show_threads(&mut self, ui: &mut Ui, process_id: u32) {
[INFO] [stdout]      |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  978 |     fn show_modules(&mut self, ui: &mut Ui, process_id: u32) {
[INFO] [stdout]      |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1006 |     fn show_processes(&mut self, ui: &mut Ui) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1088 |     fn update_analysis_state(&mut self) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1121 |     fn update_analysis_results(&mut self) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1147 |     fn quick_analyze_region(&mut self, region: &MemoryRegion) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1162 |     fn analyze_memory(&mut self, region: &MemoryRegion) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1191 |     fn show_message(&mut self, msg: String) {
[INFO] [stdout]      |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1195 |     fn update(&mut self, ctx: &egui::Context, _frame: &mut eframe::Frame) {
[INFO] [stdout]      |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FG_DIM` is never used
[INFO] [stdout]    --> src/main.rs:269:15
[INFO] [stdout]     |
[INFO] [stdout] 269 |         const FG_DIM: egui::Color32 = egui::Color32::from_rgb(120, 120, 120);
[INFO] [stdout]     |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `path` is never read
[INFO] [stdout]   --> src/core/process/mod.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct ProcessInfo {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub path: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ProcessInfo` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `id` is never read
[INFO] [stdout]   --> src/core/process/mod.rs:31:9
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub struct ProcessAnalyzer {
[INFO] [stdout]    |            --------------- field in this struct
[INFO] [stdout] 30 |     handle: HANDLE,
[INFO] [stdout] 31 |     pub id: u32,
[INFO] [stdout]    |         ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ThreadInfo` is never constructed
[INFO] [stdout]   --> src/core/process/mod.rs:35:12
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub struct ThreadInfo {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ModuleInfo` is never constructed
[INFO] [stdout]   --> src/core/process/mod.rs:41:12
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub struct ModuleInfo {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `analyze_region`, `set_priority`, `get_threads`, and `get_modules` are never used
[INFO] [stdout]    --> src/core/process/mod.rs:72:12
[INFO] [stdout]     |
[INFO] [stdout]  52 | impl ProcessAnalyzer {
[INFO] [stdout]     | -------------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  72 |     pub fn analyze_region(&self, _region: &MemoryRegion) -> Result<HashMap<String, String>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  93 |     pub fn set_priority(&self, priority: u32) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 146 |     pub fn get_threads(pid: u32) -> Result<Vec<ThreadInfo>> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 175 |     pub fn get_modules(pid: u32) -> Result<Vec<ModuleInfo>> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `eq` is never used
[INFO] [stdout]   --> src/core/memory/mod.rs:34:8
[INFO] [stdout]    |
[INFO] [stdout] 33 | impl MemoryRegion {
[INFO] [stdout]    | ----------------- method in this implementation
[INFO] [stdout] 34 |     fn eq(&self, other: &Self) -> bool {
[INFO] [stdout]    |        ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `pid` is never read
[INFO] [stdout]   --> src/core/memory/mod.rs:47:5
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub struct MemoryAccess {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] 46 |     handle: HANDLE,
[INFO] [stdout] 47 |     pid: u32,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `dump_region` is never used
[INFO] [stdout]   --> src/core/memory/mod.rs:62:12
[INFO] [stdout]    |
[INFO] [stdout] 50 | impl MemoryAccess {
[INFO] [stdout]    | ----------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 62 |     pub fn dump_region(pid: u32, region: &MemoryRegion) -> Result<PathBuf> {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MemoryAnalysis` is never constructed
[INFO] [stdout]    --> src/core/memory/mod.rs:170:12
[INFO] [stdout]     |
[INFO] [stdout] 170 | pub struct MemoryAnalysis {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_stale` is never used
[INFO] [stdout]    --> src/core/memory/mod.rs:182:8
[INFO] [stdout]     |
[INFO] [stdout] 181 | impl MemoryAnalysis {
[INFO] [stdout]     | ------------------- method in this implementation
[INFO] [stdout] 182 |     fn is_stale(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `search_memory` is never used
[INFO] [stdout]    --> src/core/memory/mod.rs:187:8
[INFO] [stdout]     |
[INFO] [stdout] 187 | pub fn search_memory(process_id: u32, pattern: &[u8]) -> Result<Vec<MemoryPattern>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `quick_analyze_region` is never used
[INFO] [stdout]    --> src/core/memory/mod.rs:212:8
[INFO] [stdout]     |
[INFO] [stdout] 212 | pub fn quick_analyze_region(process_id: u32, region: &MemoryRegion) -> Result<std::collections::HashMap<String, String>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `analyze_region` is never used
[INFO] [stdout]    --> src/core/memory/mod.rs:239:8
[INFO] [stdout]     |
[INFO] [stdout] 239 | pub fn analyze_region(process_id: u32, region: &MemoryRegion) -> Result<std::collections::HashMap<String, String>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `analyze_memory_data` is never used
[INFO] [stdout]    --> src/core/memory/mod.rs:252:4
[INFO] [stdout]     |
[INFO] [stdout] 252 | fn analyze_memory_data(data: &[u8]) -> std::collections::HashMap<String, String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_potential_passwords` is never used
[INFO] [stdout]    --> src/core/memory/mod.rs:281:4
[INFO] [stdout]     |
[INFO] [stdout] 281 | fn find_potential_passwords(data: &[u8]) -> Vec<String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `detect_file_signatures` is never used
[INFO] [stdout]    --> src/core/memory/mod.rs:295:4
[INFO] [stdout]     |
[INFO] [stdout] 295 | fn detect_file_signatures(data: &[u8]) -> Vec<String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_compression_ratio` is never used
[INFO] [stdout]    --> src/core/memory/mod.rs:318:4
[INFO] [stdout]     |
[INFO] [stdout] 318 | fn calculate_compression_ratio(data: &[u8]) -> f64 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `analyze_byte_distribution` is never used
[INFO] [stdout]    --> src/core/memory/mod.rs:335:4
[INFO] [stdout]     |
[INFO] [stdout] 335 | fn analyze_byte_distribution(data: &[u8]) -> std::collections::HashMap<u8, f64> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_entropy` is never used
[INFO] [stdout]    --> src/core/memory/mod.rs:350:4
[INFO] [stdout]     |
[INFO] [stdout] 350 | fn calculate_entropy(data: &[u8]) -> f64 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `contains_shellcode` is never used
[INFO] [stdout]    --> src/core/memory/mod.rs:367:4
[INFO] [stdout]     |
[INFO] [stdout] 367 | fn contains_shellcode(data: &[u8]) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `extract_strings` is never used
[INFO] [stdout]    --> src/core/memory/mod.rs:384:4
[INFO] [stdout]     |
[INFO] [stdout] 384 | fn extract_strings(data: &[u8]) -> Vec<String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MemoryBatch` is never constructed
[INFO] [stdout]    --> src/core/memory/mod.rs:405:12
[INFO] [stdout]     |
[INFO] [stdout] 405 | pub struct MemoryBatch {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `analyze_memory_batch` is never used
[INFO] [stdout]    --> src/core/memory/mod.rs:419:8
[INFO] [stdout]     |
[INFO] [stdout] 419 | pub fn analyze_memory_batch(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MemoryPattern` is never constructed
[INFO] [stdout]    --> src/core/memory/mod.rs:472:12
[INFO] [stdout]     |
[INFO] [stdout] 472 | pub struct MemoryPattern {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cc`
[INFO] [stdout]    --> src/main.rs:162:16
[INFO] [stdout]     |
[INFO] [stdout] 162 |     pub fn new(cc: &CreationContext) -> Self {
[INFO] [stdout]     |                ^^ help: if this is intentional, prefix it with an underscore: `_cc`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `analyzer`
[INFO] [stdout]    --> src/main.rs:210:19
[INFO] [stdout]     |
[INFO] [stdout] 210 |         if let Ok(analyzer) = ProcessAnalyzer::new(process_info.pid) {
[INFO] [stdout]     |                   ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_analyzer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `row`
[INFO] [stdout]    --> src/main.rs:346:25
[INFO] [stdout]     |
[INFO] [stdout] 346 |                     let row = ui.horizontal(|ui| {
[INFO] [stdout]     |                         ^^^ help: if this is intentional, prefix it with an underscore: `_row`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Ui::button` that must be used
[INFO] [stdout]    --> src/main.rs:673:25
[INFO] [stdout]     |
[INFO] [stdout] 673 |                         ui.button("⟳ Refresh");
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: You should check if the user clicked this with `if ui.button(…).clicked() { … } 
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 673 |                         let _ = ui.button("⟳ Refresh");
[INFO] [stdout]     |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `addr`
[INFO] [stdout]     --> src/main.rs:1065:42
[INFO] [stdout]      |
[INFO] [stdout] 1065 |         self.analysis_receivers.retain(|(addr, rx)| {
[INFO] [stdout]      |                                          ^^^^ help: if this is intentional, prefix it with an underscore: `_addr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/core/process/mod.rs:170:13
[INFO] [stdout]     |
[INFO] [stdout] 170 |             CloseHandle(snapshot);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 170 |             let _ = CloseHandle(snapshot);
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/core/process/mod.rs:206:13
[INFO] [stdout]     |
[INFO] [stdout] 206 |             CloseHandle(snapshot);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 206 |             let _ = CloseHandle(snapshot);
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/core/process/mod.rs:215:13
[INFO] [stdout]     |
[INFO] [stdout] 215 |             CloseHandle(self.handle);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 215 |             let _ = CloseHandle(self.handle);
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/core/memory/mod.rs:165:13
[INFO] [stdout]     |
[INFO] [stdout] 165 |             CloseHandle(self.handle);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 165 |             let _ = CloseHandle(self.handle);
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `frame`
[INFO] [stdout]     --> src/main.rs:1332:47
[INFO] [stdout]      |
[INFO] [stdout] 1332 |     fn update(&mut self, ctx: &egui::Context, frame: &mut eframe::Frame) {
[INFO] [stdout]      |                                               ^^^^^ help: if this is intentional, prefix it with an underscore: `_frame`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ACCENT_COLOR` is never used
[INFO] [stdout]   --> src/main.rs:16:7
[INFO] [stdout]    |
[INFO] [stdout] 16 | const ACCENT_COLOR: Color32 = Color32::from_rgb(0, 120, 215);
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SUCCESS_COLOR` is never used
[INFO] [stdout]   --> src/main.rs:19:7
[INFO] [stdout]    |
[INFO] [stdout] 19 | const SUCCESS_COLOR: Color32 = Color32::from_rgb(0, 255, 0);
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `text`, `accent`, and `background` are never read
[INFO] [stdout]   --> src/main.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 27 | struct Theme {
[INFO] [stdout]    |        ----- fields in this struct
[INFO] [stdout] 28 |     text: Color32,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 29 |     accent: Color32,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 30 |     background: Color32,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Theme` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `show_panel` is never used
[INFO] [stdout]   --> src/main.rs:34:8
[INFO] [stdout]    |
[INFO] [stdout] 33 | impl Theme {
[INFO] [stdout]    | ---------- method in this implementation
[INFO] [stdout] 34 |     fn show_panel<R>(&self, ui: &mut Ui, add_contents: impl FnOnce(&mut Ui) -> R) -> R {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> src/main.rs:45:5
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub struct ThanatosApp {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout] 44 |     processes: Vec<ProcessInfo>,
[INFO] [stdout] 45 |     filtered_processes: Vec<ProcessInfo>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 57 |     search_text: String,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 63 |     theme: Theme,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 64 |     settings: Settings,
[INFO] [stdout] 65 |     dump_watcher: Option<Box<dyn Watcher>>,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 66 |     dump_receiver: Option<CrossbeamReceiver<notify::Result<Event>>>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 67 |     sort_by: String,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 68 |     sort_ascending: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]     --> src/main.rs:194:8
[INFO] [stdout]      |
[INFO] [stdout]  161 | impl ThanatosApp {
[INFO] [stdout]      | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  194 |     fn setup_dump_watcher<P: AsRef<std::path::Path>>(&self, path: P) -> Result<(Box<dyn Watcher>, CrossbeamReceiver<notify::Result<Event>...
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  225 |     fn show_settings_window(&mut self, ctx: &egui::Context) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  290 |     fn show_memory_viewer(&mut self, ui: &mut Ui, region: &MemoryRegion, process_id: u32) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  594 |     fn sort_processes(&self) -> Vec<ProcessInfo> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  616 |     fn refresh_memory_regions(&mut self) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  624 |     fn show_process_list(&mut self, ui: &mut Ui) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  958 |     fn show_threads(&mut self, ui: &mut Ui, process_id: u32) {
[INFO] [stdout]      |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  978 |     fn show_modules(&mut self, ui: &mut Ui, process_id: u32) {
[INFO] [stdout]      |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1006 |     fn show_processes(&mut self, ui: &mut Ui) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1088 |     fn update_analysis_state(&mut self) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1121 |     fn update_analysis_results(&mut self) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1147 |     fn quick_analyze_region(&mut self, region: &MemoryRegion) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1162 |     fn analyze_memory(&mut self, region: &MemoryRegion) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1191 |     fn show_message(&mut self, msg: String) {
[INFO] [stdout]      |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1195 |     fn update(&mut self, ctx: &egui::Context, _frame: &mut eframe::Frame) {
[INFO] [stdout]      |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FG_DIM` is never used
[INFO] [stdout]    --> src/main.rs:269:15
[INFO] [stdout]     |
[INFO] [stdout] 269 |         const FG_DIM: egui::Color32 = egui::Color32::from_rgb(120, 120, 120);
[INFO] [stdout]     |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `path` is never read
[INFO] [stdout]   --> src/core/process/mod.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct ProcessInfo {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub path: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ProcessInfo` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `id` is never read
[INFO] [stdout]   --> src/core/process/mod.rs:31:9
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub struct ProcessAnalyzer {
[INFO] [stdout]    |            --------------- field in this struct
[INFO] [stdout] 30 |     handle: HANDLE,
[INFO] [stdout] 31 |     pub id: u32,
[INFO] [stdout]    |         ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ThreadInfo` is never constructed
[INFO] [stdout]   --> src/core/process/mod.rs:35:12
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub struct ThreadInfo {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ModuleInfo` is never constructed
[INFO] [stdout]   --> src/core/process/mod.rs:41:12
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub struct ModuleInfo {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `analyze_region`, `set_priority`, `get_threads`, and `get_modules` are never used
[INFO] [stdout]    --> src/core/process/mod.rs:72:12
[INFO] [stdout]     |
[INFO] [stdout]  52 | impl ProcessAnalyzer {
[INFO] [stdout]     | -------------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  72 |     pub fn analyze_region(&self, _region: &MemoryRegion) -> Result<HashMap<String, String>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  93 |     pub fn set_priority(&self, priority: u32) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 146 |     pub fn get_threads(pid: u32) -> Result<Vec<ThreadInfo>> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 175 |     pub fn get_modules(pid: u32) -> Result<Vec<ModuleInfo>> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `eq` is never used
[INFO] [stdout]   --> src/core/memory/mod.rs:34:8
[INFO] [stdout]    |
[INFO] [stdout] 33 | impl MemoryRegion {
[INFO] [stdout]    | ----------------- method in this implementation
[INFO] [stdout] 34 |     fn eq(&self, other: &Self) -> bool {
[INFO] [stdout]    |        ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `pid` is never read
[INFO] [stdout]   --> src/core/memory/mod.rs:47:5
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub struct MemoryAccess {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] 46 |     handle: HANDLE,
[INFO] [stdout] 47 |     pid: u32,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `dump_region` is never used
[INFO] [stdout]   --> src/core/memory/mod.rs:62:12
[INFO] [stdout]    |
[INFO] [stdout] 50 | impl MemoryAccess {
[INFO] [stdout]    | ----------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 62 |     pub fn dump_region(pid: u32, region: &MemoryRegion) -> Result<PathBuf> {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MemoryAnalysis` is never constructed
[INFO] [stdout]    --> src/core/memory/mod.rs:170:12
[INFO] [stdout]     |
[INFO] [stdout] 170 | pub struct MemoryAnalysis {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_stale` is never used
[INFO] [stdout]    --> src/core/memory/mod.rs:182:8
[INFO] [stdout]     |
[INFO] [stdout] 181 | impl MemoryAnalysis {
[INFO] [stdout]     | ------------------- method in this implementation
[INFO] [stdout] 182 |     fn is_stale(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `search_memory` is never used
[INFO] [stdout]    --> src/core/memory/mod.rs:187:8
[INFO] [stdout]     |
[INFO] [stdout] 187 | pub fn search_memory(process_id: u32, pattern: &[u8]) -> Result<Vec<MemoryPattern>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `quick_analyze_region` is never used
[INFO] [stdout]    --> src/core/memory/mod.rs:212:8
[INFO] [stdout]     |
[INFO] [stdout] 212 | pub fn quick_analyze_region(process_id: u32, region: &MemoryRegion) -> Result<std::collections::HashMap<String, String>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `analyze_region` is never used
[INFO] [stdout]    --> src/core/memory/mod.rs:239:8
[INFO] [stdout]     |
[INFO] [stdout] 239 | pub fn analyze_region(process_id: u32, region: &MemoryRegion) -> Result<std::collections::HashMap<String, String>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `analyze_memory_data` is never used
[INFO] [stdout]    --> src/core/memory/mod.rs:252:4
[INFO] [stdout]     |
[INFO] [stdout] 252 | fn analyze_memory_data(data: &[u8]) -> std::collections::HashMap<String, String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_potential_passwords` is never used
[INFO] [stdout]    --> src/core/memory/mod.rs:281:4
[INFO] [stdout]     |
[INFO] [stdout] 281 | fn find_potential_passwords(data: &[u8]) -> Vec<String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `detect_file_signatures` is never used
[INFO] [stdout]    --> src/core/memory/mod.rs:295:4
[INFO] [stdout]     |
[INFO] [stdout] 295 | fn detect_file_signatures(data: &[u8]) -> Vec<String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_compression_ratio` is never used
[INFO] [stdout]    --> src/core/memory/mod.rs:318:4
[INFO] [stdout]     |
[INFO] [stdout] 318 | fn calculate_compression_ratio(data: &[u8]) -> f64 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `analyze_byte_distribution` is never used
[INFO] [stdout]    --> src/core/memory/mod.rs:335:4
[INFO] [stdout]     |
[INFO] [stdout] 335 | fn analyze_byte_distribution(data: &[u8]) -> std::collections::HashMap<u8, f64> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_entropy` is never used
[INFO] [stdout]    --> src/core/memory/mod.rs:350:4
[INFO] [stdout]     |
[INFO] [stdout] 350 | fn calculate_entropy(data: &[u8]) -> f64 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `contains_shellcode` is never used
[INFO] [stdout]    --> src/core/memory/mod.rs:367:4
[INFO] [stdout]     |
[INFO] [stdout] 367 | fn contains_shellcode(data: &[u8]) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `extract_strings` is never used
[INFO] [stdout]    --> src/core/memory/mod.rs:384:4
[INFO] [stdout]     |
[INFO] [stdout] 384 | fn extract_strings(data: &[u8]) -> Vec<String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MemoryBatch` is never constructed
[INFO] [stdout]    --> src/core/memory/mod.rs:405:12
[INFO] [stdout]     |
[INFO] [stdout] 405 | pub struct MemoryBatch {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `analyze_memory_batch` is never used
[INFO] [stdout]    --> src/core/memory/mod.rs:419:8
[INFO] [stdout]     |
[INFO] [stdout] 419 | pub fn analyze_memory_batch(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MemoryPattern` is never constructed
[INFO] [stdout]    --> src/core/memory/mod.rs:472:12
[INFO] [stdout]     |
[INFO] [stdout] 472 | pub struct MemoryPattern {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Ui::button` that must be used
[INFO] [stdout]    --> src/main.rs:673:25
[INFO] [stdout]     |
[INFO] [stdout] 673 |                         ui.button("⟳ Refresh");
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: You should check if the user clicked this with `if ui.button(…).clicked() { … } 
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 673 |                         let _ = ui.button("⟳ Refresh");
[INFO] [stdout]     |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/core/process/mod.rs:170:13
[INFO] [stdout]     |
[INFO] [stdout] 170 |             CloseHandle(snapshot);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 170 |             let _ = CloseHandle(snapshot);
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/core/process/mod.rs:206:13
[INFO] [stdout]     |
[INFO] [stdout] 206 |             CloseHandle(snapshot);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 206 |             let _ = CloseHandle(snapshot);
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/core/process/mod.rs:215:13
[INFO] [stdout]     |
[INFO] [stdout] 215 |             CloseHandle(self.handle);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 215 |             let _ = CloseHandle(self.handle);
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/core/memory/mod.rs:165:13
[INFO] [stdout]     |
[INFO] [stdout] 165 |             CloseHandle(self.handle);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 165 |             let _ = CloseHandle(self.handle);
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 08s
[INFO] running `Command { std: "docker" "inspect" "6fc6d6fe1cd13082b38291fa8ccbf341c17a805231c28ac7e4e0ef582b13611f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6fc6d6fe1cd13082b38291fa8ccbf341c17a805231c28ac7e4e0ef582b13611f", kill_on_drop: false }`
[INFO] [stdout] 6fc6d6fe1cd13082b38291fa8ccbf341c17a805231c28ac7e4e0ef582b13611f
