[INFO] cloning repository https://github.com/engineers-hub-ltd-in-house-project/rustmail [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/engineers-hub-ltd-in-house-project/rustmail" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fengineers-hub-ltd-in-house-project%2Frustmail", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fengineers-hub-ltd-in-house-project%2Frustmail'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 665043d72efe8aa2ee7d3c131f1bcd5c8fef2c33 [INFO] checking engineers-hub-ltd-in-house-project/rustmail against master#42b384ec0dfcd528d99a4db0a337d9188a9eecaa for pr-133502-16 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fengineers-hub-ltd-in-house-project%2Frustmail" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/engineers-hub-ltd-in-house-project/rustmail [INFO] finished tweaking git repo https://github.com/engineers-hub-ltd-in-house-project/rustmail [INFO] tweaked toml for git repo https://github.com/engineers-hub-ltd-in-house-project/rustmail written to /workspace/builds/worker-2-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/engineers-hub-ltd-in-house-project/rustmail on toolchain 42b384ec0dfcd528d99a4db0a337d9188a9eecaa [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+42b384ec0dfcd528d99a4db0a337d9188a9eecaa" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/engineers-hub-ltd-in-house-project/rustmail 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" "+42b384ec0dfcd528d99a4db0a337d9188a9eecaa" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded libloading v0.8.7 [INFO] [stderr] Downloaded stop-token v0.7.0 [INFO] [stderr] Downloaded stability v0.2.1 [INFO] [stderr] Downloaded serde_path_to_error v0.1.17 [INFO] [stderr] Downloaded errno v0.3.12 [INFO] [stderr] Downloaded async-native-tls v0.5.0 [INFO] [stderr] Downloaded quinn-udp v0.5.12 [INFO] [stderr] Downloaded anstyle-wincon v3.0.8 [INFO] [stderr] Downloaded cassowary v0.3.0 [INFO] [stderr] Downloaded async-imap v0.9.7 [INFO] [stderr] Downloaded prettyplease v0.2.32 [INFO] [stderr] Downloaded oauth2 v4.4.2 [INFO] [stderr] Downloaded imap v3.0.0-alpha.15 [INFO] [stderr] Downloaded hyper-util v0.1.12 [INFO] [stderr] Downloaded rusqlite v0.31.0 [INFO] [stderr] Downloaded clap_builder v4.5.38 [INFO] [stderr] Downloaded lettre v0.11.16 [INFO] [stderr] Downloaded h2 v0.4.10 [INFO] [stderr] Downloaded quinn-proto v0.11.12 [INFO] [stderr] Downloaded async-std v1.13.1 [INFO] [stderr] Downloaded syn v2.0.101 [INFO] [stderr] Downloaded rustls v0.23.27 [INFO] [stderr] Downloaded webpki-roots v1.0.0 [INFO] [stderr] Downloaded quinn v0.11.8 [INFO] [stderr] Downloaded cc v1.2.24 [INFO] [stderr] Downloaded clap v4.5.38 [INFO] [stderr] Downloaded imap-proto v0.16.5 [INFO] [stderr] Downloaded hyper-rustls v0.27.6 [INFO] [stderr] Downloaded unicode-truncate v1.1.0 [INFO] [stderr] Downloaded fallible-iterator v0.3.0 [INFO] [stderr] Downloaded fallible-streaming-iterator v0.1.9 [INFO] [stderr] Downloaded ratatui v0.26.3 [INFO] [stderr] Downloaded libsqlite3-sys v0.28.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+42b384ec0dfcd528d99a4db0a337d9188a9eecaa" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] edaf128ebbc45be2f8044560ceb0beaa3ff08b7b298059af4d0c4cebcc99bf62 [INFO] running `Command { std: "docker" "start" "-a" "edaf128ebbc45be2f8044560ceb0beaa3ff08b7b298059af4d0c4cebcc99bf62", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "edaf128ebbc45be2f8044560ceb0beaa3ff08b7b298059af4d0c4cebcc99bf62", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "edaf128ebbc45be2f8044560ceb0beaa3ff08b7b298059af4d0c4cebcc99bf62", kill_on_drop: false }` [INFO] [stdout] edaf128ebbc45be2f8044560ceb0beaa3ff08b7b298059af4d0c4cebcc99bf62 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+42b384ec0dfcd528d99a4db0a337d9188a9eecaa" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 1baf54181b351567cb1e6da541e7dd48743bf6fb14082434cb26cb06a5e4e4e9 [INFO] running `Command { std: "docker" "start" "-a" "1baf54181b351567cb1e6da541e7dd48743bf6fb14082434cb26cb06a5e4e4e9", kill_on_drop: false }` [INFO] [stderr] Checking smallvec v1.15.0 [INFO] [stderr] Checking bitflags v2.9.1 [INFO] [stderr] Compiling vcpkg v0.2.15 [INFO] [stderr] Checking mio v1.0.4 [INFO] [stderr] Checking tracing v0.1.41 [INFO] [stderr] Checking getrandom v0.2.16 [INFO] [stderr] Compiling cc v1.2.24 [INFO] [stderr] Compiling syn v2.0.101 [INFO] [stderr] Checking hashbrown v0.15.3 [INFO] [stderr] Compiling fs_extra v1.3.0 [INFO] [stderr] Checking concurrent-queue v2.5.0 [INFO] [stderr] Checking foreign-types-shared v0.1.1 [INFO] [stderr] Compiling openssl v0.10.72 [INFO] [stderr] Compiling rustix v0.38.44 [INFO] [stderr] Compiling aws-lc-rs v1.13.1 [INFO] [stderr] Compiling native-tls v0.2.14 [INFO] [stderr] Checking foreign-types v0.3.2 [INFO] [stderr] Checking linux-raw-sys v0.4.15 [INFO] [stderr] Checking openssl-probe v0.1.6 [INFO] [stderr] Compiling rustversion v1.0.21 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Checking event-listener v5.4.0 [INFO] [stderr] Compiling rustls v0.21.12 [INFO] [stderr] Checking ahash v0.8.12 [INFO] [stderr] Checking futures-lite v2.6.0 [INFO] [stderr] Compiling rustls v0.23.27 [INFO] [stderr] Checking http-body v0.4.6 [INFO] [stderr] Checking event-listener-strategy v0.5.4 [INFO] [stderr] Checking either v1.15.0 [INFO] [stderr] Checking iana-time-zone v0.1.63 [INFO] [stderr] Checking parking_lot_core v0.9.10 [INFO] [stderr] Checking hashbrown v0.14.5 [INFO] [stderr] Checking async-lock v3.4.0 [INFO] [stderr] Checking nom v7.1.3 [INFO] [stderr] Checking async-channel v2.3.1 [INFO] [stderr] Checking async-channel v1.9.0 [INFO] [stderr] Checking signal-hook v0.3.18 [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Checking webpki-roots v1.0.0 [INFO] [stderr] Checking parking_lot v0.12.3 [INFO] [stderr] Checking mio v0.8.11 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking itertools v0.13.0 [INFO] [stderr] Checking rustls-pemfile v1.0.4 [INFO] [stderr] Checking signal-hook-mio v0.2.4 [INFO] [stderr] Checking webpki-roots v0.25.4 [INFO] [stderr] Checking sha2 v0.10.9 [INFO] [stderr] Checking castaway v0.2.3 [INFO] [stderr] Checking crossterm v0.27.0 [INFO] [stderr] Checking clap_builder v4.5.38 [INFO] [stderr] Checking dirs-sys v0.4.1 [INFO] [stderr] Checking compact_str v0.7.1 [INFO] [stderr] Checking indexmap v2.9.0 [INFO] [stderr] Checking lru v0.12.5 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Checking webpki-roots v0.26.11 [INFO] [stderr] Checking getrandom v0.3.3 [INFO] [stderr] Checking hashlink v0.9.1 [INFO] [stderr] Checking stop-token v0.7.0 [INFO] [stderr] Checking itertools v0.12.1 [INFO] [stderr] Checking email-encoding v0.4.1 [INFO] [stderr] Checking rustls-pemfile v2.2.0 [INFO] [stderr] Checking hostname v0.4.1 [INFO] [stderr] Checking nom v8.0.0 [INFO] [stderr] Checking self_cell v1.2.0 [INFO] [stderr] Checking cassowary v0.3.0 [INFO] [stderr] Checking fallible-streaming-iterator v0.1.9 [INFO] [stderr] Checking fallible-iterator v0.3.0 [INFO] [stderr] Checking bufstream v0.1.4 [INFO] [stderr] Checking uuid v1.17.0 [INFO] [stderr] Checking dirs v5.0.1 [INFO] [stderr] Compiling cmake v0.1.54 [INFO] [stderr] Compiling ring v0.17.14 [INFO] [stderr] Compiling openssl-sys v0.9.108 [INFO] [stderr] Compiling aws-lc-sys v0.29.0 [INFO] [stderr] Compiling psm v0.1.26 [INFO] [stderr] Compiling stacker v0.1.21 [INFO] [stderr] Compiling libsqlite3-sys v0.28.0 [INFO] [stderr] Checking imap-proto v0.16.5 [INFO] [stderr] Checking unicode-truncate v1.1.0 [INFO] [stderr] Checking chumsky v0.9.3 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Compiling proc-macro2-diagnostics v0.10.1 [INFO] [stderr] Checking sct v0.7.1 [INFO] [stderr] Checking rustls-webpki v0.101.7 [INFO] [stderr] Checking polling v3.7.4 [INFO] [stderr] Checking async-io v2.4.0 [INFO] [stderr] Compiling zerofrom-derive v0.1.6 [INFO] [stderr] Compiling yoke-derive v0.8.0 [INFO] [stderr] Compiling futures-macro v0.3.31 [INFO] [stderr] Compiling tokio-macros v2.5.0 [INFO] [stderr] Compiling zerovec-derive v0.11.1 [INFO] [stderr] Compiling displaydoc v0.2.5 [INFO] [stderr] Compiling serde_derive v1.0.219 [INFO] [stderr] Compiling openssl-macros v0.1.1 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Checking async-signal v0.2.10 [INFO] [stderr] Checking async-process v2.3.0 [INFO] [stderr] Compiling strum_macros v0.26.4 [INFO] [stderr] Checking tokio v1.45.1 [INFO] [stderr] Checking zerofrom v0.1.6 [INFO] [stderr] Checking futures-util v0.3.31 [INFO] [stderr] Compiling ouroboros_macro v0.18.5 [INFO] [stderr] Checking async-std v1.13.1 [INFO] [stderr] Compiling clap_derive v4.5.32 [INFO] [stderr] Compiling stability v0.2.1 [INFO] [stderr] Checking yoke v0.8.0 [INFO] [stderr] Checking zerovec v0.11.2 [INFO] [stderr] Checking zerotrie v0.2.2 [INFO] [stderr] Checking thiserror v1.0.69 [INFO] [stderr] Checking strum v0.26.3 [INFO] [stderr] Checking ouroboros v0.18.5 [INFO] [stderr] Checking ratatui v0.26.3 [INFO] [stderr] Checking clap v4.5.38 [INFO] [stderr] Checking serde v1.0.219 [INFO] [stderr] Checking tinystr v0.8.1 [INFO] [stderr] Checking potential_utf v0.1.2 [INFO] [stderr] Checking icu_collections v2.0.0 [INFO] [stderr] Checking icu_locale_core v2.0.0 [INFO] [stderr] Checking icu_provider v2.0.0 [INFO] [stderr] Checking icu_properties v2.0.1 [INFO] [stderr] Checking icu_normalizer v2.0.0 [INFO] [stderr] Checking idna_adapter v1.2.1 [INFO] [stderr] Checking idna v1.0.3 [INFO] [stderr] Checking futures-executor v0.3.31 [INFO] [stderr] Checking futures v0.3.31 [INFO] [stderr] Checking url v2.5.4 [INFO] [stderr] Checking chrono v0.4.41 [INFO] [stderr] Checking serde_urlencoded v0.7.1 [INFO] [stderr] Checking serde_json v1.0.140 [INFO] [stderr] Checking serde_path_to_error v0.1.17 [INFO] [stderr] Checking async-native-tls v0.5.0 [INFO] [stderr] Checking lettre v0.11.16 [INFO] [stderr] Checking tokio-util v0.7.15 [INFO] [stderr] Checking tokio-rustls v0.24.1 [INFO] [stderr] Checking tokio-native-tls v0.3.1 [INFO] [stderr] Checking tower v0.5.2 [INFO] [stderr] Checking rustls-webpki v0.103.3 [INFO] [stderr] Checking async-imap v0.9.7 [INFO] [stderr] Checking imap v3.0.0-alpha.15 [INFO] [stderr] Checking h2 v0.4.10 [INFO] [stderr] Checking h2 v0.3.26 [INFO] [stderr] Checking rusqlite v0.31.0 [INFO] [stderr] Checking hyper v0.14.32 [INFO] [stderr] Checking hyper v1.6.0 [INFO] [stderr] Checking hyper-util v0.1.12 [INFO] [stderr] Checking tokio-rustls v0.26.2 [INFO] [stderr] Checking hyper-tls v0.6.0 [INFO] [stderr] Checking hyper-rustls v0.27.6 [INFO] [stderr] Checking reqwest v0.12.15 [INFO] [stderr] Checking hyper-rustls v0.24.2 [INFO] [stderr] Checking reqwest v0.11.27 [INFO] [stderr] Checking oauth2 v4.4.2 [INFO] [stderr] Checking rustmail v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused imports: `Context` and `Result` [INFO] [stdout] --> src/mail/gmail_api.rs:2:14 [INFO] [stdout] | [INFO] [stdout] 2 | use anyhow::{Context, Result}; [INFO] [stdout] | ^^^^^^^ ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `TimeZone` [INFO] [stdout] --> src/mail/gmail_api.rs:3:24 [INFO] [stdout] | [INFO] [stdout] 3 | use chrono::{DateTime, TimeZone, Utc}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Serialize` [INFO] [stdout] --> src/mail/gmail_api.rs:5:26 [INFO] [stdout] | [INFO] [stdout] 5 | use serde::{Deserialize, Serialize}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `GoogleOAuthClient`, `GoogleOAuthConfig`, `GoogleTokens`, `GoogleUserInfo`, and `OAuthFlowManager` [INFO] [stdout] --> src/mail/mod.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | GoogleOAuthClient, GoogleOAuthConfig, GoogleTokens, GoogleUserInfo, OAuthFlowManager, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Context` and `Result` [INFO] [stdout] --> src/mail/gmail_api.rs:2:14 [INFO] [stdout] | [INFO] [stdout] 2 | use anyhow::{Context, Result}; [INFO] [stdout] | ^^^^^^^ ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `TimeZone` [INFO] [stdout] --> src/mail/gmail_api.rs:3:24 [INFO] [stdout] | [INFO] [stdout] 3 | use chrono::{DateTime, TimeZone, Utc}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Serialize` [INFO] [stdout] --> src/mail/gmail_api.rs:5:26 [INFO] [stdout] | [INFO] [stdout] 5 | use serde::{Deserialize, Serialize}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `GoogleOAuthClient`, `GoogleOAuthConfig`, `GoogleTokens`, `GoogleUserInfo`, and `OAuthFlowManager` [INFO] [stdout] --> src/mail/mod.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | GoogleOAuthClient, GoogleOAuthConfig, GoogleTokens, GoogleUserInfo, OAuthFlowManager, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `imap_ok` is never read [INFO] [stdout] --> src/mail/client.rs:401:17 [INFO] [stdout] | [INFO] [stdout] 401 | let mut imap_ok = false; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `imap_ok` is never read [INFO] [stdout] --> src/mail/client.rs:401:17 [INFO] [stdout] | [INFO] [stdout] 401 | let mut imap_ok = false; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `get_folder_mapping`, `get_inbox_folder`, `get_sent_folder`, `get_drafts_folder`, and `get_trash_folder` are never used [INFO] [stdout] --> src/mail/account.rs:139:12 [INFO] [stdout] | [INFO] [stdout] 138 | impl Account { [INFO] [stdout] | ------------ associated items in this implementation [INFO] [stdout] 139 | pub fn new( [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 192 | pub fn get_folder_mapping(&self, folder_type: &FolderType) -> Option<&FolderMapping> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 199 | pub fn get_inbox_folder(&self) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 205 | pub fn get_sent_folder(&self) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 211 | pub fn get_drafts_folder(&self) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 217 | pub fn get_trash_folder(&self) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `get_connection_url` is never used [INFO] [stdout] --> src/mail/account.rs:225:12 [INFO] [stdout] | [INFO] [stdout] 224 | impl ImapConfig { [INFO] [stdout] | --------------- method in this implementation [INFO] [stdout] 225 | pub fn get_connection_url(&self) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `get_connection_url` is never used [INFO] [stdout] --> src/mail/account.rs:232:12 [INFO] [stdout] | [INFO] [stdout] 231 | impl SmtpConfig { [INFO] [stdout] | --------------- method in this implementation [INFO] [stdout] 232 | pub fn get_connection_url(&self) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/mail/account.rs:239:12 [INFO] [stdout] | [INFO] [stdout] 238 | impl FolderMapping { [INFO] [stdout] | ------------------ associated function in this implementation [INFO] [stdout] 239 | pub fn new(folder_type: FolderType, server_name: String, local_name: String) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `smtp_connections` is never read [INFO] [stdout] --> src/mail/client.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 7 | pub struct MailClient { [INFO] [stdout] | ---------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 10 | smtp_connections: Mutex>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/mail/client.rs:32:12 [INFO] [stdout] | [INFO] [stdout] 15 | impl MailClient { [INFO] [stdout] | --------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 32 | pub fn remove_account(&mut self, account_id: &str) -> MailResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 231 | pub async fn connect_smtp(&self, account_id: &str) -> MailResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 246 | pub async fn disconnect_imap(&self, account_id: &str) -> MailResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 255 | pub async fn disconnect_smtp(&self, account_id: &str) -> MailResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 290 | pub async fn fetch_message_body( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 309 | pub async fn send_message(&self, account_id: &str, message: &Message) -> MailResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 319 | pub async fn move_message( [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 339 | pub async fn delete_message( [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 358 | pub async fn mark_as_read( [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 379 | pub async fn get_folders(&self, account_id: &str) -> MailResult> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 400 | pub async fn test_connections(&self, account_id: &str) -> MailResult<(bool, bool)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 422 | pub async fn disconnect_all(&self, account_id: &str) -> MailResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `history_id` is never read [INFO] [stdout] --> src/mail/gmail_api.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 10 | struct GmailProfile { [INFO] [stdout] | ------------ field in this struct [INFO] [stdout] ... [INFO] [stdout] 18 | history_id: String, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `GmailProfile` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `next_page_token` and `result_size_estimate` are never read [INFO] [stdout] --> src/mail/gmail_api.rs:25:5 [INFO] [stdout] | [INFO] [stdout] 22 | struct GmailMessageList { [INFO] [stdout] | ---------------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 25 | next_page_token: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 26 | #[serde(rename = "resultSizeEstimate")] [INFO] [stdout] 27 | result_size_estimate: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `GmailMessageList` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `thread_id` is never read [INFO] [stdout] --> src/mail/gmail_api.rs:34:5 [INFO] [stdout] | [INFO] [stdout] 31 | struct GmailMessageRef { [INFO] [stdout] | --------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 34 | thread_id: String, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `GmailMessageRef` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `thread_id`, `internal_date`, `history_id`, and `size_estimate` are never read [INFO] [stdout] --> src/mail/gmail_api.rs:41:5 [INFO] [stdout] | [INFO] [stdout] 38 | struct GmailMessage { [INFO] [stdout] | ------------ fields in this struct [INFO] [stdout] ... [INFO] [stdout] 41 | thread_id: String, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 47 | internal_date: Option, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 48 | #[serde(rename = "historyId")] [INFO] [stdout] 49 | history_id: Option, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 50 | #[serde(rename = "sizeEstimate")] [INFO] [stdout] 51 | size_estimate: Option, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `GmailMessage` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `part_id`, `mime_type`, `filename`, `body`, and `parts` are never read [INFO] [stdout] --> src/mail/gmail_api.rs:57:5 [INFO] [stdout] | [INFO] [stdout] 55 | struct GmailPayload { [INFO] [stdout] | ------------ fields in this struct [INFO] [stdout] 56 | #[serde(rename = "partId")] [INFO] [stdout] 57 | part_id: Option, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 58 | #[serde(rename = "mimeType")] [INFO] [stdout] 59 | mime_type: Option, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 60 | filename: Option, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 61 | headers: Option>, [INFO] [stdout] 62 | body: Option, [INFO] [stdout] | ^^^^ [INFO] [stdout] 63 | parts: Option>, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `GmailPayload` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `attachment_id`, `size`, and `data` are never read [INFO] [stdout] --> src/mail/gmail_api.rs:75:5 [INFO] [stdout] | [INFO] [stdout] 73 | struct GmailBody { [INFO] [stdout] | --------- fields in this struct [INFO] [stdout] 74 | #[serde(rename = "attachmentId")] [INFO] [stdout] 75 | attachment_id: Option, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 76 | size: Option, [INFO] [stdout] | ^^^^ [INFO] [stdout] 77 | data: Option, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `GmailBody` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `GmailLabels` is never constructed [INFO] [stdout] --> src/mail/gmail_api.rs:81:8 [INFO] [stdout] | [INFO] [stdout] 81 | struct GmailLabels { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `GmailLabel` is never constructed [INFO] [stdout] --> src/mail/gmail_api.rs:86:8 [INFO] [stdout] | [INFO] [stdout] 86 | struct GmailLabel { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `list_folders` is never used [INFO] [stdout] --> src/mail/gmail_api.rs:148:18 [INFO] [stdout] | [INFO] [stdout] 102 | impl GmailApiClient { [INFO] [stdout] | ------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 148 | pub async fn list_folders(&self) -> MailResult> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `disconnect`, `list_folders`, `fetch_message_body`, `set_message_flags`, `move_message`, and `delete_message` are never used [INFO] [stdout] --> src/mail/imap_client.rs:167:18 [INFO] [stdout] | [INFO] [stdout] 16 | impl ImapClient { [INFO] [stdout] | --------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 167 | pub async fn disconnect(&mut self) -> MailResult<()> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 193 | pub async fn list_folders(&mut self) -> MailResult> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 277 | pub async fn fetch_message_body(&mut self, folder_name: &str, uid: u32) -> MailResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 310 | pub async fn set_message_flags( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 347 | pub async fn move_message( [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 382 | pub async fn delete_message(&mut self, folder_name: &str, uid: u32) -> MailResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/mail/imap_client.rs:518:8 [INFO] [stdout] | [INFO] [stdout] 517 | impl XOAuth2Authenticator { [INFO] [stdout] | ------------------------- associated function in this implementation [INFO] [stdout] 518 | fn new(email: &str, access_token: &str) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `display_name` is never used [INFO] [stdout] --> src/mail/message.rs:64:12 [INFO] [stdout] | [INFO] [stdout] 59 | impl Address { [INFO] [stdout] | ------------ method in this implementation [INFO] [stdout] ... [INFO] [stdout] 64 | pub fn display_name(&self) -> &str { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new_html` is never used [INFO] [stdout] --> src/mail/message.rs:74:12 [INFO] [stdout] | [INFO] [stdout] 69 | impl MessageBody { [INFO] [stdout] | ---------------- associated function in this implementation [INFO] [stdout] ... [INFO] [stdout] 74 | pub fn new_html(content: String) -> Self { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `mark_as_read`, `mark_as_unread`, `toggle_flag`, `add_attachment`, `remove_attachment`, and `get_size` are never used [INFO] [stdout] --> src/mail/message.rs:139:12 [INFO] [stdout] | [INFO] [stdout] 101 | impl Message { [INFO] [stdout] | ------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 139 | pub fn mark_as_read(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 145 | pub fn mark_as_unread(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 149 | pub fn toggle_flag(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 186 | pub fn add_attachment(&mut self, attachment: Attachment) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 190 | pub fn remove_attachment(&mut self, filename: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 194 | pub fn get_size(&self) -> usize { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `is_image`, `is_text`, and `format_size` are never used [INFO] [stdout] --> src/mail/message.rs:207:12 [INFO] [stdout] | [INFO] [stdout] 206 | impl Attachment { [INFO] [stdout] | --------------- associated items in this implementation [INFO] [stdout] 207 | pub fn new(filename: String, content_type: String, data: Vec) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 217 | pub fn is_image(&self) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 221 | pub fn is_text(&self) -> bool { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 225 | pub fn format_size(&self) -> String { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `GoogleUserInfo` is never constructed [INFO] [stdout] --> src/mail/oauth.rs:38:12 [INFO] [stdout] | [INFO] [stdout] 38 | pub struct GoogleUserInfo { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `config` and `http_client` are never read [INFO] [stdout] --> src/mail/oauth.rs:46:5 [INFO] [stdout] | [INFO] [stdout] 44 | pub struct GoogleOAuthClient { [INFO] [stdout] | ----------------- fields in this struct [INFO] [stdout] 45 | oauth_client: BasicClient, [INFO] [stdout] 46 | config: GoogleOAuthConfig, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 47 | http_client: reqwest::Client, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `get_user_info`, `generate_xoauth2_string`, and `validate_token` are never used [INFO] [stdout] --> src/mail/oauth.rs:128:18 [INFO] [stdout] | [INFO] [stdout] 50 | impl GoogleOAuthClient { [INFO] [stdout] | ---------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 128 | pub async fn get_user_info(&self, access_token: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 154 | pub fn generate_xoauth2_string(&self, email: &str, access_token: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 160 | pub async fn validate_token(&self, access_token: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `account` is never read [INFO] [stdout] --> src/mail/smtp_client.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 9 | pub struct SmtpClient { [INFO] [stdout] | ---------- field in this struct [INFO] [stdout] 10 | account: Account, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/mail/smtp_client.rs:15:12 [INFO] [stdout] | [INFO] [stdout] 14 | impl SmtpClient { [INFO] [stdout] | --------------- associated items in this implementation [INFO] [stdout] 15 | pub fn new(account: Account) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 23 | pub async fn connect(&mut self) -> MailResult<()> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 85 | async fn setup_oauth2_auth( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 115 | pub async fn send_message(&mut self, message: &Message) -> MailResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 133 | fn build_lettre_message(&self, message: &Message) -> MailResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 234 | pub async fn test_connection(&self) -> MailResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 253 | pub fn get_send_log(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SearchEngine` is never constructed [INFO] [stdout] --> src/search/mod.rs:5:12 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct SearchEngine { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `search`, `search_by_sender`, and `search_by_subject` are never used [INFO] [stdout] --> src/search/mod.rs:10:12 [INFO] [stdout] | [INFO] [stdout] 9 | impl SearchEngine { [INFO] [stdout] | ----------------- associated items in this implementation [INFO] [stdout] 10 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 14 | pub fn search<'a>(&self, query: &str, messages: &'a [Message]) -> Vec<&'a Message> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 36 | pub fn search_by_sender<'a>(&self, sender: &str, messages: &'a [Message]) -> Vec<&'a Message> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 48 | pub fn search_by_subject<'a>( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/storage/config.rs:111:12 [INFO] [stdout] | [INFO] [stdout] 110 | impl Config { [INFO] [stdout] | ----------- associated items in this implementation [INFO] [stdout] 111 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 152 | pub fn get_data_dir(&self) -> &PathBuf { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 156 | pub fn get_database_file(&self) -> PathBuf { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 188 | pub fn remove_account(&mut self, account_id: &str) -> StorageResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 199 | pub fn get_account(&self, account_id: &str) -> Option<&Account> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 203 | pub fn get_account_mut(&mut self, account_id: &str) -> Option<&mut Account> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 207 | pub fn get_accounts(&self) -> &[Account] { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 211 | pub fn validate(&self) -> StorageResult<()> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ComposeWidget` is never constructed [INFO] [stdout] --> src/ui/compose.rs:4:12 [INFO] [stdout] | [INFO] [stdout] 4 | pub struct ComposeWidget; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `MailListWidget` is never constructed [INFO] [stdout] --> src/ui/mail_list.rs:4:12 [INFO] [stdout] | [INFO] [stdout] 4 | pub struct MailListWidget; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `MailViewWidget` is never constructed [INFO] [stdout] --> src/ui/mail_view.rs:4:12 [INFO] [stdout] | [INFO] [stdout] 4 | pub struct MailViewWidget; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `MailListWidget` is never constructed [INFO] [stdout] --> src/ui/widgets.rs:4:12 [INFO] [stdout] | [INFO] [stdout] 4 | pub struct MailListWidget; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `MailViewWidget` is never constructed [INFO] [stdout] --> src/ui/widgets.rs:5:12 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct MailViewWidget; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ComposeWidget` is never constructed [INFO] [stdout] --> src/ui/widgets.rs:6:12 [INFO] [stdout] | [INFO] [stdout] 6 | pub struct ComposeWidget; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `format_size` is never used [INFO] [stdout] --> src/utils/mod.rs:5:8 [INFO] [stdout] | [INFO] [stdout] 5 | pub fn format_size(size: u64) -> String { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `truncate_string` is never used [INFO] [stdout] --> src/utils/mod.rs:18:8 [INFO] [stdout] | [INFO] [stdout] 18 | pub fn truncate_string(s: &str, max_len: usize) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `current_timestamp` is never used [INFO] [stdout] --> src/utils/mod.rs:26:8 [INFO] [stdout] | [INFO] [stdout] 26 | pub fn current_timestamp() -> u64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `validate_email` is never used [INFO] [stdout] --> src/utils/mod.rs:33:8 [INFO] [stdout] | [INFO] [stdout] 33 | pub fn validate_email(email: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused implementer of `Stream` that must be used [INFO] [stdout] --> src/mail/imap_client.rs:338:9 [INFO] [stdout] | [INFO] [stdout] 338 | / session [INFO] [stdout] 339 | | .uid_store(&uid.to_string(), &format!("+FLAGS ({})", flags_str)) [INFO] [stdout] 340 | | .await [INFO] [stdout] 341 | | .map_err(|e| MailError::Protocol(format!("Flag setting failed: {:?}", e)))?; [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 `Stream` that must be used [INFO] [stdout] --> src/mail/imap_client.rs:367:9 [INFO] [stdout] | [INFO] [stdout] 367 | / session [INFO] [stdout] 368 | | .uid_store(&uid.to_string(), "+FLAGS (\\Deleted)") [INFO] [stdout] 369 | | .await [INFO] [stdout] 370 | | .map_err(|e| MailError::Protocol(format!("Delete flag setting failed: {:?}", e)))?; [INFO] [stdout] | |______________________________________________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = note: streams do nothing unless polled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused implementer of `Stream` that must be used [INFO] [stdout] --> src/mail/imap_client.rs:373:9 [INFO] [stdout] | [INFO] [stdout] 373 | / session [INFO] [stdout] 374 | | .expunge() [INFO] [stdout] 375 | | .await [INFO] [stdout] 376 | | .map_err(|e| MailError::Protocol(format!("Expunge failed: {:?}", e)))?; [INFO] [stdout] | |__________________________________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = note: streams do nothing unless polled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused implementer of `Stream` that must be used [INFO] [stdout] --> src/mail/imap_client.rs:391:9 [INFO] [stdout] | [INFO] [stdout] 391 | / session [INFO] [stdout] 392 | | .uid_store(&uid.to_string(), "+FLAGS (\\Deleted)") [INFO] [stdout] 393 | | .await [INFO] [stdout] 394 | | .map_err(|e| MailError::Protocol(format!("Delete flag setting failed: {:?}", e)))?; [INFO] [stdout] | |______________________________________________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = note: streams do nothing unless polled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused implementer of `Stream` that must be used [INFO] [stdout] --> src/mail/imap_client.rs:397:9 [INFO] [stdout] | [INFO] [stdout] 397 | / session [INFO] [stdout] 398 | | .expunge() [INFO] [stdout] 399 | | .await [INFO] [stdout] 400 | | .map_err(|e| MailError::Protocol(format!("Expunge failed: {:?}", e)))?; [INFO] [stdout] | |__________________________________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = note: streams do nothing unless polled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `get_folder_mapping`, `get_inbox_folder`, `get_sent_folder`, `get_drafts_folder`, and `get_trash_folder` are never used [INFO] [stdout] --> src/mail/account.rs:139:12 [INFO] [stdout] | [INFO] [stdout] 138 | impl Account { [INFO] [stdout] | ------------ associated items in this implementation [INFO] [stdout] 139 | pub fn new( [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 192 | pub fn get_folder_mapping(&self, folder_type: &FolderType) -> Option<&FolderMapping> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 199 | pub fn get_inbox_folder(&self) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 205 | pub fn get_sent_folder(&self) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 211 | pub fn get_drafts_folder(&self) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 217 | pub fn get_trash_folder(&self) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `get_connection_url` is never used [INFO] [stdout] --> src/mail/account.rs:225:12 [INFO] [stdout] | [INFO] [stdout] 224 | impl ImapConfig { [INFO] [stdout] | --------------- method in this implementation [INFO] [stdout] 225 | pub fn get_connection_url(&self) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `get_connection_url` is never used [INFO] [stdout] --> src/mail/account.rs:232:12 [INFO] [stdout] | [INFO] [stdout] 231 | impl SmtpConfig { [INFO] [stdout] | --------------- method in this implementation [INFO] [stdout] 232 | pub fn get_connection_url(&self) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/mail/account.rs:239:12 [INFO] [stdout] | [INFO] [stdout] 238 | impl FolderMapping { [INFO] [stdout] | ------------------ associated function in this implementation [INFO] [stdout] 239 | pub fn new(folder_type: FolderType, server_name: String, local_name: String) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `smtp_connections` is never read [INFO] [stdout] --> src/mail/client.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 7 | pub struct MailClient { [INFO] [stdout] | ---------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 10 | smtp_connections: Mutex>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/mail/client.rs:32:12 [INFO] [stdout] | [INFO] [stdout] 15 | impl MailClient { [INFO] [stdout] | --------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 32 | pub fn remove_account(&mut self, account_id: &str) -> MailResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 231 | pub async fn connect_smtp(&self, account_id: &str) -> MailResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 246 | pub async fn disconnect_imap(&self, account_id: &str) -> MailResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 255 | pub async fn disconnect_smtp(&self, account_id: &str) -> MailResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 290 | pub async fn fetch_message_body( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 309 | pub async fn send_message(&self, account_id: &str, message: &Message) -> MailResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 319 | pub async fn move_message( [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 339 | pub async fn delete_message( [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 358 | pub async fn mark_as_read( [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 379 | pub async fn get_folders(&self, account_id: &str) -> MailResult> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 400 | pub async fn test_connections(&self, account_id: &str) -> MailResult<(bool, bool)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 422 | pub async fn disconnect_all(&self, account_id: &str) -> MailResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `history_id` is never read [INFO] [stdout] --> src/mail/gmail_api.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 10 | struct GmailProfile { [INFO] [stdout] | ------------ field in this struct [INFO] [stdout] ... [INFO] [stdout] 18 | history_id: String, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `GmailProfile` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `next_page_token` and `result_size_estimate` are never read [INFO] [stdout] --> src/mail/gmail_api.rs:25:5 [INFO] [stdout] | [INFO] [stdout] 22 | struct GmailMessageList { [INFO] [stdout] | ---------------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 25 | next_page_token: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 26 | #[serde(rename = "resultSizeEstimate")] [INFO] [stdout] 27 | result_size_estimate: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `GmailMessageList` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `thread_id` is never read [INFO] [stdout] --> src/mail/gmail_api.rs:34:5 [INFO] [stdout] | [INFO] [stdout] 31 | struct GmailMessageRef { [INFO] [stdout] | --------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 34 | thread_id: String, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `GmailMessageRef` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `thread_id`, `internal_date`, `history_id`, and `size_estimate` are never read [INFO] [stdout] --> src/mail/gmail_api.rs:41:5 [INFO] [stdout] | [INFO] [stdout] 38 | struct GmailMessage { [INFO] [stdout] | ------------ fields in this struct [INFO] [stdout] ... [INFO] [stdout] 41 | thread_id: String, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 47 | internal_date: Option, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 48 | #[serde(rename = "historyId")] [INFO] [stdout] 49 | history_id: Option, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 50 | #[serde(rename = "sizeEstimate")] [INFO] [stdout] 51 | size_estimate: Option, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `GmailMessage` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `part_id`, `mime_type`, `filename`, `body`, and `parts` are never read [INFO] [stdout] --> src/mail/gmail_api.rs:57:5 [INFO] [stdout] | [INFO] [stdout] 55 | struct GmailPayload { [INFO] [stdout] | ------------ fields in this struct [INFO] [stdout] 56 | #[serde(rename = "partId")] [INFO] [stdout] 57 | part_id: Option, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 58 | #[serde(rename = "mimeType")] [INFO] [stdout] 59 | mime_type: Option, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 60 | filename: Option, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 61 | headers: Option>, [INFO] [stdout] 62 | body: Option, [INFO] [stdout] | ^^^^ [INFO] [stdout] 63 | parts: Option>, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `GmailPayload` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `attachment_id`, `size`, and `data` are never read [INFO] [stdout] --> src/mail/gmail_api.rs:75:5 [INFO] [stdout] | [INFO] [stdout] 73 | struct GmailBody { [INFO] [stdout] | --------- fields in this struct [INFO] [stdout] 74 | #[serde(rename = "attachmentId")] [INFO] [stdout] 75 | attachment_id: Option, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 76 | size: Option, [INFO] [stdout] | ^^^^ [INFO] [stdout] 77 | data: Option, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `GmailBody` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `GmailLabels` is never constructed [INFO] [stdout] --> src/mail/gmail_api.rs:81:8 [INFO] [stdout] | [INFO] [stdout] 81 | struct GmailLabels { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `GmailLabel` is never constructed [INFO] [stdout] --> src/mail/gmail_api.rs:86:8 [INFO] [stdout] | [INFO] [stdout] 86 | struct GmailLabel { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `list_folders` is never used [INFO] [stdout] --> src/mail/gmail_api.rs:148:18 [INFO] [stdout] | [INFO] [stdout] 102 | impl GmailApiClient { [INFO] [stdout] | ------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 148 | pub async fn list_folders(&self) -> MailResult> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `disconnect`, `list_folders`, `fetch_message_body`, `set_message_flags`, `move_message`, and `delete_message` are never used [INFO] [stdout] --> src/mail/imap_client.rs:167:18 [INFO] [stdout] | [INFO] [stdout] 16 | impl ImapClient { [INFO] [stdout] | --------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 167 | pub async fn disconnect(&mut self) -> MailResult<()> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 193 | pub async fn list_folders(&mut self) -> MailResult> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 277 | pub async fn fetch_message_body(&mut self, folder_name: &str, uid: u32) -> MailResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 310 | pub async fn set_message_flags( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 347 | pub async fn move_message( [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 382 | pub async fn delete_message(&mut self, folder_name: &str, uid: u32) -> MailResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/mail/imap_client.rs:518:8 [INFO] [stdout] | [INFO] [stdout] 517 | impl XOAuth2Authenticator { [INFO] [stdout] | ------------------------- associated function in this implementation [INFO] [stdout] 518 | fn new(email: &str, access_token: &str) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `display_name` is never used [INFO] [stdout] --> src/mail/message.rs:64:12 [INFO] [stdout] | [INFO] [stdout] 59 | impl Address { [INFO] [stdout] | ------------ method in this implementation [INFO] [stdout] ... [INFO] [stdout] 64 | pub fn display_name(&self) -> &str { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new_html` is never used [INFO] [stdout] --> src/mail/message.rs:74:12 [INFO] [stdout] | [INFO] [stdout] 69 | impl MessageBody { [INFO] [stdout] | ---------------- associated function in this implementation [INFO] [stdout] ... [INFO] [stdout] 74 | pub fn new_html(content: String) -> Self { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `mark_as_read`, `mark_as_unread`, `toggle_flag`, `add_attachment`, `remove_attachment`, and `get_size` are never used [INFO] [stdout] --> src/mail/message.rs:139:12 [INFO] [stdout] | [INFO] [stdout] 101 | impl Message { [INFO] [stdout] | ------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 139 | pub fn mark_as_read(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 145 | pub fn mark_as_unread(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 149 | pub fn toggle_flag(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 186 | pub fn add_attachment(&mut self, attachment: Attachment) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 190 | pub fn remove_attachment(&mut self, filename: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 194 | pub fn get_size(&self) -> usize { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `is_image`, `is_text`, and `format_size` are never used [INFO] [stdout] --> src/mail/message.rs:207:12 [INFO] [stdout] | [INFO] [stdout] 206 | impl Attachment { [INFO] [stdout] | --------------- associated items in this implementation [INFO] [stdout] 207 | pub fn new(filename: String, content_type: String, data: Vec) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 217 | pub fn is_image(&self) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 221 | pub fn is_text(&self) -> bool { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 225 | pub fn format_size(&self) -> String { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `GoogleUserInfo` is never constructed [INFO] [stdout] --> src/mail/oauth.rs:38:12 [INFO] [stdout] | [INFO] [stdout] 38 | pub struct GoogleUserInfo { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `config` and `http_client` are never read [INFO] [stdout] --> src/mail/oauth.rs:46:5 [INFO] [stdout] | [INFO] [stdout] 44 | pub struct GoogleOAuthClient { [INFO] [stdout] | ----------------- fields in this struct [INFO] [stdout] 45 | oauth_client: BasicClient, [INFO] [stdout] 46 | config: GoogleOAuthConfig, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 47 | http_client: reqwest::Client, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `get_user_info` and `validate_token` are never used [INFO] [stdout] --> src/mail/oauth.rs:128:18 [INFO] [stdout] | [INFO] [stdout] 50 | impl GoogleOAuthClient { [INFO] [stdout] | ---------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 128 | pub async fn get_user_info(&self, access_token: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 160 | pub async fn validate_token(&self, access_token: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `connect`, `setup_oauth2_auth`, `send_message`, `test_connection`, and `get_send_log` are never used [INFO] [stdout] --> src/mail/smtp_client.rs:23:18 [INFO] [stdout] | [INFO] [stdout] 14 | impl SmtpClient { [INFO] [stdout] | --------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 23 | pub async fn connect(&mut self) -> MailResult<()> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 85 | async fn setup_oauth2_auth( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 115 | pub async fn send_message(&mut self, message: &Message) -> MailResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 234 | pub async fn test_connection(&self) -> MailResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 253 | pub fn get_send_log(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SearchEngine` is never constructed [INFO] [stdout] --> src/search/mod.rs:5:12 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct SearchEngine { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `search`, `search_by_sender`, and `search_by_subject` are never used [INFO] [stdout] --> src/search/mod.rs:10:12 [INFO] [stdout] | [INFO] [stdout] 9 | impl SearchEngine { [INFO] [stdout] | ----------------- associated items in this implementation [INFO] [stdout] 10 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 14 | pub fn search<'a>(&self, query: &str, messages: &'a [Message]) -> Vec<&'a Message> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 36 | pub fn search_by_sender<'a>(&self, sender: &str, messages: &'a [Message]) -> Vec<&'a Message> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 48 | pub fn search_by_subject<'a>( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/storage/config.rs:111:12 [INFO] [stdout] | [INFO] [stdout] 110 | impl Config { [INFO] [stdout] | ----------- associated items in this implementation [INFO] [stdout] 111 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 152 | pub fn get_data_dir(&self) -> &PathBuf { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 156 | pub fn get_database_file(&self) -> PathBuf { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 188 | pub fn remove_account(&mut self, account_id: &str) -> StorageResult<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 199 | pub fn get_account(&self, account_id: &str) -> Option<&Account> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 203 | pub fn get_account_mut(&mut self, account_id: &str) -> Option<&mut Account> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 207 | pub fn get_accounts(&self) -> &[Account] { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 211 | pub fn validate(&self) -> StorageResult<()> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ComposeWidget` is never constructed [INFO] [stdout] --> src/ui/compose.rs:4:12 [INFO] [stdout] | [INFO] [stdout] 4 | pub struct ComposeWidget; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `MailListWidget` is never constructed [INFO] [stdout] --> src/ui/mail_list.rs:4:12 [INFO] [stdout] | [INFO] [stdout] 4 | pub struct MailListWidget; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `MailViewWidget` is never constructed [INFO] [stdout] --> src/ui/mail_view.rs:4:12 [INFO] [stdout] | [INFO] [stdout] 4 | pub struct MailViewWidget; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `MailListWidget` is never constructed [INFO] [stdout] --> src/ui/widgets.rs:4:12 [INFO] [stdout] | [INFO] [stdout] 4 | pub struct MailListWidget; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `MailViewWidget` is never constructed [INFO] [stdout] --> src/ui/widgets.rs:5:12 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct MailViewWidget; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ComposeWidget` is never constructed [INFO] [stdout] --> src/ui/widgets.rs:6:12 [INFO] [stdout] | [INFO] [stdout] 6 | pub struct ComposeWidget; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `format_size` is never used [INFO] [stdout] --> src/utils/mod.rs:5:8 [INFO] [stdout] | [INFO] [stdout] 5 | pub fn format_size(size: u64) -> String { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `truncate_string` is never used [INFO] [stdout] --> src/utils/mod.rs:18:8 [INFO] [stdout] | [INFO] [stdout] 18 | pub fn truncate_string(s: &str, max_len: usize) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `current_timestamp` is never used [INFO] [stdout] --> src/utils/mod.rs:26:8 [INFO] [stdout] | [INFO] [stdout] 26 | pub fn current_timestamp() -> u64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `validate_email` is never used [INFO] [stdout] --> src/utils/mod.rs:33:8 [INFO] [stdout] | [INFO] [stdout] 33 | pub fn validate_email(email: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused implementer of `Stream` that must be used [INFO] [stdout] --> src/mail/imap_client.rs:338:9 [INFO] [stdout] | [INFO] [stdout] 338 | / session [INFO] [stdout] 339 | | .uid_store(&uid.to_string(), &format!("+FLAGS ({})", flags_str)) [INFO] [stdout] 340 | | .await [INFO] [stdout] 341 | | .map_err(|e| MailError::Protocol(format!("Flag setting failed: {:?}", e)))?; [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 `Stream` that must be used [INFO] [stdout] --> src/mail/imap_client.rs:367:9 [INFO] [stdout] | [INFO] [stdout] 367 | / session [INFO] [stdout] 368 | | .uid_store(&uid.to_string(), "+FLAGS (\\Deleted)") [INFO] [stdout] 369 | | .await [INFO] [stdout] 370 | | .map_err(|e| MailError::Protocol(format!("Delete flag setting failed: {:?}", e)))?; [INFO] [stdout] | |______________________________________________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = note: streams do nothing unless polled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused implementer of `Stream` that must be used [INFO] [stdout] --> src/mail/imap_client.rs:373:9 [INFO] [stdout] | [INFO] [stdout] 373 | / session [INFO] [stdout] 374 | | .expunge() [INFO] [stdout] 375 | | .await [INFO] [stdout] 376 | | .map_err(|e| MailError::Protocol(format!("Expunge failed: {:?}", e)))?; [INFO] [stdout] | |__________________________________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = note: streams do nothing unless polled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused implementer of `Stream` that must be used [INFO] [stdout] --> src/mail/imap_client.rs:391:9 [INFO] [stdout] | [INFO] [stdout] 391 | / session [INFO] [stdout] 392 | | .uid_store(&uid.to_string(), "+FLAGS (\\Deleted)") [INFO] [stdout] 393 | | .await [INFO] [stdout] 394 | | .map_err(|e| MailError::Protocol(format!("Delete flag setting failed: {:?}", e)))?; [INFO] [stdout] | |______________________________________________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = note: streams do nothing unless polled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused implementer of `Stream` that must be used [INFO] [stdout] --> src/mail/imap_client.rs:397:9 [INFO] [stdout] | [INFO] [stdout] 397 | / session [INFO] [stdout] 398 | | .expunge() [INFO] [stdout] 399 | | .await [INFO] [stdout] 400 | | .map_err(|e| MailError::Protocol(format!("Expunge failed: {:?}", e)))?; [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 20s [INFO] running `Command { std: "docker" "inspect" "1baf54181b351567cb1e6da541e7dd48743bf6fb14082434cb26cb06a5e4e4e9", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "1baf54181b351567cb1e6da541e7dd48743bf6fb14082434cb26cb06a5e4e4e9", kill_on_drop: false }` [INFO] [stdout] 1baf54181b351567cb1e6da541e7dd48743bf6fb14082434cb26cb06a5e4e4e9