[INFO] cloning repository https://github.com/xarkes/bwrs [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/xarkes/bwrs" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fxarkes%2Fbwrs", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fxarkes%2Fbwrs'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] d5c646161c2979a7f900bfa780622ed2d758b813 [INFO] checking xarkes/bwrs against master#91775dbec9771aa0c1b9ebe268eb5bd271e79a7a for pr-139087-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fxarkes%2Fbwrs" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/xarkes/bwrs [INFO] finished tweaking git repo https://github.com/xarkes/bwrs [INFO] tweaked toml for git repo https://github.com/xarkes/bwrs written to /workspace/builds/worker-3-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/xarkes/bwrs on toolchain 91775dbec9771aa0c1b9ebe268eb5bd271e79a7a [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+91775dbec9771aa0c1b9ebe268eb5bd271e79a7a" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/xarkes/bwrs 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" "+91775dbec9771aa0c1b9ebe268eb5bd271e79a7a" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded ehttp v0.5.0 [INFO] [stderr] Downloaded egui_extras v0.30.0 [INFO] [stderr] Downloaded egui-wgpu v0.30.0 [INFO] [stderr] Downloaded toml_parser v1.0.8+spec-1.1.0 [INFO] [stderr] Downloaded ureq v2.12.1 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+91775dbec9771aa0c1b9ebe268eb5bd271e79a7a" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 96b5cff3c3b8f8a5477a5aef1d2b3e2206df0fb396c3edfb8e9700266680e20e [INFO] running `Command { std: "docker" "start" "-a" "96b5cff3c3b8f8a5477a5aef1d2b3e2206df0fb396c3edfb8e9700266680e20e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "96b5cff3c3b8f8a5477a5aef1d2b3e2206df0fb396c3edfb8e9700266680e20e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "96b5cff3c3b8f8a5477a5aef1d2b3e2206df0fb396c3edfb8e9700266680e20e", kill_on_drop: false }` [INFO] [stdout] 96b5cff3c3b8f8a5477a5aef1d2b3e2206df0fb396c3edfb8e9700266680e20e [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+91775dbec9771aa0c1b9ebe268eb5bd271e79a7a" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] da1b3383f0a57d53a42435d18a24352e6ae2cafa1fca4ad3cfbad5330e7f7c0c [INFO] running `Command { std: "docker" "start" "-a" "da1b3383f0a57d53a42435d18a24352e6ae2cafa1fca4ad3cfbad5330e7f7c0c", kill_on_drop: false }` [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Checking value-bag v1.12.0 [INFO] [stderr] Compiling proc-macro2 v1.0.106 [INFO] [stderr] Compiling rustix v1.1.3 [INFO] [stderr] Checking linux-raw-sys v0.11.0 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling wayland-sys v0.31.8 [INFO] [stderr] Compiling wayland-backend v0.3.12 [INFO] [stderr] Compiling quick-xml v0.38.4 [INFO] [stderr] Compiling wayland-client v0.31.12 [INFO] [stderr] Checking log v0.4.29 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Checking event-listener v5.4.1 [INFO] [stderr] Compiling ahash v0.8.12 [INFO] [stderr] Checking event-listener-strategy v0.5.4 [INFO] [stderr] Compiling quote v1.0.44 [INFO] [stderr] Checking getrandom v0.3.4 [INFO] [stderr] Checking futures-lite v2.6.1 [INFO] [stderr] Compiling khronos_api v3.1.0 [INFO] [stderr] Compiling toml_parser v1.0.8+spec-1.1.0 [INFO] [stderr] Compiling syn v2.0.116 [INFO] [stderr] Compiling xml-rs v0.8.28 [INFO] [stderr] Compiling wayland-scanner v0.31.8 [INFO] [stderr] Compiling toml_edit v0.23.10+spec-1.0.0 [INFO] [stderr] Checking async-channel v2.5.0 [INFO] [stderr] Checking unicode-ident v1.0.24 [INFO] [stderr] Compiling rustix v0.38.44 [INFO] [stderr] Checking digest v0.10.7 [INFO] [stderr] Checking parking_lot_core v0.9.12 [INFO] [stderr] Compiling gl_generator v0.14.0 [INFO] [stderr] Checking piper v0.2.4 [INFO] [stderr] Checking xcursor v0.3.10 [INFO] [stderr] Checking ttf-parser v0.25.1 [INFO] [stderr] Checking linux-raw-sys v0.4.15 [INFO] [stderr] Compiling proc-macro-crate v3.4.0 [INFO] [stderr] Checking base64ct v1.8.3 [INFO] [stderr] Checking xkeysym v0.2.1 [INFO] [stderr] Compiling rustls v0.23.36 [INFO] [stderr] Checking bitflags v2.11.0 [INFO] [stderr] Checking cursor-icon v1.2.0 [INFO] [stderr] Checking blocking v1.6.2 [INFO] [stderr] Checking parking_lot v0.12.5 [INFO] [stderr] Checking async-lock v3.4.2 [INFO] [stderr] Checking memmap2 v0.9.10 [INFO] [stderr] Checking x11-dl v2.21.0 [INFO] [stderr] Checking kurbo v0.9.5 [INFO] [stderr] Checking pxfm v0.1.27 [INFO] [stderr] Checking owned_ttf_parser v0.25.1 [INFO] [stderr] Checking ab_glyph v0.2.32 [INFO] [stderr] Checking futures-channel v0.3.32 [INFO] [stderr] Checking epaint_default_fonts v0.30.0 [INFO] [stderr] Compiling smithay-client-toolkit v0.19.2 [INFO] [stderr] Checking profiling v1.0.17 [INFO] [stderr] Checking siphasher v0.3.11 [INFO] [stderr] Checking x11rb-protocol v0.13.2 [INFO] [stderr] Checking nohash-hasher v0.2.0 [INFO] [stderr] Compiling siphasher v1.0.2 [INFO] [stderr] Compiling phf_shared v0.11.3 [INFO] [stderr] Checking svgtypes v0.13.0 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Checking gif v0.14.1 [INFO] [stderr] Checking png v0.18.1 [INFO] [stderr] Checking moxcms v0.7.11 [INFO] [stderr] Checking pem-rfc7468 v0.7.0 [INFO] [stderr] Compiling glutin_egl_sys v0.7.1 [INFO] [stderr] Compiling glutin_glx_sys v0.6.1 [INFO] [stderr] Checking async-executor v1.14.0 [INFO] [stderr] Compiling winit v0.30.12 [INFO] [stderr] Compiling smithay-client-toolkit v0.20.0 [INFO] [stderr] Checking rctree v0.5.0 [INFO] [stderr] Compiling phf v0.11.3 [INFO] [stderr] Checking xkbcommon-dl v0.4.2 [INFO] [stderr] Checking polling v3.11.0 [INFO] [stderr] Checking gethostname v1.1.0 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling zerofrom-derive v0.1.6 [INFO] [stderr] Compiling yoke-derive v0.8.1 [INFO] [stderr] Compiling zerovec-derive v0.11.2 [INFO] [stderr] Compiling displaydoc v0.2.5 [INFO] [stderr] Compiling bytemuck_derive v1.10.2 [INFO] [stderr] Compiling zeroize_derive v1.4.3 [INFO] [stderr] Compiling tracing-attributes v0.1.31 [INFO] [stderr] Checking zeroize v1.8.2 [INFO] [stderr] Checking zerofrom v0.1.6 [INFO] [stderr] Checking yoke v0.8.1 [INFO] [stderr] Checking rustls-pki-types v1.14.0 [INFO] [stderr] Checking zerovec v0.11.5 [INFO] [stderr] Checking zerotrie v0.2.3 [INFO] [stderr] Checking wayland-protocols v0.32.10 [INFO] [stderr] Compiling enumflags2_derive v0.7.12 [INFO] [stderr] Checking bytemuck v1.25.0 [INFO] [stderr] Checking tinystr v0.8.2 [INFO] [stderr] Checking icu_locale_core v2.1.1 [INFO] [stderr] Checking potential_utf v0.1.4 [INFO] [stderr] Checking tracing v0.1.44 [INFO] [stderr] Checking icu_collections v2.1.1 [INFO] [stderr] Checking async-io v2.6.0 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling futures-macro v0.3.32 [INFO] [stderr] Compiling tokio-macros v2.6.0 [INFO] [stderr] Checking wayland-cursor v0.31.12 [INFO] [stderr] Checking icu_provider v2.1.1 [INFO] [stderr] Checking rustls-webpki v0.103.9 [INFO] [stderr] Checking icu_properties v2.1.2 [INFO] [stderr] Checking icu_normalizer v2.1.1 [INFO] [stderr] Checking tokio v1.49.0 [INFO] [stderr] Checking futures-util v0.3.32 [INFO] [stderr] Checking thiserror v1.0.69 [INFO] [stderr] Checking wayland-csd-frame v0.3.0 [INFO] [stderr] Checking calloop v0.13.0 [INFO] [stderr] Checking emath v0.30.0 [INFO] [stderr] Compiling zvariant_utils v3.3.0 [INFO] [stderr] Compiling enumflags2 v0.7.12 [INFO] [stderr] Checking idna_adapter v1.2.1 [INFO] [stderr] Checking idna v1.1.0 [INFO] [stderr] Compiling zvariant_derive v5.9.2 [INFO] [stderr] Checking ecolor v0.30.0 [INFO] [stderr] Checking url v2.5.8 [INFO] [stderr] Checking tiny-skia-path v0.11.4 [INFO] [stderr] Checking webpki-roots v1.0.6 [INFO] [stderr] Checking epaint v0.30.0 [INFO] [stderr] Checking calloop-wayland-source v0.3.0 [INFO] [stderr] Compiling zvariant v5.9.2 [INFO] [stderr] Checking ron v0.8.1 [INFO] [stderr] Checking calloop v0.14.4 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Checking calloop-wayland-source v0.4.1 [INFO] [stderr] Checking usvg-tree v0.37.0 [INFO] [stderr] Checking async-signal v0.2.13 [INFO] [stderr] Checking image v0.25.9 [INFO] [stderr] Checking wayland-protocols-wlr v0.3.10 [INFO] [stderr] Checking wayland-protocols-experimental v20250721.0.1 [INFO] [stderr] Checking egui v0.30.0 [INFO] [stderr] Checking thiserror v2.0.18 [INFO] [stderr] Checking wayland-protocols-misc v0.3.10 [INFO] [stderr] Checking wayland-protocols-plasma v0.3.10 [INFO] [stderr] Compiling zbus_names v4.3.1 [INFO] [stderr] Checking x11rb v0.13.2 [INFO] [stderr] Checking der v0.7.10 [INFO] [stderr] Compiling glutin v0.32.3 [INFO] [stderr] Checking simplecss v0.2.2 [INFO] [stderr] Checking block-padding v0.3.3 [INFO] [stderr] Checking data-url v0.3.2 [INFO] [stderr] Checking roxmltree v0.19.0 [INFO] [stderr] Compiling libsqlite3-sys v0.30.1 [INFO] [stderr] Checking inout v0.1.4 [INFO] [stderr] Checking spki v0.7.3 [INFO] [stderr] Compiling zbus_macros v5.13.2 [INFO] [stderr] Checking async-process v2.5.0 [INFO] [stderr] Checking usvg-parser v0.37.0 [INFO] [stderr] Checking hyper v1.8.1 [INFO] [stderr] Checking webpki-roots v0.26.11 [INFO] [stderr] Compiling async-trait v0.1.89 [INFO] [stderr] Compiling serde_repr v0.1.20 [INFO] [stderr] Compiling mime_guess2 v2.3.1 [INFO] [stderr] Checking uuid v1.21.0 [INFO] [stderr] Checking num-integer v0.1.46 [INFO] [stderr] Compiling glutin-winit v0.5.0 [INFO] [stderr] Checking async-broadcast v0.7.2 [INFO] [stderr] Checking ordered-stream v0.2.0 [INFO] [stderr] Checking regex-syntax v0.8.9 [INFO] [stderr] Compiling num-bigint-dig v0.8.6 [INFO] [stderr] Checking usvg v0.37.0 [INFO] [stderr] Checking tower v0.5.3 [INFO] [stderr] Checking hyper-util v0.1.20 [INFO] [stderr] Checking async-channel v1.9.0 [INFO] [stderr] Checking num-iter v0.1.45 [INFO] [stderr] Checking smithay-clipboard v0.7.3 [INFO] [stderr] Checking ureq v2.12.1 [INFO] [stderr] Checking arboard v3.6.1 [INFO] [stderr] Checking regex-automata v0.4.14 [INFO] [stderr] Checking pkcs8 v0.10.2 [INFO] [stderr] Checking cipher v0.4.4 [INFO] [stderr] Checking tiny-skia v0.11.4 [INFO] [stderr] Checking tokio-rustls v0.26.4 [INFO] [stderr] Checking zbus v5.13.2 [INFO] [stderr] Checking webbrowser v1.1.0 [INFO] [stderr] Checking hashbrown v0.14.5 [INFO] [stderr] Checking async-global-executor v2.4.1 [INFO] [stderr] Checking async-net v2.0.0 [INFO] [stderr] Checking rgb v0.8.52 [INFO] [stderr] Compiling enum-map-derive v0.17.0 [INFO] [stderr] Checking async-fs v2.2.0 [INFO] [stderr] Checking hmac v0.12.1 [INFO] [stderr] Checking kv-log-macro v1.0.7 [INFO] [stderr] Compiling dark-light v2.0.0 [INFO] [stderr] Checking glow v0.16.0 [INFO] [stderr] Checking serde_urlencoded v0.7.1 [INFO] [stderr] Checking tower-http v0.6.8 [INFO] [stderr] Checking dirs-sys v0.5.0 [INFO] [stderr] Checking async-std v1.13.2 [INFO] [stderr] Checking enum-map v2.7.3 [INFO] [stderr] Checking resvg v0.37.0 [INFO] [stderr] Checking matchers v0.2.0 [INFO] [stderr] Checking hashlink v0.9.1 [INFO] [stderr] Checking hyper-rustls v0.27.7 [INFO] [stderr] Checking egui-winit v0.30.0 [INFO] [stderr] Checking serde_json v1.0.149 [INFO] [stderr] Checking pkcs1 v0.7.5 [INFO] [stderr] Checking ehttp v0.5.0 [INFO] [stderr] Checking sha2 v0.10.9 [INFO] [stderr] Checking sharded-slab v0.1.7 [INFO] [stderr] Checking password-hash v0.5.0 [INFO] [stderr] Checking blake2 v0.10.6 [INFO] [stderr] Checking signature v2.2.0 [INFO] [stderr] Checking egui_glow v0.30.0 [INFO] [stderr] Checking tracing-log v0.2.0 [INFO] [stderr] Checking fallible-iterator v0.3.0 [INFO] [stderr] Checking chrono v0.4.43 [INFO] [stderr] Checking tracing-subscriber v0.3.22 [INFO] [stderr] Checking reqwest v0.12.28 [INFO] [stderr] Checking eframe v0.30.0 [INFO] [stderr] Checking argon2 v0.5.3 [INFO] [stderr] Checking rsa v0.9.10 [INFO] [stderr] Checking egui_extras v0.30.0 [INFO] [stderr] Checking directories v6.0.0 [INFO] [stderr] Checking pbkdf2 v0.12.2 [INFO] [stderr] Checking hkdf v0.12.4 [INFO] [stderr] Checking cbc v0.1.2 [INFO] [stderr] Checking aes v0.8.4 [INFO] [stderr] Checking ashpd v0.10.3 [INFO] [stderr] Checking rusqlite v0.32.1 [INFO] [stderr] Checking bitwarden-rs v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `crate::crypto::EncString` [INFO] [stdout] --> src/api/models.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::crypto::EncString; [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: `Deserialize` [INFO] [stdout] --> src/api/identity.rs:3:13 [INFO] [stdout] | [INFO] [stdout] 3 | use serde::{Deserialize, Serialize}; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `identity::*` [INFO] [stdout] --> src/api/mod.rs:17:9 [INFO] [stdout] | [INFO] [stdout] 17 | pub use identity::*; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `sync::*` [INFO] [stdout] --> src/api/mod.rs:18:9 [INFO] [stdout] | [INFO] [stdout] 18 | pub use sync::*; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ApiUrls`, `TwoFactorProviderType`, and `TwoFactorProvider` [INFO] [stdout] --> src/app.rs:8:18 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::api::{ApiUrls, BitwardenClient, CipherType, TwoFactorProvider, TwoFactorProviderType}; [INFO] [stdout] | ^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `SymmetricCryptoKey` [INFO] [stdout] --> src/app.rs:9:45 [INFO] [stdout] | [INFO] [stdout] 9 | use crate::crypto::{DerivedKeys, KdfParams, SymmetricCryptoKey}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `MasterKey` and `MasterPasswordHash` [INFO] [stdout] --> src/crypto/mod.rs:16:35 [INFO] [stdout] | [INFO] [stdout] 16 | pub use master_key::{DerivedKeys, MasterKey, MasterPasswordHash}; [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `decrypt` and `encrypt` [INFO] [stdout] --> src/crypto/mod.rs:17:21 [INFO] [stdout] | [INFO] [stdout] 17 | pub use symmetric::{decrypt, encrypt, SymmetricCryptoKey}; [INFO] [stdout] | ^^^^^^^ ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Zeroize` [INFO] [stdout] --> src/state/auth.rs:3:15 [INFO] [stdout] | [INFO] [stdout] 3 | use zeroize::{Zeroize, ZeroizeOnDrop}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `CipherResponse` and `FolderResponse` [INFO] [stdout] --> src/state/background.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | CipherResponse, FolderResponse, SyncResponse, TwoFactorProvider, TwoFactorProviderType, [INFO] [stdout] | ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::storage::SavedCredentials` [INFO] [stdout] --> src/state/background.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | use crate::storage::SavedCredentials; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `EncString` and `SymmetricCryptoKey` [INFO] [stdout] --> src/storage/database.rs:8:21 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::crypto::{EncString, KdfParams, KdfType, SymmetricCryptoKey}; [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `QueuedOperation` [INFO] [stdout] --> src/storage/mod.rs:12:58 [INFO] [stdout] | [INFO] [stdout] 12 | pub use queue::{EntityType, OfflineQueue, OperationType, QueuedOperation}; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `self` [INFO] [stdout] --> src/ui/components/buttons.rs:3:20 [INFO] [stdout] | [INFO] [stdout] 3 | use eframe::egui::{self, Button, Color32, Response, RichText, Rounding, Stroke, Ui, Vec2}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Color32` [INFO] [stdout] --> src/ui/components/password_field.rs:3:26 [INFO] [stdout] | [INFO] [stdout] 3 | use eframe::egui::{self, Color32, Response, RichText, TextEdit, Ui, Widget}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Color32` and `Vec2` [INFO] [stdout] --> src/ui/login.rs:4:32 [INFO] [stdout] | [INFO] [stdout] 4 | self, Align, CentralPanel, Color32, Frame, Layout, Margin, RichText, TextEdit, Vec2, [INFO] [stdout] | ^^^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::state::BackgroundRequest` [INFO] [stdout] --> src/ui/two_factor.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::state::BackgroundRequest; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Vec2` [INFO] [stdout] --> src/ui/unlock.rs:3:80 [INFO] [stdout] | [INFO] [stdout] 3 | use eframe::egui::{self, Align, CentralPanel, Frame, Layout, Margin, RichText, Vec2}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Frame`, `Layout`, `Margin`, and `RichText` [INFO] [stdout] --> src/ui/vault/item_editor.rs:3:26 [INFO] [stdout] | [INFO] [stdout] 3 | use eframe::egui::{self, Frame, Layout, Margin, RichText, ScrollArea, TextEdit, Window}; [INFO] [stdout] | ^^^^^ ^^^^^^ ^^^^^^ ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Layout` and `RichText` [INFO] [stdout] --> src/ui/vault/item_list.rs:3:33 [INFO] [stdout] | [INFO] [stdout] 3 | use eframe::egui::{self, Frame, Layout, Margin, RichText, ScrollArea, Sense, TextEdit, Vec2}; [INFO] [stdout] | ^^^^^^ ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `theme::Theme` [INFO] [stdout] --> src/ui/mod.rs:15:9 [INFO] [stdout] | [INFO] [stdout] 15 | pub use theme::Theme; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `CipherSecureNoteResponse` and `CipherUriResponse` [INFO] [stdout] --> src/vault/cipher.rs:8:61 [INFO] [stdout] | [INFO] [stdout] 8 | CipherRequest, CipherResponse, CipherSecureNoteRequest, CipherSecureNoteResponse, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 9 | CipherSshKeyRequest, CipherSshKeyResponse, CipherType, CipherUriRequest, CipherUriResponse, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize` [INFO] [stdout] --> src/vault/mod.rs:12:13 [INFO] [stdout] | [INFO] [stdout] 12 | use serde::{Deserialize, Serialize}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::sync::mpsc::Sender` [INFO] [stdout] --> src/views/vault_view.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::sync::mpsc::Sender; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::crypto::SymmetricCryptoKey` [INFO] [stdout] --> src/views/vault_view.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use crate::crypto::SymmetricCryptoKey; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BackgroundResponse` and `CryptoState` [INFO] [stdout] --> src/views/vault_view.rs:11:20 [INFO] [stdout] | [INFO] [stdout] 11 | use crate::state::{BackgroundResponse, CryptoState, VaultState}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Folder` [INFO] [stdout] --> src/views/vault_view.rs:16:28 [INFO] [stdout] | [INFO] [stdout] 16 | use crate::vault::{Cipher, Folder}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `login_view::LoginView` [INFO] [stdout] --> src/views/mod.rs:8:9 [INFO] [stdout] | [INFO] [stdout] 8 | pub use login_view::LoginView; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `vault_view::VaultView` [INFO] [stdout] --> src/views/mod.rs:9:9 [INFO] [stdout] | [INFO] [stdout] 9 | pub use vault_view::VaultView; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::crypto::EncString` [INFO] [stdout] --> src/api/models.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::crypto::EncString; [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: `Deserialize` [INFO] [stdout] --> src/api/identity.rs:3:13 [INFO] [stdout] | [INFO] [stdout] 3 | use serde::{Deserialize, Serialize}; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `identity::*` [INFO] [stdout] --> src/api/mod.rs:17:9 [INFO] [stdout] | [INFO] [stdout] 17 | pub use identity::*; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `sync::*` [INFO] [stdout] --> src/api/mod.rs:18:9 [INFO] [stdout] | [INFO] [stdout] 18 | pub use sync::*; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ApiUrls`, `TwoFactorProviderType`, and `TwoFactorProvider` [INFO] [stdout] --> src/app.rs:8:18 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::api::{ApiUrls, BitwardenClient, CipherType, TwoFactorProvider, TwoFactorProviderType}; [INFO] [stdout] | ^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `SymmetricCryptoKey` [INFO] [stdout] --> src/app.rs:9:45 [INFO] [stdout] | [INFO] [stdout] 9 | use crate::crypto::{DerivedKeys, KdfParams, SymmetricCryptoKey}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `MasterKey` and `MasterPasswordHash` [INFO] [stdout] --> src/crypto/mod.rs:16:35 [INFO] [stdout] | [INFO] [stdout] 16 | pub use master_key::{DerivedKeys, MasterKey, MasterPasswordHash}; [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `decrypt` and `encrypt` [INFO] [stdout] --> src/crypto/mod.rs:17:21 [INFO] [stdout] | [INFO] [stdout] 17 | pub use symmetric::{decrypt, encrypt, SymmetricCryptoKey}; [INFO] [stdout] | ^^^^^^^ ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Zeroize` [INFO] [stdout] --> src/state/auth.rs:3:15 [INFO] [stdout] | [INFO] [stdout] 3 | use zeroize::{Zeroize, ZeroizeOnDrop}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `CipherResponse` and `FolderResponse` [INFO] [stdout] --> src/state/background.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | CipherResponse, FolderResponse, SyncResponse, TwoFactorProvider, TwoFactorProviderType, [INFO] [stdout] | ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::storage::SavedCredentials` [INFO] [stdout] --> src/state/background.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | use crate::storage::SavedCredentials; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `EncString` and `SymmetricCryptoKey` [INFO] [stdout] --> src/storage/database.rs:8:21 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::crypto::{EncString, KdfParams, KdfType, SymmetricCryptoKey}; [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `QueuedOperation` [INFO] [stdout] --> src/storage/mod.rs:12:58 [INFO] [stdout] | [INFO] [stdout] 12 | pub use queue::{EntityType, OfflineQueue, OperationType, QueuedOperation}; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `self` [INFO] [stdout] --> src/ui/components/buttons.rs:3:20 [INFO] [stdout] | [INFO] [stdout] 3 | use eframe::egui::{self, Button, Color32, Response, RichText, Rounding, Stroke, Ui, Vec2}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Color32` [INFO] [stdout] --> src/ui/components/password_field.rs:3:26 [INFO] [stdout] | [INFO] [stdout] 3 | use eframe::egui::{self, Color32, Response, RichText, TextEdit, Ui, Widget}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Color32` and `Vec2` [INFO] [stdout] --> src/ui/login.rs:4:32 [INFO] [stdout] | [INFO] [stdout] 4 | self, Align, CentralPanel, Color32, Frame, Layout, Margin, RichText, TextEdit, Vec2, [INFO] [stdout] | ^^^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::state::BackgroundRequest` [INFO] [stdout] --> src/ui/two_factor.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::state::BackgroundRequest; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Vec2` [INFO] [stdout] --> src/ui/unlock.rs:3:80 [INFO] [stdout] | [INFO] [stdout] 3 | use eframe::egui::{self, Align, CentralPanel, Frame, Layout, Margin, RichText, Vec2}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Frame`, `Layout`, `Margin`, and `RichText` [INFO] [stdout] --> src/ui/vault/item_editor.rs:3:26 [INFO] [stdout] | [INFO] [stdout] 3 | use eframe::egui::{self, Frame, Layout, Margin, RichText, ScrollArea, TextEdit, Window}; [INFO] [stdout] | ^^^^^ ^^^^^^ ^^^^^^ ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Layout` and `RichText` [INFO] [stdout] --> src/ui/vault/item_list.rs:3:33 [INFO] [stdout] | [INFO] [stdout] 3 | use eframe::egui::{self, Frame, Layout, Margin, RichText, ScrollArea, Sense, TextEdit, Vec2}; [INFO] [stdout] | ^^^^^^ ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `theme::Theme` [INFO] [stdout] --> src/ui/mod.rs:15:9 [INFO] [stdout] | [INFO] [stdout] 15 | pub use theme::Theme; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `CipherSecureNoteResponse` and `CipherUriResponse` [INFO] [stdout] --> src/vault/cipher.rs:8:61 [INFO] [stdout] | [INFO] [stdout] 8 | CipherRequest, CipherResponse, CipherSecureNoteRequest, CipherSecureNoteResponse, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 9 | CipherSshKeyRequest, CipherSshKeyResponse, CipherType, CipherUriRequest, CipherUriResponse, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize` [INFO] [stdout] --> src/vault/mod.rs:12:13 [INFO] [stdout] | [INFO] [stdout] 12 | use serde::{Deserialize, Serialize}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::sync::mpsc::Sender` [INFO] [stdout] --> src/views/vault_view.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::sync::mpsc::Sender; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::crypto::SymmetricCryptoKey` [INFO] [stdout] --> src/views/vault_view.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use crate::crypto::SymmetricCryptoKey; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BackgroundResponse` and `CryptoState` [INFO] [stdout] --> src/views/vault_view.rs:11:20 [INFO] [stdout] | [INFO] [stdout] 11 | use crate::state::{BackgroundResponse, CryptoState, VaultState}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Folder` [INFO] [stdout] --> src/views/vault_view.rs:16:28 [INFO] [stdout] | [INFO] [stdout] 16 | use crate::vault::{Cipher, Folder}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `login_view::LoginView` [INFO] [stdout] --> src/views/mod.rs:8:9 [INFO] [stdout] | [INFO] [stdout] 8 | pub use login_view::LoginView; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `vault_view::VaultView` [INFO] [stdout] --> src/views/mod.rs:9:9 [INFO] [stdout] | [INFO] [stdout] 9 | pub use vault_view::VaultView; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `eframe::egui::Ui::child_ui`: Use ui.new_child() instead [INFO] [stdout] --> src/ui/vault/sidebar.rs:437:36 [INFO] [stdout] | [INFO] [stdout] 437 | let mut button_ui = ui.child_ui( [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `eframe::egui::Ui::child_ui`: Use ui.new_child() instead [INFO] [stdout] --> src/ui/vault/sidebar.rs:437:36 [INFO] [stdout] | [INFO] [stdout] 437 | let mut button_ui = ui.child_ui( [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `theme` [INFO] [stdout] --> src/app.rs:672:48 [INFO] [stdout] | [INFO] [stdout] 672 | fn show_folder_editor(ctx: &egui::Context, theme: &Theme, editor: &mut FolderEditor) -> FolderEditorAction { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_theme` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> src/app.rs:1528:37 [INFO] [stdout] | [INFO] [stdout] 1528 | ... Err(e) => { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `theme` [INFO] [stdout] --> src/ui/vault/item_editor.rs:185:49 [INFO] [stdout] | [INFO] [stdout] 185 | pub fn show(&mut self, ctx: &egui::Context, theme: &Theme, folders: &[Folder]) -> EditorAction { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_theme` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `response` [INFO] [stdout] --> src/ui/vault/item_list.rs:35:29 [INFO] [stdout] | [INFO] [stdout] 35 | let response = ui.add( [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_response` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `text_right` [INFO] [stdout] --> src/ui/vault/item_list.rs:161:13 [INFO] [stdout] | [INFO] [stdout] 161 | let text_right = if cipher.favorite { [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_text_right` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `theme` [INFO] [stdout] --> src/app.rs:672:48 [INFO] [stdout] | [INFO] [stdout] 672 | fn show_folder_editor(ctx: &egui::Context, theme: &Theme, editor: &mut FolderEditor) -> FolderEditorAction { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_theme` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `response_tx` [INFO] [stdout] --> src/views/login_view.rs:24:9 [INFO] [stdout] | [INFO] [stdout] 24 | response_tx: &Sender, [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_response_tx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `two_factor_password_hash` [INFO] [stdout] --> src/views/login_view.rs:27:9 [INFO] [stdout] | [INFO] [stdout] 27 | two_factor_password_hash: Option<&str>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_two_factor_password_hash` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `two_factor_kdf_params` [INFO] [stdout] --> src/views/login_view.rs:28:9 [INFO] [stdout] | [INFO] [stdout] 28 | two_factor_kdf_params: Option<&crate::crypto::KdfParams>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_two_factor_kdf_params` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `TwoFactorFailed`, `AccountLocked`, `Network`, and `TokenExpired` are never constructed [INFO] [stdout] --> src/api/mod.rs:82:5 [INFO] [stdout] | [INFO] [stdout] 64 | pub enum ApiError { [INFO] [stdout] | -------- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 82 | TwoFactorFailed, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 91 | AccountLocked, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 97 | Network(String), [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 103 | TokenExpired, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ApiError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple variants are never constructed [INFO] [stdout] --> src/api/mod.rs:113:5 [INFO] [stdout] | [INFO] [stdout] 112 | pub enum DeviceType { [INFO] [stdout] | ---------- variants in this enum [INFO] [stdout] 113 | Android = 0, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 114 | Ios = 1, [INFO] [stdout] | ^^^ [INFO] [stdout] 115 | ChromeExtension = 2, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 116 | FirefoxExtension = 3, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 117 | OperaExtension = 4, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 118 | EdgeExtension = 5, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 119 | WindowsDesktop = 6, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 120 | MacOsDesktop = 7, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 121 | LinuxDesktop = 8, [INFO] [stdout] 122 | ChromeBrowser = 9, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 123 | FirefoxBrowser = 10, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 124 | OperaBrowser = 11, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 125 | EdgeBrowser = 12, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 126 | IeBrowser = 13, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 127 | UnknownBrowser = 14, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 128 | AndroidAmazon = 15, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 129 | Uwp = 16, [INFO] [stdout] | ^^^ [INFO] [stdout] 130 | SafariBrowser = 17, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 131 | VivaldiBrowser = 18, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 132 | VivaldiExtension = 19, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 133 | SafariExtension = 20, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 134 | Sdk = 21, [INFO] [stdout] | ^^^ [INFO] [stdout] 135 | Server = 22, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 136 | WindowsCli = 23, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 137 | MacOsCli = 24, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 138 | LinuxCli = 25, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `DeviceType` 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 `identity_url`, `api_url`, `clear_tokens`, `is_authenticated`, `get_access_token`, and `get_refresh_token` are never used [INFO] [stdout] --> src/api/client.rs:56:12 [INFO] [stdout] | [INFO] [stdout] 23 | impl BitwardenClient { [INFO] [stdout] | -------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 56 | pub fn identity_url(&self) -> &str { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 61 | pub fn api_url(&self) -> &str { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 82 | pub async fn clear_tokens(&self) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 88 | pub async fn is_authenticated(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 93 | pub async fn get_access_token(&self) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 98 | pub async fn get_refresh_token(&self) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `data` is never read [INFO] [stdout] --> src/api/models.rs:40:9 [INFO] [stdout] | [INFO] [stdout] 36 | pub struct TwoFactorProvider { [INFO] [stdout] | ----------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 40 | pub data: Option, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `TwoFactorProvider` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple fields are never read [INFO] [stdout] --> src/api/models.rs:48:9 [INFO] [stdout] | [INFO] [stdout] 46 | pub struct TokenResponse { [INFO] [stdout] | ------------- fields in this struct [INFO] [stdout] 47 | pub access_token: String, [INFO] [stdout] 48 | pub expires_in: u64, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 49 | pub token_type: String, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 56 | pub private_key: Option, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 57 | #[serde(alias = "Kdf")] [INFO] [stdout] 58 | pub kdf: u8, [INFO] [stdout] | ^^^ [INFO] [stdout] 59 | #[serde(alias = "KdfIterations")] [INFO] [stdout] 60 | pub kdf_iterations: u32, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 61 | #[serde(default, alias = "KdfMemory")] [INFO] [stdout] 62 | pub kdf_memory: Option, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 63 | #[serde(default, alias = "KdfParallelism")] [INFO] [stdout] 64 | pub kdf_parallelism: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 65 | #[serde(default, alias = "ForcePasswordReset")] [INFO] [stdout] 66 | pub force_password_reset: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 67 | #[serde(default, alias = "ResetMasterPassword")] [INFO] [stdout] 68 | pub reset_master_password: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `TokenResponse` 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 `validation_errors` is never read [INFO] [stdout] --> src/api/models.rs:96:9 [INFO] [stdout] | [INFO] [stdout] 92 | pub struct ErrorModel { [INFO] [stdout] | ---------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 96 | pub validation_errors: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ErrorModel` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple fields are never read [INFO] [stdout] --> src/api/models.rs:103:9 [INFO] [stdout] | [INFO] [stdout] 102 | pub struct Profile { [INFO] [stdout] | ------- fields in this struct [INFO] [stdout] 103 | pub id: String, [INFO] [stdout] | ^^ [INFO] [stdout] 104 | #[serde(default)] [INFO] [stdout] 105 | pub name: Option, [INFO] [stdout] | ^^^^ [INFO] [stdout] 106 | pub email: String, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 107 | #[serde(default)] [INFO] [stdout] 108 | pub email_verified: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 109 | #[serde(default)] [INFO] [stdout] 110 | pub premium: bool, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 111 | #[serde(default)] [INFO] [stdout] 112 | pub master_password_hint: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 113 | pub key: String, [INFO] [stdout] | ^^^ [INFO] [stdout] 114 | #[serde(default)] [INFO] [stdout] 115 | pub private_key: Option, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 116 | pub security_stamp: String, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Profile` 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 `profile`, `collections`, `policies`, and `sends` are never read [INFO] [stdout] --> src/api/models.rs:306:9 [INFO] [stdout] | [INFO] [stdout] 304 | pub struct SyncResponse { [INFO] [stdout] | ------------ fields in this struct [INFO] [stdout] 305 | #[serde(default)] [INFO] [stdout] 306 | pub profile: Option, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 312 | pub collections: Vec, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 313 | #[serde(default)] [INFO] [stdout] 314 | pub policies: Vec, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 315 | #[serde(default)] [INFO] [stdout] 316 | pub sends: Vec, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `SyncResponse` 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 `refresh_token` and `logout` are never used [INFO] [stdout] --> src/api/identity.rs:98:18 [INFO] [stdout] | [INFO] [stdout] 17 | impl BitwardenClient { [INFO] [stdout] | -------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 98 | pub async fn refresh_token(&self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 117 | pub async fn logout(&self) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `sync_full` is never used [INFO] [stdout] --> src/api/sync.rs:14:18 [INFO] [stdout] | [INFO] [stdout] 5 | impl BitwardenClient { [INFO] [stdout] | -------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 14 | pub async fn sync_full(&self) -> Result { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `delete_cipher`, `restore_cipher`, and `get_cipher` are never used [INFO] [stdout] --> src/api/cipher.rs:173:18 [INFO] [stdout] | [INFO] [stdout] 159 | impl BitwardenClient { [INFO] [stdout] | -------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 173 | pub async fn delete_cipher(&self, id: &str) -> Result<(), ApiError> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 185 | pub async fn restore_cipher(&self, id: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 190 | pub async fn get_cipher(&self, id: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `bg_request_tx` and `bg_request_rx` are never read [INFO] [stdout] --> src/app.rs:57:5 [INFO] [stdout] | [INFO] [stdout] 24 | pub struct BitwardenApp { [INFO] [stdout] | ------------ fields in this struct [INFO] [stdout] ... [INFO] [stdout] 57 | bg_request_tx: Sender, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 62 | bg_request_rx: Receiver, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `encrypted_user_key` is never read [INFO] [stdout] --> src/app.rs:84:5 [INFO] [stdout] | [INFO] [stdout] 79 | struct PendingLogin { [INFO] [stdout] | ------------ field in this struct [INFO] [stdout] ... [INFO] [stdout] 84 | encrypted_user_key: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `as_symmetric_key` is never used [INFO] [stdout] --> src/crypto/master_key.rs:121:12 [INFO] [stdout] | [INFO] [stdout] 65 | impl MasterKey { [INFO] [stdout] | -------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 121 | pub fn as_symmetric_key(&self) -> SymmetricCryptoKey { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `mac_key` and `generate` are never used [INFO] [stdout] --> src/crypto/symmetric.rs:55:12 [INFO] [stdout] | [INFO] [stdout] 28 | impl SymmetricCryptoKey { [INFO] [stdout] | ----------------------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 55 | pub fn mac_key(&self) -> &[u8; 32] { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 60 | pub fn generate() -> Self { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `kdf_params` is never read [INFO] [stdout] --> src/state/auth.rs:18:9 [INFO] [stdout] | [INFO] [stdout] 16 | LoggingIn { [INFO] [stdout] | --------- field in this variant [INFO] [stdout] 17 | email: String, [INFO] [stdout] 18 | kdf_params: KdfParams, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `AuthState` 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 `providers` and `selected_provider` are never read [INFO] [stdout] --> src/state/auth.rs:26:9 [INFO] [stdout] | [INFO] [stdout] 22 | AwaitingTwoFactor { [INFO] [stdout] | ----------------- fields in this variant [INFO] [stdout] ... [INFO] [stdout] 26 | providers: Vec, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 27 | selected_provider: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `AuthState` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `is_logged_out`, `is_unlocked`, `needs_two_factor`, and `is_locked` are never used [INFO] [stdout] --> src/state/auth.rs:60:12 [INFO] [stdout] | [INFO] [stdout] 58 | impl AuthState { [INFO] [stdout] | -------------- methods in this implementation [INFO] [stdout] 59 | /// Check if the user is logged out. [INFO] [stdout] 60 | pub fn is_logged_out(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 65 | pub fn is_unlocked(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 70 | pub fn needs_two_factor(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 75 | pub fn is_locked(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `search`, `get_cipher_mut`, and `folder_name` are never used [INFO] [stdout] --> src/state/vault_state.rs:19:12 [INFO] [stdout] | [INFO] [stdout] 17 | impl VaultState { [INFO] [stdout] | --------------- associated items in this implementation [INFO] [stdout] 18 | /// Create a new empty vault state. [INFO] [stdout] 19 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 81 | pub fn search(&self, query: &str) -> Vec<&Cipher> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 100 | pub fn get_cipher_mut(&mut self, id: &str) -> Option<&mut Cipher> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 110 | pub fn folder_name(&self, folder_id: &str) -> Option<&str> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple variants are never constructed [INFO] [stdout] --> src/state/background.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 17 | pub enum BackgroundRequest { [INFO] [stdout] | ----------------- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 22 | Login { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 29 | LoginWithTwoFactor { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 39 | Sync, [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 42 | CreateCipher { cipher: Box }, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 45 | UpdateCipher { cipher: Box }, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 48 | DeleteCipher { id: String }, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 51 | CreateFolder { name: String }, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 54 | UpdateFolder { id: String, name: String }, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 57 | DeleteFolder { id: String }, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 60 | ProcessOfflineQueue, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 63 | RefreshToken, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 66 | Logout, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `BackgroundRequest` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `TokenRefreshed`, `TokenRefreshFailed`, `LoggedOut`, and `NetworkStatus` are never constructed [INFO] [stdout] --> src/state/background.rs:152:5 [INFO] [stdout] | [INFO] [stdout] 71 | pub enum BackgroundResponse { [INFO] [stdout] | ------------------ variants in this enum [INFO] [stdout] ... [INFO] [stdout] 152 | TokenRefreshed, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 155 | TokenRefreshFailed { error: String }, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 158 | LoggedOut, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 161 | NetworkStatus { online: bool }, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `BackgroundResponse` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `send`, `try_recv`, and `drain_responses` are never used [INFO] [stdout] --> src/state/background.rs:199:12 [INFO] [stdout] | [INFO] [stdout] 180 | impl BackgroundChannel { [INFO] [stdout] | ---------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 199 | pub fn send( [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 207 | pub fn try_recv(&self) -> Result { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 212 | pub fn drain_responses(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/storage/database.rs:34:12 [INFO] [stdout] | [INFO] [stdout] 24 | impl VaultDatabase { [INFO] [stdout] | ------------------ associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 34 | pub fn in_memory() -> Result { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 110 | pub fn set_session(&self, key: &str, value: &str) -> Result<(), StorageError> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 168 | pub fn delete_cached_cipher(&self, cipher_id: &str) -> Result<(), StorageError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 262 | pub fn set_preference(&self, key: &str, value: &str) -> Result<(), StorageError> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 271 | pub fn get_preference(&self, key: &str) -> Result, StorageError> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 286 | pub fn clear_user_data(&self, user_id: &str) -> Result<(), StorageError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 301 | pub fn clear_all(&self) -> Result<(), StorageError> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 389 | pub fn clear_credentials(&self) -> Result<(), StorageError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `enqueue`, `pending_count`, and `clear` are never used [INFO] [stdout] --> src/storage/queue.rs:47:12 [INFO] [stdout] | [INFO] [stdout] 40 | impl<'a> OfflineQueue<'a> { [INFO] [stdout] | ------------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 47 | pub fn enqueue( [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 109 | pub fn pending_count(&self, user_id: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 119 | pub fn clear(&self, user_id: &str) -> Result<(), StorageError> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `icon_button` is never used [INFO] [stdout] --> src/ui/components/buttons.rs:53:8 [INFO] [stdout] | [INFO] [stdout] 53 | pub fn icon_button(ui: &mut Ui, icon: &str) -> Response { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `link_button` is never used [INFO] [stdout] --> src/ui/components/buttons.rs:62:8 [INFO] [stdout] | [INFO] [stdout] 62 | pub fn link_button(ui: &mut Ui, text: &str) -> Response { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `ICON_EDIT` is never used [INFO] [stdout] --> src/ui/components/icons.rs:23:11 [INFO] [stdout] | [INFO] [stdout] 23 | pub const ICON_EDIT: &str = "\u{270F}"; // Pencil [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `ICON_DELETE` is never used [INFO] [stdout] --> src/ui/components/icons.rs:24:11 [INFO] [stdout] | [INFO] [stdout] 24 | pub const ICON_DELETE: &str = "\u{1F5D1}"; // Wastebasket [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `ICON_COPY` is never used [INFO] [stdout] --> src/ui/components/icons.rs:25:11 [INFO] [stdout] | [INFO] [stdout] 25 | pub const ICON_COPY: &str = "\u{1F4CB}"; // Clipboard [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `ICON_SHOW` is never used [INFO] [stdout] --> src/ui/components/icons.rs:26:11 [INFO] [stdout] | [INFO] [stdout] 26 | pub const ICON_SHOW: &str = "\u{1F441}"; // Eye [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `ICON_HIDE` is never used [INFO] [stdout] --> src/ui/components/icons.rs:27:11 [INFO] [stdout] | [INFO] [stdout] 27 | pub const ICON_HIDE: &str = "\u{1F648}"; // See-no-evil monkey [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `ICON_UNLOCK` is never used [INFO] [stdout] --> src/ui/components/icons.rs:32:11 [INFO] [stdout] | [INFO] [stdout] 32 | pub const ICON_UNLOCK: &str = "\u{1F513}"; // Unlock [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `ICON_THEME` is never used [INFO] [stdout] --> src/ui/components/icons.rs:34:11 [INFO] [stdout] | [INFO] [stdout] 34 | pub const ICON_THEME: &str = "\u{1F3A8}"; // Palette [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `ICON_CHECK` is never used [INFO] [stdout] --> src/ui/components/icons.rs:35:11 [INFO] [stdout] | [INFO] [stdout] 35 | pub const ICON_CHECK: &str = "\u{2714}"; // Checkmark [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `ICON_CROSS` is never used [INFO] [stdout] --> src/ui/components/icons.rs:36:11 [INFO] [stdout] | [INFO] [stdout] 36 | pub const ICON_CROSS: &str = "\u{2716}"; // X mark [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `ICON_ONLINE` is never used [INFO] [stdout] --> src/ui/components/icons.rs:39:11 [INFO] [stdout] | [INFO] [stdout] 39 | pub const ICON_ONLINE: &str = "\u{1F7E2}"; // Green circle [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `ICON_OFFLINE` is never used [INFO] [stdout] --> src/ui/components/icons.rs:40:11 [INFO] [stdout] | [INFO] [stdout] 40 | pub const ICON_OFFLINE: &str = "\u{1F534}"; // Red circle [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `ICON_PENDING` is never used [INFO] [stdout] --> src/ui/components/icons.rs:41:11 [INFO] [stdout] | [INFO] [stdout] 41 | pub const ICON_PENDING: &str = "\u{1F7E1}"; // Yellow circle [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `colored_icon` is never used [INFO] [stdout] --> src/ui/components/icons.rs:55:8 [INFO] [stdout] | [INFO] [stdout] 55 | pub fn colored_icon(ui: &mut Ui, icon: &str, color: Color32) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `icon_with_text` is never used [INFO] [stdout] --> src/ui/components/icons.rs:60:8 [INFO] [stdout] | [INFO] [stdout] 60 | pub fn icon_with_text(ui: &mut Ui, icon: &str, text: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `category_label` is never used [INFO] [stdout] --> src/ui/components/icons.rs:68:8 [INFO] [stdout] | [INFO] [stdout] 68 | pub fn category_label( [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `id` is never read [INFO] [stdout] --> src/ui/components/password_field.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 6 | pub struct PasswordField<'a> { [INFO] [stdout] | ------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 10 | id: egui::Id, [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `id` is never used [INFO] [stdout] --> src/ui/components/password_field.rs:28:12 [INFO] [stdout] | [INFO] [stdout] 13 | impl<'a> PasswordField<'a> { [INFO] [stdout] | -------------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 28 | pub fn id(mut self, id: impl std::hash::Hash) -> Self { [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `password_field_labeled` is never used [INFO] [stdout] --> src/ui/components/password_field.rs:60:8 [INFO] [stdout] | [INFO] [stdout] 60 | pub fn password_field_labeled( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `text_field_labeled` is never used [INFO] [stdout] --> src/ui/components/password_field.rs:74:8 [INFO] [stdout] | [INFO] [stdout] 74 | pub fn text_field_labeled(ui: &mut Ui, label: &str, text: &mut String, hint: &str) -> Response { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `copy_button` is never used [INFO] [stdout] --> src/ui/components/password_field.rs:83:8 [INFO] [stdout] | [INFO] [stdout] 83 | pub fn copy_button(ui: &mut Ui, text: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `password_display` is never used [INFO] [stdout] --> src/ui/components/password_field.rs:93:8 [INFO] [stdout] | [INFO] [stdout] 93 | pub fn password_display(ui: &mut Ui, password: &str, show: &mut bool) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `clear` is never used [INFO] [stdout] --> src/ui/device_verification.rs:171:12 [INFO] [stdout] | [INFO] [stdout] 39 | impl DeviceVerificationScreen { [INFO] [stdout] | ----------------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 171 | pub fn clear(&mut self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `clear_error` is never used [INFO] [stdout] --> src/ui/login.rs:258:12 [INFO] [stdout] | [INFO] [stdout] 62 | impl LoginScreen { [INFO] [stdout] | ---------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 258 | pub fn clear_error(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `close` is never used [INFO] [stdout] --> src/ui/settings.rs:30:12 [INFO] [stdout] | [INFO] [stdout] 21 | impl SettingsView { [INFO] [stdout] | ----------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 30 | pub fn close(&mut self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `text_muted` is never used [INFO] [stdout] --> src/ui/theme.rs:340:12 [INFO] [stdout] | [INFO] [stdout] 298 | impl Theme { [INFO] [stdout] | ---------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 340 | pub fn text_muted(&self) -> Color32 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `PRIMARY_BLUE_HOVER` is never used [INFO] [stdout] --> src/ui/theme.rs:86:15 [INFO] [stdout] | [INFO] [stdout] 86 | pub const PRIMARY_BLUE_HOVER: Color32 = Color32::from_rgb(18, 74, 176); // Darker [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SUCCESS_GREEN` is never used [INFO] [stdout] --> src/ui/theme.rs:87:15 [INFO] [stdout] | [INFO] [stdout] 87 | pub const SUCCESS_GREEN: Color32 = Color32::from_rgb(16, 124, 65); // #107C41 [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `WARNING_YELLOW` is never used [INFO] [stdout] --> src/ui/theme.rs:88:15 [INFO] [stdout] | [INFO] [stdout] 88 | pub const WARNING_YELLOW: Color32 = Color32::from_rgb(255, 191, 0); // #FFBF00 [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `TEXT_MUTED` is never used [INFO] [stdout] --> src/ui/theme.rs:102:19 [INFO] [stdout] | [INFO] [stdout] 102 | pub const TEXT_MUTED: Color32 = Color32::from_rgb(100, 106, 123); [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `BORDER_FOCUS` is never used [INFO] [stdout] --> src/ui/theme.rs:105:19 [INFO] [stdout] | [INFO] [stdout] 105 | pub const BORDER_FOCUS: Color32 = Color32::from_rgb(23, 93, 220); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `TEXT_MUTED` is never used [INFO] [stdout] --> src/ui/theme.rs:122:19 [INFO] [stdout] | [INFO] [stdout] 122 | pub const TEXT_MUTED: Color32 = Color32::from_rgb(160, 166, 173); [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `BORDER_FOCUS` is never used [INFO] [stdout] --> src/ui/theme.rs:125:19 [INFO] [stdout] | [INFO] [stdout] 125 | pub const BORDER_FOCUS: Color32 = Color32::from_rgb(23, 93, 220); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `set_loading` and `set_error` are never used [INFO] [stdout] --> src/ui/two_factor.rs:179:12 [INFO] [stdout] | [INFO] [stdout] 21 | impl TwoFactorScreen { [INFO] [stdout] | -------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 179 | pub fn set_loading(&mut self, loading: bool) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 184 | pub fn set_error(&mut self, error: String) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `set_loading` and `clear_error` are never used [INFO] [stdout] --> src/ui/unlock.rs:165:12 [INFO] [stdout] | [INFO] [stdout] 41 | impl UnlockScreen { [INFO] [stdout] | ----------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 165 | pub fn set_loading(&mut self, loading: bool) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 186 | pub fn clear_error(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `label` is never used [INFO] [stdout] --> src/ui/vault/mod.rs:27:12 [INFO] [stdout] | [INFO] [stdout] 26 | impl VaultFilter { [INFO] [stdout] | ---------------- method in this implementation [INFO] [stdout] 27 | pub fn label(&self) -> &'static str { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new_item` is never used [INFO] [stdout] --> src/ui/vault/item_editor.rs:110:12 [INFO] [stdout] | [INFO] [stdout] 108 | impl ItemEditor { [INFO] [stdout] | --------------- associated function in this implementation [INFO] [stdout] 109 | /// Create a new editor for adding an item. [INFO] [stdout] 110 | pub fn new_item(cipher_type: CipherType) -> Self { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `primary_uri` is never used [INFO] [stdout] --> src/vault/cipher.rs:223:12 [INFO] [stdout] | [INFO] [stdout] 129 | impl Cipher { [INFO] [stdout] | ----------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 223 | pub fn primary_uri(&self) -> Option<&str> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `LoginView` is never constructed [INFO] [stdout] --> src/views/login_view.rs:14:12 [INFO] [stdout] | [INFO] [stdout] 14 | pub struct LoginView; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `show` is never used [INFO] [stdout] --> src/views/login_view.rs:18:12 [INFO] [stdout] | [INFO] [stdout] 16 | impl LoginView { [INFO] [stdout] | -------------- associated function in this implementation [INFO] [stdout] 17 | /// Render the login view and handle login flow. [INFO] [stdout] 18 | pub fn show( [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `LoginViewAction` is never used [INFO] [stdout] --> src/views/login_view.rs:80:10 [INFO] [stdout] | [INFO] [stdout] 80 | pub enum LoginViewAction { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `VaultView` is never constructed [INFO] [stdout] --> src/views/vault_view.rs:19:12 [INFO] [stdout] | [INFO] [stdout] 19 | pub struct VaultView; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `VaultViewAction` is never used [INFO] [stdout] --> src/views/vault_view.rs:23:10 [INFO] [stdout] | [INFO] [stdout] 23 | pub enum VaultViewAction { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `show` and `show_folder_editor` are never used [INFO] [stdout] --> src/views/vault_view.rs:37:12 [INFO] [stdout] | [INFO] [stdout] 34 | impl VaultView { [INFO] [stdout] | -------------- associated functions in this implementation [INFO] [stdout] ... [INFO] [stdout] 37 | pub fn show( [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 199 | fn show_folder_editor(ctx: &egui::Context, editor: &mut FolderEditor) -> FolderEditorAction { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> src/app.rs:1528:37 [INFO] [stdout] | [INFO] [stdout] 1528 | ... Err(e) => { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `theme` [INFO] [stdout] --> src/ui/vault/item_editor.rs:185:49 [INFO] [stdout] | [INFO] [stdout] 185 | pub fn show(&mut self, ctx: &egui::Context, theme: &Theme, folders: &[Folder]) -> EditorAction { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_theme` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `response` [INFO] [stdout] --> src/ui/vault/item_list.rs:35:29 [INFO] [stdout] | [INFO] [stdout] 35 | let response = ui.add( [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_response` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `text_right` [INFO] [stdout] --> src/ui/vault/item_list.rs:161:13 [INFO] [stdout] | [INFO] [stdout] 161 | let text_right = if cipher.favorite { [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_text_right` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `response_tx` [INFO] [stdout] --> src/views/login_view.rs:24:9 [INFO] [stdout] | [INFO] [stdout] 24 | response_tx: &Sender, [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_response_tx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `two_factor_password_hash` [INFO] [stdout] --> src/views/login_view.rs:27:9 [INFO] [stdout] | [INFO] [stdout] 27 | two_factor_password_hash: Option<&str>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_two_factor_password_hash` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `two_factor_kdf_params` [INFO] [stdout] --> src/views/login_view.rs:28:9 [INFO] [stdout] | [INFO] [stdout] 28 | two_factor_kdf_params: Option<&crate::crypto::KdfParams>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_two_factor_kdf_params` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `TwoFactorFailed`, `AccountLocked`, `Network`, and `TokenExpired` are never constructed [INFO] [stdout] --> src/api/mod.rs:82:5 [INFO] [stdout] | [INFO] [stdout] 64 | pub enum ApiError { [INFO] [stdout] | -------- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 82 | TwoFactorFailed, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 91 | AccountLocked, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 97 | Network(String), [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 103 | TokenExpired, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ApiError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple variants are never constructed [INFO] [stdout] --> src/api/mod.rs:113:5 [INFO] [stdout] | [INFO] [stdout] 112 | pub enum DeviceType { [INFO] [stdout] | ---------- variants in this enum [INFO] [stdout] 113 | Android = 0, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 114 | Ios = 1, [INFO] [stdout] | ^^^ [INFO] [stdout] 115 | ChromeExtension = 2, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 116 | FirefoxExtension = 3, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 117 | OperaExtension = 4, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 118 | EdgeExtension = 5, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 119 | WindowsDesktop = 6, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 120 | MacOsDesktop = 7, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 121 | LinuxDesktop = 8, [INFO] [stdout] 122 | ChromeBrowser = 9, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 123 | FirefoxBrowser = 10, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 124 | OperaBrowser = 11, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 125 | EdgeBrowser = 12, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 126 | IeBrowser = 13, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 127 | UnknownBrowser = 14, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 128 | AndroidAmazon = 15, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 129 | Uwp = 16, [INFO] [stdout] | ^^^ [INFO] [stdout] 130 | SafariBrowser = 17, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 131 | VivaldiBrowser = 18, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 132 | VivaldiExtension = 19, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 133 | SafariExtension = 20, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 134 | Sdk = 21, [INFO] [stdout] | ^^^ [INFO] [stdout] 135 | Server = 22, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 136 | WindowsCli = 23, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 137 | MacOsCli = 24, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 138 | LinuxCli = 25, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `DeviceType` 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 `identity_url`, `api_url`, `clear_tokens`, `is_authenticated`, `get_access_token`, and `get_refresh_token` are never used [INFO] [stdout] --> src/api/client.rs:56:12 [INFO] [stdout] | [INFO] [stdout] 23 | impl BitwardenClient { [INFO] [stdout] | -------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 56 | pub fn identity_url(&self) -> &str { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 61 | pub fn api_url(&self) -> &str { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 82 | pub async fn clear_tokens(&self) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 88 | pub async fn is_authenticated(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 93 | pub async fn get_access_token(&self) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 98 | pub async fn get_refresh_token(&self) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `data` is never read [INFO] [stdout] --> src/api/models.rs:40:9 [INFO] [stdout] | [INFO] [stdout] 36 | pub struct TwoFactorProvider { [INFO] [stdout] | ----------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 40 | pub data: Option, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `TwoFactorProvider` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple fields are never read [INFO] [stdout] --> src/api/models.rs:48:9 [INFO] [stdout] | [INFO] [stdout] 46 | pub struct TokenResponse { [INFO] [stdout] | ------------- fields in this struct [INFO] [stdout] 47 | pub access_token: String, [INFO] [stdout] 48 | pub expires_in: u64, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 49 | pub token_type: String, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 56 | pub private_key: Option, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 57 | #[serde(alias = "Kdf")] [INFO] [stdout] 58 | pub kdf: u8, [INFO] [stdout] | ^^^ [INFO] [stdout] 59 | #[serde(alias = "KdfIterations")] [INFO] [stdout] 60 | pub kdf_iterations: u32, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 61 | #[serde(default, alias = "KdfMemory")] [INFO] [stdout] 62 | pub kdf_memory: Option, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 63 | #[serde(default, alias = "KdfParallelism")] [INFO] [stdout] 64 | pub kdf_parallelism: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 65 | #[serde(default, alias = "ForcePasswordReset")] [INFO] [stdout] 66 | pub force_password_reset: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 67 | #[serde(default, alias = "ResetMasterPassword")] [INFO] [stdout] 68 | pub reset_master_password: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `TokenResponse` 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 `validation_errors` is never read [INFO] [stdout] --> src/api/models.rs:96:9 [INFO] [stdout] | [INFO] [stdout] 92 | pub struct ErrorModel { [INFO] [stdout] | ---------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 96 | pub validation_errors: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ErrorModel` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple fields are never read [INFO] [stdout] --> src/api/models.rs:103:9 [INFO] [stdout] | [INFO] [stdout] 102 | pub struct Profile { [INFO] [stdout] | ------- fields in this struct [INFO] [stdout] 103 | pub id: String, [INFO] [stdout] | ^^ [INFO] [stdout] 104 | #[serde(default)] [INFO] [stdout] 105 | pub name: Option, [INFO] [stdout] | ^^^^ [INFO] [stdout] 106 | pub email: String, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 107 | #[serde(default)] [INFO] [stdout] 108 | pub email_verified: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 109 | #[serde(default)] [INFO] [stdout] 110 | pub premium: bool, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 111 | #[serde(default)] [INFO] [stdout] 112 | pub master_password_hint: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 113 | pub key: String, [INFO] [stdout] | ^^^ [INFO] [stdout] 114 | #[serde(default)] [INFO] [stdout] 115 | pub private_key: Option, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 116 | pub security_stamp: String, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Profile` 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 `profile`, `collections`, `policies`, and `sends` are never read [INFO] [stdout] --> src/api/models.rs:306:9 [INFO] [stdout] | [INFO] [stdout] 304 | pub struct SyncResponse { [INFO] [stdout] | ------------ fields in this struct [INFO] [stdout] 305 | #[serde(default)] [INFO] [stdout] 306 | pub profile: Option, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 312 | pub collections: Vec, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 313 | #[serde(default)] [INFO] [stdout] 314 | pub policies: Vec, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 315 | #[serde(default)] [INFO] [stdout] 316 | pub sends: Vec, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `SyncResponse` 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 `refresh_token` and `logout` are never used [INFO] [stdout] --> src/api/identity.rs:98:18 [INFO] [stdout] | [INFO] [stdout] 17 | impl BitwardenClient { [INFO] [stdout] | -------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 98 | pub async fn refresh_token(&self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 117 | pub async fn logout(&self) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `sync_full` is never used [INFO] [stdout] --> src/api/sync.rs:14:18 [INFO] [stdout] | [INFO] [stdout] 5 | impl BitwardenClient { [INFO] [stdout] | -------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 14 | pub async fn sync_full(&self) -> Result { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `delete_cipher`, `restore_cipher`, and `get_cipher` are never used [INFO] [stdout] --> src/api/cipher.rs:173:18 [INFO] [stdout] | [INFO] [stdout] 159 | impl BitwardenClient { [INFO] [stdout] | -------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 173 | pub async fn delete_cipher(&self, id: &str) -> Result<(), ApiError> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 185 | pub async fn restore_cipher(&self, id: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 190 | pub async fn get_cipher(&self, id: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `bg_request_tx` and `bg_request_rx` are never read [INFO] [stdout] --> src/app.rs:57:5 [INFO] [stdout] | [INFO] [stdout] 24 | pub struct BitwardenApp { [INFO] [stdout] | ------------ fields in this struct [INFO] [stdout] ... [INFO] [stdout] 57 | bg_request_tx: Sender, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 62 | bg_request_rx: Receiver, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `encrypted_user_key` is never read [INFO] [stdout] --> src/app.rs:84:5 [INFO] [stdout] | [INFO] [stdout] 79 | struct PendingLogin { [INFO] [stdout] | ------------ field in this struct [INFO] [stdout] ... [INFO] [stdout] 84 | encrypted_user_key: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `as_symmetric_key` is never used [INFO] [stdout] --> src/crypto/master_key.rs:121:12 [INFO] [stdout] | [INFO] [stdout] 65 | impl MasterKey { [INFO] [stdout] | -------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 121 | pub fn as_symmetric_key(&self) -> SymmetricCryptoKey { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `mac_key` is never used [INFO] [stdout] --> src/crypto/symmetric.rs:55:12 [INFO] [stdout] | [INFO] [stdout] 28 | impl SymmetricCryptoKey { [INFO] [stdout] | ----------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 55 | pub fn mac_key(&self) -> &[u8; 32] { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `kdf_params` is never read [INFO] [stdout] --> src/state/auth.rs:18:9 [INFO] [stdout] | [INFO] [stdout] 16 | LoggingIn { [INFO] [stdout] | --------- field in this variant [INFO] [stdout] 17 | email: String, [INFO] [stdout] 18 | kdf_params: KdfParams, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `AuthState` 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 `providers` and `selected_provider` are never read [INFO] [stdout] --> src/state/auth.rs:26:9 [INFO] [stdout] | [INFO] [stdout] 22 | AwaitingTwoFactor { [INFO] [stdout] | ----------------- fields in this variant [INFO] [stdout] ... [INFO] [stdout] 26 | providers: Vec, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 27 | selected_provider: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `AuthState` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `is_logged_out`, `is_unlocked`, `needs_two_factor`, and `is_locked` are never used [INFO] [stdout] --> src/state/auth.rs:60:12 [INFO] [stdout] | [INFO] [stdout] 58 | impl AuthState { [INFO] [stdout] | -------------- methods in this implementation [INFO] [stdout] 59 | /// Check if the user is logged out. [INFO] [stdout] 60 | pub fn is_logged_out(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 65 | pub fn is_unlocked(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 70 | pub fn needs_two_factor(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 75 | pub fn is_locked(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `search`, `get_cipher_mut`, and `folder_name` are never used [INFO] [stdout] --> src/state/vault_state.rs:19:12 [INFO] [stdout] | [INFO] [stdout] 17 | impl VaultState { [INFO] [stdout] | --------------- associated items in this implementation [INFO] [stdout] 18 | /// Create a new empty vault state. [INFO] [stdout] 19 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 81 | pub fn search(&self, query: &str) -> Vec<&Cipher> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 100 | pub fn get_cipher_mut(&mut self, id: &str) -> Option<&mut Cipher> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 110 | pub fn folder_name(&self, folder_id: &str) -> Option<&str> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple variants are never constructed [INFO] [stdout] --> src/state/background.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 17 | pub enum BackgroundRequest { [INFO] [stdout] | ----------------- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 22 | Login { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 29 | LoginWithTwoFactor { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 39 | Sync, [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 42 | CreateCipher { cipher: Box }, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 45 | UpdateCipher { cipher: Box }, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 48 | DeleteCipher { id: String }, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 51 | CreateFolder { name: String }, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 54 | UpdateFolder { id: String, name: String }, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 57 | DeleteFolder { id: String }, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 60 | ProcessOfflineQueue, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 63 | RefreshToken, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 66 | Logout, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `BackgroundRequest` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `TokenRefreshed`, `TokenRefreshFailed`, `LoggedOut`, and `NetworkStatus` are never constructed [INFO] [stdout] --> src/state/background.rs:152:5 [INFO] [stdout] | [INFO] [stdout] 71 | pub enum BackgroundResponse { [INFO] [stdout] | ------------------ variants in this enum [INFO] [stdout] ... [INFO] [stdout] 152 | TokenRefreshed, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 155 | TokenRefreshFailed { error: String }, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 158 | LoggedOut, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 161 | NetworkStatus { online: bool }, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `BackgroundResponse` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `send`, `try_recv`, and `drain_responses` are never used [INFO] [stdout] --> src/state/background.rs:199:12 [INFO] [stdout] | [INFO] [stdout] 180 | impl BackgroundChannel { [INFO] [stdout] | ---------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 199 | pub fn send( [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 207 | pub fn try_recv(&self) -> Result { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 212 | pub fn drain_responses(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/storage/database.rs:34:12 [INFO] [stdout] | [INFO] [stdout] 24 | impl VaultDatabase { [INFO] [stdout] | ------------------ associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 34 | pub fn in_memory() -> Result { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 110 | pub fn set_session(&self, key: &str, value: &str) -> Result<(), StorageError> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 168 | pub fn delete_cached_cipher(&self, cipher_id: &str) -> Result<(), StorageError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 262 | pub fn set_preference(&self, key: &str, value: &str) -> Result<(), StorageError> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 271 | pub fn get_preference(&self, key: &str) -> Result, StorageError> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 286 | pub fn clear_user_data(&self, user_id: &str) -> Result<(), StorageError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 301 | pub fn clear_all(&self) -> Result<(), StorageError> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 389 | pub fn clear_credentials(&self) -> Result<(), StorageError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `enqueue`, `pending_count`, and `clear` are never used [INFO] [stdout] --> src/storage/queue.rs:47:12 [INFO] [stdout] | [INFO] [stdout] 40 | impl<'a> OfflineQueue<'a> { [INFO] [stdout] | ------------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 47 | pub fn enqueue( [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 109 | pub fn pending_count(&self, user_id: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 119 | pub fn clear(&self, user_id: &str) -> Result<(), StorageError> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `icon_button` is never used [INFO] [stdout] --> src/ui/components/buttons.rs:53:8 [INFO] [stdout] | [INFO] [stdout] 53 | pub fn icon_button(ui: &mut Ui, icon: &str) -> Response { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `link_button` is never used [INFO] [stdout] --> src/ui/components/buttons.rs:62:8 [INFO] [stdout] | [INFO] [stdout] 62 | pub fn link_button(ui: &mut Ui, text: &str) -> Response { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `ICON_EDIT` is never used [INFO] [stdout] --> src/ui/components/icons.rs:23:11 [INFO] [stdout] | [INFO] [stdout] 23 | pub const ICON_EDIT: &str = "\u{270F}"; // Pencil [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `ICON_DELETE` is never used [INFO] [stdout] --> src/ui/components/icons.rs:24:11 [INFO] [stdout] | [INFO] [stdout] 24 | pub const ICON_DELETE: &str = "\u{1F5D1}"; // Wastebasket [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `ICON_COPY` is never used [INFO] [stdout] --> src/ui/components/icons.rs:25:11 [INFO] [stdout] | [INFO] [stdout] 25 | pub const ICON_COPY: &str = "\u{1F4CB}"; // Clipboard [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `ICON_SHOW` is never used [INFO] [stdout] --> src/ui/components/icons.rs:26:11 [INFO] [stdout] | [INFO] [stdout] 26 | pub const ICON_SHOW: &str = "\u{1F441}"; // Eye [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `ICON_HIDE` is never used [INFO] [stdout] --> src/ui/components/icons.rs:27:11 [INFO] [stdout] | [INFO] [stdout] 27 | pub const ICON_HIDE: &str = "\u{1F648}"; // See-no-evil monkey [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `ICON_UNLOCK` is never used [INFO] [stdout] --> src/ui/components/icons.rs:32:11 [INFO] [stdout] | [INFO] [stdout] 32 | pub const ICON_UNLOCK: &str = "\u{1F513}"; // Unlock [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `ICON_THEME` is never used [INFO] [stdout] --> src/ui/components/icons.rs:34:11 [INFO] [stdout] | [INFO] [stdout] 34 | pub const ICON_THEME: &str = "\u{1F3A8}"; // Palette [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `ICON_CHECK` is never used [INFO] [stdout] --> src/ui/components/icons.rs:35:11 [INFO] [stdout] | [INFO] [stdout] 35 | pub const ICON_CHECK: &str = "\u{2714}"; // Checkmark [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `ICON_CROSS` is never used [INFO] [stdout] --> src/ui/components/icons.rs:36:11 [INFO] [stdout] | [INFO] [stdout] 36 | pub const ICON_CROSS: &str = "\u{2716}"; // X mark [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `ICON_ONLINE` is never used [INFO] [stdout] --> src/ui/components/icons.rs:39:11 [INFO] [stdout] | [INFO] [stdout] 39 | pub const ICON_ONLINE: &str = "\u{1F7E2}"; // Green circle [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `ICON_OFFLINE` is never used [INFO] [stdout] --> src/ui/components/icons.rs:40:11 [INFO] [stdout] | [INFO] [stdout] 40 | pub const ICON_OFFLINE: &str = "\u{1F534}"; // Red circle [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `ICON_PENDING` is never used [INFO] [stdout] --> src/ui/components/icons.rs:41:11 [INFO] [stdout] | [INFO] [stdout] 41 | pub const ICON_PENDING: &str = "\u{1F7E1}"; // Yellow circle [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `colored_icon` is never used [INFO] [stdout] --> src/ui/components/icons.rs:55:8 [INFO] [stdout] | [INFO] [stdout] 55 | pub fn colored_icon(ui: &mut Ui, icon: &str, color: Color32) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `icon_with_text` is never used [INFO] [stdout] --> src/ui/components/icons.rs:60:8 [INFO] [stdout] | [INFO] [stdout] 60 | pub fn icon_with_text(ui: &mut Ui, icon: &str, text: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `category_label` is never used [INFO] [stdout] --> src/ui/components/icons.rs:68:8 [INFO] [stdout] | [INFO] [stdout] 68 | pub fn category_label( [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `id` is never read [INFO] [stdout] --> src/ui/components/password_field.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 6 | pub struct PasswordField<'a> { [INFO] [stdout] | ------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 10 | id: egui::Id, [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `id` is never used [INFO] [stdout] --> src/ui/components/password_field.rs:28:12 [INFO] [stdout] | [INFO] [stdout] 13 | impl<'a> PasswordField<'a> { [INFO] [stdout] | -------------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 28 | pub fn id(mut self, id: impl std::hash::Hash) -> Self { [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `password_field_labeled` is never used [INFO] [stdout] --> src/ui/components/password_field.rs:60:8 [INFO] [stdout] | [INFO] [stdout] 60 | pub fn password_field_labeled( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `text_field_labeled` is never used [INFO] [stdout] --> src/ui/components/password_field.rs:74:8 [INFO] [stdout] | [INFO] [stdout] 74 | pub fn text_field_labeled(ui: &mut Ui, label: &str, text: &mut String, hint: &str) -> Response { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `copy_button` is never used [INFO] [stdout] --> src/ui/components/password_field.rs:83:8 [INFO] [stdout] | [INFO] [stdout] 83 | pub fn copy_button(ui: &mut Ui, text: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `password_display` is never used [INFO] [stdout] --> src/ui/components/password_field.rs:93:8 [INFO] [stdout] | [INFO] [stdout] 93 | pub fn password_display(ui: &mut Ui, password: &str, show: &mut bool) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `clear` is never used [INFO] [stdout] --> src/ui/device_verification.rs:171:12 [INFO] [stdout] | [INFO] [stdout] 39 | impl DeviceVerificationScreen { [INFO] [stdout] | ----------------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 171 | pub fn clear(&mut self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `clear_error` is never used [INFO] [stdout] --> src/ui/login.rs:258:12 [INFO] [stdout] | [INFO] [stdout] 62 | impl LoginScreen { [INFO] [stdout] | ---------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 258 | pub fn clear_error(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `close` is never used [INFO] [stdout] --> src/ui/settings.rs:30:12 [INFO] [stdout] | [INFO] [stdout] 21 | impl SettingsView { [INFO] [stdout] | ----------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 30 | pub fn close(&mut self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `text_muted` is never used [INFO] [stdout] --> src/ui/theme.rs:340:12 [INFO] [stdout] | [INFO] [stdout] 298 | impl Theme { [INFO] [stdout] | ---------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 340 | pub fn text_muted(&self) -> Color32 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `PRIMARY_BLUE_HOVER` is never used [INFO] [stdout] --> src/ui/theme.rs:86:15 [INFO] [stdout] | [INFO] [stdout] 86 | pub const PRIMARY_BLUE_HOVER: Color32 = Color32::from_rgb(18, 74, 176); // Darker [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SUCCESS_GREEN` is never used [INFO] [stdout] --> src/ui/theme.rs:87:15 [INFO] [stdout] | [INFO] [stdout] 87 | pub const SUCCESS_GREEN: Color32 = Color32::from_rgb(16, 124, 65); // #107C41 [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `WARNING_YELLOW` is never used [INFO] [stdout] --> src/ui/theme.rs:88:15 [INFO] [stdout] | [INFO] [stdout] 88 | pub const WARNING_YELLOW: Color32 = Color32::from_rgb(255, 191, 0); // #FFBF00 [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `TEXT_MUTED` is never used [INFO] [stdout] --> src/ui/theme.rs:102:19 [INFO] [stdout] | [INFO] [stdout] 102 | pub const TEXT_MUTED: Color32 = Color32::from_rgb(100, 106, 123); [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `BORDER_FOCUS` is never used [INFO] [stdout] --> src/ui/theme.rs:105:19 [INFO] [stdout] | [INFO] [stdout] 105 | pub const BORDER_FOCUS: Color32 = Color32::from_rgb(23, 93, 220); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `TEXT_MUTED` is never used [INFO] [stdout] --> src/ui/theme.rs:122:19 [INFO] [stdout] | [INFO] [stdout] 122 | pub const TEXT_MUTED: Color32 = Color32::from_rgb(160, 166, 173); [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `BORDER_FOCUS` is never used [INFO] [stdout] --> src/ui/theme.rs:125:19 [INFO] [stdout] | [INFO] [stdout] 125 | pub const BORDER_FOCUS: Color32 = Color32::from_rgb(23, 93, 220); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `set_loading` and `set_error` are never used [INFO] [stdout] --> src/ui/two_factor.rs:179:12 [INFO] [stdout] | [INFO] [stdout] 21 | impl TwoFactorScreen { [INFO] [stdout] | -------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 179 | pub fn set_loading(&mut self, loading: bool) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 184 | pub fn set_error(&mut self, error: String) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `set_loading` and `clear_error` are never used [INFO] [stdout] --> src/ui/unlock.rs:165:12 [INFO] [stdout] | [INFO] [stdout] 41 | impl UnlockScreen { [INFO] [stdout] | ----------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 165 | pub fn set_loading(&mut self, loading: bool) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 186 | pub fn clear_error(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `label` is never used [INFO] [stdout] --> src/ui/vault/mod.rs:27:12 [INFO] [stdout] | [INFO] [stdout] 26 | impl VaultFilter { [INFO] [stdout] | ---------------- method in this implementation [INFO] [stdout] 27 | pub fn label(&self) -> &'static str { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new_item` is never used [INFO] [stdout] --> src/ui/vault/item_editor.rs:110:12 [INFO] [stdout] | [INFO] [stdout] 108 | impl ItemEditor { [INFO] [stdout] | --------------- associated function in this implementation [INFO] [stdout] 109 | /// Create a new editor for adding an item. [INFO] [stdout] 110 | pub fn new_item(cipher_type: CipherType) -> Self { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `primary_uri` is never used [INFO] [stdout] --> src/vault/cipher.rs:223:12 [INFO] [stdout] | [INFO] [stdout] 129 | impl Cipher { [INFO] [stdout] | ----------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 223 | pub fn primary_uri(&self) -> Option<&str> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `LoginView` is never constructed [INFO] [stdout] --> src/views/login_view.rs:14:12 [INFO] [stdout] | [INFO] [stdout] 14 | pub struct LoginView; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `show` is never used [INFO] [stdout] --> src/views/login_view.rs:18:12 [INFO] [stdout] | [INFO] [stdout] 16 | impl LoginView { [INFO] [stdout] | -------------- associated function in this implementation [INFO] [stdout] 17 | /// Render the login view and handle login flow. [INFO] [stdout] 18 | pub fn show( [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `LoginViewAction` is never used [INFO] [stdout] --> src/views/login_view.rs:80:10 [INFO] [stdout] | [INFO] [stdout] 80 | pub enum LoginViewAction { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `VaultView` is never constructed [INFO] [stdout] --> src/views/vault_view.rs:19:12 [INFO] [stdout] | [INFO] [stdout] 19 | pub struct VaultView; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `VaultViewAction` is never used [INFO] [stdout] --> src/views/vault_view.rs:23:10 [INFO] [stdout] | [INFO] [stdout] 23 | pub enum VaultViewAction { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `show` and `show_folder_editor` are never used [INFO] [stdout] --> src/views/vault_view.rs:37:12 [INFO] [stdout] | [INFO] [stdout] 34 | impl VaultView { [INFO] [stdout] | -------------- associated functions in this implementation [INFO] [stdout] ... [INFO] [stdout] 37 | pub fn show( [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 199 | fn show_folder_editor(ctx: &egui::Context, editor: &mut FolderEditor) -> FolderEditorAction { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 3m 17s [INFO] running `Command { std: "docker" "inspect" "da1b3383f0a57d53a42435d18a24352e6ae2cafa1fca4ad3cfbad5330e7f7c0c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "da1b3383f0a57d53a42435d18a24352e6ae2cafa1fca4ad3cfbad5330e7f7c0c", kill_on_drop: false }` [INFO] [stdout] da1b3383f0a57d53a42435d18a24352e6ae2cafa1fca4ad3cfbad5330e7f7c0c