[INFO] cloning repository https://github.com/k8-tools/mailmaster [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/k8-tools/mailmaster" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fk8-tools%2Fmailmaster", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fk8-tools%2Fmailmaster'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] e87e4aab098a0b65b4a282facf12bb3fd441f176 [INFO] checking k8-tools/mailmaster against master#d9563937fa3b030c5845811113505070109414d2 for pr-151830 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fk8-tools%2Fmailmaster" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/k8-tools/mailmaster [INFO] finished tweaking git repo https://github.com/k8-tools/mailmaster [INFO] tweaked toml for git repo https://github.com/k8-tools/mailmaster written to /workspace/builds/worker-7-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/k8-tools/mailmaster on toolchain d9563937fa3b030c5845811113505070109414d2 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+d9563937fa3b030c5845811113505070109414d2" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/k8-tools/mailmaster 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" "+d9563937fa3b030c5845811113505070109414d2" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded wasm-bindgen-macro v0.2.110 [INFO] [stderr] Downloaded deranged v0.5.6 [INFO] [stderr] Downloaded wasm-bindgen v0.2.110 [INFO] [stderr] Downloaded tempfile v3.25.0 [INFO] [stderr] Downloaded stop-token v0.7.0 [INFO] [stderr] Downloaded adobe-cmap-parser v0.4.1 [INFO] [stderr] Downloaded compression-core v0.4.31 [INFO] [stderr] Downloaded wasm-bindgen-macro-support v0.2.110 [INFO] [stderr] Downloaded compression-codecs v0.4.37 [INFO] [stderr] Downloaded async-native-tls v0.5.0 [INFO] [stderr] Downloaded imap-proto v0.16.6 [INFO] [stderr] Downloaded euclid v0.20.14 [INFO] [stderr] Downloaded pdf-extract v0.7.12 [INFO] [stderr] Downloaded async-compression v0.4.40 [INFO] [stderr] Downloaded lettre v0.11.19 [INFO] [stderr] Downloaded rusqlite v0.31.0 [INFO] [stderr] Downloaded async-imap v0.10.4 [INFO] [stderr] Downloaded calamine v0.24.0 [INFO] [stderr] Downloaded portable-atomic v1.13.1 [INFO] [stderr] Downloaded indicatif v0.17.11 [INFO] [stderr] Downloaded psm v0.1.30 [INFO] [stderr] Downloaded mailparse v0.16.1 [INFO] [stderr] Downloaded type1-encoding-parser v0.1.0 [INFO] [stderr] Downloaded js-sys v0.3.87 [INFO] [stderr] Downloaded csv-core v0.1.13 [INFO] [stderr] Downloaded email-encoding v0.4.1 [INFO] [stderr] Downloaded pom v1.1.0 [INFO] [stderr] Downloaded wasm-bindgen-futures v0.4.60 [INFO] [stderr] Downloaded codepage v0.1.2 [INFO] [stderr] Downloaded stacker v0.1.23 [INFO] [stderr] Downloaded postscript v0.14.1 [INFO] [stderr] Downloaded wasm-bindgen-shared v0.2.110 [INFO] [stderr] Downloaded hostname v0.4.2 [INFO] [stderr] Downloaded web-sys v0.3.87 [INFO] [stderr] Downloaded csv v1.4.0 [INFO] [stderr] Downloaded lopdf v0.34.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:61361fe0aef631f17e9d025a70c5a647956f8c671dd02950a60ad3f5cc5526d7" "/opt/rustwide/cargo-home/bin/cargo" "+d9563937fa3b030c5845811113505070109414d2" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] eb0edce5fbaa1bb079ea71783f65644b987a54b3f2120b2301a7f78683f11dd4 [INFO] running `Command { std: "docker" "start" "-a" "eb0edce5fbaa1bb079ea71783f65644b987a54b3f2120b2301a7f78683f11dd4", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "eb0edce5fbaa1bb079ea71783f65644b987a54b3f2120b2301a7f78683f11dd4", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "eb0edce5fbaa1bb079ea71783f65644b987a54b3f2120b2301a7f78683f11dd4", kill_on_drop: false }` [INFO] [stdout] eb0edce5fbaa1bb079ea71783f65644b987a54b3f2120b2301a7f78683f11dd4 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:61361fe0aef631f17e9d025a70c5a647956f8c671dd02950a60ad3f5cc5526d7" "/opt/rustwide/cargo-home/bin/cargo" "+d9563937fa3b030c5845811113505070109414d2" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 4f3fa4eed799a7ce2b0980c77197fe1a6c139bc4f07cde9d32802e5a891d30f3 [INFO] running `Command { std: "docker" "start" "-a" "4f3fa4eed799a7ce2b0980c77197fe1a6c139bc4f07cde9d32802e5a891d30f3", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.182 [INFO] [stderr] Compiling unicode-ident v1.0.24 [INFO] [stderr] Checking memchr v2.8.0 [INFO] [stderr] Checking futures-core v0.3.32 [INFO] [stderr] Compiling typenum v1.19.0 [INFO] [stderr] Checking bitflags v2.11.0 [INFO] [stderr] Compiling generic-array v0.14.7 [INFO] [stderr] Checking futures-io v0.3.32 [INFO] [stderr] Checking futures-sink v0.3.32 [INFO] [stderr] Checking log v0.4.29 [INFO] [stderr] Compiling parking_lot_core v0.9.12 [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Checking lock_api v0.4.14 [INFO] [stderr] Checking subtle v2.6.1 [INFO] [stderr] Compiling zerocopy v0.8.39 [INFO] [stderr] Checking futures-task v0.3.32 [INFO] [stderr] Compiling rustix v1.1.3 [INFO] [stderr] Checking tracing-core v0.1.36 [INFO] [stderr] Checking linux-raw-sys v0.11.0 [INFO] [stderr] Compiling object v0.37.3 [INFO] [stderr] Compiling proc-macro2 v1.0.106 [INFO] [stderr] Checking futures-channel v0.3.32 [INFO] [stderr] Checking simd-adler32 v0.3.8 [INFO] [stderr] Checking crc32fast v1.5.0 [INFO] [stderr] Compiling ahash v0.8.12 [INFO] [stderr] Compiling native-tls v0.2.18 [INFO] [stderr] Checking event-listener v5.4.1 [INFO] [stderr] Compiling async-io v2.6.0 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Checking miniz_oxide v0.8.9 [INFO] [stderr] Checking openssl-probe v0.2.1 [INFO] [stderr] Checking cpufeatures v0.2.17 [INFO] [stderr] Checking deranged v0.5.6 [INFO] [stderr] Checking futures-lite v2.6.1 [INFO] [stderr] Checking num-conv v0.2.0 [INFO] [stderr] Checking time-core v0.1.8 [INFO] [stderr] Compiling getrandom v0.4.1 [INFO] [stderr] Checking aho-corasick v1.1.4 [INFO] [stderr] Checking event-listener-strategy v0.5.4 [INFO] [stderr] Checking regex-syntax v0.8.9 [INFO] [stderr] Checking nom v7.1.3 [INFO] [stderr] Checking flate2 v1.1.9 [INFO] [stderr] Compiling quote v1.0.44 [INFO] [stderr] Checking event-listener v2.5.3 [INFO] [stderr] Compiling zstd-safe v7.2.4 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling syn v2.0.117 [INFO] [stderr] Compiling jobserver v0.1.34 [INFO] [stderr] Compiling zmij v1.0.21 [INFO] [stderr] Compiling cc v1.2.56 [INFO] [stderr] Checking async-channel v1.9.0 [INFO] [stderr] Checking async-lock v3.4.2 [INFO] [stderr] Checking async-channel v2.5.0 [INFO] [stderr] Checking sync_wrapper v1.0.2 [INFO] [stderr] Checking pom v1.1.0 [INFO] [stderr] Compiling getrandom v0.3.4 [INFO] [stderr] Checking crc-catalog v2.4.0 [INFO] [stderr] Checking getrandom v0.2.17 [INFO] [stderr] Checking errno v0.3.14 [INFO] [stderr] Checking mio v1.1.1 [INFO] [stderr] Checking parking_lot v0.12.5 [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Checking socket2 v0.6.2 [INFO] [stderr] Checking block-buffer v0.10.4 [INFO] [stderr] Checking signal-hook-registry v1.4.8 [INFO] [stderr] Checking crypto-common v0.1.7 [INFO] [stderr] Checking inout v0.1.4 [INFO] [stderr] Checking universal-hash v0.5.1 [INFO] [stderr] Checking digest v0.10.7 [INFO] [stderr] Checking ryu v1.0.23 [INFO] [stderr] Checking cipher v0.4.4 [INFO] [stderr] Compiling portable-atomic v1.13.1 [INFO] [stderr] Checking console v0.15.11 [INFO] [stderr] Checking tinyvec v1.10.0 [INFO] [stderr] Checking polyval v0.6.2 [INFO] [stderr] Checking aes v0.8.4 [INFO] [stderr] Checking time v0.3.47 [INFO] [stderr] Checking hmac v0.12.1 [INFO] [stderr] Checking md-5 v0.10.6 [INFO] [stderr] Checking crc v3.4.0 [INFO] [stderr] Checking sharded-slab v0.1.7 [INFO] [stderr] Checking tracing-log v0.2.0 [INFO] [stderr] Checking http-body-util v0.1.3 [INFO] [stderr] Compiling zip v2.4.2 [INFO] [stderr] Checking rangemap v1.7.1 [INFO] [stderr] Checking weezl v0.1.12 [INFO] [stderr] Checking quoted_printable v0.5.1 [INFO] [stderr] Compiling anyhow v1.0.102 [INFO] [stderr] Checking nu-ansi-term v0.50.3 [INFO] [stderr] Checking clap_lex v1.0.0 [INFO] [stderr] Checking bumpalo v3.20.2 [INFO] [stderr] Checking iana-time-zone v0.1.65 [INFO] [stderr] Checking clap_builder v4.5.60 [INFO] [stderr] Checking unicode-normalization v0.1.25 [INFO] [stderr] Checking imap-proto v0.16.6 [INFO] [stderr] Checking dirs-sys v0.4.1 [INFO] [stderr] Checking lzma-rs v0.3.0 [INFO] [stderr] Checking regex-automata v0.4.14 [INFO] [stderr] Checking pbkdf2 v0.12.2 [INFO] [stderr] Checking ghash v0.5.1 [INFO] [stderr] Checking zopfli v0.8.3 [INFO] [stderr] Checking ctr v0.9.2 [INFO] [stderr] Checking sha1 v0.10.6 [INFO] [stderr] Checking serde_json v1.0.149 [INFO] [stderr] Checking aead v0.5.2 [INFO] [stderr] Checking type1-encoding-parser v0.1.0 [INFO] [stderr] Checking adobe-cmap-parser v0.4.1 [INFO] [stderr] Checking nanorand v0.7.0 [INFO] [stderr] Checking hostname v0.4.2 [INFO] [stderr] Checking stop-token v0.7.0 [INFO] [stderr] Checking euclid v0.20.14 [INFO] [stderr] Checking zip v0.6.6 [INFO] [stderr] Checking nom v8.0.0 [INFO] [stderr] Checking quick-xml v0.31.0 [INFO] [stderr] Checking email-encoding v0.4.1 [INFO] [stderr] Checking csv-core v0.1.13 [INFO] [stderr] Checking charset v0.1.5 [INFO] [stderr] Checking codepage v0.1.2 [INFO] [stderr] Checking spin v0.9.8 [INFO] [stderr] Checking crossbeam-channel v0.5.15 [INFO] [stderr] Compiling openssl-sys v0.9.111 [INFO] [stderr] Compiling zstd-sys v2.0.16+zstd.1.5.7 [INFO] [stderr] Compiling stacker v0.1.23 [INFO] [stderr] Compiling lzma-sys v0.1.20 [INFO] [stderr] Compiling bzip2-sys v0.1.13+1.0.8 [INFO] [stderr] Compiling libsqlite3-sys v0.28.0 [INFO] [stderr] Checking constant_time_eq v0.3.1 [INFO] [stderr] Compiling openssl v0.10.75 [INFO] [stderr] Checking self_cell v1.2.2 [INFO] [stderr] Checking email_address v0.2.9 [INFO] [stderr] Checking data-encoding v2.10.0 [INFO] [stderr] Checking deflate64 v0.1.10 [INFO] [stderr] Checking postscript v0.14.1 [INFO] [stderr] Checking number_prefix v0.4.0 [INFO] [stderr] Checking ppv-lite86 v0.2.21 [INFO] [stderr] Checking indicatif v0.17.11 [INFO] [stderr] Checking hashbrown v0.14.5 [INFO] [stderr] Checking lopdf v0.34.0 [INFO] [stderr] Checking xz2 v0.1.7 [INFO] [stderr] Checking mailparse v0.16.1 [INFO] [stderr] Checking flume v0.11.1 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking csv v1.4.0 [INFO] [stderr] Checking aes-gcm v0.10.3 [INFO] [stderr] Checking dirs v5.0.1 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Checking uuid v1.21.0 [INFO] [stderr] Checking bzip2 v0.5.2 [INFO] [stderr] Compiling ar_archive_writer v0.5.1 [INFO] [stderr] Checking hashlink v0.9.1 [INFO] [stderr] Checking colored v2.2.0 [INFO] [stderr] Checking polling v3.11.0 [INFO] [stderr] Checking tempfile v3.25.0 [INFO] [stderr] Checking pdf-extract v0.7.12 [INFO] [stderr] Compiling psm v0.1.30 [INFO] [stderr] Checking async-signal v0.2.13 [INFO] [stderr] Checking async-process v2.5.0 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Checking matchers v0.2.0 [INFO] [stderr] Checking regex v1.12.3 [INFO] [stderr] Checking async-std v1.13.2 [INFO] [stderr] Checking chumsky v0.9.3 [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 tokio-macros v2.6.0 [INFO] [stderr] Compiling futures-macro v0.3.32 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling tracing-attributes v0.1.31 [INFO] [stderr] Compiling openssl-macros v0.1.1 [INFO] [stderr] Compiling zeroize_derive v1.4.3 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Checking zeroize v1.8.2 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Checking tokio v1.49.0 [INFO] [stderr] Compiling pin-project-internal v1.1.10 [INFO] [stderr] Checking futures-util v0.3.32 [INFO] [stderr] Checking rustls-pki-types v1.14.0 [INFO] [stderr] Compiling async-trait v0.1.89 [INFO] [stderr] Compiling clap_derive v4.5.55 [INFO] [stderr] Checking zerofrom v0.1.6 [INFO] [stderr] Checking tracing v0.1.44 [INFO] [stderr] Checking tracing-subscriber v0.3.22 [INFO] [stderr] Checking yoke v0.8.1 [INFO] [stderr] Checking pin-project v1.1.10 [INFO] [stderr] Checking zerovec v0.11.5 [INFO] [stderr] Checking zerotrie v0.2.3 [INFO] [stderr] Checking thiserror v1.0.69 [INFO] [stderr] Checking dialoguer v0.11.0 [INFO] [stderr] Checking tinystr v0.8.2 [INFO] [stderr] Checking potential_utf v0.1.4 [INFO] [stderr] Checking serde v1.0.228 [INFO] [stderr] Checking icu_collections v2.1.1 [INFO] [stderr] Checking icu_locale_core v2.1.1 [INFO] [stderr] Checking zstd v0.13.3 [INFO] [stderr] Checking tracing-appender v0.2.4 [INFO] [stderr] Checking toml_datetime v0.6.11 [INFO] [stderr] Checking serde_spanned v0.6.9 [INFO] [stderr] Checking serde_urlencoded v0.7.1 [INFO] [stderr] Checking chrono v0.4.43 [INFO] [stderr] Checking calamine v0.24.0 [INFO] [stderr] Checking clap v4.5.60 [INFO] [stderr] Checking toml_edit v0.22.27 [INFO] [stderr] Checking futures-executor v0.3.32 [INFO] [stderr] Checking icu_provider v2.1.1 [INFO] [stderr] Checking futures v0.3.32 [INFO] [stderr] Checking icu_normalizer v2.1.1 [INFO] [stderr] Checking icu_properties v2.1.2 [INFO] [stderr] Checking async-imap v0.10.4 [INFO] [stderr] Checking idna_adapter v1.2.1 [INFO] [stderr] Checking idna v1.1.0 [INFO] [stderr] Checking url v2.5.8 [INFO] [stderr] Checking toml v0.8.23 [INFO] [stderr] Checking async-native-tls v0.5.0 [INFO] [stderr] Checking tokio-util v0.7.18 [INFO] [stderr] Checking tokio-native-tls v0.3.1 [INFO] [stderr] Checking tower v0.5.3 [INFO] [stderr] Checking lettre v0.11.19 [INFO] [stderr] Checking h2 v0.4.13 [INFO] [stderr] Checking tower-http v0.6.8 [INFO] [stderr] Checking rusqlite v0.31.0 [INFO] [stderr] Checking hyper v1.8.1 [INFO] [stderr] Checking hyper-util v0.1.20 [INFO] [stderr] Checking hyper-tls v0.6.0 [INFO] [stderr] Checking reqwest v0.12.28 [INFO] [stderr] Checking mailmaster v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `std::path::PathBuf` [INFO] [stdout] --> src/commands/attachments/download.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use std::path::PathBuf; [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: `crate::core::email_parser::EmailMessage` [INFO] [stdout] --> src/commands/attachments/download.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use crate::core::email_parser::EmailMessage; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::core::attachment_handler::AttachmentHandler` [INFO] [stdout] --> src/commands/attachments/list.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::core::attachment_handler::AttachmentHandler; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Select` [INFO] [stdout] --> src/commands/clean.rs:6:26 [INFO] [stdout] | [INFO] [stdout] 6 | use dialoguer::{Confirm, Select}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fs` [INFO] [stdout] --> src/commands/classify.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use std::fs; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Context` [INFO] [stdout] --> src/commands/extract.rs:3:20 [INFO] [stdout] | [INFO] [stdout] 3 | use anyhow::{bail, Context, Result}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::core::imap_client::ImapClient` [INFO] [stdout] --> src/commands/auto_reply.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::core::imap_client::ImapClient; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fs` [INFO] [stdout] --> src/commands/monitor.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use std::fs; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `anyhow::Result` [INFO] [stdout] --> src/core/search_engine.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use anyhow::Result; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `regex::Regex` [INFO] [stdout] --> src/core/search_engine.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use regex::Regex; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> src/core/search_engine.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> src/core/rule_engine.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `bail` [INFO] [stdout] --> src/core/extractor.rs:3:14 [INFO] [stdout] | [INFO] [stdout] 3 | use anyhow::{bail, Result}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tracing::Level` [INFO] [stdout] --> src/utils/logger.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use tracing::Level; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `notifications` [INFO] [stdout] --> src/utils/notifications.rs:5:7 [INFO] [stdout] | [INFO] [stdout] 5 | #[cfg(feature = "notifications")] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition [INFO] [stdout] | [INFO] [stdout] = note: no expected values for `feature` [INFO] [stdout] = help: consider adding `notifications` as a feature in `Cargo.toml` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] = note: `#[warn(unexpected_cfgs)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `notifications` [INFO] [stdout] --> src/utils/notifications.rs:14:15 [INFO] [stdout] | [INFO] [stdout] 14 | #[cfg(feature = "notifications")] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition [INFO] [stdout] | [INFO] [stdout] = note: no expected values for `feature` [INFO] [stdout] = help: consider adding `notifications` as a feature in `Cargo.toml` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `notifications` [INFO] [stdout] --> src/utils/notifications.rs:23:19 [INFO] [stdout] | [INFO] [stdout] 23 | #[cfg(not(feature = "notifications"))] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition [INFO] [stdout] | [INFO] [stdout] = note: no expected values for `feature` [INFO] [stdout] = help: consider adding `notifications` as a feature in `Cargo.toml` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `notifications` [INFO] [stdout] --> src/utils/notifications.rs:33:15 [INFO] [stdout] | [INFO] [stdout] 33 | #[cfg(feature = "notifications")] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition [INFO] [stdout] | [INFO] [stdout] = note: no expected values for `feature` [INFO] [stdout] = help: consider adding `notifications` as a feature in `Cargo.toml` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `notifications` [INFO] [stdout] --> src/utils/notifications.rs:42:19 [INFO] [stdout] | [INFO] [stdout] 42 | #[cfg(not(feature = "notifications"))] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition [INFO] [stdout] | [INFO] [stdout] = note: no expected values for `feature` [INFO] [stdout] = help: consider adding `notifications` as a feature in `Cargo.toml` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `notifications` [INFO] [stdout] --> src/utils/notifications.rs:52:15 [INFO] [stdout] | [INFO] [stdout] 52 | #[cfg(feature = "notifications")] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition [INFO] [stdout] | [INFO] [stdout] = note: no expected values for `feature` [INFO] [stdout] = help: consider adding `notifications` as a feature in `Cargo.toml` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `notifications` [INFO] [stdout] --> src/utils/notifications.rs:61:19 [INFO] [stdout] | [INFO] [stdout] 61 | #[cfg(not(feature = "notifications"))] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition [INFO] [stdout] | [INFO] [stdout] = note: no expected values for `feature` [INFO] [stdout] = help: consider adding `notifications` as a feature in `Cargo.toml` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `notifications` [INFO] [stdout] --> src/utils/notifications.rs:71:15 [INFO] [stdout] | [INFO] [stdout] 71 | #[cfg(feature = "notifications")] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition [INFO] [stdout] | [INFO] [stdout] = note: no expected values for `feature` [INFO] [stdout] = help: consider adding `notifications` as a feature in `Cargo.toml` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `notifications` [INFO] [stdout] --> src/utils/notifications.rs:80:19 [INFO] [stdout] | [INFO] [stdout] 80 | #[cfg(not(feature = "notifications"))] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition [INFO] [stdout] | [INFO] [stdout] = note: no expected values for `feature` [INFO] [stdout] = help: consider adding `notifications` as a feature in `Cargo.toml` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `notifications` [INFO] [stdout] --> src/utils/notifications.rs:95:15 [INFO] [stdout] | [INFO] [stdout] 95 | #[cfg(feature = "notifications")] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition [INFO] [stdout] | [INFO] [stdout] = note: no expected values for `feature` [INFO] [stdout] = help: consider adding `notifications` as a feature in `Cargo.toml` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `notifications` [INFO] [stdout] --> src/utils/notifications.rs:104:19 [INFO] [stdout] | [INFO] [stdout] 104 | #[cfg(not(feature = "notifications"))] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition [INFO] [stdout] | [INFO] [stdout] = note: no expected values for `feature` [INFO] [stdout] = help: consider adding `notifications` as a feature in `Cargo.toml` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::path::PathBuf` [INFO] [stdout] --> src/commands/attachments/download.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use std::path::PathBuf; [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: `crate::core::email_parser::EmailMessage` [INFO] [stdout] --> src/commands/attachments/download.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use crate::core::email_parser::EmailMessage; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::core::attachment_handler::AttachmentHandler` [INFO] [stdout] --> src/commands/attachments/list.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::core::attachment_handler::AttachmentHandler; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Select` [INFO] [stdout] --> src/commands/clean.rs:6:26 [INFO] [stdout] | [INFO] [stdout] 6 | use dialoguer::{Confirm, Select}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fs` [INFO] [stdout] --> src/commands/classify.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use std::fs; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Context` [INFO] [stdout] --> src/commands/extract.rs:3:20 [INFO] [stdout] | [INFO] [stdout] 3 | use anyhow::{bail, Context, Result}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::core::imap_client::ImapClient` [INFO] [stdout] --> src/commands/auto_reply.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::core::imap_client::ImapClient; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fs` [INFO] [stdout] --> src/commands/monitor.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use std::fs; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `anyhow::Result` [INFO] [stdout] --> src/core/search_engine.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use anyhow::Result; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `regex::Regex` [INFO] [stdout] --> src/core/search_engine.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use regex::Regex; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> src/core/search_engine.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> src/core/rule_engine.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `bail` [INFO] [stdout] --> src/core/extractor.rs:3:14 [INFO] [stdout] | [INFO] [stdout] 3 | use anyhow::{bail, Result}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tracing::Level` [INFO] [stdout] --> src/utils/logger.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use tracing::Level; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `notifications` [INFO] [stdout] --> src/utils/notifications.rs:5:7 [INFO] [stdout] | [INFO] [stdout] 5 | #[cfg(feature = "notifications")] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition [INFO] [stdout] | [INFO] [stdout] = note: no expected values for `feature` [INFO] [stdout] = help: consider adding `notifications` as a feature in `Cargo.toml` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] = note: `#[warn(unexpected_cfgs)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `notifications` [INFO] [stdout] --> src/utils/notifications.rs:14:15 [INFO] [stdout] | [INFO] [stdout] 14 | #[cfg(feature = "notifications")] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition [INFO] [stdout] | [INFO] [stdout] = note: no expected values for `feature` [INFO] [stdout] = help: consider adding `notifications` as a feature in `Cargo.toml` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `notifications` [INFO] [stdout] --> src/utils/notifications.rs:23:19 [INFO] [stdout] | [INFO] [stdout] 23 | #[cfg(not(feature = "notifications"))] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition [INFO] [stdout] | [INFO] [stdout] = note: no expected values for `feature` [INFO] [stdout] = help: consider adding `notifications` as a feature in `Cargo.toml` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `notifications` [INFO] [stdout] --> src/utils/notifications.rs:33:15 [INFO] [stdout] | [INFO] [stdout] 33 | #[cfg(feature = "notifications")] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition [INFO] [stdout] | [INFO] [stdout] = note: no expected values for `feature` [INFO] [stdout] = help: consider adding `notifications` as a feature in `Cargo.toml` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `notifications` [INFO] [stdout] --> src/utils/notifications.rs:42:19 [INFO] [stdout] | [INFO] [stdout] 42 | #[cfg(not(feature = "notifications"))] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition [INFO] [stdout] | [INFO] [stdout] = note: no expected values for `feature` [INFO] [stdout] = help: consider adding `notifications` as a feature in `Cargo.toml` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `notifications` [INFO] [stdout] --> src/utils/notifications.rs:52:15 [INFO] [stdout] | [INFO] [stdout] 52 | #[cfg(feature = "notifications")] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition [INFO] [stdout] | [INFO] [stdout] = note: no expected values for `feature` [INFO] [stdout] = help: consider adding `notifications` as a feature in `Cargo.toml` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `notifications` [INFO] [stdout] --> src/utils/notifications.rs:61:19 [INFO] [stdout] | [INFO] [stdout] 61 | #[cfg(not(feature = "notifications"))] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition [INFO] [stdout] | [INFO] [stdout] = note: no expected values for `feature` [INFO] [stdout] = help: consider adding `notifications` as a feature in `Cargo.toml` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `notifications` [INFO] [stdout] --> src/utils/notifications.rs:71:15 [INFO] [stdout] | [INFO] [stdout] 71 | #[cfg(feature = "notifications")] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition [INFO] [stdout] | [INFO] [stdout] = note: no expected values for `feature` [INFO] [stdout] = help: consider adding `notifications` as a feature in `Cargo.toml` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `notifications` [INFO] [stdout] --> src/utils/notifications.rs:80:19 [INFO] [stdout] | [INFO] [stdout] 80 | #[cfg(not(feature = "notifications"))] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition [INFO] [stdout] | [INFO] [stdout] = note: no expected values for `feature` [INFO] [stdout] = help: consider adding `notifications` as a feature in `Cargo.toml` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `notifications` [INFO] [stdout] --> src/utils/notifications.rs:95:15 [INFO] [stdout] | [INFO] [stdout] 95 | #[cfg(feature = "notifications")] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition [INFO] [stdout] | [INFO] [stdout] = note: no expected values for `feature` [INFO] [stdout] = help: consider adding `notifications` as a feature in `Cargo.toml` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `notifications` [INFO] [stdout] --> src/utils/notifications.rs:104:19 [INFO] [stdout] | [INFO] [stdout] 104 | #[cfg(not(feature = "notifications"))] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition [INFO] [stdout] | [INFO] [stdout] = note: no expected values for `feature` [INFO] [stdout] = help: consider adding `notifications` as a feature in `Cargo.toml` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `from` [INFO] [stdout] --> src/commands/search.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | from: Option<&str>, [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_from` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `to` [INFO] [stdout] --> src/commands/search.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | to: Option<&str>, [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_to` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `before` [INFO] [stdout] --> src/commands/search.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | before: Option<&str>, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_before` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `after` [INFO] [stdout] --> src/commands/search.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | after: Option<&str>, [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_after` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `attachments_only` [INFO] [stdout] --> src/commands/search.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 19 | attachments_only: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_attachments_only` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `account` [INFO] [stdout] --> src/commands/search.rs:28:9 [INFO] [stdout] | [INFO] [stdout] 28 | let account = settings.get_default_account() [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_account` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `account` [INFO] [stdout] --> src/commands/attachments/download.rs:30:9 [INFO] [stdout] | [INFO] [stdout] 30 | let account = settings.get_default_account() [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_account` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `from_name` [INFO] [stdout] --> src/commands/attachments/download.rs:104:25 [INFO] [stdout] | [INFO] [stdout] 104 | let from_name = email.from.split('@').next().unwrap_or("unknown"); [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_from_name` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `path` [INFO] [stdout] --> src/commands/attachments/download.rs:105:25 [INFO] [stdout] | [INFO] [stdout] 105 | let path = handler.save_attachment( [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_path` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `account` [INFO] [stdout] --> src/commands/attachments/list.rs:22:9 [INFO] [stdout] | [INFO] [stdout] 22 | let account = settings.get_default_account() [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_account` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `size` [INFO] [stdout] --> src/commands/clean.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | size: Option<&str>, [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_size` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `account` [INFO] [stdout] --> src/commands/clean.rs:29:9 [INFO] [stdout] | [INFO] [stdout] 29 | let account = settings.get_default_account() [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_account` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `from` [INFO] [stdout] --> src/commands/search.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | from: Option<&str>, [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_from` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `to` [INFO] [stdout] --> src/commands/search.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | to: Option<&str>, [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_to` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `before` [INFO] [stdout] --> src/commands/search.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | before: Option<&str>, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_before` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `after` [INFO] [stdout] --> src/commands/search.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | after: Option<&str>, [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_after` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `attachments_only` [INFO] [stdout] --> src/commands/search.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 19 | attachments_only: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_attachments_only` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `account` [INFO] [stdout] --> src/commands/search.rs:28:9 [INFO] [stdout] | [INFO] [stdout] 28 | let account = settings.get_default_account() [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_account` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `folder` [INFO] [stdout] --> src/commands/archive.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | folder: &str, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_folder` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `account` [INFO] [stdout] --> src/commands/archive.rs:26:9 [INFO] [stdout] | [INFO] [stdout] 26 | let account = settings.get_default_account() [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_account` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `account` [INFO] [stdout] --> src/commands/export.rs:21:9 [INFO] [stdout] | [INFO] [stdout] 21 | let account = settings.get_default_account() [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_account` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `account` [INFO] [stdout] --> src/commands/attachments/download.rs:30:9 [INFO] [stdout] | [INFO] [stdout] 30 | let account = settings.get_default_account() [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_account` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `from_name` [INFO] [stdout] --> src/commands/attachments/download.rs:104:25 [INFO] [stdout] | [INFO] [stdout] 104 | let from_name = email.from.split('@').next().unwrap_or("unknown"); [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_from_name` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `path` [INFO] [stdout] --> src/commands/attachments/download.rs:105:25 [INFO] [stdout] | [INFO] [stdout] 105 | let path = handler.save_attachment( [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_path` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `period` [INFO] [stdout] --> src/commands/stats.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | period: &str, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_period` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `account` [INFO] [stdout] --> src/commands/stats.rs:23:9 [INFO] [stdout] | [INFO] [stdout] 23 | let account = settings.get_default_account() [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_account` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `account` [INFO] [stdout] --> src/commands/classify.rs:48:9 [INFO] [stdout] | [INFO] [stdout] 48 | let account = settings.get_default_account() [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_account` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `account` [INFO] [stdout] --> src/commands/attachments/list.rs:22:9 [INFO] [stdout] | [INFO] [stdout] 22 | let account = settings.get_default_account() [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_account` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `size` [INFO] [stdout] --> src/commands/clean.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | size: Option<&str>, [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_size` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `account` [INFO] [stdout] --> src/commands/clean.rs:29:9 [INFO] [stdout] | [INFO] [stdout] 29 | let account = settings.get_default_account() [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_account` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `subject` [INFO] [stdout] --> src/commands/auto_reply.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | subject: &str, [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_subject` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `settings` [INFO] [stdout] --> src/commands/auto_reply.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | settings: &Settings, [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_settings` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `account` [INFO] [stdout] --> src/commands/duplicate.rs:25:9 [INFO] [stdout] | [INFO] [stdout] 25 | let account = settings.get_default_account() [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_account` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `key` [INFO] [stdout] --> src/commands/duplicate.rs:71:14 [INFO] [stdout] | [INFO] [stdout] 71 | for (key, emails) in &duplicates { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_key` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `mailbox` [INFO] [stdout] --> src/commands/monitor.rs:108:5 [INFO] [stdout] | [INFO] [stdout] 108 | mailbox: Option<&str>, [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mailbox` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `account` [INFO] [stdout] --> src/commands/monitor.rs:117:9 [INFO] [stdout] | [INFO] [stdout] 117 | let account = settings.get_default_account() [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_account` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `folder` [INFO] [stdout] --> src/commands/archive.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | folder: &str, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_folder` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `account` [INFO] [stdout] --> src/commands/archive.rs:26:9 [INFO] [stdout] | [INFO] [stdout] 26 | let account = settings.get_default_account() [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_account` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `mailbox` [INFO] [stdout] --> src/commands/monitor.rs:30:5 [INFO] [stdout] | [INFO] [stdout] 30 | mailbox: Option<&str>, [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mailbox` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `account` [INFO] [stdout] --> src/commands/monitor.rs:37:9 [INFO] [stdout] | [INFO] [stdout] 37 | let account = settings.get_default_account() [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_account` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `account` [INFO] [stdout] --> src/commands/export.rs:21:9 [INFO] [stdout] | [INFO] [stdout] 21 | let account = settings.get_default_account() [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_account` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `period` [INFO] [stdout] --> src/commands/stats.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | period: &str, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_period` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `account` [INFO] [stdout] --> src/commands/stats.rs:23:9 [INFO] [stdout] | [INFO] [stdout] 23 | let account = settings.get_default_account() [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_account` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `account` [INFO] [stdout] --> src/commands/classify.rs:48:9 [INFO] [stdout] | [INFO] [stdout] 48 | let account = settings.get_default_account() [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_account` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `subject` [INFO] [stdout] --> src/commands/auto_reply.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | subject: &str, [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_subject` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `settings` [INFO] [stdout] --> src/commands/auto_reply.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | settings: &Settings, [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_settings` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `account` [INFO] [stdout] --> src/commands/duplicate.rs:25:9 [INFO] [stdout] | [INFO] [stdout] 25 | let account = settings.get_default_account() [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_account` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `key` [INFO] [stdout] --> src/commands/duplicate.rs:71:14 [INFO] [stdout] | [INFO] [stdout] 71 | for (key, emails) in &duplicates { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_key` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `mailbox` [INFO] [stdout] --> src/commands/monitor.rs:108:5 [INFO] [stdout] | [INFO] [stdout] 108 | mailbox: Option<&str>, [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mailbox` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `account` [INFO] [stdout] --> src/commands/monitor.rs:117:9 [INFO] [stdout] | [INFO] [stdout] 117 | let account = settings.get_default_account() [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_account` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `mailbox` [INFO] [stdout] --> src/commands/monitor.rs:30:5 [INFO] [stdout] | [INFO] [stdout] 30 | mailbox: Option<&str>, [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mailbox` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `account` [INFO] [stdout] --> src/commands/monitor.rs:37:9 [INFO] [stdout] | [INFO] [stdout] 37 | let account = settings.get_default_account() [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_account` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `filename` [INFO] [stdout] --> src/core/email_parser.rs:158:29 [INFO] [stdout] | [INFO] [stdout] 158 | if let Some(filename) = mail.headers.iter().find(|h| { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_filename` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `body` [INFO] [stdout] --> src/core/email_parser.rs:324:28 [INFO] [stdout] | [INFO] [stdout] 324 | } else if let Some(ref body) = email.body_html { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_body` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/core/search_engine.rs:306:13 [INFO] [stdout] | [INFO] [stdout] 306 | let mut result = text.to_string(); [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `filename` [INFO] [stdout] --> src/core/email_parser.rs:158:29 [INFO] [stdout] | [INFO] [stdout] 158 | if let Some(filename) = mail.headers.iter().find(|h| { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_filename` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `body` [INFO] [stdout] --> src/core/email_parser.rs:324:28 [INFO] [stdout] | [INFO] [stdout] 324 | } else if let Some(ref body) = email.body_html { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_body` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `template_name` [INFO] [stdout] --> src/core/extractor.rs:181:50 [INFO] [stdout] | [INFO] [stdout] 181 | fn extract_from_excel(&self, filepath: &str, template_name: Option<&str>) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_template_name` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/core/search_engine.rs:306:13 [INFO] [stdout] | [INFO] [stdout] 306 | let mut result = text.to_string(); [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `template_name` [INFO] [stdout] --> src/core/extractor.rs:181:50 [INFO] [stdout] | [INFO] [stdout] 181 | fn extract_from_excel(&self, filepath: &str, template_name: Option<&str>) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_template_name` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `operators` is never read [INFO] [stdout] --> src/core/search_engine.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 10 | pub struct SearchEngine { [INFO] [stdout] | ------------ field in this struct [INFO] [stdout] 11 | operators: SearchOperators, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `total_bytes` is never read [INFO] [stdout] --> src/utils/progress.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 8 | pub struct DownloadProgress { [INFO] [stdout] | ---------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 11 | total_bytes: u64, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `total` is never read [INFO] [stdout] --> src/utils/progress.rs:105:5 [INFO] [stdout] | [INFO] [stdout] 103 | pub struct BatchProgress { [INFO] [stdout] | ------------- field in this struct [INFO] [stdout] 104 | pb: ProgressBar, [INFO] [stdout] 105 | total: u64, [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused implementer of `futures::Stream` that must be used [INFO] [stdout] --> src/core/imap_client.rs:290:9 [INFO] [stdout] | [INFO] [stdout] 290 | session.uid_store(uid_str.as_str(), "+FLAGS.SILENT (\\Deleted)").await?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: streams do nothing unless polled [INFO] [stdout] = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused implementer of `futures::Stream` that must be used [INFO] [stdout] --> src/core/imap_client.rs:308:9 [INFO] [stdout] | [INFO] [stdout] 308 | session.uid_store(uid_str.as_str(), flag_str.as_str()).await?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: streams do nothing unless polled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused implementer of `futures::Stream` that must be used [INFO] [stdout] --> src/core/imap_client.rs:323:9 [INFO] [stdout] | [INFO] [stdout] 323 | session.uid_store(uid_str.as_str(), "+FLAGS.SILENT (\\Deleted)").await?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: streams do nothing unless polled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `operators` is never read [INFO] [stdout] --> src/core/search_engine.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 10 | pub struct SearchEngine { [INFO] [stdout] | ------------ field in this struct [INFO] [stdout] 11 | operators: SearchOperators, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `total_bytes` is never read [INFO] [stdout] --> src/utils/progress.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 8 | pub struct DownloadProgress { [INFO] [stdout] | ---------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 11 | total_bytes: u64, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `total` is never read [INFO] [stdout] --> src/utils/progress.rs:105:5 [INFO] [stdout] | [INFO] [stdout] 103 | pub struct BatchProgress { [INFO] [stdout] | ------------- field in this struct [INFO] [stdout] 104 | pb: ProgressBar, [INFO] [stdout] 105 | total: u64, [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused implementer of `futures::Stream` that must be used [INFO] [stdout] --> src/core/imap_client.rs:290:9 [INFO] [stdout] | [INFO] [stdout] 290 | session.uid_store(uid_str.as_str(), "+FLAGS.SILENT (\\Deleted)").await?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: streams do nothing unless polled [INFO] [stdout] = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused implementer of `futures::Stream` that must be used [INFO] [stdout] --> src/core/imap_client.rs:308:9 [INFO] [stdout] | [INFO] [stdout] 308 | session.uid_store(uid_str.as_str(), flag_str.as_str()).await?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: streams do nothing unless polled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused implementer of `futures::Stream` that must be used [INFO] [stdout] --> src/core/imap_client.rs:323:9 [INFO] [stdout] | [INFO] [stdout] 323 | session.uid_store(uid_str.as_str(), "+FLAGS.SILENT (\\Deleted)").await?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: streams do nothing unless polled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `colored::*` [INFO] [stdout] --> src/main.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use colored::*; [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: `std::path::PathBuf` [INFO] [stdout] --> src/commands/attachments/download.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use std::path::PathBuf; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::core::email_parser::EmailMessage` [INFO] [stdout] --> src/commands/attachments/download.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use crate::core::email_parser::EmailMessage; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::core::attachment_handler::AttachmentHandler` [INFO] [stdout] --> src/commands/attachments/list.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::core::attachment_handler::AttachmentHandler; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `download::*` [INFO] [stdout] --> src/commands/attachments.rs:6:9 [INFO] [stdout] | [INFO] [stdout] 6 | pub use download::*; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `list::*` [INFO] [stdout] --> src/commands/attachments.rs:7:9 [INFO] [stdout] | [INFO] [stdout] 7 | pub use list::*; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Select` [INFO] [stdout] --> src/commands/clean.rs:6:26 [INFO] [stdout] | [INFO] [stdout] 6 | use dialoguer::{Confirm, Select}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fs` [INFO] [stdout] --> src/commands/classify.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use std::fs; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Context` [INFO] [stdout] --> src/commands/extract.rs:3:20 [INFO] [stdout] | [INFO] [stdout] 3 | use anyhow::{bail, Context, Result}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::core::imap_client::ImapClient` [INFO] [stdout] --> src/commands/auto_reply.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::core::imap_client::ImapClient; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fs` [INFO] [stdout] --> src/commands/monitor.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use std::fs; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `search::*` [INFO] [stdout] --> src/commands/mod.rs:17:9 [INFO] [stdout] | [INFO] [stdout] 17 | pub use search::*; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `attachments::*` [INFO] [stdout] --> src/commands/mod.rs:18:9 [INFO] [stdout] | [INFO] [stdout] 18 | pub use attachments::*; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `clean::*` [INFO] [stdout] --> src/commands/mod.rs:19:9 [INFO] [stdout] | [INFO] [stdout] 19 | pub use clean::*; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `archive::*` [INFO] [stdout] --> src/commands/mod.rs:20:9 [INFO] [stdout] | [INFO] [stdout] 20 | pub use archive::*; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `export::*` [INFO] [stdout] --> src/commands/mod.rs:21:9 [INFO] [stdout] | [INFO] [stdout] 21 | pub use export::*; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `stats::*` [INFO] [stdout] --> src/commands/mod.rs:22:9 [INFO] [stdout] | [INFO] [stdout] 22 | pub use stats::*; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `classify::*` [INFO] [stdout] --> src/commands/mod.rs:23:9 [INFO] [stdout] | [INFO] [stdout] 23 | pub use classify::*; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `extract::*` [INFO] [stdout] --> src/commands/mod.rs:24:9 [INFO] [stdout] | [INFO] [stdout] 24 | pub use extract::*; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `auto_reply::*` [INFO] [stdout] --> src/commands/mod.rs:25:9 [INFO] [stdout] | [INFO] [stdout] 25 | pub use auto_reply::*; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `duplicate::*` [INFO] [stdout] --> src/commands/mod.rs:26:9 [INFO] [stdout] | [INFO] [stdout] 26 | pub use duplicate::*; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `monitor::*` [INFO] [stdout] --> src/commands/mod.rs:27:9 [INFO] [stdout] | [INFO] [stdout] 27 | pub use monitor::*; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tutorial::*` [INFO] [stdout] --> src/commands/mod.rs:28:9 [INFO] [stdout] | [INFO] [stdout] 28 | pub use tutorial::*; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `examples::*` [INFO] [stdout] --> src/commands/mod.rs:29:9 [INFO] [stdout] | [INFO] [stdout] 29 | pub use examples::*; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `settings::Settings` [INFO] [stdout] --> src/config/mod.rs:6:9 [INFO] [stdout] | [INFO] [stdout] 6 | pub use settings::Settings; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `accounts::Account` [INFO] [stdout] --> src/config/mod.rs:7:9 [INFO] [stdout] | [INFO] [stdout] 7 | pub use accounts::Account; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `anyhow::Result` [INFO] [stdout] --> src/core/search_engine.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use anyhow::Result; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `regex::Regex` [INFO] [stdout] --> src/core/search_engine.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use regex::Regex; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> src/core/search_engine.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> src/core/rule_engine.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `bail` [INFO] [stdout] --> src/core/extractor.rs:3:14 [INFO] [stdout] | [INFO] [stdout] 3 | use anyhow::{bail, Result}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `imap_client::ImapClient` [INFO] [stdout] --> src/core/mod.rs:11:9 [INFO] [stdout] | [INFO] [stdout] 11 | pub use imap_client::ImapClient; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `smtp_client::SmtpClient` [INFO] [stdout] --> src/core/mod.rs:12:9 [INFO] [stdout] | [INFO] [stdout] 12 | pub use smtp_client::SmtpClient; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `email_parser::EmailParser` [INFO] [stdout] --> src/core/mod.rs:13:9 [INFO] [stdout] | [INFO] [stdout] 13 | pub use email_parser::EmailParser; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `attachment_handler::AttachmentHandler` [INFO] [stdout] --> src/core/mod.rs:14:9 [INFO] [stdout] | [INFO] [stdout] 14 | pub use attachment_handler::AttachmentHandler; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `search_engine::SearchEngine` [INFO] [stdout] --> src/core/mod.rs:15:9 [INFO] [stdout] | [INFO] [stdout] 15 | pub use search_engine::SearchEngine; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `rule_engine::RuleEngine` [INFO] [stdout] --> src/core/mod.rs:16:9 [INFO] [stdout] | [INFO] [stdout] 16 | pub use rule_engine::RuleEngine; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `extractor::DataExtractor` [INFO] [stdout] --> src/core/mod.rs:17:9 [INFO] [stdout] | [INFO] [stdout] 17 | pub use extractor::DataExtractor; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tracing::Level` [INFO] [stdout] --> src/utils/logger.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use tracing::Level; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `notifications` [INFO] [stdout] --> src/utils/notifications.rs:5:7 [INFO] [stdout] | [INFO] [stdout] 5 | #[cfg(feature = "notifications")] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition [INFO] [stdout] | [INFO] [stdout] = note: no expected values for `feature` [INFO] [stdout] = help: consider adding `notifications` as a feature in `Cargo.toml` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] = note: `#[warn(unexpected_cfgs)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `notifications` [INFO] [stdout] --> src/utils/notifications.rs:14:15 [INFO] [stdout] | [INFO] [stdout] 14 | #[cfg(feature = "notifications")] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition [INFO] [stdout] | [INFO] [stdout] = note: no expected values for `feature` [INFO] [stdout] = help: consider adding `notifications` as a feature in `Cargo.toml` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `notifications` [INFO] [stdout] --> src/utils/notifications.rs:23:19 [INFO] [stdout] | [INFO] [stdout] 23 | #[cfg(not(feature = "notifications"))] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition [INFO] [stdout] | [INFO] [stdout] = note: no expected values for `feature` [INFO] [stdout] = help: consider adding `notifications` as a feature in `Cargo.toml` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `notifications` [INFO] [stdout] --> src/utils/notifications.rs:33:15 [INFO] [stdout] | [INFO] [stdout] 33 | #[cfg(feature = "notifications")] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition [INFO] [stdout] | [INFO] [stdout] = note: no expected values for `feature` [INFO] [stdout] = help: consider adding `notifications` as a feature in `Cargo.toml` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `notifications` [INFO] [stdout] --> src/utils/notifications.rs:42:19 [INFO] [stdout] | [INFO] [stdout] 42 | #[cfg(not(feature = "notifications"))] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition [INFO] [stdout] | [INFO] [stdout] = note: no expected values for `feature` [INFO] [stdout] = help: consider adding `notifications` as a feature in `Cargo.toml` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `notifications` [INFO] [stdout] --> src/utils/notifications.rs:52:15 [INFO] [stdout] | [INFO] [stdout] 52 | #[cfg(feature = "notifications")] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition [INFO] [stdout] | [INFO] [stdout] = note: no expected values for `feature` [INFO] [stdout] = help: consider adding `notifications` as a feature in `Cargo.toml` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `notifications` [INFO] [stdout] --> src/utils/notifications.rs:61:19 [INFO] [stdout] | [INFO] [stdout] 61 | #[cfg(not(feature = "notifications"))] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition [INFO] [stdout] | [INFO] [stdout] = note: no expected values for `feature` [INFO] [stdout] = help: consider adding `notifications` as a feature in `Cargo.toml` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `notifications` [INFO] [stdout] --> src/utils/notifications.rs:71:15 [INFO] [stdout] | [INFO] [stdout] 71 | #[cfg(feature = "notifications")] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition [INFO] [stdout] | [INFO] [stdout] = note: no expected values for `feature` [INFO] [stdout] = help: consider adding `notifications` as a feature in `Cargo.toml` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `notifications` [INFO] [stdout] --> src/utils/notifications.rs:80:19 [INFO] [stdout] | [INFO] [stdout] 80 | #[cfg(not(feature = "notifications"))] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition [INFO] [stdout] | [INFO] [stdout] = note: no expected values for `feature` [INFO] [stdout] = help: consider adding `notifications` as a feature in `Cargo.toml` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `notifications` [INFO] [stdout] --> src/utils/notifications.rs:95:15 [INFO] [stdout] | [INFO] [stdout] 95 | #[cfg(feature = "notifications")] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition [INFO] [stdout] | [INFO] [stdout] = note: no expected values for `feature` [INFO] [stdout] = help: consider adding `notifications` as a feature in `Cargo.toml` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `notifications` [INFO] [stdout] --> src/utils/notifications.rs:104:19 [INFO] [stdout] | [INFO] [stdout] 104 | #[cfg(not(feature = "notifications"))] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition [INFO] [stdout] | [INFO] [stdout] = note: no expected values for `feature` [INFO] [stdout] = help: consider adding `notifications` as a feature in `Cargo.toml` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `logger::init_logger` [INFO] [stdout] --> src/utils/mod.rs:9:9 [INFO] [stdout] | [INFO] [stdout] 9 | pub use logger::init_logger; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `colors::*` [INFO] [stdout] --> src/utils/mod.rs:10:9 [INFO] [stdout] | [INFO] [stdout] 10 | pub use colors::*; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `progress::*` [INFO] [stdout] --> src/utils/mod.rs:11:9 [INFO] [stdout] | [INFO] [stdout] 11 | pub use progress::*; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `notifications::*` [INFO] [stdout] --> src/utils/mod.rs:12:9 [INFO] [stdout] | [INFO] [stdout] 12 | pub use notifications::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `validators::*` [INFO] [stdout] --> src/utils/mod.rs:13:9 [INFO] [stdout] | [INFO] [stdout] 13 | pub use validators::*; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `colored::*` [INFO] [stdout] --> src/main.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use colored::*; [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: `std::path::PathBuf` [INFO] [stdout] --> src/commands/attachments/download.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use std::path::PathBuf; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::core::email_parser::EmailMessage` [INFO] [stdout] --> src/commands/attachments/download.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use crate::core::email_parser::EmailMessage; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::core::attachment_handler::AttachmentHandler` [INFO] [stdout] --> src/commands/attachments/list.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::core::attachment_handler::AttachmentHandler; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `download::*` [INFO] [stdout] --> src/commands/attachments.rs:6:9 [INFO] [stdout] | [INFO] [stdout] 6 | pub use download::*; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `list::*` [INFO] [stdout] --> src/commands/attachments.rs:7:9 [INFO] [stdout] | [INFO] [stdout] 7 | pub use list::*; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Select` [INFO] [stdout] --> src/commands/clean.rs:6:26 [INFO] [stdout] | [INFO] [stdout] 6 | use dialoguer::{Confirm, Select}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fs` [INFO] [stdout] --> src/commands/classify.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use std::fs; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Context` [INFO] [stdout] --> src/commands/extract.rs:3:20 [INFO] [stdout] | [INFO] [stdout] 3 | use anyhow::{bail, Context, Result}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::core::imap_client::ImapClient` [INFO] [stdout] --> src/commands/auto_reply.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::core::imap_client::ImapClient; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fs` [INFO] [stdout] --> src/commands/monitor.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use std::fs; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `search::*` [INFO] [stdout] --> src/commands/mod.rs:17:9 [INFO] [stdout] | [INFO] [stdout] 17 | pub use search::*; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `attachments::*` [INFO] [stdout] --> src/commands/mod.rs:18:9 [INFO] [stdout] | [INFO] [stdout] 18 | pub use attachments::*; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `clean::*` [INFO] [stdout] --> src/commands/mod.rs:19:9 [INFO] [stdout] | [INFO] [stdout] 19 | pub use clean::*; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `archive::*` [INFO] [stdout] --> src/commands/mod.rs:20:9 [INFO] [stdout] | [INFO] [stdout] 20 | pub use archive::*; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `export::*` [INFO] [stdout] --> src/commands/mod.rs:21:9 [INFO] [stdout] | [INFO] [stdout] 21 | pub use export::*; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `stats::*` [INFO] [stdout] --> src/commands/mod.rs:22:9 [INFO] [stdout] | [INFO] [stdout] 22 | pub use stats::*; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `classify::*` [INFO] [stdout] --> src/commands/mod.rs:23:9 [INFO] [stdout] | [INFO] [stdout] 23 | pub use classify::*; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `extract::*` [INFO] [stdout] --> src/commands/mod.rs:24:9 [INFO] [stdout] | [INFO] [stdout] 24 | pub use extract::*; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `auto_reply::*` [INFO] [stdout] --> src/commands/mod.rs:25:9 [INFO] [stdout] | [INFO] [stdout] 25 | pub use auto_reply::*; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `duplicate::*` [INFO] [stdout] --> src/commands/mod.rs:26:9 [INFO] [stdout] | [INFO] [stdout] 26 | pub use duplicate::*; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `monitor::*` [INFO] [stdout] --> src/commands/mod.rs:27:9 [INFO] [stdout] | [INFO] [stdout] 27 | pub use monitor::*; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tutorial::*` [INFO] [stdout] --> src/commands/mod.rs:28:9 [INFO] [stdout] | [INFO] [stdout] 28 | pub use tutorial::*; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `examples::*` [INFO] [stdout] --> src/commands/mod.rs:29:9 [INFO] [stdout] | [INFO] [stdout] 29 | pub use examples::*; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `settings::Settings` [INFO] [stdout] --> src/config/mod.rs:6:9 [INFO] [stdout] | [INFO] [stdout] 6 | pub use settings::Settings; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `accounts::Account` [INFO] [stdout] --> src/config/mod.rs:7:9 [INFO] [stdout] | [INFO] [stdout] 7 | pub use accounts::Account; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `anyhow::Result` [INFO] [stdout] --> src/core/search_engine.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use anyhow::Result; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `regex::Regex` [INFO] [stdout] --> src/core/search_engine.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use regex::Regex; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> src/core/search_engine.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> src/core/rule_engine.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `bail` [INFO] [stdout] --> src/core/extractor.rs:3:14 [INFO] [stdout] | [INFO] [stdout] 3 | use anyhow::{bail, Result}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `imap_client::ImapClient` [INFO] [stdout] --> src/core/mod.rs:11:9 [INFO] [stdout] | [INFO] [stdout] 11 | pub use imap_client::ImapClient; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `smtp_client::SmtpClient` [INFO] [stdout] --> src/core/mod.rs:12:9 [INFO] [stdout] | [INFO] [stdout] 12 | pub use smtp_client::SmtpClient; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `email_parser::EmailParser` [INFO] [stdout] --> src/core/mod.rs:13:9 [INFO] [stdout] | [INFO] [stdout] 13 | pub use email_parser::EmailParser; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `attachment_handler::AttachmentHandler` [INFO] [stdout] --> src/core/mod.rs:14:9 [INFO] [stdout] | [INFO] [stdout] 14 | pub use attachment_handler::AttachmentHandler; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `search_engine::SearchEngine` [INFO] [stdout] --> src/core/mod.rs:15:9 [INFO] [stdout] | [INFO] [stdout] 15 | pub use search_engine::SearchEngine; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `rule_engine::RuleEngine` [INFO] [stdout] --> src/core/mod.rs:16:9 [INFO] [stdout] | [INFO] [stdout] 16 | pub use rule_engine::RuleEngine; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `extractor::DataExtractor` [INFO] [stdout] --> src/core/mod.rs:17:9 [INFO] [stdout] | [INFO] [stdout] 17 | pub use extractor::DataExtractor; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tracing::Level` [INFO] [stdout] --> src/utils/logger.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use tracing::Level; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `notifications` [INFO] [stdout] --> src/utils/notifications.rs:5:7 [INFO] [stdout] | [INFO] [stdout] 5 | #[cfg(feature = "notifications")] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition [INFO] [stdout] | [INFO] [stdout] = note: no expected values for `feature` [INFO] [stdout] = help: consider adding `notifications` as a feature in `Cargo.toml` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] = note: `#[warn(unexpected_cfgs)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `notifications` [INFO] [stdout] --> src/utils/notifications.rs:14:15 [INFO] [stdout] | [INFO] [stdout] 14 | #[cfg(feature = "notifications")] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition [INFO] [stdout] | [INFO] [stdout] = note: no expected values for `feature` [INFO] [stdout] = help: consider adding `notifications` as a feature in `Cargo.toml` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `notifications` [INFO] [stdout] --> src/utils/notifications.rs:23:19 [INFO] [stdout] | [INFO] [stdout] 23 | #[cfg(not(feature = "notifications"))] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition [INFO] [stdout] | [INFO] [stdout] = note: no expected values for `feature` [INFO] [stdout] = help: consider adding `notifications` as a feature in `Cargo.toml` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `notifications` [INFO] [stdout] --> src/utils/notifications.rs:33:15 [INFO] [stdout] | [INFO] [stdout] 33 | #[cfg(feature = "notifications")] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition [INFO] [stdout] | [INFO] [stdout] = note: no expected values for `feature` [INFO] [stdout] = help: consider adding `notifications` as a feature in `Cargo.toml` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `notifications` [INFO] [stdout] --> src/utils/notifications.rs:42:19 [INFO] [stdout] | [INFO] [stdout] 42 | #[cfg(not(feature = "notifications"))] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition [INFO] [stdout] | [INFO] [stdout] = note: no expected values for `feature` [INFO] [stdout] = help: consider adding `notifications` as a feature in `Cargo.toml` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `notifications` [INFO] [stdout] --> src/utils/notifications.rs:52:15 [INFO] [stdout] | [INFO] [stdout] 52 | #[cfg(feature = "notifications")] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition [INFO] [stdout] | [INFO] [stdout] = note: no expected values for `feature` [INFO] [stdout] = help: consider adding `notifications` as a feature in `Cargo.toml` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `notifications` [INFO] [stdout] --> src/utils/notifications.rs:61:19 [INFO] [stdout] | [INFO] [stdout] 61 | #[cfg(not(feature = "notifications"))] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition [INFO] [stdout] | [INFO] [stdout] = note: no expected values for `feature` [INFO] [stdout] = help: consider adding `notifications` as a feature in `Cargo.toml` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `notifications` [INFO] [stdout] --> src/utils/notifications.rs:71:15 [INFO] [stdout] | [INFO] [stdout] 71 | #[cfg(feature = "notifications")] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition [INFO] [stdout] | [INFO] [stdout] = note: no expected values for `feature` [INFO] [stdout] = help: consider adding `notifications` as a feature in `Cargo.toml` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `notifications` [INFO] [stdout] --> src/utils/notifications.rs:80:19 [INFO] [stdout] | [INFO] [stdout] 80 | #[cfg(not(feature = "notifications"))] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition [INFO] [stdout] | [INFO] [stdout] = note: no expected values for `feature` [INFO] [stdout] = help: consider adding `notifications` as a feature in `Cargo.toml` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `notifications` [INFO] [stdout] --> src/utils/notifications.rs:95:15 [INFO] [stdout] | [INFO] [stdout] 95 | #[cfg(feature = "notifications")] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition [INFO] [stdout] | [INFO] [stdout] = note: no expected values for `feature` [INFO] [stdout] = help: consider adding `notifications` as a feature in `Cargo.toml` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `notifications` [INFO] [stdout] --> src/utils/notifications.rs:104:19 [INFO] [stdout] | [INFO] [stdout] 104 | #[cfg(not(feature = "notifications"))] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove the condition [INFO] [stdout] | [INFO] [stdout] = note: no expected values for `feature` [INFO] [stdout] = help: consider adding `notifications` as a feature in `Cargo.toml` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `logger::init_logger` [INFO] [stdout] --> src/utils/mod.rs:9:9 [INFO] [stdout] | [INFO] [stdout] 9 | pub use logger::init_logger; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `colors::*` [INFO] [stdout] --> src/utils/mod.rs:10:9 [INFO] [stdout] | [INFO] [stdout] 10 | pub use colors::*; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `progress::*` [INFO] [stdout] --> src/utils/mod.rs:11:9 [INFO] [stdout] | [INFO] [stdout] 11 | pub use progress::*; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `notifications::*` [INFO] [stdout] --> src/utils/mod.rs:12:9 [INFO] [stdout] | [INFO] [stdout] 12 | pub use notifications::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `validators::*` [INFO] [stdout] --> src/utils/mod.rs:13:9 [INFO] [stdout] | [INFO] [stdout] 13 | pub use validators::*; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `from` [INFO] [stdout] --> src/commands/search.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | from: Option<&str>, [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_from` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `to` [INFO] [stdout] --> src/commands/search.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | to: Option<&str>, [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_to` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `before` [INFO] [stdout] --> src/commands/search.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | before: Option<&str>, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_before` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `after` [INFO] [stdout] --> src/commands/search.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | after: Option<&str>, [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_after` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `attachments_only` [INFO] [stdout] --> src/commands/search.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 19 | attachments_only: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_attachments_only` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `account` [INFO] [stdout] --> src/commands/search.rs:28:9 [INFO] [stdout] | [INFO] [stdout] 28 | let account = settings.get_default_account() [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_account` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `account` [INFO] [stdout] --> src/commands/attachments/download.rs:30:9 [INFO] [stdout] | [INFO] [stdout] 30 | let account = settings.get_default_account() [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_account` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `from_name` [INFO] [stdout] --> src/commands/attachments/download.rs:104:25 [INFO] [stdout] | [INFO] [stdout] 104 | let from_name = email.from.split('@').next().unwrap_or("unknown"); [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_from_name` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `path` [INFO] [stdout] --> src/commands/attachments/download.rs:105:25 [INFO] [stdout] | [INFO] [stdout] 105 | let path = handler.save_attachment( [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_path` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `account` [INFO] [stdout] --> src/commands/attachments/list.rs:22:9 [INFO] [stdout] | [INFO] [stdout] 22 | let account = settings.get_default_account() [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_account` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `from` [INFO] [stdout] --> src/commands/search.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | from: Option<&str>, [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_from` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `to` [INFO] [stdout] --> src/commands/search.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | to: Option<&str>, [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_to` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `before` [INFO] [stdout] --> src/commands/search.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | before: Option<&str>, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_before` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `after` [INFO] [stdout] --> src/commands/search.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | after: Option<&str>, [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_after` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `attachments_only` [INFO] [stdout] --> src/commands/search.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 19 | attachments_only: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_attachments_only` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `account` [INFO] [stdout] --> src/commands/search.rs:28:9 [INFO] [stdout] | [INFO] [stdout] 28 | let account = settings.get_default_account() [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_account` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `size` [INFO] [stdout] --> src/commands/clean.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | size: Option<&str>, [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_size` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `account` [INFO] [stdout] --> src/commands/clean.rs:29:9 [INFO] [stdout] | [INFO] [stdout] 29 | let account = settings.get_default_account() [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_account` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `folder` [INFO] [stdout] --> src/commands/archive.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | folder: &str, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_folder` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `account` [INFO] [stdout] --> src/commands/archive.rs:26:9 [INFO] [stdout] | [INFO] [stdout] 26 | let account = settings.get_default_account() [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_account` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `account` [INFO] [stdout] --> src/commands/export.rs:21:9 [INFO] [stdout] | [INFO] [stdout] 21 | let account = settings.get_default_account() [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_account` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `account` [INFO] [stdout] --> src/commands/attachments/download.rs:30:9 [INFO] [stdout] | [INFO] [stdout] 30 | let account = settings.get_default_account() [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_account` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `from_name` [INFO] [stdout] --> src/commands/attachments/download.rs:104:25 [INFO] [stdout] | [INFO] [stdout] 104 | let from_name = email.from.split('@').next().unwrap_or("unknown"); [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_from_name` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `path` [INFO] [stdout] --> src/commands/attachments/download.rs:105:25 [INFO] [stdout] | [INFO] [stdout] 105 | let path = handler.save_attachment( [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_path` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `period` [INFO] [stdout] --> src/commands/stats.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | period: &str, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_period` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `account` [INFO] [stdout] --> src/commands/stats.rs:23:9 [INFO] [stdout] | [INFO] [stdout] 23 | let account = settings.get_default_account() [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_account` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `account` [INFO] [stdout] --> src/commands/attachments/list.rs:22:9 [INFO] [stdout] | [INFO] [stdout] 22 | let account = settings.get_default_account() [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_account` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `account` [INFO] [stdout] --> src/commands/classify.rs:48:9 [INFO] [stdout] | [INFO] [stdout] 48 | let account = settings.get_default_account() [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_account` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `size` [INFO] [stdout] --> src/commands/clean.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | size: Option<&str>, [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_size` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `account` [INFO] [stdout] --> src/commands/clean.rs:29:9 [INFO] [stdout] | [INFO] [stdout] 29 | let account = settings.get_default_account() [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_account` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `subject` [INFO] [stdout] --> src/commands/auto_reply.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | subject: &str, [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_subject` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `settings` [INFO] [stdout] --> src/commands/auto_reply.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | settings: &Settings, [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_settings` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `account` [INFO] [stdout] --> src/commands/duplicate.rs:25:9 [INFO] [stdout] | [INFO] [stdout] 25 | let account = settings.get_default_account() [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_account` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `key` [INFO] [stdout] --> src/commands/duplicate.rs:71:14 [INFO] [stdout] | [INFO] [stdout] 71 | for (key, emails) in &duplicates { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_key` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `mailbox` [INFO] [stdout] --> src/commands/monitor.rs:108:5 [INFO] [stdout] | [INFO] [stdout] 108 | mailbox: Option<&str>, [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mailbox` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `account` [INFO] [stdout] --> src/commands/monitor.rs:117:9 [INFO] [stdout] | [INFO] [stdout] 117 | let account = settings.get_default_account() [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_account` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `mailbox` [INFO] [stdout] --> src/commands/monitor.rs:30:5 [INFO] [stdout] | [INFO] [stdout] 30 | mailbox: Option<&str>, [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mailbox` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `folder` [INFO] [stdout] --> src/commands/archive.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | folder: &str, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_folder` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `account` [INFO] [stdout] --> src/commands/archive.rs:26:9 [INFO] [stdout] | [INFO] [stdout] 26 | let account = settings.get_default_account() [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_account` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `account` [INFO] [stdout] --> src/commands/monitor.rs:37:9 [INFO] [stdout] | [INFO] [stdout] 37 | let account = settings.get_default_account() [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_account` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `account` [INFO] [stdout] --> src/commands/export.rs:21:9 [INFO] [stdout] | [INFO] [stdout] 21 | let account = settings.get_default_account() [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_account` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `period` [INFO] [stdout] --> src/commands/stats.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | period: &str, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_period` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `account` [INFO] [stdout] --> src/commands/stats.rs:23:9 [INFO] [stdout] | [INFO] [stdout] 23 | let account = settings.get_default_account() [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_account` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `account` [INFO] [stdout] --> src/commands/classify.rs:48:9 [INFO] [stdout] | [INFO] [stdout] 48 | let account = settings.get_default_account() [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_account` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `subject` [INFO] [stdout] --> src/commands/auto_reply.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | subject: &str, [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_subject` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `settings` [INFO] [stdout] --> src/commands/auto_reply.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | settings: &Settings, [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_settings` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `account` [INFO] [stdout] --> src/commands/duplicate.rs:25:9 [INFO] [stdout] | [INFO] [stdout] 25 | let account = settings.get_default_account() [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_account` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `key` [INFO] [stdout] --> src/commands/duplicate.rs:71:14 [INFO] [stdout] | [INFO] [stdout] 71 | for (key, emails) in &duplicates { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_key` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `mailbox` [INFO] [stdout] --> src/commands/monitor.rs:108:5 [INFO] [stdout] | [INFO] [stdout] 108 | mailbox: Option<&str>, [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mailbox` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `account` [INFO] [stdout] --> src/commands/monitor.rs:117:9 [INFO] [stdout] | [INFO] [stdout] 117 | let account = settings.get_default_account() [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_account` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `mailbox` [INFO] [stdout] --> src/commands/monitor.rs:30:5 [INFO] [stdout] | [INFO] [stdout] 30 | mailbox: Option<&str>, [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mailbox` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `account` [INFO] [stdout] --> src/commands/monitor.rs:37:9 [INFO] [stdout] | [INFO] [stdout] 37 | let account = settings.get_default_account() [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_account` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `filename` [INFO] [stdout] --> src/core/email_parser.rs:158:29 [INFO] [stdout] | [INFO] [stdout] 158 | if let Some(filename) = mail.headers.iter().find(|h| { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_filename` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `body` [INFO] [stdout] --> src/core/email_parser.rs:324:28 [INFO] [stdout] | [INFO] [stdout] 324 | } else if let Some(ref body) = email.body_html { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_body` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/core/search_engine.rs:306:13 [INFO] [stdout] | [INFO] [stdout] 306 | let mut result = text.to_string(); [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `template_name` [INFO] [stdout] --> src/core/extractor.rs:181:50 [INFO] [stdout] | [INFO] [stdout] 181 | fn extract_from_excel(&self, filepath: &str, template_name: Option<&str>) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_template_name` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `filename` [INFO] [stdout] --> src/core/email_parser.rs:158:29 [INFO] [stdout] | [INFO] [stdout] 158 | if let Some(filename) = mail.headers.iter().find(|h| { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_filename` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `body` [INFO] [stdout] --> src/core/email_parser.rs:324:28 [INFO] [stdout] | [INFO] [stdout] 324 | } else if let Some(ref body) = email.body_html { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_body` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/core/search_engine.rs:306:13 [INFO] [stdout] | [INFO] [stdout] 306 | let mut result = text.to_string(); [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `template_name` [INFO] [stdout] --> src/core/extractor.rs:181:50 [INFO] [stdout] | [INFO] [stdout] 181 | fn extract_from_excel(&self, filepath: &str, template_name: Option<&str>) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_template_name` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `password` is never read [INFO] [stdout] --> src/config/settings.rs:52:9 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct Account { [INFO] [stdout] | ------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 52 | pub password: Option, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Account` has derived impls for the traits `Clone` and `Debug`, but these are 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: method `add_account` is never used [INFO] [stdout] --> src/config/settings.rs:235:12 [INFO] [stdout] | [INFO] [stdout] 169 | impl Settings { [INFO] [stdout] | ------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 235 | pub fn add_account(&mut self, name: &str, account: Account) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `load_env_secrets` is never used [INFO] [stdout] --> src/config/settings.rs:241:8 [INFO] [stdout] | [INFO] [stdout] 241 | pub fn load_env_secrets() -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Account` is never constructed [INFO] [stdout] --> src/config/accounts.rs:7:12 [INFO] [stdout] | [INFO] [stdout] 7 | pub struct Account { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `AuthMethod` is never used [INFO] [stdout] --> src/config/accounts.rs:31:10 [INFO] [stdout] | [INFO] [stdout] 31 | pub enum AuthMethod { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `with_oauth2`, `with_imap_port`, and `with_smtp_port` are never used [INFO] [stdout] --> src/config/accounts.rs:40:12 [INFO] [stdout] | [INFO] [stdout] 38 | impl Account { [INFO] [stdout] | ------------ associated items in this implementation [INFO] [stdout] 39 | /// Crée un nouveau compte [INFO] [stdout] 40 | pub fn new( [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 60 | pub fn with_oauth2(mut self) -> Self { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 66 | pub fn with_imap_port(mut self, port: u16) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 72 | pub fn with_smtp_port(mut self, port: u16) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `AccountManager` is never constructed [INFO] [stdout] --> src/config/accounts.rs:79:12 [INFO] [stdout] | [INFO] [stdout] 79 | pub struct AccountManager { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `add_account`, `get_account`, `list_accounts`, and `get_default` are never used [INFO] [stdout] --> src/config/accounts.rs:91:12 [INFO] [stdout] | [INFO] [stdout] 89 | impl AccountManager { [INFO] [stdout] | ------------------- associated items in this implementation [INFO] [stdout] 90 | /// Crée un nouveau gestionnaire [INFO] [stdout] 91 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 98 | pub fn add_account(&mut self, account: Account) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 103 | pub fn get_account(&self, name: &str) -> Option<&Account> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 108 | pub fn list_accounts(&self) -> &[Account] { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 113 | pub fn get_default(&self) -> Option<&Account> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `use_ssl` is never read [INFO] [stdout] --> src/core/imap_client.rs:35:9 [INFO] [stdout] | [INFO] [stdout] 30 | pub struct ImapConfig { [INFO] [stdout] | ---------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 35 | pub use_ssl: bool, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ImapConfig` 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: method `list_folders` is never used [INFO] [stdout] --> src/core/imap_client.rs:122:18 [INFO] [stdout] | [INFO] [stdout] 38 | impl ImapClient { [INFO] [stdout] | --------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 122 | pub async fn list_folders(&self) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `SmtpTransport` is never used [INFO] [stdout] --> src/core/smtp_client.rs:15:10 [INFO] [stdout] | [INFO] [stdout] 15 | pub type SmtpTransport = AsyncSmtpTransport; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SmtpClient` is never constructed [INFO] [stdout] --> src/core/smtp_client.rs:18:12 [INFO] [stdout] | [INFO] [stdout] 18 | pub struct SmtpClient { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SmtpConfig` is never constructed [INFO] [stdout] --> src/core/smtp_client.rs:25:12 [INFO] [stdout] | [INFO] [stdout] 25 | pub struct SmtpConfig { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `connect`, `disconnect`, `send_email`, `send_email_with_attachment`, and `from_settings` are never used [INFO] [stdout] --> src/core/smtp_client.rs:35:12 [INFO] [stdout] | [INFO] [stdout] 33 | impl SmtpClient { [INFO] [stdout] | --------------- associated items in this implementation [INFO] [stdout] 34 | /// Crée un nouveau client SMTP [INFO] [stdout] 35 | pub fn new(config: SmtpConfig) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 43 | pub async fn connect(&self) -> Result<()> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 68 | pub async fn disconnect(&self) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 80 | pub async fn send_email(&self, to: &str, subject: &str, body: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 102 | pub async fn send_email_with_attachment( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 140 | pub fn from_settings(settings: &Settings, account_name: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `headers` and `body_html` are never read [INFO] [stdout] --> src/core/email_parser.rs:11:9 [INFO] [stdout] | [INFO] [stdout] 9 | pub struct EmailMessage { [INFO] [stdout] | ------------ fields in this struct [INFO] [stdout] 10 | /// En-têtes [INFO] [stdout] 11 | pub headers: HashMap, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 25 | pub body_html: Option, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `EmailMessage` 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: method `contains` is never used [INFO] [stdout] --> src/core/email_parser.rs:207:12 [INFO] [stdout] | [INFO] [stdout] 45 | impl EmailMessage { [INFO] [stdout] | ----------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 207 | pub fn contains(&self, query: &str) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `EmailParser` is never constructed [INFO] [stdout] --> src/core/email_parser.rs:281:12 [INFO] [stdout] | [INFO] [stdout] 281 | pub struct EmailParser; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `parse`, `extract_recipients`, and `format_for_display` are never used [INFO] [stdout] --> src/core/email_parser.rs:285:12 [INFO] [stdout] | [INFO] [stdout] 283 | impl EmailParser { [INFO] [stdout] | ---------------- associated functions in this implementation [INFO] [stdout] 284 | /// Parse un email brut [INFO] [stdout] 285 | pub fn parse(raw: &[u8]) -> Result { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 291 | pub fn extract_recipients(email: &EmailMessage) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 298 | pub fn format_for_display(email: &EmailMessage) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `format_size` is never used [INFO] [stdout] --> src/core/email_parser.rs:333:4 [INFO] [stdout] | [INFO] [stdout] 333 | fn format_size(bytes: usize) -> String { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/core/attachment_handler.rs:32:12 [INFO] [stdout] | [INFO] [stdout] 15 | impl AttachmentHandler { [INFO] [stdout] | ---------------------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 32 | pub fn with_subfolders(mut self, create: bool) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 67 | pub fn save_attachments( [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 125 | pub fn list_types(attachments: &[Attachment]) -> Vec { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 143 | pub fn total_size(attachments: &[Attachment]) -> u64 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 148 | pub fn filter_by_type<'a>(attachments: &'a [Attachment], types: &[&str]) -> Vec<&'a Attachment> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 164 | pub fn filter_by_size(attachments: &[Attachment], max_size: u64) -> Vec<&Attachment> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 172 | pub fn is_valid_attachment(attachment: &Attachment) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `AttachmentMetadata` is never constructed [INFO] [stdout] --> src/core/attachment_handler.rs:181:12 [INFO] [stdout] | [INFO] [stdout] 181 | pub struct AttachmentMetadata { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `from_email_attachment` is never used [INFO] [stdout] --> src/core/attachment_handler.rs:192:12 [INFO] [stdout] | [INFO] [stdout] 190 | impl AttachmentMetadata { [INFO] [stdout] | ----------------------- associated function in this implementation [INFO] [stdout] 191 | /// Crée depuis un email et une pièce jointe [INFO] [stdout] 192 | pub fn from_email_attachment( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SearchEngine` is never constructed [INFO] [stdout] --> src/core/search_engine.rs:10:12 [INFO] [stdout] | [INFO] [stdout] 10 | pub struct SearchEngine { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SearchOperators` is never constructed [INFO] [stdout] --> src/core/search_engine.rs:15:12 [INFO] [stdout] | [INFO] [stdout] 15 | pub struct SearchOperators; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `parse_query`, `tokenize`, and `parse_field` are never used [INFO] [stdout] --> src/core/search_engine.rs:19:12 [INFO] [stdout] | [INFO] [stdout] 17 | impl SearchOperators { [INFO] [stdout] | -------------------- associated functions in this implementation [INFO] [stdout] 18 | /// Parse une requête de recherche et retourne les critères [INFO] [stdout] 19 | pub fn parse_query(query: &str) -> SearchQuery { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 66 | fn tokenize(query: &str) -> Vec { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 96 | fn parse_field(field: &str) -> SearchField { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SearchQuery` is never constructed [INFO] [stdout] --> src/core/search_engine.rs:112:12 [INFO] [stdout] | [INFO] [stdout] 112 | pub struct SearchQuery { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `add_criterion`, `with_limit`, `search`, `matches`, and `criterion_matches` are never used [INFO] [stdout] --> src/core/search_engine.rs:119:12 [INFO] [stdout] | [INFO] [stdout] 117 | impl SearchQuery { [INFO] [stdout] | ---------------- associated items in this implementation [INFO] [stdout] 118 | /// Crée une nouvelle requête [INFO] [stdout] 119 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 127 | pub fn add_criterion(&mut self, criterion: SearchCriterion) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 132 | pub fn with_limit(mut self, limit: usize) -> Self { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 138 | pub fn search<'a>(&self, emails: &'a [EmailMessage]) -> Vec<&'a EmailMessage> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 146 | pub fn matches(&self, email: &EmailMessage) -> bool { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 164 | fn criterion_matches(&self, criterion: &SearchCriterion, email: &EmailMessage) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SearchCriterion` is never constructed [INFO] [stdout] --> src/core/search_engine.rs:214:12 [INFO] [stdout] | [INFO] [stdout] 214 | pub struct SearchCriterion { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `SearchField` is never used [INFO] [stdout] --> src/core/search_engine.rs:222:10 [INFO] [stdout] | [INFO] [stdout] 222 | pub enum SearchField { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `LogicalOperator` is never used [INFO] [stdout] --> src/core/search_engine.rs:235:10 [INFO] [stdout] | [INFO] [stdout] 235 | pub enum LogicalOperator { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `search`, `search_with_filters`, `search_by_date`, and `highlight_matches` are never used [INFO] [stdout] --> src/core/search_engine.rs:244:12 [INFO] [stdout] | [INFO] [stdout] 242 | impl SearchEngine { [INFO] [stdout] | ----------------- associated items in this implementation [INFO] [stdout] 243 | /// Crée un nouveau moteur de recherche [INFO] [stdout] 244 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 251 | pub fn search<'a>(&self, query: &str, emails: &'a [EmailMessage]) -> Vec<&'a EmailMessage> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 257 | pub fn search_with_filters<'a>( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 288 | pub fn search_by_date<'a>( [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 304 | pub fn highlight_matches(&self, text: &str, query: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SearchResult` is never constructed [INFO] [stdout] --> src/core/search_engine.rs:323:12 [INFO] [stdout] | [INFO] [stdout] 323 | pub struct SearchResult { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `MatchInfo` is never constructed [INFO] [stdout] --> src/core/search_engine.rs:331:12 [INFO] [stdout] | [INFO] [stdout] 331 | pub struct MatchInfo { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `name` is never read [INFO] [stdout] --> src/core/rule_engine.rs:16:9 [INFO] [stdout] | [INFO] [stdout] 10 | pub struct ClassificationRule { [INFO] [stdout] | ------------------ field in this struct [INFO] [stdout] ... [INFO] [stdout] 16 | pub name: Option, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ClassificationRule` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `HasAttachments` is never constructed [INFO] [stdout] --> src/core/rule_engine.rs:38:5 [INFO] [stdout] | [INFO] [stdout] 30 | pub enum ConditionField { [INFO] [stdout] | -------------- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 38 | HasAttachments, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ConditionField` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `EndsWith`, `Regex`, and `LessThan` are never constructed [INFO] [stdout] --> src/core/rule_engine.rs:46:5 [INFO] [stdout] | [INFO] [stdout] 42 | pub enum ConditionOperator { [INFO] [stdout] | ----------------- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 46 | EndsWith, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 47 | Regex, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 48 | GreaterThan, [INFO] [stdout] 49 | LessThan, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ConditionOperator` 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 `load_from_string` and `add_rule` are never used [INFO] [stdout] --> src/core/rule_engine.rs:94:12 [INFO] [stdout] | [INFO] [stdout] 78 | impl RuleEngine { [INFO] [stdout] | --------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 94 | pub fn load_from_string(&mut self, content: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 271 | pub fn add_rule(&mut self, rule: ClassificationRule) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `save_rules_to_file` is never used [INFO] [stdout] --> src/core/rule_engine.rs:359:8 [INFO] [stdout] | [INFO] [stdout] 359 | pub fn save_rules_to_file(rules: &[ClassificationRule], path: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_log_path` is never used [INFO] [stdout] --> src/utils/logger.rs:34:8 [INFO] [stdout] | [INFO] [stdout] 34 | pub fn get_log_path() -> PathBuf { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `init_file_logger` is never used [INFO] [stdout] --> src/utils/logger.rs:43:8 [INFO] [stdout] | [INFO] [stdout] 43 | pub fn init_file_logger() -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `audit_log` is never used [INFO] [stdout] --> src/utils/logger.rs:82:8 [INFO] [stdout] | [INFO] [stdout] 82 | pub fn audit_log(action: &str, details: &str) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `format_size` is never used [INFO] [stdout] --> src/utils/logger.rs:111:8 [INFO] [stdout] | [INFO] [stdout] 111 | pub fn format_size(bytes: u64) -> String { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `success` is never used [INFO] [stdout] --> src/utils/colors.rs:6:8 [INFO] [stdout] | [INFO] [stdout] 6 | pub fn success(msg: &str) -> String { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `error` is never used [INFO] [stdout] --> src/utils/colors.rs:10:8 [INFO] [stdout] | [INFO] [stdout] 10 | pub fn error(msg: &str) -> String { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `warning` is never used [INFO] [stdout] --> src/utils/colors.rs:14:8 [INFO] [stdout] | [INFO] [stdout] 14 | pub fn warning(msg: &str) -> String { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `info` is never used [INFO] [stdout] --> src/utils/colors.rs:18:8 [INFO] [stdout] | [INFO] [stdout] 18 | pub fn info(msg: &str) -> String { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `highlight` is never used [INFO] [stdout] --> src/utils/colors.rs:22:8 [INFO] [stdout] | [INFO] [stdout] 22 | pub fn highlight(msg: &str) -> String { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated constants `DOWNLOAD`, `LOADING`, `FOLDER`, and `CALENDAR` are never used [INFO] [stdout] --> src/utils/colors.rs:33:15 [INFO] [stdout] | [INFO] [stdout] 29 | impl Symbols { [INFO] [stdout] | ------------ associated constants in this implementation [INFO] [stdout] ... [INFO] [stdout] 33 | pub const DOWNLOAD: &'static str = "⬇️"; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 63 | pub const LOADING: &'static str = "⏳"; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 67 | pub const FOLDER: &'static str = "📁"; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 68 | /// Symbole de calendrier [INFO] [stdout] 69 | pub const CALENDAR: &'static str = "📅"; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `progress_bar` is never used [INFO] [stdout] --> src/utils/colors.rs:73:8 [INFO] [stdout] | [INFO] [stdout] 73 | pub fn progress_bar(current: usize, total: usize, prefix: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `total_bytes` is never read [INFO] [stdout] --> src/utils/progress.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 8 | pub struct DownloadProgress { [INFO] [stdout] | ---------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 11 | total_bytes: u64, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `finish` is never used [INFO] [stdout] --> src/utils/progress.rs:47:12 [INFO] [stdout] | [INFO] [stdout] 15 | impl DownloadProgress { [INFO] [stdout] | --------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 47 | pub fn finish(&self) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SimpleProgress` is never constructed [INFO] [stdout] --> src/utils/progress.rs:68:12 [INFO] [stdout] | [INFO] [stdout] 68 | pub struct SimpleProgress { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `set_position`, `inc`, and `finish` are never used [INFO] [stdout] --> src/utils/progress.rs:74:12 [INFO] [stdout] | [INFO] [stdout] 72 | impl SimpleProgress { [INFO] [stdout] | ------------------- associated items in this implementation [INFO] [stdout] 73 | /// Crée une nouvelle barre de progression simple [INFO] [stdout] 74 | pub fn new(total: u64, message: &str) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 87 | pub fn set_position(&self, pos: u64) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 92 | pub fn inc(&self, delta: u64) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 97 | pub fn finish(&self) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `BatchProgress` is never constructed [INFO] [stdout] --> src/utils/progress.rs:103:12 [INFO] [stdout] | [INFO] [stdout] 103 | pub struct BatchProgress { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `next`, `finish`, and `error` are never used [INFO] [stdout] --> src/utils/progress.rs:111:12 [INFO] [stdout] | [INFO] [stdout] 109 | impl BatchProgress { [INFO] [stdout] | ------------------ associated items in this implementation [INFO] [stdout] 110 | /// Crée une nouvelle progression par lots [INFO] [stdout] 111 | pub fn new(total: u64, description: &str) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 128 | pub fn next(&mut self, item_name: &str) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 135 | pub fn finish(&self, message: &str) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 140 | pub fn error(&self, message: &str) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `progress` is never used [INFO] [stdout] --> src/utils/progress.rs:147:8 [INFO] [stdout] | [INFO] [stdout] 147 | pub fn progress(total: u64) -> ProgressBar { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `progress_with_message` is never used [INFO] [stdout] --> src/utils/progress.rs:158:8 [INFO] [stdout] | [INFO] [stdout] 158 | pub fn progress_with_message(total: u64, message: &str) -> ProgressBar { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `success`, `error`, `warning`, and `info` are never used [INFO] [stdout] --> src/utils/notifications.rs:13:12 [INFO] [stdout] | [INFO] [stdout] 11 | impl Notifier { [INFO] [stdout] | ------------- associated functions in this implementation [INFO] [stdout] 12 | /// Affiche une notification de succès [INFO] [stdout] 13 | pub fn success(title: &str, message: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 32 | pub fn error(title: &str, message: &str) -> Result<()> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 51 | pub fn warning(title: &str, message: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 70 | pub fn info(title: &str, message: &str) -> Result<()> { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `with_from` and `with_min_size` are never used [INFO] [stdout] --> src/utils/notifications.rs:159:12 [INFO] [stdout] | [INFO] [stdout] 139 | impl Alert { [INFO] [stdout] | ---------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 159 | pub fn with_from(mut self, pattern: &str) -> Self { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 165 | pub fn with_min_size(mut self, size: u64) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `EmailValidator` is never constructed [INFO] [stdout] --> src/utils/validators.rs:8:12 [INFO] [stdout] | [INFO] [stdout] 8 | pub struct EmailValidator; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `is_valid` and `validate` are never used [INFO] [stdout] --> src/utils/validators.rs:12:12 [INFO] [stdout] | [INFO] [stdout] 10 | impl EmailValidator { [INFO] [stdout] | ------------------- associated functions in this implementation [INFO] [stdout] 11 | /// Valide une adresse email [INFO] [stdout] 12 | pub fn is_valid(email: &str) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 21 | pub fn validate(email: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DateValidator` is never constructed [INFO] [stdout] --> src/utils/validators.rs:31:12 [INFO] [stdout] | [INFO] [stdout] 31 | pub struct DateValidator; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `is_valid` and `validate` are never used [INFO] [stdout] --> src/utils/validators.rs:35:12 [INFO] [stdout] | [INFO] [stdout] 33 | impl DateValidator { [INFO] [stdout] | ------------------ associated functions in this implementation [INFO] [stdout] 34 | /// Valide une date au format YYYY-MM-DD [INFO] [stdout] 35 | pub fn is_valid(date: &str) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 56 | pub fn validate(date: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `matches` is never used [INFO] [stdout] --> src/utils/validators.rs:115:12 [INFO] [stdout] | [INFO] [stdout] 68 | impl SizeValidator { [INFO] [stdout] | ------------------ associated function in this implementation [INFO] [stdout] ... [INFO] [stdout] 115 | pub fn matches(size: u64, criteria: &str) -> bool { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `PathValidator` is never constructed [INFO] [stdout] --> src/utils/validators.rs:131:12 [INFO] [stdout] | [INFO] [stdout] 131 | pub struct PathValidator; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `is_valid`, `validate`, and `ensure_dir` are never used [INFO] [stdout] --> src/utils/validators.rs:135:12 [INFO] [stdout] | [INFO] [stdout] 133 | impl PathValidator { [INFO] [stdout] | ------------------ associated functions in this implementation [INFO] [stdout] 134 | /// Vérifie si un chemin est valide [INFO] [stdout] 135 | pub fn is_valid(path: &str) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 144 | pub fn validate(path: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 153 | pub fn ensure_dir(path: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `FormatValidator` is never constructed [INFO] [stdout] --> src/utils/validators.rs:165:12 [INFO] [stdout] | [INFO] [stdout] 165 | pub struct FormatValidator; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `SUPPORTED_ARCHIVE_FORMATS`, `SUPPORTED_EXPORT_FORMATS`, `SUPPORTED_ATTACHMENT_TYPES`, `validate_archive_format`, `validate_export_format`, and `validate_attachment_type` are never used [INFO] [stdout] --> src/utils/validators.rs:169:15 [INFO] [stdout] | [INFO] [stdout] 167 | impl FormatValidator { [INFO] [stdout] | -------------------- associated items in this implementation [INFO] [stdout] 168 | /// Liste des formats supportés [INFO] [stdout] 169 | pub const SUPPORTED_ARCHIVE_FORMATS: &'static [&'static str] = &["pst", "mbox", "eml"]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 170 | pub const SUPPORTED_EXPORT_FORMATS: &'static [&'static str] = &["csv", "json"]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 171 | pub const SUPPORTED_ATTACHMENT_TYPES: &'static [&'static str] = &[ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 177 | pub fn validate_archive_format(format: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 190 | pub fn validate_export_format(format: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 203 | pub fn validate_attachment_type(attachment_type: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `PeriodValidator` is never constructed [INFO] [stdout] --> src/utils/validators.rs:217:12 [INFO] [stdout] | [INFO] [stdout] 217 | pub struct PeriodValidator; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `is_valid` and `validate` are never used [INFO] [stdout] --> src/utils/validators.rs:221:12 [INFO] [stdout] | [INFO] [stdout] 219 | impl PeriodValidator { [INFO] [stdout] | -------------------- associated functions in this implementation [INFO] [stdout] 220 | /// Valide une période [INFO] [stdout] 221 | pub fn is_valid(period: &str) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 228 | pub fn validate(period: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused implementer of `futures::Stream` that must be used [INFO] [stdout] --> src/core/imap_client.rs:290:9 [INFO] [stdout] | [INFO] [stdout] 290 | session.uid_store(uid_str.as_str(), "+FLAGS.SILENT (\\Deleted)").await?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: streams do nothing unless polled [INFO] [stdout] = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused implementer of `futures::Stream` that must be used [INFO] [stdout] --> src/core/imap_client.rs:308:9 [INFO] [stdout] | [INFO] [stdout] 308 | session.uid_store(uid_str.as_str(), flag_str.as_str()).await?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: streams do nothing unless polled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused implementer of `futures::Stream` that must be used [INFO] [stdout] --> src/core/imap_client.rs:323:9 [INFO] [stdout] | [INFO] [stdout] 323 | session.uid_store(uid_str.as_str(), "+FLAGS.SILENT (\\Deleted)").await?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: streams do nothing unless polled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `password` is never read [INFO] [stdout] --> src/config/settings.rs:52:9 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct Account { [INFO] [stdout] | ------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 52 | pub password: Option, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Account` has derived impls for the traits `Clone` and `Debug`, but these are 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: method `add_account` is never used [INFO] [stdout] --> src/config/settings.rs:235:12 [INFO] [stdout] | [INFO] [stdout] 169 | impl Settings { [INFO] [stdout] | ------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 235 | pub fn add_account(&mut self, name: &str, account: Account) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `load_env_secrets` is never used [INFO] [stdout] --> src/config/settings.rs:241:8 [INFO] [stdout] | [INFO] [stdout] 241 | pub fn load_env_secrets() -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Account` is never constructed [INFO] [stdout] --> src/config/accounts.rs:7:12 [INFO] [stdout] | [INFO] [stdout] 7 | pub struct Account { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `AuthMethod` is never used [INFO] [stdout] --> src/config/accounts.rs:31:10 [INFO] [stdout] | [INFO] [stdout] 31 | pub enum AuthMethod { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `with_oauth2`, `with_imap_port`, and `with_smtp_port` are never used [INFO] [stdout] --> src/config/accounts.rs:40:12 [INFO] [stdout] | [INFO] [stdout] 38 | impl Account { [INFO] [stdout] | ------------ associated items in this implementation [INFO] [stdout] 39 | /// Crée un nouveau compte [INFO] [stdout] 40 | pub fn new( [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 60 | pub fn with_oauth2(mut self) -> Self { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 66 | pub fn with_imap_port(mut self, port: u16) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 72 | pub fn with_smtp_port(mut self, port: u16) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `AccountManager` is never constructed [INFO] [stdout] --> src/config/accounts.rs:79:12 [INFO] [stdout] | [INFO] [stdout] 79 | pub struct AccountManager { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `add_account`, `get_account`, `list_accounts`, and `get_default` are never used [INFO] [stdout] --> src/config/accounts.rs:91:12 [INFO] [stdout] | [INFO] [stdout] 89 | impl AccountManager { [INFO] [stdout] | ------------------- associated items in this implementation [INFO] [stdout] 90 | /// Crée un nouveau gestionnaire [INFO] [stdout] 91 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 98 | pub fn add_account(&mut self, account: Account) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 103 | pub fn get_account(&self, name: &str) -> Option<&Account> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 108 | pub fn list_accounts(&self) -> &[Account] { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 113 | pub fn get_default(&self) -> Option<&Account> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `use_ssl` is never read [INFO] [stdout] --> src/core/imap_client.rs:35:9 [INFO] [stdout] | [INFO] [stdout] 30 | pub struct ImapConfig { [INFO] [stdout] | ---------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 35 | pub use_ssl: bool, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ImapConfig` 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: method `list_folders` is never used [INFO] [stdout] --> src/core/imap_client.rs:122:18 [INFO] [stdout] | [INFO] [stdout] 38 | impl ImapClient { [INFO] [stdout] | --------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 122 | pub async fn list_folders(&self) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `SmtpTransport` is never used [INFO] [stdout] --> src/core/smtp_client.rs:15:10 [INFO] [stdout] | [INFO] [stdout] 15 | pub type SmtpTransport = AsyncSmtpTransport; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SmtpClient` is never constructed [INFO] [stdout] --> src/core/smtp_client.rs:18:12 [INFO] [stdout] | [INFO] [stdout] 18 | pub struct SmtpClient { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SmtpConfig` is never constructed [INFO] [stdout] --> src/core/smtp_client.rs:25:12 [INFO] [stdout] | [INFO] [stdout] 25 | pub struct SmtpConfig { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `connect`, `disconnect`, `send_email`, `send_email_with_attachment`, and `from_settings` are never used [INFO] [stdout] --> src/core/smtp_client.rs:35:12 [INFO] [stdout] | [INFO] [stdout] 33 | impl SmtpClient { [INFO] [stdout] | --------------- associated items in this implementation [INFO] [stdout] 34 | /// Crée un nouveau client SMTP [INFO] [stdout] 35 | pub fn new(config: SmtpConfig) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 43 | pub async fn connect(&self) -> Result<()> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 68 | pub async fn disconnect(&self) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 80 | pub async fn send_email(&self, to: &str, subject: &str, body: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 102 | pub async fn send_email_with_attachment( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 140 | pub fn from_settings(settings: &Settings, account_name: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `headers` and `body_html` are never read [INFO] [stdout] --> src/core/email_parser.rs:11:9 [INFO] [stdout] | [INFO] [stdout] 9 | pub struct EmailMessage { [INFO] [stdout] | ------------ fields in this struct [INFO] [stdout] 10 | /// En-têtes [INFO] [stdout] 11 | pub headers: HashMap, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 25 | pub body_html: Option, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `EmailMessage` 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: method `contains` is never used [INFO] [stdout] --> src/core/email_parser.rs:207:12 [INFO] [stdout] | [INFO] [stdout] 45 | impl EmailMessage { [INFO] [stdout] | ----------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 207 | pub fn contains(&self, query: &str) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `EmailParser` is never constructed [INFO] [stdout] --> src/core/email_parser.rs:281:12 [INFO] [stdout] | [INFO] [stdout] 281 | pub struct EmailParser; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `parse`, `extract_recipients`, and `format_for_display` are never used [INFO] [stdout] --> src/core/email_parser.rs:285:12 [INFO] [stdout] | [INFO] [stdout] 283 | impl EmailParser { [INFO] [stdout] | ---------------- associated functions in this implementation [INFO] [stdout] 284 | /// Parse un email brut [INFO] [stdout] 285 | pub fn parse(raw: &[u8]) -> Result { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 291 | pub fn extract_recipients(email: &EmailMessage) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 298 | pub fn format_for_display(email: &EmailMessage) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `format_size` is never used [INFO] [stdout] --> src/core/email_parser.rs:333:4 [INFO] [stdout] | [INFO] [stdout] 333 | fn format_size(bytes: usize) -> String { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/core/attachment_handler.rs:32:12 [INFO] [stdout] | [INFO] [stdout] 15 | impl AttachmentHandler { [INFO] [stdout] | ---------------------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 32 | pub fn with_subfolders(mut self, create: bool) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 67 | pub fn save_attachments( [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 125 | pub fn list_types(attachments: &[Attachment]) -> Vec { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 143 | pub fn total_size(attachments: &[Attachment]) -> u64 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 148 | pub fn filter_by_type<'a>(attachments: &'a [Attachment], types: &[&str]) -> Vec<&'a Attachment> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 164 | pub fn filter_by_size(attachments: &[Attachment], max_size: u64) -> Vec<&Attachment> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 172 | pub fn is_valid_attachment(attachment: &Attachment) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `AttachmentMetadata` is never constructed [INFO] [stdout] --> src/core/attachment_handler.rs:181:12 [INFO] [stdout] | [INFO] [stdout] 181 | pub struct AttachmentMetadata { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `from_email_attachment` is never used [INFO] [stdout] --> src/core/attachment_handler.rs:192:12 [INFO] [stdout] | [INFO] [stdout] 190 | impl AttachmentMetadata { [INFO] [stdout] | ----------------------- associated function in this implementation [INFO] [stdout] 191 | /// Crée depuis un email et une pièce jointe [INFO] [stdout] 192 | pub fn from_email_attachment( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SearchEngine` is never constructed [INFO] [stdout] --> src/core/search_engine.rs:10:12 [INFO] [stdout] | [INFO] [stdout] 10 | pub struct SearchEngine { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SearchOperators` is never constructed [INFO] [stdout] --> src/core/search_engine.rs:15:12 [INFO] [stdout] | [INFO] [stdout] 15 | pub struct SearchOperators; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `parse_query`, `tokenize`, and `parse_field` are never used [INFO] [stdout] --> src/core/search_engine.rs:19:12 [INFO] [stdout] | [INFO] [stdout] 17 | impl SearchOperators { [INFO] [stdout] | -------------------- associated functions in this implementation [INFO] [stdout] 18 | /// Parse une requête de recherche et retourne les critères [INFO] [stdout] 19 | pub fn parse_query(query: &str) -> SearchQuery { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 66 | fn tokenize(query: &str) -> Vec { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 96 | fn parse_field(field: &str) -> SearchField { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SearchQuery` is never constructed [INFO] [stdout] --> src/core/search_engine.rs:112:12 [INFO] [stdout] | [INFO] [stdout] 112 | pub struct SearchQuery { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `add_criterion`, `with_limit`, `search`, `matches`, and `criterion_matches` are never used [INFO] [stdout] --> src/core/search_engine.rs:119:12 [INFO] [stdout] | [INFO] [stdout] 117 | impl SearchQuery { [INFO] [stdout] | ---------------- associated items in this implementation [INFO] [stdout] 118 | /// Crée une nouvelle requête [INFO] [stdout] 119 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 127 | pub fn add_criterion(&mut self, criterion: SearchCriterion) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 132 | pub fn with_limit(mut self, limit: usize) -> Self { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 138 | pub fn search<'a>(&self, emails: &'a [EmailMessage]) -> Vec<&'a EmailMessage> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 146 | pub fn matches(&self, email: &EmailMessage) -> bool { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 164 | fn criterion_matches(&self, criterion: &SearchCriterion, email: &EmailMessage) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SearchCriterion` is never constructed [INFO] [stdout] --> src/core/search_engine.rs:214:12 [INFO] [stdout] | [INFO] [stdout] 214 | pub struct SearchCriterion { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `SearchField` is never used [INFO] [stdout] --> src/core/search_engine.rs:222:10 [INFO] [stdout] | [INFO] [stdout] 222 | pub enum SearchField { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `LogicalOperator` is never used [INFO] [stdout] --> src/core/search_engine.rs:235:10 [INFO] [stdout] | [INFO] [stdout] 235 | pub enum LogicalOperator { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `search`, `search_with_filters`, `search_by_date`, and `highlight_matches` are never used [INFO] [stdout] --> src/core/search_engine.rs:244:12 [INFO] [stdout] | [INFO] [stdout] 242 | impl SearchEngine { [INFO] [stdout] | ----------------- associated items in this implementation [INFO] [stdout] 243 | /// Crée un nouveau moteur de recherche [INFO] [stdout] 244 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 251 | pub fn search<'a>(&self, query: &str, emails: &'a [EmailMessage]) -> Vec<&'a EmailMessage> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 257 | pub fn search_with_filters<'a>( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 288 | pub fn search_by_date<'a>( [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 304 | pub fn highlight_matches(&self, text: &str, query: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SearchResult` is never constructed [INFO] [stdout] --> src/core/search_engine.rs:323:12 [INFO] [stdout] | [INFO] [stdout] 323 | pub struct SearchResult { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `MatchInfo` is never constructed [INFO] [stdout] --> src/core/search_engine.rs:331:12 [INFO] [stdout] | [INFO] [stdout] 331 | pub struct MatchInfo { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `name` is never read [INFO] [stdout] --> src/core/rule_engine.rs:16:9 [INFO] [stdout] | [INFO] [stdout] 10 | pub struct ClassificationRule { [INFO] [stdout] | ------------------ field in this struct [INFO] [stdout] ... [INFO] [stdout] 16 | pub name: Option, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ClassificationRule` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `HasAttachments` is never constructed [INFO] [stdout] --> src/core/rule_engine.rs:38:5 [INFO] [stdout] | [INFO] [stdout] 30 | pub enum ConditionField { [INFO] [stdout] | -------------- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 38 | HasAttachments, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ConditionField` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `EndsWith`, `Regex`, and `LessThan` are never constructed [INFO] [stdout] --> src/core/rule_engine.rs:46:5 [INFO] [stdout] | [INFO] [stdout] 42 | pub enum ConditionOperator { [INFO] [stdout] | ----------------- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 46 | EndsWith, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 47 | Regex, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 48 | GreaterThan, [INFO] [stdout] 49 | LessThan, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ConditionOperator` 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 `load_from_string` and `add_rule` are never used [INFO] [stdout] --> src/core/rule_engine.rs:94:12 [INFO] [stdout] | [INFO] [stdout] 78 | impl RuleEngine { [INFO] [stdout] | --------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 94 | pub fn load_from_string(&mut self, content: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 271 | pub fn add_rule(&mut self, rule: ClassificationRule) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `save_rules_to_file` is never used [INFO] [stdout] --> src/core/rule_engine.rs:359:8 [INFO] [stdout] | [INFO] [stdout] 359 | pub fn save_rules_to_file(rules: &[ClassificationRule], path: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_log_path` is never used [INFO] [stdout] --> src/utils/logger.rs:34:8 [INFO] [stdout] | [INFO] [stdout] 34 | pub fn get_log_path() -> PathBuf { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `init_file_logger` is never used [INFO] [stdout] --> src/utils/logger.rs:43:8 [INFO] [stdout] | [INFO] [stdout] 43 | pub fn init_file_logger() -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `audit_log` is never used [INFO] [stdout] --> src/utils/logger.rs:82:8 [INFO] [stdout] | [INFO] [stdout] 82 | pub fn audit_log(action: &str, details: &str) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `format_size` is never used [INFO] [stdout] --> src/utils/logger.rs:111:8 [INFO] [stdout] | [INFO] [stdout] 111 | pub fn format_size(bytes: u64) -> String { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `success` is never used [INFO] [stdout] --> src/utils/colors.rs:6:8 [INFO] [stdout] | [INFO] [stdout] 6 | pub fn success(msg: &str) -> String { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `error` is never used [INFO] [stdout] --> src/utils/colors.rs:10:8 [INFO] [stdout] | [INFO] [stdout] 10 | pub fn error(msg: &str) -> String { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `warning` is never used [INFO] [stdout] --> src/utils/colors.rs:14:8 [INFO] [stdout] | [INFO] [stdout] 14 | pub fn warning(msg: &str) -> String { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `info` is never used [INFO] [stdout] --> src/utils/colors.rs:18:8 [INFO] [stdout] | [INFO] [stdout] 18 | pub fn info(msg: &str) -> String { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `highlight` is never used [INFO] [stdout] --> src/utils/colors.rs:22:8 [INFO] [stdout] | [INFO] [stdout] 22 | pub fn highlight(msg: &str) -> String { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated constants `DOWNLOAD`, `LOADING`, `FOLDER`, and `CALENDAR` are never used [INFO] [stdout] --> src/utils/colors.rs:33:15 [INFO] [stdout] | [INFO] [stdout] 29 | impl Symbols { [INFO] [stdout] | ------------ associated constants in this implementation [INFO] [stdout] ... [INFO] [stdout] 33 | pub const DOWNLOAD: &'static str = "⬇️"; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 63 | pub const LOADING: &'static str = "⏳"; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 67 | pub const FOLDER: &'static str = "📁"; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 68 | /// Symbole de calendrier [INFO] [stdout] 69 | pub const CALENDAR: &'static str = "📅"; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `progress_bar` is never used [INFO] [stdout] --> src/utils/colors.rs:73:8 [INFO] [stdout] | [INFO] [stdout] 73 | pub fn progress_bar(current: usize, total: usize, prefix: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `total_bytes` is never read [INFO] [stdout] --> src/utils/progress.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 8 | pub struct DownloadProgress { [INFO] [stdout] | ---------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 11 | total_bytes: u64, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `finish` is never used [INFO] [stdout] --> src/utils/progress.rs:47:12 [INFO] [stdout] | [INFO] [stdout] 15 | impl DownloadProgress { [INFO] [stdout] | --------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 47 | pub fn finish(&self) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SimpleProgress` is never constructed [INFO] [stdout] --> src/utils/progress.rs:68:12 [INFO] [stdout] | [INFO] [stdout] 68 | pub struct SimpleProgress { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `set_position`, `inc`, and `finish` are never used [INFO] [stdout] --> src/utils/progress.rs:74:12 [INFO] [stdout] | [INFO] [stdout] 72 | impl SimpleProgress { [INFO] [stdout] | ------------------- associated items in this implementation [INFO] [stdout] 73 | /// Crée une nouvelle barre de progression simple [INFO] [stdout] 74 | pub fn new(total: u64, message: &str) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 87 | pub fn set_position(&self, pos: u64) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 92 | pub fn inc(&self, delta: u64) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 97 | pub fn finish(&self) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `BatchProgress` is never constructed [INFO] [stdout] --> src/utils/progress.rs:103:12 [INFO] [stdout] | [INFO] [stdout] 103 | pub struct BatchProgress { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `next`, `finish`, and `error` are never used [INFO] [stdout] --> src/utils/progress.rs:111:12 [INFO] [stdout] | [INFO] [stdout] 109 | impl BatchProgress { [INFO] [stdout] | ------------------ associated items in this implementation [INFO] [stdout] 110 | /// Crée une nouvelle progression par lots [INFO] [stdout] 111 | pub fn new(total: u64, description: &str) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 128 | pub fn next(&mut self, item_name: &str) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 135 | pub fn finish(&self, message: &str) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 140 | pub fn error(&self, message: &str) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `progress` is never used [INFO] [stdout] --> src/utils/progress.rs:147:8 [INFO] [stdout] | [INFO] [stdout] 147 | pub fn progress(total: u64) -> ProgressBar { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `progress_with_message` is never used [INFO] [stdout] --> src/utils/progress.rs:158:8 [INFO] [stdout] | [INFO] [stdout] 158 | pub fn progress_with_message(total: u64, message: &str) -> ProgressBar { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `success`, `error`, `warning`, and `info` are never used [INFO] [stdout] --> src/utils/notifications.rs:13:12 [INFO] [stdout] | [INFO] [stdout] 11 | impl Notifier { [INFO] [stdout] | ------------- associated functions in this implementation [INFO] [stdout] 12 | /// Affiche une notification de succès [INFO] [stdout] 13 | pub fn success(title: &str, message: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 32 | pub fn error(title: &str, message: &str) -> Result<()> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 51 | pub fn warning(title: &str, message: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 70 | pub fn info(title: &str, message: &str) -> Result<()> { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `with_from` and `with_min_size` are never used [INFO] [stdout] --> src/utils/notifications.rs:159:12 [INFO] [stdout] | [INFO] [stdout] 139 | impl Alert { [INFO] [stdout] | ---------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 159 | pub fn with_from(mut self, pattern: &str) -> Self { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 165 | pub fn with_min_size(mut self, size: u64) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `EmailValidator` is never constructed [INFO] [stdout] --> src/utils/validators.rs:8:12 [INFO] [stdout] | [INFO] [stdout] 8 | pub struct EmailValidator; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `is_valid` and `validate` are never used [INFO] [stdout] --> src/utils/validators.rs:12:12 [INFO] [stdout] | [INFO] [stdout] 10 | impl EmailValidator { [INFO] [stdout] | ------------------- associated functions in this implementation [INFO] [stdout] 11 | /// Valide une adresse email [INFO] [stdout] 12 | pub fn is_valid(email: &str) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 21 | pub fn validate(email: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DateValidator` is never constructed [INFO] [stdout] --> src/utils/validators.rs:31:12 [INFO] [stdout] | [INFO] [stdout] 31 | pub struct DateValidator; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `is_valid` and `validate` are never used [INFO] [stdout] --> src/utils/validators.rs:35:12 [INFO] [stdout] | [INFO] [stdout] 33 | impl DateValidator { [INFO] [stdout] | ------------------ associated functions in this implementation [INFO] [stdout] 34 | /// Valide une date au format YYYY-MM-DD [INFO] [stdout] 35 | pub fn is_valid(date: &str) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 56 | pub fn validate(date: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `matches` is never used [INFO] [stdout] --> src/utils/validators.rs:115:12 [INFO] [stdout] | [INFO] [stdout] 68 | impl SizeValidator { [INFO] [stdout] | ------------------ associated function in this implementation [INFO] [stdout] ... [INFO] [stdout] 115 | pub fn matches(size: u64, criteria: &str) -> bool { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `PathValidator` is never constructed [INFO] [stdout] --> src/utils/validators.rs:131:12 [INFO] [stdout] | [INFO] [stdout] 131 | pub struct PathValidator; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `is_valid`, `validate`, and `ensure_dir` are never used [INFO] [stdout] --> src/utils/validators.rs:135:12 [INFO] [stdout] | [INFO] [stdout] 133 | impl PathValidator { [INFO] [stdout] | ------------------ associated functions in this implementation [INFO] [stdout] 134 | /// Vérifie si un chemin est valide [INFO] [stdout] 135 | pub fn is_valid(path: &str) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 144 | pub fn validate(path: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 153 | pub fn ensure_dir(path: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `FormatValidator` is never constructed [INFO] [stdout] --> src/utils/validators.rs:165:12 [INFO] [stdout] | [INFO] [stdout] 165 | pub struct FormatValidator; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `SUPPORTED_ARCHIVE_FORMATS`, `SUPPORTED_EXPORT_FORMATS`, `SUPPORTED_ATTACHMENT_TYPES`, `validate_archive_format`, `validate_export_format`, and `validate_attachment_type` are never used [INFO] [stdout] --> src/utils/validators.rs:169:15 [INFO] [stdout] | [INFO] [stdout] 167 | impl FormatValidator { [INFO] [stdout] | -------------------- associated items in this implementation [INFO] [stdout] 168 | /// Liste des formats supportés [INFO] [stdout] 169 | pub const SUPPORTED_ARCHIVE_FORMATS: &'static [&'static str] = &["pst", "mbox", "eml"]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 170 | pub const SUPPORTED_EXPORT_FORMATS: &'static [&'static str] = &["csv", "json"]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 171 | pub const SUPPORTED_ATTACHMENT_TYPES: &'static [&'static str] = &[ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 177 | pub fn validate_archive_format(format: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 190 | pub fn validate_export_format(format: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 203 | pub fn validate_attachment_type(attachment_type: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `PeriodValidator` is never constructed [INFO] [stdout] --> src/utils/validators.rs:217:12 [INFO] [stdout] | [INFO] [stdout] 217 | pub struct PeriodValidator; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `is_valid` and `validate` are never used [INFO] [stdout] --> src/utils/validators.rs:221:12 [INFO] [stdout] | [INFO] [stdout] 219 | impl PeriodValidator { [INFO] [stdout] | -------------------- associated functions in this implementation [INFO] [stdout] 220 | /// Valide une période [INFO] [stdout] 221 | pub fn is_valid(period: &str) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 228 | pub fn validate(period: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused implementer of `futures::Stream` that must be used [INFO] [stdout] --> src/core/imap_client.rs:290:9 [INFO] [stdout] | [INFO] [stdout] 290 | session.uid_store(uid_str.as_str(), "+FLAGS.SILENT (\\Deleted)").await?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: streams do nothing unless polled [INFO] [stdout] = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused implementer of `futures::Stream` that must be used [INFO] [stdout] --> src/core/imap_client.rs:308:9 [INFO] [stdout] | [INFO] [stdout] 308 | session.uid_store(uid_str.as_str(), flag_str.as_str()).await?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: streams do nothing unless polled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused implementer of `futures::Stream` that must be used [INFO] [stdout] --> src/core/imap_client.rs:323:9 [INFO] [stdout] | [INFO] [stdout] 323 | session.uid_store(uid_str.as_str(), "+FLAGS.SILENT (\\Deleted)").await?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: streams do nothing unless polled [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 21s [INFO] running `Command { std: "docker" "inspect" "4f3fa4eed799a7ce2b0980c77197fe1a6c139bc4f07cde9d32802e5a891d30f3", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "4f3fa4eed799a7ce2b0980c77197fe1a6c139bc4f07cde9d32802e5a891d30f3", kill_on_drop: false }` [INFO] [stdout] 4f3fa4eed799a7ce2b0980c77197fe1a6c139bc4f07cde9d32802e5a891d30f3