[INFO] cloning repository https://github.com/beyondlex/rudis [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/beyondlex/rudis" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbeyondlex%2Frudis", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbeyondlex%2Frudis'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] ffeaa439188b387d43f7333b0701e6f82b05d5b1 [INFO] building beyondlex/rudis against master#c7f6aa2869acdbf014d094c6e427e554e160b6db for pr-146237-2 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbeyondlex%2Frudis" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/beyondlex/rudis [INFO] finished tweaking git repo https://github.com/beyondlex/rudis [INFO] tweaked toml for git repo https://github.com/beyondlex/rudis written to /workspace/builds/worker-5-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/beyondlex/rudis on toolchain c7f6aa2869acdbf014d094c6e427e554e160b6db [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c7f6aa2869acdbf014d094c6e427e554e160b6db" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/beyondlex/rudis 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" "+c7f6aa2869acdbf014d094c6e427e554e160b6db" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded indenter v0.3.4 [INFO] [stderr] Downloaded color-spantrace v0.3.0 [INFO] [stderr] Downloaded owo-colors v4.2.2 [INFO] [stderr] Downloaded url v2.5.6 [INFO] [stderr] Downloaded redis v0.24.0 [INFO] [stderr] Downloaded image v0.25.6 [INFO] [stderr] Downloaded color-eyre v0.6.5 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+c7f6aa2869acdbf014d094c6e427e554e160b6db" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 14677a8d786399ddf80e375d0c2b29f9427d598d42c191a16b6bd60586cad116 [INFO] running `Command { std: "docker" "start" "-a" "14677a8d786399ddf80e375d0c2b29f9427d598d42c191a16b6bd60586cad116", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "14677a8d786399ddf80e375d0c2b29f9427d598d42c191a16b6bd60586cad116", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "14677a8d786399ddf80e375d0c2b29f9427d598d42c191a16b6bd60586cad116", kill_on_drop: false }` [INFO] [stdout] 14677a8d786399ddf80e375d0c2b29f9427d598d42c191a16b6bd60586cad116 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+c7f6aa2869acdbf014d094c6e427e554e160b6db" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 79bfeeb6d1de771e7f251d20bee3ed474d7173b1e6245418a01a47683a98b8e1 [INFO] running `Command { std: "docker" "start" "-a" "79bfeeb6d1de771e7f251d20bee3ed474d7173b1e6245418a01a47683a98b8e1", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.175 [INFO] [stderr] Compiling memchr v2.7.5 [INFO] [stderr] Compiling smallvec v1.15.1 [INFO] [stderr] Compiling writeable v0.6.1 [INFO] [stderr] Compiling litemap v0.8.0 [INFO] [stderr] Compiling icu_normalizer_data v2.0.0 [INFO] [stderr] Compiling icu_properties_data v2.0.1 [INFO] [stderr] Compiling adler2 v2.0.1 [INFO] [stderr] Compiling syn v2.0.106 [INFO] [stderr] Compiling rustix v0.38.44 [INFO] [stderr] Compiling crc32fast v1.5.0 [INFO] [stderr] Compiling tracing-core v0.1.34 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling linux-raw-sys v0.4.15 [INFO] [stderr] Compiling fnv v1.0.7 [INFO] [stderr] Compiling futures-channel v0.3.31 [INFO] [stderr] Compiling thread_local v1.1.9 [INFO] [stderr] Compiling miniz_oxide v0.8.9 [INFO] [stderr] Compiling owo-colors v4.2.2 [INFO] [stderr] Compiling percent-encoding v2.3.2 [INFO] [stderr] Compiling slab v0.4.11 [INFO] [stderr] Compiling object v0.36.7 [INFO] [stderr] Compiling fdeflate v0.3.7 [INFO] [stderr] Compiling color-spantrace v0.3.0 [INFO] [stderr] Compiling gimli v0.31.1 [INFO] [stderr] Compiling getrandom v0.3.3 [INFO] [stderr] Compiling form_urlencoded v1.2.2 [INFO] [stderr] Compiling bytemuck v1.23.2 [INFO] [stderr] Compiling tracing v0.1.41 [INFO] [stderr] Compiling tracing-subscriber v0.3.19 [INFO] [stderr] Compiling winnow v0.7.13 [INFO] [stderr] Compiling toml_write v0.1.2 [INFO] [stderr] Compiling flate2 v1.1.2 [INFO] [stderr] Compiling x11rb-protocol v0.13.1 [INFO] [stderr] Compiling byteorder-lite v0.1.0 [INFO] [stderr] Compiling indenter v0.3.4 [INFO] [stderr] Compiling rustc-demangle v0.1.26 [INFO] [stderr] Compiling eyre v0.6.12 [INFO] [stderr] Compiling sha1_smol v1.0.1 [INFO] [stderr] Compiling aho-corasick v1.1.3 [INFO] [stderr] Compiling csv-core v0.1.12 [INFO] [stderr] Compiling png v0.17.16 [INFO] [stderr] Compiling signal-hook-registry v1.4.6 [INFO] [stderr] Compiling parking_lot_core v0.9.11 [INFO] [stderr] Compiling mio v1.0.4 [INFO] [stderr] Compiling socket2 v0.6.0 [INFO] [stderr] Compiling socket2 v0.4.10 [INFO] [stderr] Compiling is-terminal v0.4.16 [INFO] [stderr] Compiling dirs-sys v0.4.1 [INFO] [stderr] Compiling uuid v1.18.0 [INFO] [stderr] Compiling parking_lot v0.12.4 [INFO] [stderr] Compiling signal-hook v0.3.18 [INFO] [stderr] Compiling tracing-error v0.2.1 [INFO] [stderr] Compiling image v0.25.6 [INFO] [stderr] Compiling dirs v5.0.1 [INFO] [stderr] Compiling signal-hook-mio v0.2.4 [INFO] [stderr] Compiling regex-automata v0.4.9 [INFO] [stderr] Compiling addr2line v0.24.2 [INFO] [stderr] Compiling crossterm v0.28.1 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Compiling darling_core v0.20.11 [INFO] [stderr] Compiling regex v1.11.1 [INFO] [stderr] Compiling x11rb v0.13.1 [INFO] [stderr] Compiling env_logger v0.10.2 [INFO] [stderr] Compiling zerofrom-derive v0.1.6 [INFO] [stderr] Compiling yoke-derive v0.8.0 [INFO] [stderr] Compiling zerovec-derive v0.11.1 [INFO] [stderr] Compiling displaydoc v0.2.5 [INFO] [stderr] Compiling serde_derive v1.0.219 [INFO] [stderr] Compiling futures-macro v0.3.31 [INFO] [stderr] Compiling tokio-macros v2.5.0 [INFO] [stderr] Compiling strum_macros v0.26.4 [INFO] [stderr] Compiling backtrace v0.3.75 [INFO] [stderr] Compiling async-trait v0.1.89 [INFO] [stderr] Compiling tokio v1.47.1 [INFO] [stderr] Compiling futures-util v0.3.31 [INFO] [stderr] Compiling color-eyre v0.6.5 [INFO] [stderr] Compiling zerofrom v0.1.6 [INFO] [stderr] Compiling yoke v0.8.0 [INFO] [stderr] Compiling zerovec v0.11.4 [INFO] [stderr] Compiling zerotrie v0.2.2 [INFO] [stderr] Compiling arboard v3.6.1 [INFO] [stderr] Compiling darling_macro v0.20.11 [INFO] [stderr] Compiling darling v0.20.11 [INFO] [stderr] Compiling instability v0.3.9 [INFO] [stderr] Compiling strum v0.26.3 [INFO] [stderr] Compiling ratatui v0.29.0 [INFO] [stderr] Compiling tinystr v0.8.1 [INFO] [stderr] Compiling potential_utf v0.1.2 [INFO] [stderr] Compiling icu_collections v2.0.0 [INFO] [stderr] Compiling icu_locale_core v2.0.0 [INFO] [stderr] Compiling serde v1.0.219 [INFO] [stderr] Compiling icu_provider v2.0.0 [INFO] [stderr] Compiling icu_normalizer v2.0.0 [INFO] [stderr] Compiling icu_properties v2.0.1 [INFO] [stderr] Compiling futures-executor v0.3.31 [INFO] [stderr] Compiling futures v0.3.31 [INFO] [stderr] Compiling idna_adapter v1.2.1 [INFO] [stderr] Compiling idna v1.1.0 [INFO] [stderr] Compiling url v2.5.6 [INFO] [stderr] Compiling tokio-util v0.7.16 [INFO] [stderr] Compiling serde_spanned v0.6.9 [INFO] [stderr] Compiling toml_datetime v0.6.11 [INFO] [stderr] Compiling csv v1.3.1 [INFO] [stderr] Compiling serde_yaml v0.9.34+deprecated [INFO] [stderr] Compiling chrono v0.4.41 [INFO] [stderr] Compiling serde_json v1.0.143 [INFO] [stderr] Compiling toml_edit v0.22.27 [INFO] [stderr] Compiling combine v4.6.7 [INFO] [stderr] Compiling toml v0.8.23 [INFO] [stderr] Compiling redis v0.24.0 [INFO] [stderr] Compiling rudis v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `color_eyre::Result` [INFO] [stdout] --> src/main.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use color_eyre::Result; [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: `AppEvent` [INFO] [stdout] --> src/app/controller.rs:7:21 [INFO] [stdout] | [INFO] [stdout] 7 | use crate::events::{AppEvent, EventHandler}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `super::states::*` [INFO] [stdout] --> src/app/state.rs:3:9 [INFO] [stdout] | [INFO] [stdout] 3 | pub use super::states::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `super::state_connection::*` [INFO] [stdout] --> src/app/state.rs:6:9 [INFO] [stdout] | [INFO] [stdout] 6 | pub use super::state_connection::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `super::state_database::*` [INFO] [stdout] --> src/app/state.rs:7:9 [INFO] [stdout] | [INFO] [stdout] 7 | pub use super::state_database::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `super::state_key_navigation::*` [INFO] [stdout] --> src/app/state.rs:8:9 [INFO] [stdout] | [INFO] [stdout] 8 | pub use super::state_key_navigation::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `super::state_search::*` [INFO] [stdout] --> src/app/state.rs:9:9 [INFO] [stdout] | [INFO] [stdout] 9 | pub use super::state_search::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `super::state_tree_view::*` [INFO] [stdout] --> src/app/state.rs:10:9 [INFO] [stdout] | [INFO] [stdout] 10 | pub use super::state_tree_view::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `super::state_progress::*` [INFO] [stdout] --> src/app/state.rs:11:9 [INFO] [stdout] | [INFO] [stdout] 11 | pub use super::state_progress::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `super::state_confirmation::*` [INFO] [stdout] --> src/app/state.rs:12:9 [INFO] [stdout] | [INFO] [stdout] 12 | pub use super::state_confirmation::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `super::state_export_import::*` [INFO] [stdout] --> src/app/state.rs:13:9 [INFO] [stdout] | [INFO] [stdout] 13 | pub use super::state_export_import::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `super::state_bulk_operations::*` [INFO] [stdout] --> src/app/state.rs:14:9 [INFO] [stdout] | [INFO] [stdout] 14 | pub use super::state_bulk_operations::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `connection_list_state::ConnectionListState` [INFO] [stdout] --> src/app/states/mod.rs:12:9 [INFO] [stdout] | [INFO] [stdout] 12 | pub use connection_list_state::ConnectionListState; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `DatabaseBrowserState` [INFO] [stdout] --> src/app/states/mod.rs:13:34 [INFO] [stdout] | [INFO] [stdout] 13 | pub use database_browser_state::{DatabaseBrowserState, KeyInfo}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `CommandInputState` [INFO] [stdout] --> src/app/states/mod.rs:14:31 [INFO] [stdout] | [INFO] [stdout] 14 | pub use command_input_state::{CommandInputState, CommandResult}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ConnectionDialogState` [INFO] [stdout] --> src/app/states/mod.rs:15:35 [INFO] [stdout] | [INFO] [stdout] 15 | pub use connection_dialog_state::{ConnectionDialogState, ConnectionDialogField, ConnectionFormData}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ConnectionConfig` [INFO] [stdout] --> src/app/state_core.rs:3:37 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::app::config::{AppConfig, ConnectionConfig}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `KeyInfo` [INFO] [stdout] --> src/app/state_core.rs:8:24 [INFO] [stdout] | [INFO] [stdout] 8 | ViewMode, UiState, KeyInfo, FocusedPanel [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::error::AppResult` [INFO] [stdout] --> src/app/state_key_navigation.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::error::AppResult; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crossterm::terminal` [INFO] [stdout] --> src/app/state_key_navigation.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use crossterm::terminal; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::error::AppResult` [INFO] [stdout] --> src/app/state_tree_view.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::error::AppResult; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Client`, `Connection`, and `RedisResult` [INFO] [stdout] --> src/redis/connection.rs:1:13 [INFO] [stdout] | [INFO] [stdout] 1 | use redis::{Client, Connection, RedisResult}; [INFO] [stdout] | ^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Duration` [INFO] [stdout] --> src/redis/connection.rs:2:17 [INFO] [stdout] | [INFO] [stdout] 2 | use std::time::{Duration, Instant}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `super::*` [INFO] [stdout] --> src/redis/value_types.rs:189:9 [INFO] [stdout] | [INFO] [stdout] 189 | use super::*; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `client::*` [INFO] [stdout] --> src/redis/mod.rs:7:9 [INFO] [stdout] | [INFO] [stdout] 7 | pub use client::*; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `commands::*` [INFO] [stdout] --> src/redis/mod.rs:9:9 [INFO] [stdout] | [INFO] [stdout] 9 | pub use commands::*; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `types::*` [INFO] [stdout] --> src/redis/mod.rs:10:9 [INFO] [stdout] | [INFO] [stdout] 10 | pub use types::*; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `value_types::*` [INFO] [stdout] --> src/redis/mod.rs:11:9 [INFO] [stdout] | [INFO] [stdout] 11 | pub use value_types::*; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::process::Command` [INFO] [stdout] --> src/events/handler.rs:587:13 [INFO] [stdout] | [INFO] [stdout] 587 | use std::process::Command; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `EnterAlternateScreen` and `enable_raw_mode` [INFO] [stdout] --> src/events/handler.rs:623:57 [INFO] [stdout] | [INFO] [stdout] 623 | use crossterm::terminal::{disable_raw_mode, enable_raw_mode, EnterAlternateScreen, LeaveAlternateScreen}; [INFO] [stdout] | ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `execute` [INFO] [stdout] --> src/events/handler.rs:664:47 [INFO] [stdout] | [INFO] [stdout] 664 | use crossterm::{terminal, cursor, execute, queue}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Line` and `Span` [INFO] [stdout] --> src/ui/confirmation_dialog.rs:4:12 [INFO] [stdout] | [INFO] [stdout] 4 | text::{Line, Span}, [INFO] [stdout] | ^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Line`, `Span`, and `Wrap` [INFO] [stdout] --> src/ui/export_import_dialog.rs:4:12 [INFO] [stdout] | [INFO] [stdout] 4 | text::{Line, Span}, [INFO] [stdout] | ^^^^ ^^^^ [INFO] [stdout] 5 | widgets::{Block, Borders, Clear, Paragraph, Wrap}, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Line` and `Span` [INFO] [stdout] --> src/ui/bulk_operations_dialog.rs:4:12 [INFO] [stdout] | [INFO] [stdout] 4 | text::{Line, Span}, [INFO] [stdout] | ^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Line` and `Span` [INFO] [stdout] --> src/ui/progress_bar.rs:4:12 [INFO] [stdout] | [INFO] [stdout] 4 | text::{Line, Span}, [INFO] [stdout] | ^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `export_import_dialog::*` [INFO] [stdout] --> src/ui/mod.rs:20:9 [INFO] [stdout] | [INFO] [stdout] 20 | pub use export_import_dialog::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `bulk_operations_dialog::*` [INFO] [stdout] --> src/ui/mod.rs:21:9 [INFO] [stdout] | [INFO] [stdout] 21 | pub use bulk_operations_dialog::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `progress_bar::*` [INFO] [stdout] --> src/ui/mod.rs:22:9 [INFO] [stdout] | [INFO] [stdout] 22 | pub use progress_bar::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tree_view::*` [INFO] [stdout] --> src/ui/mod.rs:23:9 [INFO] [stdout] | [INFO] [stdout] 23 | pub use tree_view::*; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `layout::*` [INFO] [stdout] --> src/ui/mod.rs:25:9 [INFO] [stdout] | [INFO] [stdout] 25 | pub use layout::*; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `themes::*` [INFO] [stdout] --> src/ui/mod.rs:26:9 [INFO] [stdout] | [INFO] [stdout] 26 | pub use themes::*; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::redis::value_types::RedisValue` [INFO] [stdout] --> src/utils/bulk_operations.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::redis::value_types::RedisValue; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated function `base64::encode`: Use Engine::encode [INFO] [stdout] --> src/ui/binary_viewer.rs:391:37 [INFO] [stdout] | [INFO] [stdout] 391 | let base64_string = base64::encode(data); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `exported_data` [INFO] [stdout] --> src/app/state_export_import.rs:68:16 [INFO] [stdout] | [INFO] [stdout] 68 | Ok(exported_data) => { [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_exported_data` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/redis/connection.rs:690:33 [INFO] [stdout] | [INFO] [stdout] 689 | ... redis::Value::Data(bytes) => String::from_utf8(bytes.clone()).unwrap_or_default(), [INFO] [stdout] | ------------------------- matches all the relevant values [INFO] [stdout] 690 | ... redis::Value::Data(bytes) => String::from_utf8(bytes.to_vec()).unwrap_or_default(), [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/redis/connection.rs:698:33 [INFO] [stdout] | [INFO] [stdout] 695 | ... redis::Value::Data(bytes) => { [INFO] [stdout] | ------------------------- matches all the relevant values [INFO] [stdout] ... [INFO] [stdout] 698 | ... redis::Value::Data(bytes) => String::from_utf8(bytes.to_vec()).unwrap_or_default().parse().unwrap_or(0.0), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ no value can reach this [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/redis/connection.rs:758:37 [INFO] [stdout] | [INFO] [stdout] 757 | ... redis::Value::Data(bytes) => String::from_utf8(bytes.clone()).unwrap_or_default(), [INFO] [stdout] | ------------------------- matches all the relevant values [INFO] [stdout] 758 | ... redis::Value::Data(bytes) => String::from_utf8(bytes.to_vec()).unwrap_or_default(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ no value can reach this [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/redis/connection.rs:768:49 [INFO] [stdout] | [INFO] [stdout] 767 | ... redis::Value::Data(bytes) => String::from_utf8(bytes.clone()).unwrap_or_default(), [INFO] [stdout] | ------------------------- matches all the relevant values [INFO] [stdout] 768 | ... redis::Value::Data(bytes) => String::from_utf8(bytes.to_vec()).unwrap_or_default(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ no value can reach this [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/redis/connection.rs:774:49 [INFO] [stdout] | [INFO] [stdout] 773 | ... redis::Value::Data(bytes) => String::from_utf8(bytes.clone()).unwrap_or_default(), [INFO] [stdout] | ------------------------- matches all the relevant values [INFO] [stdout] 774 | ... redis::Value::Data(bytes) => String::from_utf8(bytes.to_vec()).unwrap_or_default(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ no value can reach this [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `connection` [INFO] [stdout] --> src/utils/bulk_operations.rs:271:9 [INFO] [stdout] | [INFO] [stdout] 271 | connection: &mut crate::redis::RedisConnection, [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_connection` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `key` [INFO] [stdout] --> src/utils/bulk_operations.rs:272:9 [INFO] [stdout] | [INFO] [stdout] 272 | key: &str, [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_key` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `target_db` [INFO] [stdout] --> src/utils/bulk_operations.rs:273:9 [INFO] [stdout] | [INFO] [stdout] 273 | target_db: u8, [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_target_db` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `prelude::Stylize` [INFO] [stdout] --> src/ui/binary_viewer.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | prelude::Stylize, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `prelude::Stylize` [INFO] [stdout] --> src/ui/confirmation_dialog.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | prelude::Stylize, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `delay_ms` [INFO] [stdout] --> src/app/state_progress.rs:70:63 [INFO] [stdout] | [INFO] [stdout] 70 | pub fn schedule_progress_removal(&mut self, index: usize, delay_ms: u64) { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_delay_ms` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `key_name` [INFO] [stdout] --> src/ui/renderer.rs:621:9 [INFO] [stdout] | [INFO] [stdout] 621 | key_name: &str, [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_key_name` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `progress_ratio` [INFO] [stdout] --> src/ui/bulk_operations_dialog.rs:314:17 [INFO] [stdout] | [INFO] [stdout] 314 | let progress_ratio = progress.progress_percentage() / 100.0; [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_progress_ratio` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `save_to_file`, `remove_connection`, and `get_connection` are never used [INFO] [stdout] --> src/app/config.rs:107:12 [INFO] [stdout] | [INFO] [stdout] 93 | impl AppConfig { [INFO] [stdout] | -------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 107 | pub fn save_to_file(&self, path: &PathBuf) -> AppResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 132 | pub fn remove_connection(&mut self, id: &str) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 137 | pub fn get_connection(&self, id: &str) -> Option<&ConnectionConfig> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Settings` is never constructed [INFO] [stdout] --> src/app/states/view_mode.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 3 | pub enum ViewMode { [INFO] [stdout] | -------- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 13 | Settings, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ViewMode` 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 `selected_index` and `scroll_offset` are never read [INFO] [stdout] --> src/app/states/connection_list_state.rs:5:9 [INFO] [stdout] | [INFO] [stdout] 3 | pub struct ConnectionListState { [INFO] [stdout] | ------------------- fields in this struct [INFO] [stdout] 4 | /// Currently selected connection index [INFO] [stdout] 5 | pub selected_index: usize, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 6 | /// Scroll offset for the list [INFO] [stdout] 7 | pub scroll_offset: usize, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ConnectionListState` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `total_keys` and `tree_separator` are never read [INFO] [stdout] --> src/app/states/database_browser_state.rs:28:9 [INFO] [stdout] | [INFO] [stdout] 6 | pub struct DatabaseBrowserState { [INFO] [stdout] | -------------------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 28 | pub total_keys: Option, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 34 | pub tree_separator: String, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `DatabaseBrowserState` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `size` and `matches_filter` are never read [INFO] [stdout] --> src/app/states/database_browser_state.rs:71:9 [INFO] [stdout] | [INFO] [stdout] 63 | pub struct KeyInfo { [INFO] [stdout] | ------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 71 | pub size: Option, [INFO] [stdout] | ^^^^ [INFO] [stdout] 72 | /// Whether this key matches current filter [INFO] [stdout] 73 | pub matches_filter: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `KeyInfo` 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 `cursor_position` and `history_index` are never read [INFO] [stdout] --> src/app/states/command_input_state.rs:7:9 [INFO] [stdout] | [INFO] [stdout] 3 | pub struct CommandInputState { [INFO] [stdout] | ----------------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 7 | pub cursor_position: usize, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 11 | pub history_index: usize, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `CommandInputState` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `command`, `result`, and `timestamp` are never read [INFO] [stdout] --> src/app/states/command_input_state.rs:19:9 [INFO] [stdout] | [INFO] [stdout] 18 | pub struct CommandResult { [INFO] [stdout] | ------------- fields in this struct [INFO] [stdout] 19 | pub command: String, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 20 | pub result: Result, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 21 | pub timestamp: std::time::SystemTime, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `CommandResult` 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 `connection_list` is never read [INFO] [stdout] --> src/app/states/ui_state.rs:16:9 [INFO] [stdout] | [INFO] [stdout] 11 | pub struct UiState { [INFO] [stdout] | ------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 16 | pub connection_list: ConnectionListState, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `UiState` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple fields are never read [INFO] [stdout] --> src/app/states/key_viewer_state.rs:25:9 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct KeyViewerState { [INFO] [stdout] | -------------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 25 | pub original_value: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 33 | pub selected_hash_field: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 41 | pub original_field_name: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 45 | pub selected_list_element: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 55 | pub selected_set_member: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 63 | pub selected_zset_member: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 73 | pub selected_stream_entry: Option, // Entry ID [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `KeyViewerState` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/app/states/key_viewer_state.rs:137:12 [INFO] [stdout] | [INFO] [stdout] 135 | impl KeyViewerState { [INFO] [stdout] | ------------------- methods in this implementation [INFO] [stdout] 136 | /// Enter edit mode for string values [INFO] [stdout] 137 | pub fn enter_edit_mode(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 148 | pub fn exit_edit_mode(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 157 | pub fn insert_char(&mut self, c: char) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 166 | pub fn delete_char(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 184 | pub fn move_cursor_left(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 195 | pub fn move_cursor_right(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 206 | pub fn move_cursor_home(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 256 | pub fn move_cursor_end(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 263 | pub fn get_edit_value(&self) -> &str { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 268 | pub fn apply_edit_changes(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 304 | pub fn select_hash_field(&mut self, index: usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 314 | pub fn start_edit_hash_field(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 324 | pub fn start_edit_hash_value(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 335 | pub fn start_add_hash_field(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 343 | pub fn cancel_hash_edit(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 352 | pub fn insert_hash_char(&mut self, c: char) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 367 | pub fn delete_hash_char(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 386 | pub fn next_hash_field(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 396 | pub fn prev_hash_field(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 406 | pub fn apply_hash_changes(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 446 | pub fn delete_hash_field(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 470 | pub fn select_list_element(&mut self, index: usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 480 | pub fn start_edit_list_element(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 489 | pub fn start_insert_list_element(&mut self, index: usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 497 | pub fn start_append_list_element(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 505 | pub fn cancel_list_edit(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 513 | pub fn insert_list_char(&mut self, c: char) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 521 | pub fn delete_list_char(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 529 | pub fn next_list_element(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 539 | pub fn prev_list_element(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 549 | pub fn apply_list_changes(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 586 | pub fn delete_list_element(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 608 | pub fn move_list_element_up(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 621 | pub fn move_list_element_down(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 636 | pub fn select_set_member(&mut self, index: usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 646 | pub fn start_add_set_member(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 653 | pub fn start_remove_set_member(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 661 | pub fn cancel_set_edit(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 668 | pub fn insert_set_char(&mut self, c: char) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 676 | pub fn delete_set_char(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 684 | pub fn next_set_member(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 694 | pub fn prev_set_member(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 704 | pub fn apply_set_changes(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 759 | pub fn select_zset_member(&mut self, index: usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 769 | pub fn start_add_zset_member(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 777 | pub fn start_update_zset_score(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 788 | pub fn start_remove_zset_member(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 796 | pub fn cancel_zset_edit(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 804 | pub fn insert_zset_char(&mut self, c: char, is_score_field: bool) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 823 | pub fn delete_zset_char(&mut self, is_score_field: bool) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 845 | pub fn next_zset_member(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 855 | pub fn prev_zset_member(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 865 | pub fn apply_zset_changes(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 945 | pub fn select_stream_entry(&mut self, index: usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 956 | pub fn toggle_stream_view_mode(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 964 | pub fn next_stream_entry(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 975 | pub fn prev_stream_entry(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 986 | pub fn next_stream_field(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1000 | pub fn prev_stream_field(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1007 | pub fn get_current_stream_entry(&self) -> Option<&crate::redis::value_types::StreamEntry> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1016 | pub fn get_stream_entry_count(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1025 | pub fn cycle_binary_display_mode(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1035 | pub fn toggle_json_highlighting(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1040 | pub fn has_binary_data(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1050 | pub fn get_value_bytes(&self) -> Option<&[u8]> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `key_type`, `size`, and `encoding` are never read [INFO] [stdout] --> src/app/state_core.rs:54:9 [INFO] [stdout] | [INFO] [stdout] 53 | pub struct KeyMetadata { [INFO] [stdout] | ----------- fields in this struct [INFO] [stdout] 54 | pub key_type: String, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 55 | pub ttl: Option, [INFO] [stdout] 56 | pub size: usize, [INFO] [stdout] | ^^^^ [INFO] [stdout] 57 | pub encoding: Option, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `KeyMetadata` 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: variant `Detail` is never constructed [INFO] [stdout] --> src/app/state_core.rs:104:5 [INFO] [stdout] | [INFO] [stdout] 101 | pub enum StreamViewMode { [INFO] [stdout] | -------------- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 104 | Detail, // Detail view showing selected entry fields [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `StreamViewMode` 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 `get_active_connection`, `remove_connection`, and `set_active_connection` are never used [INFO] [stdout] --> src/app/state_core.rs:144:12 [INFO] [stdout] | [INFO] [stdout] 107 | impl AppState { [INFO] [stdout] | ------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 144 | pub fn get_active_connection(&self) -> Option<&RedisConnection> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 164 | pub fn remove_connection(&mut self, id: &str) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 173 | pub fn set_active_connection(&mut self, id: String) -> AppResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `select_database` is never used [INFO] [stdout] --> src/app/state_database.rs:23:18 [INFO] [stdout] | [INFO] [stdout] 5 | impl AppState { [INFO] [stdout] | ------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 23 | pub async fn select_database(&mut self, db_num: u8) -> AppResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `get_max_scroll_offset` is never used [INFO] [stdout] --> src/app/state_key_navigation.rs:61:12 [INFO] [stdout] | [INFO] [stdout] 5 | impl AppState { [INFO] [stdout] | ------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 61 | pub fn get_max_scroll_offset(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `set_key_filter` is never used [INFO] [stdout] --> src/app/state_search.rs:6:18 [INFO] [stdout] | [INFO] [stdout] 4 | impl AppState { [INFO] [stdout] | ------------- method in this implementation [INFO] [stdout] 5 | /// Set filter pattern for key search [INFO] [stdout] 6 | pub async fn set_key_filter(&mut self, pattern: String) -> AppResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `update_bulk_progress`, `hide_progress`, and `remove_progress` are never used [INFO] [stdout] --> src/app/state_progress.rs:30:12 [INFO] [stdout] | [INFO] [stdout] 3 | impl AppState { [INFO] [stdout] | ------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 30 | pub fn update_bulk_progress( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 51 | pub fn hide_progress(&mut self, index: usize) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 58 | pub fn remove_progress(&mut self, index: usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/app/state_confirmation.rs:5:12 [INFO] [stdout] | [INFO] [stdout] 3 | impl AppState { [INFO] [stdout] | ------------- associated items in this implementation [INFO] [stdout] 4 | /// Open confirmation dialog for saving changes [INFO] [stdout] 5 | pub fn confirm_save_changes(&mut self, key_name: String, old_value: String, new_value: String) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 17 | pub fn confirm_delete_key(&mut self, key_name: String, key_type: String) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 25 | pub fn confirm_discard_changes(&mut self, key_name: String) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 32 | pub fn confirm_large_value_edit(&mut self, key_name: String, size: usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 40 | pub fn confirm_binary_data_edit(&mut self, key_name: String, binary_info: String) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 48 | pub fn validate_edit_and_confirm(&mut self, key_name: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 77 | pub fn handle_confirmation_response(&mut self) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 92 | pub fn close_confirmation_dialog(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 97 | fn create_value_summary(value: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `open_export_dialog`, `open_import_dialog`, `export_current_key`, and `import_data` are never used [INFO] [stdout] --> src/app/state_export_import.rs:6:12 [INFO] [stdout] | [INFO] [stdout] 4 | impl AppState { [INFO] [stdout] | ------------- methods in this implementation [INFO] [stdout] 5 | /// Open export dialog for current key [INFO] [stdout] 6 | pub fn open_export_dialog(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 14 | pub fn open_import_dialog(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 20 | pub async fn export_current_key(&mut self) -> AppResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 105 | pub async fn import_data(&mut self) -> AppResult<()> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `open_bulk_operations_dialog`, `execute_bulk_operation`, and `get_selected_keys_for_bulk` are never used [INFO] [stdout] --> src/app/state_bulk_operations.rs:6:12 [INFO] [stdout] | [INFO] [stdout] 4 | impl AppState { [INFO] [stdout] | ------------- methods in this implementation [INFO] [stdout] 5 | /// Open bulk operations dialog with selected keys [INFO] [stdout] 6 | pub fn open_bulk_operations_dialog(&mut self, selected_keys: Vec) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 11 | pub async fn execute_bulk_operation(&mut self) -> AppResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 108 | pub fn get_selected_keys_for_bulk(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Ui` is never constructed [INFO] [stdout] --> src/error.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 5 | pub enum AppError { [INFO] [stdout] | -------- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 15 | Ui(String), [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = note: `AppError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `bytes_sent` and `bytes_received` are never read [INFO] [stdout] --> src/redis/connection.rs:68:9 [INFO] [stdout] | [INFO] [stdout] 57 | pub struct ConnectionStats { [INFO] [stdout] | --------------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 68 | pub bytes_sent: u64, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 71 | pub bytes_received: u64, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ConnectionStats` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/redis/connection.rs:148:18 [INFO] [stdout] | [INFO] [stdout] 74 | impl RedisConnection { [INFO] [stdout] | -------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 148 | pub async fn disconnect(&mut self) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 161 | pub async fn ping(&mut self) -> AppResult { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 240 | pub async fn get_server_info(&mut self) -> AppResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 245 | pub async fn get_database_size(&mut self) -> AppResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 403 | pub async fn rename_key(&mut self, old_key: &str, new_key: &str) -> AppResult { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 408 | pub async fn expire_key(&mut self, key: &str, seconds: u64) -> AppResult { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 413 | pub async fn get_string_value(&mut self, key: &str) -> AppResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 418 | pub async fn key_exists(&mut self, key: &str) -> AppResult { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 459 | pub async fn get_key_memory_usage(&mut self, key: &str) -> AppResult> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 518 | pub async fn get_hash_field(&mut self, key: &str, field: &str) -> AppResult> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 532 | pub async fn set_hash_field(&mut self, key: &str, field: &str, value: &str) -> AppResult { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 537 | pub async fn delete_hash_field(&mut self, key: &str, field: &str) -> AppResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 574 | pub async fn get_list_length(&mut self, key: &str) -> AppResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 584 | pub async fn list_push(&mut self, key: &str, value: &str) -> AppResult { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 589 | pub async fn list_set(&mut self, key: &str, index: i64, value: &str) -> AppResult { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 657 | pub async fn set_add(&mut self, key: &str, member: &str) -> AppResult { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 662 | pub async fn set_remove(&mut self, key: &str, member: &str) -> AppResult { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 724 | pub async fn zset_add(&mut self, key: &str, score: f64, member: &str) -> AppResult { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 729 | pub async fn zset_remove(&mut self, key: &str, member: &str) -> AppResult { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/redis/connection.rs:819:12 [INFO] [stdout] | [INFO] [stdout] 817 | impl RedisConnection { [INFO] [stdout] | -------------------- methods in this implementation [INFO] [stdout] 818 | /// Get current database number [INFO] [stdout] 819 | pub fn get_current_database(&self) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 824 | pub async fn bulk_delete_key(&mut self, key: &str) -> AppResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 830 | pub async fn set_ttl(&mut self, key: &str, ttl: i64) -> AppResult<()> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 836 | pub async fn persist_key(&mut self, key: &str) -> AppResult<()> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 842 | pub async fn bulk_rename_key(&mut self, old_key: &str, new_key: &str) -> AppResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 848 | pub async fn bulk_set_string(&mut self, key: &str, value: &str) -> AppResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 854 | pub async fn increment_key(&mut self, key: &str, amount: i64) -> AppResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 860 | pub async fn append_to_string(&mut self, key: &str, value: &str) -> AppResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 866 | pub async fn add_to_set(&mut self, key: &str, member: &str) -> AppResult<()> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 872 | pub async fn add_to_sorted_set(&mut self, key: &str, member: &str, score: f64) -> AppResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 878 | pub async fn bulk_set_hash_field(&mut self, key: &str, field: &str, value: &str) -> AppResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 884 | pub async fn push_to_list(&mut self, key: &str, value: &str, to_front: bool) -> AppResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `description`, `is_empty`, and `size` are never used [INFO] [stdout] --> src/redis/value_types.rs:37:12 [INFO] [stdout] | [INFO] [stdout] 22 | impl RedisValue { [INFO] [stdout] | --------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 37 | pub fn description(&self) -> String { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 68 | pub fn is_empty(&self) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 81 | pub fn size(&self) -> usize { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ValuePage` is never constructed [INFO] [stdout] --> src/redis/value_types.rs:124:12 [INFO] [stdout] | [INFO] [stdout] 124 | pub struct ValuePage { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `start_index`, `end_index`, and `total_pages` are never used [INFO] [stdout] --> src/redis/value_types.rs:137:12 [INFO] [stdout] | [INFO] [stdout] 135 | impl ValuePage { [INFO] [stdout] | -------------- associated items in this implementation [INFO] [stdout] 136 | /// Create a new value page [INFO] [stdout] 137 | pub fn new(page: usize, page_size: usize, total_items: usize) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 148 | pub fn start_index(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 153 | pub fn end_index(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 158 | pub fn total_pages(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ValueDisplayConfig` is never constructed [INFO] [stdout] --> src/redis/value_types.rs:165:12 [INFO] [stdout] | [INFO] [stdout] 165 | pub struct ValueDisplayConfig { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `format_string_value` is never used [INFO] [stdout] --> src/redis/value_types.rs:192:12 [INFO] [stdout] | [INFO] [stdout] 192 | pub fn format_string_value(value: &str, max_length: usize) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_json_like` is never used [INFO] [stdout] --> src/redis/value_types.rs:207:12 [INFO] [stdout] | [INFO] [stdout] 207 | pub fn is_json_like(value: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_binary_data` is never used [INFO] [stdout] --> src/redis/value_types.rs:214:12 [INFO] [stdout] | [INFO] [stdout] 214 | pub fn is_binary_data(value: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `format_as_hex` is never used [INFO] [stdout] --> src/redis/value_types.rs:219:12 [INFO] [stdout] | [INFO] [stdout] 219 | pub fn format_as_hex(data: &[u8]) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple variants are never constructed [INFO] [stdout] --> src/events/types.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 6 | pub enum AppEvent { [INFO] [stdout] | -------- variants in this enum [INFO] [stdout] 7 | /// User input events [INFO] [stdout] 8 | KeyPressed(KeyEvent), [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 17 | DatabaseSelected { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 23 | KeySelected { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 28 | KeysLoaded { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 35 | KeyContentLoaded { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 43 | CommandExecuted { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 52 | StatusMessage(String), [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 55 | Error(String), [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 58 | Quit, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `AppEvent` 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: enum `InputEvent` is never used [INFO] [stdout] --> src/events/types.rs:63:10 [INFO] [stdout] | [INFO] [stdout] 63 | pub enum InputEvent { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `is_valid`, `has_warning`, `has_error`, and `message` are never used [INFO] [stdout] --> src/ui/validation.rs:13:12 [INFO] [stdout] | [INFO] [stdout] 11 | impl ValidationResult { [INFO] [stdout] | --------------------- methods in this implementation [INFO] [stdout] 12 | /// Check if the validation result is valid [INFO] [stdout] 13 | pub fn is_valid(&self) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 18 | pub fn has_warning(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 23 | pub fn has_error(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 28 | pub fn message(&self) -> Option<&str> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/ui/validation.rs:68:12 [INFO] [stdout] | [INFO] [stdout] 66 | impl StringValidator { [INFO] [stdout] | -------------------- associated function in this implementation [INFO] [stdout] 67 | /// Create a new string validator with custom limits [INFO] [stdout] 68 | pub fn new(max_size: usize, max_lines: usize, require_utf8: bool) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `validate_json_detailed` is never used [INFO] [stdout] --> src/ui/validation.rs:181:12 [INFO] [stdout] | [INFO] [stdout] 164 | impl JsonValidator { [INFO] [stdout] | ------------------ associated function in this implementation [INFO] [stdout] ... [INFO] [stdout] 181 | pub fn validate_json_detailed(value: &str) -> (ValidationResult, Option) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `JsonInfo` is never constructed [INFO] [stdout] --> src/ui/validation.rs:201:12 [INFO] [stdout] | [INFO] [stdout] 201 | pub struct JsonInfo { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `JsonValueType` is never used [INFO] [stdout] --> src/ui/validation.rs:209:10 [INFO] [stdout] | [INFO] [stdout] 209 | pub enum JsonValueType { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `from_value` and `calculate_nesting_level` are never used [INFO] [stdout] --> src/ui/validation.rs:219:8 [INFO] [stdout] | [INFO] [stdout] 218 | impl JsonInfo { [INFO] [stdout] | ------------- associated functions in this implementation [INFO] [stdout] 219 | fn from_value(value: &serde_json::Value) -> Self { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 260 | fn calculate_nesting_level(value: &serde_json::Value) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `format_json`, `get_json_info`, `get_json_type`, `calculate_json_size`, `calculate_json_depth`, and `format_size` are never used [INFO] [stdout] --> src/ui/json_highlighter.rs:38:12 [INFO] [stdout] | [INFO] [stdout] 26 | impl JsonHighlighter { [INFO] [stdout] | -------------------- associated functions in this implementation [INFO] [stdout] ... [INFO] [stdout] 38 | pub fn format_json(text: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 269 | pub fn get_json_info(text: &str) -> JsonInfo { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 296 | fn get_json_type(value: &Value) -> JsonValueType { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 307 | fn calculate_json_size(value: &Value) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 315 | fn calculate_json_depth(value: &Value) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 333 | fn format_size(bytes: usize) -> String { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `JsonInfo` is never constructed [INFO] [stdout] --> src/ui/json_highlighter.rs:346:12 [INFO] [stdout] | [INFO] [stdout] 346 | pub struct JsonInfo { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `JsonValueType` is never used [INFO] [stdout] --> src/ui/json_highlighter.rs:356:10 [INFO] [stdout] | [INFO] [stdout] 356 | pub enum JsonValueType { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple variants are never constructed [INFO] [stdout] --> src/ui/confirmation_dialog.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 12 | pub enum ConfirmationType { [INFO] [stdout] | ---------------- variants in this enum [INFO] [stdout] 13 | /// Confirm saving changes to a key value [INFO] [stdout] 14 | SaveChanges { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 20 | DeleteKey { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 25 | DiscardChanges { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 29 | LargeValueEdit { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 34 | BinaryDataEdit { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 39 | TypeConversion { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 45 | BulkOperation { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ConfirmationType` 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: enum `ConfirmationResponse` is never used [INFO] [stdout] --> src/ui/confirmation_dialog.rs:53:10 [INFO] [stdout] | [INFO] [stdout] 53 | pub enum ConfirmationResponse { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/ui/confirmation_dialog.rs:94:12 [INFO] [stdout] | [INFO] [stdout] 92 | impl ConfirmationDialog { [INFO] [stdout] | ----------------------- methods in this implementation [INFO] [stdout] 93 | /// Open a confirmation dialog [INFO] [stdout] 94 | pub fn open(&mut self, confirmation_type: ConfirmationType) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 105 | pub fn open_custom(&mut self, title: String, message: String, details: Vec) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 116 | pub fn close(&mut self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 127 | pub fn next_button(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 132 | pub fn prev_button(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 137 | pub fn toggle_details(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 144 | pub fn get_response(&self) -> ConfirmationResponse { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Import` is never constructed [INFO] [stdout] --> src/ui/export_import_dialog.rs:27:5 [INFO] [stdout] | [INFO] [stdout] 25 | pub enum ExportImportMode { [INFO] [stdout] | ---------------- variant in this enum [INFO] [stdout] 26 | Export, [INFO] [stdout] 27 | Import, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ExportImportMode` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/ui/export_import_dialog.rs:54:12 [INFO] [stdout] | [INFO] [stdout] 53 | impl ExportImportDialog { [INFO] [stdout] | ----------------------- methods in this implementation [INFO] [stdout] 54 | pub fn open_export(&mut self, default_path: String) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 62 | pub fn open_import(&mut self, default_path: String) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 70 | pub fn close(&mut self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 76 | pub fn next_field(&mut self) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 85 | pub fn cycle_format(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 95 | pub fn add_path_char(&mut self, ch: char) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 102 | pub fn backspace_path(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 109 | pub fn toggle_metadata(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 113 | pub fn toggle_ttl(&mut self) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `editing_field` is never read [INFO] [stdout] --> src/ui/bulk_operations_dialog.rs:59:9 [INFO] [stdout] | [INFO] [stdout] 43 | pub struct BulkOperationParams { [INFO] [stdout] | ------------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 59 | pub editing_field: ParameterField, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `BulkOperationParams` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple variants are never constructed [INFO] [stdout] --> src/ui/bulk_operations_dialog.rs:66:5 [INFO] [stdout] | [INFO] [stdout] 64 | pub enum ParameterField { [INFO] [stdout] | -------------- variants in this enum [INFO] [stdout] 65 | None, [INFO] [stdout] 66 | TtlValue, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 67 | TargetDb, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 68 | RenamePattern, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 69 | RenameReplacement, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] 70 | SetValue, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 71 | IncrementAmount, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 72 | AppendSuffix, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ParameterField` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/ui/bulk_operations_dialog.rs:119:12 [INFO] [stdout] | [INFO] [stdout] 117 | impl BulkOperationsDialog { [INFO] [stdout] | ------------------------- methods in this implementation [INFO] [stdout] 118 | /// Open the bulk operations dialog with selected keys [INFO] [stdout] 119 | pub fn open(&mut self, selected_keys: Vec) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 129 | pub fn close(&mut self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 137 | pub fn next_field(&mut self) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 151 | pub fn next_operation(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 160 | pub fn prev_operation(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 178 | pub fn start_execution(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 186 | pub fn update_progress(&mut self, progress: BulkProgress) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 194 | pub fn add_param_char(&mut self, ch: char) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 208 | pub fn backspace_param(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Transfer`, `BulkOperation`, and `Network` are never constructed [INFO] [stdout] --> src/ui/progress_bar.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 12 | pub enum ProgressType { [INFO] [stdout] | ------------ variants in this enum [INFO] [stdout] ... [INFO] [stdout] 16 | Transfer, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 17 | /// Bulk operations with success/failure counts [INFO] [stdout] 18 | BulkOperation, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 22 | Network, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ProgressType` 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 `is_paused` is never read [INFO] [stdout] --> src/ui/progress_bar.rs:55:9 [INFO] [stdout] | [INFO] [stdout] 27 | pub struct ProgressBar { [INFO] [stdout] | ----------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 55 | pub is_paused: bool, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ProgressBar` 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 `memory_usage` and `custom_fields` are never read [INFO] [stdout] --> src/ui/progress_bar.rs:70:9 [INFO] [stdout] | [INFO] [stdout] 64 | pub struct ProgressMetadata { [INFO] [stdout] | ---------------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 70 | pub memory_usage: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 71 | /// Custom attributes [INFO] [stdout] 72 | pub custom_fields: Vec<(String, String)>, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ProgressMetadata` 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 `show`, `update_bulk`, `set_errors`, `add_error`, `pause`, and `resume` are never used [INFO] [stdout] --> src/ui/progress_bar.rs:113:12 [INFO] [stdout] | [INFO] [stdout] 98 | impl ProgressBar { [INFO] [stdout] | ---------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 113 | pub fn show(&mut self) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 138 | pub fn update_bulk(&mut self, completed: u64, successful: u64, failed: u64, current_op: String) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 154 | pub fn set_errors(&mut self, errors: Vec) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 159 | pub fn add_error(&mut self, error: String) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 164 | pub fn pause(&mut self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 169 | pub fn resume(&mut self) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `remove_progress_bar` and `get_active_mut` are never used [INFO] [stdout] --> src/ui/progress_bar.rs:521:12 [INFO] [stdout] | [INFO] [stdout] 511 | impl ProgressBarManager { [INFO] [stdout] | ----------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 521 | pub fn remove_progress_bar(&mut self, index: usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 545 | pub fn get_active_mut(&mut self) -> Option<&mut ProgressBar> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `full_path` and `is_leaf` are never read [INFO] [stdout] --> src/ui/tree_view.rs:302:9 [INFO] [stdout] | [INFO] [stdout] 298 | pub struct TreeDisplayInfo { [INFO] [stdout] | --------------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 302 | pub full_path: String, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 308 | pub is_leaf: bool, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `TreeDisplayInfo` 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 `Yaml`, `Csv`, `Raw`, and `Redis` are never constructed [INFO] [stdout] --> src/utils/export_import.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 10 | pub enum ExportFormat { [INFO] [stdout] | ------------ variants in this enum [INFO] [stdout] ... [INFO] [stdout] 14 | Yaml, [INFO] [stdout] | ^^^^ [INFO] [stdout] 15 | /// CSV format (for tabular data like hashes) [INFO] [stdout] 16 | Csv, [INFO] [stdout] | ^^^ [INFO] [stdout] 17 | /// Raw binary data [INFO] [stdout] 18 | Raw, [INFO] [stdout] | ^^^ [INFO] [stdout] 19 | /// Redis protocol format (RESP) [INFO] [stdout] 20 | Redis, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ExportFormat` 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 `ExportData` is never constructed [INFO] [stdout] --> src/utils/export_import.rs:37:12 [INFO] [stdout] | [INFO] [stdout] 37 | pub struct ExportData { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ExportMetadata` is never constructed [INFO] [stdout] --> src/utils/export_import.rs:46:12 [INFO] [stdout] | [INFO] [stdout] 46 | pub struct ExportMetadata { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ExportedValue` is never constructed [INFO] [stdout] --> src/utils/export_import.rs:61:12 [INFO] [stdout] | [INFO] [stdout] 61 | pub struct ExportedValue { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DataExporter` is never constructed [INFO] [stdout] --> src/utils/export_import.rs:75:12 [INFO] [stdout] | [INFO] [stdout] 75 | pub struct DataExporter; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated functions are never used [INFO] [stdout] --> src/utils/export_import.rs:79:12 [INFO] [stdout] | [INFO] [stdout] 77 | impl DataExporter { [INFO] [stdout] | ----------------- associated functions in this implementation [INFO] [stdout] 78 | /// Export a single Redis value to the specified format [INFO] [stdout] 79 | pub fn export_value( [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 97 | pub fn export_values( [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 134 | pub fn import_data(data: &str, format: &ExportFormat) -> AppResult> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 145 | fn convert_to_exported_value( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 192 | fn export_to_json(values: &[ExportedValue]) -> AppResult { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 197 | fn export_to_json_with_metadata( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 217 | fn export_to_yaml(values: &[ExportedValue]) -> AppResult { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 222 | fn export_to_yaml_with_metadata( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 242 | fn export_to_csv(values: &[ExportedValue]) -> AppResult { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 317 | fn export_to_raw(value: &ExportedValue) -> AppResult { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 325 | fn export_to_redis(value: &ExportedValue) -> AppResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 398 | fn import_from_json(data: &str) -> AppResult> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 408 | fn import_from_yaml(data: &str) -> AppResult> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 418 | fn import_from_csv(data: &str) -> AppResult> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 483 | fn import_from_redis(data: &str) -> AppResult> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 501 | fn parse_redis_command( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 548 | pub fn get_supported_formats(value_type: &str) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Export`, `AddToSet`, and `AddToHash` are never constructed [INFO] [stdout] --> src/utils/bulk_operations.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 9 | pub enum BulkOperation { [INFO] [stdout] | ------------- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 21 | Export { format: crate::utils::export_import::ExportFormat }, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 29 | AddToSet { members: Vec }, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 30 | /// Add fields to hashes [INFO] [stdout] 31 | AddToHash { fields: HashMap }, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `BulkOperation` 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 `is_complete` is never read [INFO] [stdout] --> src/utils/bulk_operations.rs:48:9 [INFO] [stdout] | [INFO] [stdout] 36 | pub struct BulkProgress { [INFO] [stdout] | ------------ field in this struct [INFO] [stdout] ... [INFO] [stdout] 48 | pub is_complete: bool, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `BulkProgress` 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 items `new` and `update` are never used [INFO] [stdout] --> src/utils/bulk_operations.rs:54:12 [INFO] [stdout] | [INFO] [stdout] 53 | impl BulkProgress { [INFO] [stdout] | ----------------- associated items in this implementation [INFO] [stdout] 54 | pub fn new(total: usize) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 66 | pub fn update(&mut self, operation: String, success: bool, error: Option) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `BulkOperationResult` is never constructed [INFO] [stdout] --> src/utils/bulk_operations.rs:93:12 [INFO] [stdout] | [INFO] [stdout] 93 | pub struct BulkOperationResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated functions are never used [INFO] [stdout] --> src/utils/bulk_operations.rs:109:18 [INFO] [stdout] | [INFO] [stdout] 107 | impl BulkOperationsManager { [INFO] [stdout] | -------------------------- associated functions in this implementation [INFO] [stdout] 108 | /// Execute a single operation on a key (for progress tracking) [INFO] [stdout] 109 | pub async fn execute_single_operation( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 153 | pub async fn execute_bulk_operation( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 244 | async fn delete_key( [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 253 | async fn set_key_ttl( [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 262 | async fn remove_key_ttl( [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 270 | async fn copy_key( [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 287 | async fn rename_key( [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 304 | async fn set_key_value( [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 313 | async fn increment_key( [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 322 | async fn append_to_key( [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 331 | async fn add_to_set( [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 343 | async fn add_to_hash( [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 355 | pub fn filter_keys_by_pattern(keys: &[String], pattern: &str) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 369 | fn glob_to_regex(pattern: &str) -> regex::Regex { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 387 | pub fn validate_operation( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `get_from_clipboard` is never used [INFO] [stdout] --> src/utils/clipboard.rs:21:12 [INFO] [stdout] | [INFO] [stdout] 6 | impl ClipboardUtils { [INFO] [stdout] | ------------------- associated function in this implementation [INFO] [stdout] ... [INFO] [stdout] 21 | pub fn get_from_clipboard() -> AppResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 20s [INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: redis v0.24.0 [INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 2` [INFO] running `Command { std: "docker" "inspect" "79bfeeb6d1de771e7f251d20bee3ed474d7173b1e6245418a01a47683a98b8e1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "79bfeeb6d1de771e7f251d20bee3ed474d7173b1e6245418a01a47683a98b8e1", kill_on_drop: false }` [INFO] [stdout] 79bfeeb6d1de771e7f251d20bee3ed474d7173b1e6245418a01a47683a98b8e1 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+c7f6aa2869acdbf014d094c6e427e554e160b6db" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 8d8948124c1028eaa152e1df6c27bced9643ff6ef81b9a3abc142f12905048a0 [INFO] running `Command { std: "docker" "start" "-a" "8d8948124c1028eaa152e1df6c27bced9643ff6ef81b9a3abc142f12905048a0", kill_on_drop: false }` [INFO] [stderr] Compiling rudis v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `color_eyre::Result` [INFO] [stdout] --> src/main.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use color_eyre::Result; [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: `AppEvent` [INFO] [stdout] --> src/app/controller.rs:7:21 [INFO] [stdout] | [INFO] [stdout] 7 | use crate::events::{AppEvent, EventHandler}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `super::states::*` [INFO] [stdout] --> src/app/state.rs:3:9 [INFO] [stdout] | [INFO] [stdout] 3 | pub use super::states::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `super::state_connection::*` [INFO] [stdout] --> src/app/state.rs:6:9 [INFO] [stdout] | [INFO] [stdout] 6 | pub use super::state_connection::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `super::state_database::*` [INFO] [stdout] --> src/app/state.rs:7:9 [INFO] [stdout] | [INFO] [stdout] 7 | pub use super::state_database::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `super::state_key_navigation::*` [INFO] [stdout] --> src/app/state.rs:8:9 [INFO] [stdout] | [INFO] [stdout] 8 | pub use super::state_key_navigation::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `super::state_search::*` [INFO] [stdout] --> src/app/state.rs:9:9 [INFO] [stdout] | [INFO] [stdout] 9 | pub use super::state_search::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `super::state_tree_view::*` [INFO] [stdout] --> src/app/state.rs:10:9 [INFO] [stdout] | [INFO] [stdout] 10 | pub use super::state_tree_view::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `super::state_progress::*` [INFO] [stdout] --> src/app/state.rs:11:9 [INFO] [stdout] | [INFO] [stdout] 11 | pub use super::state_progress::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `super::state_confirmation::*` [INFO] [stdout] --> src/app/state.rs:12:9 [INFO] [stdout] | [INFO] [stdout] 12 | pub use super::state_confirmation::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `super::state_export_import::*` [INFO] [stdout] --> src/app/state.rs:13:9 [INFO] [stdout] | [INFO] [stdout] 13 | pub use super::state_export_import::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `super::state_bulk_operations::*` [INFO] [stdout] --> src/app/state.rs:14:9 [INFO] [stdout] | [INFO] [stdout] 14 | pub use super::state_bulk_operations::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `connection_list_state::ConnectionListState` [INFO] [stdout] --> src/app/states/mod.rs:12:9 [INFO] [stdout] | [INFO] [stdout] 12 | pub use connection_list_state::ConnectionListState; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `DatabaseBrowserState` [INFO] [stdout] --> src/app/states/mod.rs:13:34 [INFO] [stdout] | [INFO] [stdout] 13 | pub use database_browser_state::{DatabaseBrowserState, KeyInfo}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `CommandInputState` [INFO] [stdout] --> src/app/states/mod.rs:14:31 [INFO] [stdout] | [INFO] [stdout] 14 | pub use command_input_state::{CommandInputState, CommandResult}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ConnectionDialogState` [INFO] [stdout] --> src/app/states/mod.rs:15:35 [INFO] [stdout] | [INFO] [stdout] 15 | pub use connection_dialog_state::{ConnectionDialogState, ConnectionDialogField, ConnectionFormData}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ConnectionConfig` [INFO] [stdout] --> src/app/state_core.rs:3:37 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::app::config::{AppConfig, ConnectionConfig}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `KeyInfo` [INFO] [stdout] --> src/app/state_core.rs:8:24 [INFO] [stdout] | [INFO] [stdout] 8 | ViewMode, UiState, KeyInfo, FocusedPanel [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::error::AppResult` [INFO] [stdout] --> src/app/state_key_navigation.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::error::AppResult; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crossterm::terminal` [INFO] [stdout] --> src/app/state_key_navigation.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use crossterm::terminal; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::error::AppResult` [INFO] [stdout] --> src/app/state_tree_view.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::error::AppResult; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Client`, `Connection`, and `RedisResult` [INFO] [stdout] --> src/redis/connection.rs:1:13 [INFO] [stdout] | [INFO] [stdout] 1 | use redis::{Client, Connection, RedisResult}; [INFO] [stdout] | ^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Duration` [INFO] [stdout] --> src/redis/connection.rs:2:17 [INFO] [stdout] | [INFO] [stdout] 2 | use std::time::{Duration, Instant}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `super::*` [INFO] [stdout] --> src/redis/value_types.rs:189:9 [INFO] [stdout] | [INFO] [stdout] 189 | use super::*; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `client::*` [INFO] [stdout] --> src/redis/mod.rs:7:9 [INFO] [stdout] | [INFO] [stdout] 7 | pub use client::*; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `commands::*` [INFO] [stdout] --> src/redis/mod.rs:9:9 [INFO] [stdout] | [INFO] [stdout] 9 | pub use commands::*; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `types::*` [INFO] [stdout] --> src/redis/mod.rs:10:9 [INFO] [stdout] | [INFO] [stdout] 10 | pub use types::*; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `value_types::*` [INFO] [stdout] --> src/redis/mod.rs:11:9 [INFO] [stdout] | [INFO] [stdout] 11 | pub use value_types::*; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::process::Command` [INFO] [stdout] --> src/events/handler.rs:587:13 [INFO] [stdout] | [INFO] [stdout] 587 | use std::process::Command; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `EnterAlternateScreen` and `enable_raw_mode` [INFO] [stdout] --> src/events/handler.rs:623:57 [INFO] [stdout] | [INFO] [stdout] 623 | use crossterm::terminal::{disable_raw_mode, enable_raw_mode, EnterAlternateScreen, LeaveAlternateScreen}; [INFO] [stdout] | ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `execute` [INFO] [stdout] --> src/events/handler.rs:664:47 [INFO] [stdout] | [INFO] [stdout] 664 | use crossterm::{terminal, cursor, execute, queue}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Line` and `Span` [INFO] [stdout] --> src/ui/confirmation_dialog.rs:4:12 [INFO] [stdout] | [INFO] [stdout] 4 | text::{Line, Span}, [INFO] [stdout] | ^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Line`, `Span`, and `Wrap` [INFO] [stdout] --> src/ui/export_import_dialog.rs:4:12 [INFO] [stdout] | [INFO] [stdout] 4 | text::{Line, Span}, [INFO] [stdout] | ^^^^ ^^^^ [INFO] [stdout] 5 | widgets::{Block, Borders, Clear, Paragraph, Wrap}, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Line` and `Span` [INFO] [stdout] --> src/ui/bulk_operations_dialog.rs:4:12 [INFO] [stdout] | [INFO] [stdout] 4 | text::{Line, Span}, [INFO] [stdout] | ^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Line` and `Span` [INFO] [stdout] --> src/ui/progress_bar.rs:4:12 [INFO] [stdout] | [INFO] [stdout] 4 | text::{Line, Span}, [INFO] [stdout] | ^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `export_import_dialog::*` [INFO] [stdout] --> src/ui/mod.rs:20:9 [INFO] [stdout] | [INFO] [stdout] 20 | pub use export_import_dialog::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `bulk_operations_dialog::*` [INFO] [stdout] --> src/ui/mod.rs:21:9 [INFO] [stdout] | [INFO] [stdout] 21 | pub use bulk_operations_dialog::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `progress_bar::*` [INFO] [stdout] --> src/ui/mod.rs:22:9 [INFO] [stdout] | [INFO] [stdout] 22 | pub use progress_bar::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tree_view::*` [INFO] [stdout] --> src/ui/mod.rs:23:9 [INFO] [stdout] | [INFO] [stdout] 23 | pub use tree_view::*; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `layout::*` [INFO] [stdout] --> src/ui/mod.rs:25:9 [INFO] [stdout] | [INFO] [stdout] 25 | pub use layout::*; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `themes::*` [INFO] [stdout] --> src/ui/mod.rs:26:9 [INFO] [stdout] | [INFO] [stdout] 26 | pub use themes::*; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::redis::value_types::RedisValue` [INFO] [stdout] --> src/utils/bulk_operations.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::redis::value_types::RedisValue; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated function `base64::encode`: Use Engine::encode [INFO] [stdout] --> src/ui/binary_viewer.rs:391:37 [INFO] [stdout] | [INFO] [stdout] 391 | let base64_string = base64::encode(data); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `exported_data` [INFO] [stdout] --> src/app/state_export_import.rs:68:16 [INFO] [stdout] | [INFO] [stdout] 68 | Ok(exported_data) => { [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_exported_data` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/redis/connection.rs:690:33 [INFO] [stdout] | [INFO] [stdout] 689 | ... redis::Value::Data(bytes) => String::from_utf8(bytes.clone()).unwrap_or_default(), [INFO] [stdout] | ------------------------- matches all the relevant values [INFO] [stdout] 690 | ... redis::Value::Data(bytes) => String::from_utf8(bytes.to_vec()).unwrap_or_default(), [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/redis/connection.rs:698:33 [INFO] [stdout] | [INFO] [stdout] 695 | ... redis::Value::Data(bytes) => { [INFO] [stdout] | ------------------------- matches all the relevant values [INFO] [stdout] ... [INFO] [stdout] 698 | ... redis::Value::Data(bytes) => String::from_utf8(bytes.to_vec()).unwrap_or_default().parse().unwrap_or(0.0), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ no value can reach this [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/redis/connection.rs:758:37 [INFO] [stdout] | [INFO] [stdout] 757 | ... redis::Value::Data(bytes) => String::from_utf8(bytes.clone()).unwrap_or_default(), [INFO] [stdout] | ------------------------- matches all the relevant values [INFO] [stdout] 758 | ... redis::Value::Data(bytes) => String::from_utf8(bytes.to_vec()).unwrap_or_default(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ no value can reach this [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/redis/connection.rs:768:49 [INFO] [stdout] | [INFO] [stdout] 767 | ... redis::Value::Data(bytes) => String::from_utf8(bytes.clone()).unwrap_or_default(), [INFO] [stdout] | ------------------------- matches all the relevant values [INFO] [stdout] 768 | ... redis::Value::Data(bytes) => String::from_utf8(bytes.to_vec()).unwrap_or_default(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ no value can reach this [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/redis/connection.rs:774:49 [INFO] [stdout] | [INFO] [stdout] 773 | ... redis::Value::Data(bytes) => String::from_utf8(bytes.clone()).unwrap_or_default(), [INFO] [stdout] | ------------------------- matches all the relevant values [INFO] [stdout] 774 | ... redis::Value::Data(bytes) => String::from_utf8(bytes.to_vec()).unwrap_or_default(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ no value can reach this [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `connection` [INFO] [stdout] --> src/utils/bulk_operations.rs:271:9 [INFO] [stdout] | [INFO] [stdout] 271 | connection: &mut crate::redis::RedisConnection, [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_connection` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `key` [INFO] [stdout] --> src/utils/bulk_operations.rs:272:9 [INFO] [stdout] | [INFO] [stdout] 272 | key: &str, [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_key` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `target_db` [INFO] [stdout] --> src/utils/bulk_operations.rs:273:9 [INFO] [stdout] | [INFO] [stdout] 273 | target_db: u8, [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_target_db` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `prelude::Stylize` [INFO] [stdout] --> src/ui/binary_viewer.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | prelude::Stylize, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `prelude::Stylize` [INFO] [stdout] --> src/ui/confirmation_dialog.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | prelude::Stylize, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `delay_ms` [INFO] [stdout] --> src/app/state_progress.rs:70:63 [INFO] [stdout] | [INFO] [stdout] 70 | pub fn schedule_progress_removal(&mut self, index: usize, delay_ms: u64) { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_delay_ms` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `key_name` [INFO] [stdout] --> src/ui/renderer.rs:621:9 [INFO] [stdout] | [INFO] [stdout] 621 | key_name: &str, [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_key_name` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `progress_ratio` [INFO] [stdout] --> src/ui/bulk_operations_dialog.rs:314:17 [INFO] [stdout] | [INFO] [stdout] 314 | let progress_ratio = progress.progress_percentage() / 100.0; [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_progress_ratio` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `save_to_file`, `remove_connection`, and `get_connection` are never used [INFO] [stdout] --> src/app/config.rs:107:12 [INFO] [stdout] | [INFO] [stdout] 93 | impl AppConfig { [INFO] [stdout] | -------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 107 | pub fn save_to_file(&self, path: &PathBuf) -> AppResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 132 | pub fn remove_connection(&mut self, id: &str) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 137 | pub fn get_connection(&self, id: &str) -> Option<&ConnectionConfig> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Settings` is never constructed [INFO] [stdout] --> src/app/states/view_mode.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 3 | pub enum ViewMode { [INFO] [stdout] | -------- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 13 | Settings, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ViewMode` 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 `selected_index` and `scroll_offset` are never read [INFO] [stdout] --> src/app/states/connection_list_state.rs:5:9 [INFO] [stdout] | [INFO] [stdout] 3 | pub struct ConnectionListState { [INFO] [stdout] | ------------------- fields in this struct [INFO] [stdout] 4 | /// Currently selected connection index [INFO] [stdout] 5 | pub selected_index: usize, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 6 | /// Scroll offset for the list [INFO] [stdout] 7 | pub scroll_offset: usize, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ConnectionListState` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `total_keys` and `tree_separator` are never read [INFO] [stdout] --> src/app/states/database_browser_state.rs:28:9 [INFO] [stdout] | [INFO] [stdout] 6 | pub struct DatabaseBrowserState { [INFO] [stdout] | -------------------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 28 | pub total_keys: Option, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 34 | pub tree_separator: String, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `DatabaseBrowserState` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `size` and `matches_filter` are never read [INFO] [stdout] --> src/app/states/database_browser_state.rs:71:9 [INFO] [stdout] | [INFO] [stdout] 63 | pub struct KeyInfo { [INFO] [stdout] | ------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 71 | pub size: Option, [INFO] [stdout] | ^^^^ [INFO] [stdout] 72 | /// Whether this key matches current filter [INFO] [stdout] 73 | pub matches_filter: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `KeyInfo` 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 `cursor_position` and `history_index` are never read [INFO] [stdout] --> src/app/states/command_input_state.rs:7:9 [INFO] [stdout] | [INFO] [stdout] 3 | pub struct CommandInputState { [INFO] [stdout] | ----------------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 7 | pub cursor_position: usize, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 11 | pub history_index: usize, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `CommandInputState` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `command`, `result`, and `timestamp` are never read [INFO] [stdout] --> src/app/states/command_input_state.rs:19:9 [INFO] [stdout] | [INFO] [stdout] 18 | pub struct CommandResult { [INFO] [stdout] | ------------- fields in this struct [INFO] [stdout] 19 | pub command: String, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 20 | pub result: Result, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 21 | pub timestamp: std::time::SystemTime, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `CommandResult` 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 `connection_list` is never read [INFO] [stdout] --> src/app/states/ui_state.rs:16:9 [INFO] [stdout] | [INFO] [stdout] 11 | pub struct UiState { [INFO] [stdout] | ------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 16 | pub connection_list: ConnectionListState, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `UiState` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple fields are never read [INFO] [stdout] --> src/app/states/key_viewer_state.rs:25:9 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct KeyViewerState { [INFO] [stdout] | -------------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 25 | pub original_value: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 33 | pub selected_hash_field: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 41 | pub original_field_name: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 45 | pub selected_list_element: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 55 | pub selected_set_member: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 63 | pub selected_zset_member: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 73 | pub selected_stream_entry: Option, // Entry ID [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `KeyViewerState` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/app/states/key_viewer_state.rs:137:12 [INFO] [stdout] | [INFO] [stdout] 135 | impl KeyViewerState { [INFO] [stdout] | ------------------- methods in this implementation [INFO] [stdout] 136 | /// Enter edit mode for string values [INFO] [stdout] 137 | pub fn enter_edit_mode(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 148 | pub fn exit_edit_mode(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 157 | pub fn insert_char(&mut self, c: char) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 166 | pub fn delete_char(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 184 | pub fn move_cursor_left(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 195 | pub fn move_cursor_right(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 206 | pub fn move_cursor_home(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 256 | pub fn move_cursor_end(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 263 | pub fn get_edit_value(&self) -> &str { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 268 | pub fn apply_edit_changes(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 304 | pub fn select_hash_field(&mut self, index: usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 314 | pub fn start_edit_hash_field(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 324 | pub fn start_edit_hash_value(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 335 | pub fn start_add_hash_field(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 343 | pub fn cancel_hash_edit(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 352 | pub fn insert_hash_char(&mut self, c: char) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 367 | pub fn delete_hash_char(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 386 | pub fn next_hash_field(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 396 | pub fn prev_hash_field(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 406 | pub fn apply_hash_changes(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 446 | pub fn delete_hash_field(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 470 | pub fn select_list_element(&mut self, index: usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 480 | pub fn start_edit_list_element(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 489 | pub fn start_insert_list_element(&mut self, index: usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 497 | pub fn start_append_list_element(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 505 | pub fn cancel_list_edit(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 513 | pub fn insert_list_char(&mut self, c: char) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 521 | pub fn delete_list_char(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 529 | pub fn next_list_element(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 539 | pub fn prev_list_element(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 549 | pub fn apply_list_changes(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 586 | pub fn delete_list_element(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 608 | pub fn move_list_element_up(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 621 | pub fn move_list_element_down(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 636 | pub fn select_set_member(&mut self, index: usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 646 | pub fn start_add_set_member(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 653 | pub fn start_remove_set_member(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 661 | pub fn cancel_set_edit(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 668 | pub fn insert_set_char(&mut self, c: char) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 676 | pub fn delete_set_char(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 684 | pub fn next_set_member(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 694 | pub fn prev_set_member(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 704 | pub fn apply_set_changes(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 759 | pub fn select_zset_member(&mut self, index: usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 769 | pub fn start_add_zset_member(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 777 | pub fn start_update_zset_score(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 788 | pub fn start_remove_zset_member(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 796 | pub fn cancel_zset_edit(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 804 | pub fn insert_zset_char(&mut self, c: char, is_score_field: bool) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 823 | pub fn delete_zset_char(&mut self, is_score_field: bool) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 845 | pub fn next_zset_member(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 855 | pub fn prev_zset_member(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 865 | pub fn apply_zset_changes(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 945 | pub fn select_stream_entry(&mut self, index: usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 956 | pub fn toggle_stream_view_mode(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 964 | pub fn next_stream_entry(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 975 | pub fn prev_stream_entry(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 986 | pub fn next_stream_field(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1000 | pub fn prev_stream_field(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1007 | pub fn get_current_stream_entry(&self) -> Option<&crate::redis::value_types::StreamEntry> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1016 | pub fn get_stream_entry_count(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1025 | pub fn cycle_binary_display_mode(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1035 | pub fn toggle_json_highlighting(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1040 | pub fn has_binary_data(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1050 | pub fn get_value_bytes(&self) -> Option<&[u8]> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `key_type`, `size`, and `encoding` are never read [INFO] [stdout] --> src/app/state_core.rs:54:9 [INFO] [stdout] | [INFO] [stdout] 53 | pub struct KeyMetadata { [INFO] [stdout] | ----------- fields in this struct [INFO] [stdout] 54 | pub key_type: String, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 55 | pub ttl: Option, [INFO] [stdout] 56 | pub size: usize, [INFO] [stdout] | ^^^^ [INFO] [stdout] 57 | pub encoding: Option, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `KeyMetadata` 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: variant `Detail` is never constructed [INFO] [stdout] --> src/app/state_core.rs:104:5 [INFO] [stdout] | [INFO] [stdout] 101 | pub enum StreamViewMode { [INFO] [stdout] | -------------- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 104 | Detail, // Detail view showing selected entry fields [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `StreamViewMode` 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 `get_active_connection`, `remove_connection`, and `set_active_connection` are never used [INFO] [stdout] --> src/app/state_core.rs:144:12 [INFO] [stdout] | [INFO] [stdout] 107 | impl AppState { [INFO] [stdout] | ------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 144 | pub fn get_active_connection(&self) -> Option<&RedisConnection> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 164 | pub fn remove_connection(&mut self, id: &str) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 173 | pub fn set_active_connection(&mut self, id: String) -> AppResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `select_database` is never used [INFO] [stdout] --> src/app/state_database.rs:23:18 [INFO] [stdout] | [INFO] [stdout] 5 | impl AppState { [INFO] [stdout] | ------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 23 | pub async fn select_database(&mut self, db_num: u8) -> AppResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `get_max_scroll_offset` is never used [INFO] [stdout] --> src/app/state_key_navigation.rs:61:12 [INFO] [stdout] | [INFO] [stdout] 5 | impl AppState { [INFO] [stdout] | ------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 61 | pub fn get_max_scroll_offset(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `set_key_filter` is never used [INFO] [stdout] --> src/app/state_search.rs:6:18 [INFO] [stdout] | [INFO] [stdout] 4 | impl AppState { [INFO] [stdout] | ------------- method in this implementation [INFO] [stdout] 5 | /// Set filter pattern for key search [INFO] [stdout] 6 | pub async fn set_key_filter(&mut self, pattern: String) -> AppResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `update_bulk_progress`, `hide_progress`, and `remove_progress` are never used [INFO] [stdout] --> src/app/state_progress.rs:30:12 [INFO] [stdout] | [INFO] [stdout] 3 | impl AppState { [INFO] [stdout] | ------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 30 | pub fn update_bulk_progress( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 51 | pub fn hide_progress(&mut self, index: usize) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 58 | pub fn remove_progress(&mut self, index: usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/app/state_confirmation.rs:5:12 [INFO] [stdout] | [INFO] [stdout] 3 | impl AppState { [INFO] [stdout] | ------------- associated items in this implementation [INFO] [stdout] 4 | /// Open confirmation dialog for saving changes [INFO] [stdout] 5 | pub fn confirm_save_changes(&mut self, key_name: String, old_value: String, new_value: String) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 17 | pub fn confirm_delete_key(&mut self, key_name: String, key_type: String) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 25 | pub fn confirm_discard_changes(&mut self, key_name: String) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 32 | pub fn confirm_large_value_edit(&mut self, key_name: String, size: usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 40 | pub fn confirm_binary_data_edit(&mut self, key_name: String, binary_info: String) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 48 | pub fn validate_edit_and_confirm(&mut self, key_name: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 77 | pub fn handle_confirmation_response(&mut self) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 92 | pub fn close_confirmation_dialog(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 97 | fn create_value_summary(value: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `open_export_dialog`, `open_import_dialog`, `export_current_key`, and `import_data` are never used [INFO] [stdout] --> src/app/state_export_import.rs:6:12 [INFO] [stdout] | [INFO] [stdout] 4 | impl AppState { [INFO] [stdout] | ------------- methods in this implementation [INFO] [stdout] 5 | /// Open export dialog for current key [INFO] [stdout] 6 | pub fn open_export_dialog(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 14 | pub fn open_import_dialog(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 20 | pub async fn export_current_key(&mut self) -> AppResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 105 | pub async fn import_data(&mut self) -> AppResult<()> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `open_bulk_operations_dialog`, `execute_bulk_operation`, and `get_selected_keys_for_bulk` are never used [INFO] [stdout] --> src/app/state_bulk_operations.rs:6:12 [INFO] [stdout] | [INFO] [stdout] 4 | impl AppState { [INFO] [stdout] | ------------- methods in this implementation [INFO] [stdout] 5 | /// Open bulk operations dialog with selected keys [INFO] [stdout] 6 | pub fn open_bulk_operations_dialog(&mut self, selected_keys: Vec) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 11 | pub async fn execute_bulk_operation(&mut self) -> AppResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 108 | pub fn get_selected_keys_for_bulk(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Ui` is never constructed [INFO] [stdout] --> src/error.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 5 | pub enum AppError { [INFO] [stdout] | -------- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 15 | Ui(String), [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = note: `AppError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `bytes_sent` and `bytes_received` are never read [INFO] [stdout] --> src/redis/connection.rs:68:9 [INFO] [stdout] | [INFO] [stdout] 57 | pub struct ConnectionStats { [INFO] [stdout] | --------------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 68 | pub bytes_sent: u64, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 71 | pub bytes_received: u64, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ConnectionStats` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/redis/connection.rs:148:18 [INFO] [stdout] | [INFO] [stdout] 74 | impl RedisConnection { [INFO] [stdout] | -------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 148 | pub async fn disconnect(&mut self) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 161 | pub async fn ping(&mut self) -> AppResult { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 240 | pub async fn get_server_info(&mut self) -> AppResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 245 | pub async fn get_database_size(&mut self) -> AppResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 403 | pub async fn rename_key(&mut self, old_key: &str, new_key: &str) -> AppResult { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 408 | pub async fn expire_key(&mut self, key: &str, seconds: u64) -> AppResult { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 413 | pub async fn get_string_value(&mut self, key: &str) -> AppResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 418 | pub async fn key_exists(&mut self, key: &str) -> AppResult { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 459 | pub async fn get_key_memory_usage(&mut self, key: &str) -> AppResult> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 518 | pub async fn get_hash_field(&mut self, key: &str, field: &str) -> AppResult> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 532 | pub async fn set_hash_field(&mut self, key: &str, field: &str, value: &str) -> AppResult { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 537 | pub async fn delete_hash_field(&mut self, key: &str, field: &str) -> AppResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 574 | pub async fn get_list_length(&mut self, key: &str) -> AppResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 584 | pub async fn list_push(&mut self, key: &str, value: &str) -> AppResult { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 589 | pub async fn list_set(&mut self, key: &str, index: i64, value: &str) -> AppResult { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 657 | pub async fn set_add(&mut self, key: &str, member: &str) -> AppResult { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 662 | pub async fn set_remove(&mut self, key: &str, member: &str) -> AppResult { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 724 | pub async fn zset_add(&mut self, key: &str, score: f64, member: &str) -> AppResult { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 729 | pub async fn zset_remove(&mut self, key: &str, member: &str) -> AppResult { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/redis/connection.rs:819:12 [INFO] [stdout] | [INFO] [stdout] 817 | impl RedisConnection { [INFO] [stdout] | -------------------- methods in this implementation [INFO] [stdout] 818 | /// Get current database number [INFO] [stdout] 819 | pub fn get_current_database(&self) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 824 | pub async fn bulk_delete_key(&mut self, key: &str) -> AppResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 830 | pub async fn set_ttl(&mut self, key: &str, ttl: i64) -> AppResult<()> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 836 | pub async fn persist_key(&mut self, key: &str) -> AppResult<()> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 842 | pub async fn bulk_rename_key(&mut self, old_key: &str, new_key: &str) -> AppResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 848 | pub async fn bulk_set_string(&mut self, key: &str, value: &str) -> AppResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 854 | pub async fn increment_key(&mut self, key: &str, amount: i64) -> AppResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 860 | pub async fn append_to_string(&mut self, key: &str, value: &str) -> AppResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 866 | pub async fn add_to_set(&mut self, key: &str, member: &str) -> AppResult<()> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 872 | pub async fn add_to_sorted_set(&mut self, key: &str, member: &str, score: f64) -> AppResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 878 | pub async fn bulk_set_hash_field(&mut self, key: &str, field: &str, value: &str) -> AppResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 884 | pub async fn push_to_list(&mut self, key: &str, value: &str, to_front: bool) -> AppResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `description`, `is_empty`, and `size` are never used [INFO] [stdout] --> src/redis/value_types.rs:37:12 [INFO] [stdout] | [INFO] [stdout] 22 | impl RedisValue { [INFO] [stdout] | --------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 37 | pub fn description(&self) -> String { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 68 | pub fn is_empty(&self) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 81 | pub fn size(&self) -> usize { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ValuePage` is never constructed [INFO] [stdout] --> src/redis/value_types.rs:124:12 [INFO] [stdout] | [INFO] [stdout] 124 | pub struct ValuePage { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `start_index`, `end_index`, and `total_pages` are never used [INFO] [stdout] --> src/redis/value_types.rs:137:12 [INFO] [stdout] | [INFO] [stdout] 135 | impl ValuePage { [INFO] [stdout] | -------------- associated items in this implementation [INFO] [stdout] 136 | /// Create a new value page [INFO] [stdout] 137 | pub fn new(page: usize, page_size: usize, total_items: usize) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 148 | pub fn start_index(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 153 | pub fn end_index(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 158 | pub fn total_pages(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ValueDisplayConfig` is never constructed [INFO] [stdout] --> src/redis/value_types.rs:165:12 [INFO] [stdout] | [INFO] [stdout] 165 | pub struct ValueDisplayConfig { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `format_string_value` is never used [INFO] [stdout] --> src/redis/value_types.rs:192:12 [INFO] [stdout] | [INFO] [stdout] 192 | pub fn format_string_value(value: &str, max_length: usize) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_json_like` is never used [INFO] [stdout] --> src/redis/value_types.rs:207:12 [INFO] [stdout] | [INFO] [stdout] 207 | pub fn is_json_like(value: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_binary_data` is never used [INFO] [stdout] --> src/redis/value_types.rs:214:12 [INFO] [stdout] | [INFO] [stdout] 214 | pub fn is_binary_data(value: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `format_as_hex` is never used [INFO] [stdout] --> src/redis/value_types.rs:219:12 [INFO] [stdout] | [INFO] [stdout] 219 | pub fn format_as_hex(data: &[u8]) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple variants are never constructed [INFO] [stdout] --> src/events/types.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 6 | pub enum AppEvent { [INFO] [stdout] | -------- variants in this enum [INFO] [stdout] 7 | /// User input events [INFO] [stdout] 8 | KeyPressed(KeyEvent), [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 17 | DatabaseSelected { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 23 | KeySelected { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 28 | KeysLoaded { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 35 | KeyContentLoaded { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 43 | CommandExecuted { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 52 | StatusMessage(String), [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 55 | Error(String), [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 58 | Quit, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `AppEvent` 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: enum `InputEvent` is never used [INFO] [stdout] --> src/events/types.rs:63:10 [INFO] [stdout] | [INFO] [stdout] 63 | pub enum InputEvent { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `message` is never used [INFO] [stdout] --> src/ui/validation.rs:28:12 [INFO] [stdout] | [INFO] [stdout] 11 | impl ValidationResult { [INFO] [stdout] | --------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 28 | pub fn message(&self) -> Option<&str> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `validate_json_detailed` is never used [INFO] [stdout] --> src/ui/validation.rs:181:12 [INFO] [stdout] | [INFO] [stdout] 164 | impl JsonValidator { [INFO] [stdout] | ------------------ associated function in this implementation [INFO] [stdout] ... [INFO] [stdout] 181 | pub fn validate_json_detailed(value: &str) -> (ValidationResult, Option) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `JsonInfo` is never constructed [INFO] [stdout] --> src/ui/validation.rs:201:12 [INFO] [stdout] | [INFO] [stdout] 201 | pub struct JsonInfo { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `JsonValueType` is never used [INFO] [stdout] --> src/ui/validation.rs:209:10 [INFO] [stdout] | [INFO] [stdout] 209 | pub enum JsonValueType { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `from_value` and `calculate_nesting_level` are never used [INFO] [stdout] --> src/ui/validation.rs:219:8 [INFO] [stdout] | [INFO] [stdout] 218 | impl JsonInfo { [INFO] [stdout] | ------------- associated functions in this implementation [INFO] [stdout] 219 | fn from_value(value: &serde_json::Value) -> Self { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 260 | fn calculate_nesting_level(value: &serde_json::Value) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `format_json` is never used [INFO] [stdout] --> src/ui/json_highlighter.rs:38:12 [INFO] [stdout] | [INFO] [stdout] 26 | impl JsonHighlighter { [INFO] [stdout] | -------------------- associated function in this implementation [INFO] [stdout] ... [INFO] [stdout] 38 | pub fn format_json(text: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `size`, `depth`, and `formatted_size` are never read [INFO] [stdout] --> src/ui/json_highlighter.rs:350:9 [INFO] [stdout] | [INFO] [stdout] 346 | pub struct JsonInfo { [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 350 | pub size: usize, [INFO] [stdout] | ^^^^ [INFO] [stdout] 351 | pub depth: usize, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 352 | pub formatted_size: String, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `JsonInfo` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple variants are never constructed [INFO] [stdout] --> src/ui/confirmation_dialog.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 12 | pub enum ConfirmationType { [INFO] [stdout] | ---------------- variants in this enum [INFO] [stdout] 13 | /// Confirm saving changes to a key value [INFO] [stdout] 14 | SaveChanges { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 20 | DeleteKey { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 25 | DiscardChanges { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 29 | LargeValueEdit { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 34 | BinaryDataEdit { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 39 | TypeConversion { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 45 | BulkOperation { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ConfirmationType` 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: enum `ConfirmationResponse` is never used [INFO] [stdout] --> src/ui/confirmation_dialog.rs:53:10 [INFO] [stdout] | [INFO] [stdout] 53 | pub enum ConfirmationResponse { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/ui/confirmation_dialog.rs:94:12 [INFO] [stdout] | [INFO] [stdout] 92 | impl ConfirmationDialog { [INFO] [stdout] | ----------------------- methods in this implementation [INFO] [stdout] 93 | /// Open a confirmation dialog [INFO] [stdout] 94 | pub fn open(&mut self, confirmation_type: ConfirmationType) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 105 | pub fn open_custom(&mut self, title: String, message: String, details: Vec) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 116 | pub fn close(&mut self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 127 | pub fn next_button(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 132 | pub fn prev_button(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 137 | pub fn toggle_details(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 144 | pub fn get_response(&self) -> ConfirmationResponse { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Import` is never constructed [INFO] [stdout] --> src/ui/export_import_dialog.rs:27:5 [INFO] [stdout] | [INFO] [stdout] 25 | pub enum ExportImportMode { [INFO] [stdout] | ---------------- variant in this enum [INFO] [stdout] 26 | Export, [INFO] [stdout] 27 | Import, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ExportImportMode` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/ui/export_import_dialog.rs:54:12 [INFO] [stdout] | [INFO] [stdout] 53 | impl ExportImportDialog { [INFO] [stdout] | ----------------------- methods in this implementation [INFO] [stdout] 54 | pub fn open_export(&mut self, default_path: String) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 62 | pub fn open_import(&mut self, default_path: String) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 70 | pub fn close(&mut self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 76 | pub fn next_field(&mut self) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 85 | pub fn cycle_format(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 95 | pub fn add_path_char(&mut self, ch: char) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 102 | pub fn backspace_path(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 109 | pub fn toggle_metadata(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 113 | pub fn toggle_ttl(&mut self) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `editing_field` is never read [INFO] [stdout] --> src/ui/bulk_operations_dialog.rs:59:9 [INFO] [stdout] | [INFO] [stdout] 43 | pub struct BulkOperationParams { [INFO] [stdout] | ------------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 59 | pub editing_field: ParameterField, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `BulkOperationParams` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple variants are never constructed [INFO] [stdout] --> src/ui/bulk_operations_dialog.rs:66:5 [INFO] [stdout] | [INFO] [stdout] 64 | pub enum ParameterField { [INFO] [stdout] | -------------- variants in this enum [INFO] [stdout] 65 | None, [INFO] [stdout] 66 | TtlValue, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 67 | TargetDb, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 68 | RenamePattern, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 69 | RenameReplacement, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] 70 | SetValue, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 71 | IncrementAmount, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 72 | AppendSuffix, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ParameterField` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/ui/bulk_operations_dialog.rs:119:12 [INFO] [stdout] | [INFO] [stdout] 117 | impl BulkOperationsDialog { [INFO] [stdout] | ------------------------- methods in this implementation [INFO] [stdout] 118 | /// Open the bulk operations dialog with selected keys [INFO] [stdout] 119 | pub fn open(&mut self, selected_keys: Vec) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 129 | pub fn close(&mut self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 137 | pub fn next_field(&mut self) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 151 | pub fn next_operation(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 160 | pub fn prev_operation(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 178 | pub fn start_execution(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 186 | pub fn update_progress(&mut self, progress: BulkProgress) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 194 | pub fn add_param_char(&mut self, ch: char) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 208 | pub fn backspace_param(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Transfer`, `BulkOperation`, and `Network` are never constructed [INFO] [stdout] --> src/ui/progress_bar.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 12 | pub enum ProgressType { [INFO] [stdout] | ------------ variants in this enum [INFO] [stdout] ... [INFO] [stdout] 16 | Transfer, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 17 | /// Bulk operations with success/failure counts [INFO] [stdout] 18 | BulkOperation, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 22 | Network, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ProgressType` 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 `is_paused` is never read [INFO] [stdout] --> src/ui/progress_bar.rs:55:9 [INFO] [stdout] | [INFO] [stdout] 27 | pub struct ProgressBar { [INFO] [stdout] | ----------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 55 | pub is_paused: bool, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ProgressBar` 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 `memory_usage` and `custom_fields` are never read [INFO] [stdout] --> src/ui/progress_bar.rs:70:9 [INFO] [stdout] | [INFO] [stdout] 64 | pub struct ProgressMetadata { [INFO] [stdout] | ---------------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 70 | pub memory_usage: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 71 | /// Custom attributes [INFO] [stdout] 72 | pub custom_fields: Vec<(String, String)>, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ProgressMetadata` 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 `show`, `update_bulk`, `set_errors`, `add_error`, `pause`, and `resume` are never used [INFO] [stdout] --> src/ui/progress_bar.rs:113:12 [INFO] [stdout] | [INFO] [stdout] 98 | impl ProgressBar { [INFO] [stdout] | ---------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 113 | pub fn show(&mut self) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 138 | pub fn update_bulk(&mut self, completed: u64, successful: u64, failed: u64, current_op: String) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 154 | pub fn set_errors(&mut self, errors: Vec) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 159 | pub fn add_error(&mut self, error: String) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 164 | pub fn pause(&mut self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 169 | pub fn resume(&mut self) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `remove_progress_bar` and `get_active_mut` are never used [INFO] [stdout] --> src/ui/progress_bar.rs:521:12 [INFO] [stdout] | [INFO] [stdout] 511 | impl ProgressBarManager { [INFO] [stdout] | ----------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 521 | pub fn remove_progress_bar(&mut self, index: usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 545 | pub fn get_active_mut(&mut self) -> Option<&mut ProgressBar> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `full_path` and `is_leaf` are never read [INFO] [stdout] --> src/ui/tree_view.rs:302:9 [INFO] [stdout] | [INFO] [stdout] 298 | pub struct TreeDisplayInfo { [INFO] [stdout] | --------------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 302 | pub full_path: String, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 308 | pub is_leaf: bool, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `TreeDisplayInfo` 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 `Yaml`, `Csv`, `Raw`, and `Redis` are never constructed [INFO] [stdout] --> src/utils/export_import.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 10 | pub enum ExportFormat { [INFO] [stdout] | ------------ variants in this enum [INFO] [stdout] ... [INFO] [stdout] 14 | Yaml, [INFO] [stdout] | ^^^^ [INFO] [stdout] 15 | /// CSV format (for tabular data like hashes) [INFO] [stdout] 16 | Csv, [INFO] [stdout] | ^^^ [INFO] [stdout] 17 | /// Raw binary data [INFO] [stdout] 18 | Raw, [INFO] [stdout] | ^^^ [INFO] [stdout] 19 | /// Redis protocol format (RESP) [INFO] [stdout] 20 | Redis, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ExportFormat` 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 `export_values`, `export_to_json_with_metadata`, `export_to_yaml_with_metadata`, and `get_supported_formats` are never used [INFO] [stdout] --> src/utils/export_import.rs:97:12 [INFO] [stdout] | [INFO] [stdout] 77 | impl DataExporter { [INFO] [stdout] | ----------------- associated functions in this implementation [INFO] [stdout] ... [INFO] [stdout] 97 | pub fn export_values( [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 197 | fn export_to_json_with_metadata( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 222 | fn export_to_yaml_with_metadata( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 548 | pub fn get_supported_formats(value_type: &str) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Export`, `AddToSet`, and `AddToHash` are never constructed [INFO] [stdout] --> src/utils/bulk_operations.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 9 | pub enum BulkOperation { [INFO] [stdout] | ------------- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 21 | Export { format: crate::utils::export_import::ExportFormat }, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 29 | AddToSet { members: Vec }, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 30 | /// Add fields to hashes [INFO] [stdout] 31 | AddToHash { fields: HashMap }, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `BulkOperation` 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 `is_complete` is never read [INFO] [stdout] --> src/utils/bulk_operations.rs:48:9 [INFO] [stdout] | [INFO] [stdout] 36 | pub struct BulkProgress { [INFO] [stdout] | ------------ field in this struct [INFO] [stdout] ... [INFO] [stdout] 48 | pub is_complete: bool, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `BulkProgress` 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 items `new` and `update` are never used [INFO] [stdout] --> src/utils/bulk_operations.rs:54:12 [INFO] [stdout] | [INFO] [stdout] 53 | impl BulkProgress { [INFO] [stdout] | ----------------- associated items in this implementation [INFO] [stdout] 54 | pub fn new(total: usize) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 66 | pub fn update(&mut self, operation: String, success: bool, error: Option) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `BulkOperationResult` is never constructed [INFO] [stdout] --> src/utils/bulk_operations.rs:93:12 [INFO] [stdout] | [INFO] [stdout] 93 | pub struct BulkOperationResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated functions are never used [INFO] [stdout] --> src/utils/bulk_operations.rs:109:18 [INFO] [stdout] | [INFO] [stdout] 107 | impl BulkOperationsManager { [INFO] [stdout] | -------------------------- associated functions in this implementation [INFO] [stdout] 108 | /// Execute a single operation on a key (for progress tracking) [INFO] [stdout] 109 | pub async fn execute_single_operation( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 153 | pub async fn execute_bulk_operation( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 244 | async fn delete_key( [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 253 | async fn set_key_ttl( [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 262 | async fn remove_key_ttl( [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 270 | async fn copy_key( [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 287 | async fn rename_key( [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 304 | async fn set_key_value( [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 313 | async fn increment_key( [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 322 | async fn append_to_key( [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 331 | async fn add_to_set( [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 343 | async fn add_to_hash( [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `get_from_clipboard` is never used [INFO] [stdout] --> src/utils/clipboard.rs:21:12 [INFO] [stdout] | [INFO] [stdout] 6 | impl ClipboardUtils { [INFO] [stdout] | ------------------- associated function in this implementation [INFO] [stdout] ... [INFO] [stdout] 21 | pub fn get_from_clipboard() -> AppResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 4.78s [INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: redis v0.24.0 [INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 2` [INFO] running `Command { std: "docker" "inspect" "8d8948124c1028eaa152e1df6c27bced9643ff6ef81b9a3abc142f12905048a0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "8d8948124c1028eaa152e1df6c27bced9643ff6ef81b9a3abc142f12905048a0", kill_on_drop: false }` [INFO] [stdout] 8d8948124c1028eaa152e1df6c27bced9643ff6ef81b9a3abc142f12905048a0