[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] building engineers-hub-ltd-in-house-project/rustmail against master#44f415c1d617ebc7b931a243b7b321ef8a6ca47c for pr-142134-abi-ast-error [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-7-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/engineers-hub-ltd-in-house-project/rustmail on toolchain 44f415c1d617ebc7b931a243b7b321ef8a6ca47c [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+44f415c1d617ebc7b931a243b7b321ef8a6ca47c" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [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-7-tc1/source/Cargo.toml [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" "+44f415c1d617ebc7b931a243b7b321ef8a6ca47c" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded async-imap v0.9.7 [INFO] [stderr] Downloaded imap v3.0.0-alpha.15 [INFO] [stderr] Downloaded lettre v0.11.16 [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:eea15d5475069c3ef791f10c2c6b5af2ee421ef2da1e680ecce1cba46243983b" "/opt/rustwide/cargo-home/bin/cargo" "+44f415c1d617ebc7b931a243b7b321ef8a6ca47c" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] ae8acfdec580663de5d0e5ebf967f37ccfac5901498bcd104a2a6424c3c0b5e8 [INFO] running `Command { std: "docker" "start" "-a" "ae8acfdec580663de5d0e5ebf967f37ccfac5901498bcd104a2a6424c3c0b5e8", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "ae8acfdec580663de5d0e5ebf967f37ccfac5901498bcd104a2a6424c3c0b5e8", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "ae8acfdec580663de5d0e5ebf967f37ccfac5901498bcd104a2a6424c3c0b5e8", kill_on_drop: false }` [INFO] [stdout] ae8acfdec580663de5d0e5ebf967f37ccfac5901498bcd104a2a6424c3c0b5e8 [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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:eea15d5475069c3ef791f10c2c6b5af2ee421ef2da1e680ecce1cba46243983b" "/opt/rustwide/cargo-home/bin/cargo" "+44f415c1d617ebc7b931a243b7b321ef8a6ca47c" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] f1862266b0e30da49b36a9503a0d89e57b9a2b65bf5c15e5cc30463189aeb604 [INFO] running `Command { std: "docker" "start" "-a" "f1862266b0e30da49b36a9503a0d89e57b9a2b65bf5c15e5cc30463189aeb604", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.172 [INFO] [stderr] Compiling proc-macro2 v1.0.95 [INFO] [stderr] Compiling unicode-ident v1.0.18 [INFO] [stderr] Compiling cfg-if v1.0.0 [INFO] [stderr] Compiling shlex v1.3.0 [INFO] [stderr] Compiling autocfg v1.4.0 [INFO] [stderr] Compiling pin-project-lite v0.2.16 [INFO] [stderr] Compiling once_cell v1.21.3 [INFO] [stderr] Compiling futures-core v0.3.31 [INFO] [stderr] Compiling smallvec v1.15.0 [INFO] [stderr] Compiling memchr v2.7.4 [INFO] [stderr] Compiling futures-io v0.3.31 [INFO] [stderr] Compiling bytes v1.10.1 [INFO] [stderr] Compiling version_check v0.9.5 [INFO] [stderr] Compiling parking_lot_core v0.9.10 [INFO] [stderr] Compiling itoa v1.0.15 [INFO] [stderr] Compiling scopeguard v1.2.0 [INFO] [stderr] Compiling log v0.4.27 [INFO] [stderr] Compiling allocator-api2 v0.2.21 [INFO] [stderr] Compiling futures-sink v0.3.31 [INFO] [stderr] Compiling bitflags v2.9.1 [INFO] [stderr] Compiling pin-utils v0.1.0 [INFO] [stderr] Compiling stable_deref_trait v1.2.0 [INFO] [stderr] Compiling vcpkg v0.2.15 [INFO] [stderr] Compiling futures-channel v0.3.31 [INFO] [stderr] Compiling pkg-config v0.3.32 [INFO] [stderr] Compiling futures-task v0.3.31 [INFO] [stderr] Compiling tracing-core v0.1.33 [INFO] [stderr] Compiling fnv v1.0.7 [INFO] [stderr] Compiling foldhash v0.1.5 [INFO] [stderr] Compiling equivalent v1.0.2 [INFO] [stderr] Compiling crossbeam-utils v0.8.21 [INFO] [stderr] Compiling serde v1.0.219 [INFO] [stderr] Compiling untrusted v0.9.0 [INFO] [stderr] Compiling zerocopy v0.8.25 [INFO] [stderr] Compiling writeable v0.6.1 [INFO] [stderr] Compiling litemap v0.8.0 [INFO] [stderr] Compiling icu_properties_data v2.0.1 [INFO] [stderr] Compiling slab v0.4.9 [INFO] [stderr] Compiling lock_api v0.4.12 [INFO] [stderr] Compiling fs_extra v1.3.0 [INFO] [stderr] Compiling hashbrown v0.15.3 [INFO] [stderr] Compiling httparse v1.10.1 [INFO] [stderr] Compiling icu_normalizer_data v2.0.0 [INFO] [stderr] Compiling dunce v1.0.5 [INFO] [stderr] Compiling parking v2.2.1 [INFO] [stderr] Compiling try-lock v0.2.5 [INFO] [stderr] Compiling zeroize v1.8.1 [INFO] [stderr] Compiling quote v1.0.40 [INFO] [stderr] Compiling tracing v0.1.41 [INFO] [stderr] Compiling want v0.3.1 [INFO] [stderr] Compiling concurrent-queue v2.5.0 [INFO] [stderr] Compiling foreign-types-shared v0.1.1 [INFO] [stderr] Compiling tower-service v0.3.3 [INFO] [stderr] Compiling openssl v0.10.72 [INFO] [stderr] Compiling foreign-types v0.3.2 [INFO] [stderr] Compiling rustls-pki-types v1.12.0 [INFO] [stderr] Compiling http v1.3.1 [INFO] [stderr] Compiling typenum v1.18.0 [INFO] [stderr] Compiling syn v2.0.101 [INFO] [stderr] Compiling event-listener v5.4.0 [INFO] [stderr] Compiling percent-encoding v2.3.1 [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] Compiling generic-array v0.14.7 [INFO] [stderr] Compiling ahash v0.8.12 [INFO] [stderr] Compiling linux-raw-sys v0.4.15 [INFO] [stderr] Compiling indexmap v2.9.0 [INFO] [stderr] Compiling event-listener-strategy v0.5.4 [INFO] [stderr] Compiling utf8_iter v1.0.4 [INFO] [stderr] Compiling ryu v1.0.20 [INFO] [stderr] Compiling form_urlencoded v1.2.1 [INFO] [stderr] Compiling openssl-probe v0.1.6 [INFO] [stderr] Compiling fastrand v2.3.0 [INFO] [stderr] Compiling rustversion v1.0.21 [INFO] [stderr] Compiling http v0.2.12 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling rustls v0.21.12 [INFO] [stderr] Compiling atomic-waker v1.1.2 [INFO] [stderr] Compiling jobserver v0.1.33 [INFO] [stderr] Compiling signal-hook-registry v1.4.5 [INFO] [stderr] Compiling socket2 v0.5.9 [INFO] [stderr] Compiling mio v1.0.4 [INFO] [stderr] Compiling getrandom v0.2.16 [INFO] [stderr] Compiling futures-lite v2.6.0 [INFO] [stderr] Compiling async-lock v3.4.0 [INFO] [stderr] Compiling proc-macro2-diagnostics v0.10.1 [INFO] [stderr] Compiling signal-hook v0.3.18 [INFO] [stderr] Compiling cc v1.2.24 [INFO] [stderr] Compiling parking_lot v0.12.3 [INFO] [stderr] Compiling heck v0.5.0 [INFO] [stderr] Compiling rustls v0.23.27 [INFO] [stderr] Compiling thiserror v1.0.69 [INFO] [stderr] Compiling httpdate v1.0.3 [INFO] [stderr] Compiling http-body v0.4.6 [INFO] [stderr] Compiling utf8parse v0.2.2 [INFO] [stderr] Compiling either v1.15.0 [INFO] [stderr] Compiling mime v0.3.17 [INFO] [stderr] Compiling subtle v2.6.1 [INFO] [stderr] Compiling base64 v0.22.1 [INFO] [stderr] Compiling http-body v1.0.1 [INFO] [stderr] Compiling serde_json v1.0.140 [INFO] [stderr] Compiling static_assertions v1.1.0 [INFO] [stderr] Compiling yansi v1.0.1 [INFO] [stderr] Compiling event-listener v2.5.3 [INFO] [stderr] Compiling minimal-lexical v0.2.1 [INFO] [stderr] Compiling iana-time-zone v0.1.63 [INFO] [stderr] Compiling base64 v0.21.7 [INFO] [stderr] Compiling async-channel v1.9.0 [INFO] [stderr] Compiling anstyle-parse v0.2.6 [INFO] [stderr] Compiling hashbrown v0.14.5 [INFO] [stderr] Compiling ppv-lite86 v0.2.21 [INFO] [stderr] Compiling webpki-roots v1.0.0 [INFO] [stderr] Compiling rand_core v0.6.4 [INFO] [stderr] Compiling mio v0.8.11 [INFO] [stderr] Compiling async-channel v2.3.1 [INFO] [stderr] Compiling aho-corasick v1.1.3 [INFO] [stderr] Compiling encoding_rs v0.8.35 [INFO] [stderr] Compiling crypto-common v0.1.6 [INFO] [stderr] Compiling block-buffer v0.10.4 [INFO] [stderr] Compiling nom v7.1.3 [INFO] [stderr] Compiling is_terminal_polyfill v1.70.1 [INFO] [stderr] Compiling regex-syntax v0.8.5 [INFO] [stderr] Compiling colorchoice v1.0.3 [INFO] [stderr] Compiling anstyle v1.0.10 [INFO] [stderr] Compiling ipnet v2.11.0 [INFO] [stderr] Compiling heck v0.4.1 [INFO] [stderr] Compiling anstyle-query v1.1.2 [INFO] [stderr] Compiling paste v1.0.15 [INFO] [stderr] Compiling cmake v0.1.54 [INFO] [stderr] Compiling getrandom v0.3.3 [INFO] [stderr] Compiling async-task v4.7.1 [INFO] [stderr] Compiling anstream v0.6.18 [INFO] [stderr] Compiling rand_chacha v0.3.1 [INFO] [stderr] Compiling digest v0.10.7 [INFO] [stderr] Compiling rustls-pemfile v1.0.4 [INFO] [stderr] Compiling itertools v0.13.0 [INFO] [stderr] Compiling http-body-util v0.1.3 [INFO] [stderr] Compiling signal-hook-mio v0.2.4 [INFO] [stderr] Compiling castaway v0.2.3 [INFO] [stderr] Compiling sync_wrapper v1.0.2 [INFO] [stderr] Compiling sync_wrapper v0.1.2 [INFO] [stderr] Compiling unicode-segmentation v1.12.0 [INFO] [stderr] Compiling tower-layer v0.3.3 [INFO] [stderr] Compiling unicode-width v0.1.14 [INFO] [stderr] Compiling anyhow v1.0.98 [INFO] [stderr] Compiling cpufeatures v0.2.17 [INFO] [stderr] Compiling aliasable v0.1.3 [INFO] [stderr] Compiling clap_lex v0.7.4 [INFO] [stderr] Compiling strsim v0.11.1 [INFO] [stderr] Compiling option-ext v0.2.0 [INFO] [stderr] Compiling webpki-roots v0.25.4 [INFO] [stderr] Compiling dirs-sys v0.4.1 [INFO] [stderr] Compiling sha2 v0.10.9 [INFO] [stderr] Compiling compact_str v0.7.1 [INFO] [stderr] Compiling crossterm v0.27.0 [INFO] [stderr] Compiling rand v0.8.5 [INFO] [stderr] Compiling clap_builder v4.5.38 [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] Compiling imap-proto v0.16.5 [INFO] [stderr] Compiling unicode-truncate v1.1.0 [INFO] [stderr] Compiling hashlink v0.9.1 [INFO] [stderr] Compiling email-encoding v0.4.1 [INFO] [stderr] Compiling webpki-roots v0.26.11 [INFO] [stderr] Compiling chumsky v0.9.3 [INFO] [stderr] Compiling stop-token v0.7.0 [INFO] [stderr] Compiling itertools v0.12.1 [INFO] [stderr] Compiling rustls-pemfile v2.2.0 [INFO] [stderr] Compiling hostname v0.4.1 [INFO] [stderr] Compiling lru v0.12.5 [INFO] [stderr] Compiling nom v8.0.0 [INFO] [stderr] Compiling bufstream v0.1.4 [INFO] [stderr] Compiling cassowary v0.3.0 [INFO] [stderr] Compiling fallible-streaming-iterator v0.1.9 [INFO] [stderr] Compiling email_address v0.2.9 [INFO] [stderr] Compiling fallible-iterator v0.3.0 [INFO] [stderr] Compiling regex-automata v0.4.9 [INFO] [stderr] Compiling base64 v0.13.1 [INFO] [stderr] Compiling self_cell v1.2.0 [INFO] [stderr] Compiling quoted_printable v0.5.1 [INFO] [stderr] Compiling lazy_static v1.5.0 [INFO] [stderr] Compiling uuid v1.17.0 [INFO] [stderr] Compiling dirs v5.0.1 [INFO] [stderr] Compiling synstructure v0.13.2 [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 polling v3.7.4 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling tokio v1.45.1 [INFO] [stderr] Compiling async-io v2.4.0 [INFO] [stderr] Compiling strum_macros v0.26.4 [INFO] [stderr] Compiling ouroboros_macro v0.18.5 [INFO] [stderr] Compiling regex v1.11.1 [INFO] [stderr] Compiling futures-util v0.3.31 [INFO] [stderr] Compiling async-signal v0.2.10 [INFO] [stderr] Compiling clap_derive v4.5.32 [INFO] [stderr] Compiling async-process v2.3.0 [INFO] [stderr] Compiling stability v0.2.1 [INFO] [stderr] Compiling zerofrom v0.1.6 [INFO] [stderr] Compiling yoke v0.8.0 [INFO] [stderr] Compiling zerovec v0.11.2 [INFO] [stderr] Compiling zerotrie v0.2.2 [INFO] [stderr] Compiling strum v0.26.3 [INFO] [stderr] Compiling async-std v1.13.1 [INFO] [stderr] Compiling ratatui v0.26.3 [INFO] [stderr] Compiling rustls-webpki v0.101.7 [INFO] [stderr] Compiling sct v0.7.1 [INFO] [stderr] Compiling tinystr v0.8.1 [INFO] [stderr] Compiling potential_utf v0.1.2 [INFO] [stderr] Compiling ouroboros v0.18.5 [INFO] [stderr] Compiling icu_collections v2.0.0 [INFO] [stderr] Compiling icu_locale_core v2.0.0 [INFO] [stderr] Compiling clap v4.5.38 [INFO] [stderr] Compiling icu_provider v2.0.0 [INFO] [stderr] Compiling icu_properties v2.0.1 [INFO] [stderr] Compiling icu_normalizer v2.0.0 [INFO] [stderr] Compiling idna_adapter v1.2.1 [INFO] [stderr] Compiling idna v1.0.3 [INFO] [stderr] Compiling futures-executor v0.3.31 [INFO] [stderr] Compiling futures v0.3.31 [INFO] [stderr] Compiling url v2.5.4 [INFO] [stderr] Compiling chrono v0.4.41 [INFO] [stderr] Compiling serde_urlencoded v0.7.1 [INFO] [stderr] Compiling serde_path_to_error v0.1.17 [INFO] [stderr] Compiling tokio-util v0.7.15 [INFO] [stderr] Compiling tokio-rustls v0.24.1 [INFO] [stderr] Compiling tokio-native-tls v0.3.1 [INFO] [stderr] Compiling tower v0.5.2 [INFO] [stderr] Compiling lettre v0.11.16 [INFO] [stderr] Compiling async-native-tls v0.5.0 [INFO] [stderr] Compiling rusqlite v0.31.0 [INFO] [stderr] Compiling h2 v0.4.10 [INFO] [stderr] Compiling h2 v0.3.26 [INFO] [stderr] Compiling imap v3.0.0-alpha.15 [INFO] [stderr] Compiling async-imap v0.9.7 [INFO] [stderr] Compiling hyper v0.14.32 [INFO] [stderr] Compiling hyper v1.6.0 [INFO] [stderr] Compiling hyper-util v0.1.12 [INFO] [stderr] Compiling hyper-rustls v0.24.2 [INFO] [stderr] Compiling reqwest v0.11.27 [INFO] [stderr] Compiling hyper-tls v0.6.0 [INFO] [stderr] Compiling rustls-webpki v0.103.3 [INFO] [stderr] Compiling oauth2 v4.4.2 [INFO] [stderr] Compiling tokio-rustls v0.26.2 [INFO] [stderr] Compiling hyper-rustls v0.27.6 [INFO] [stderr] Compiling reqwest v0.12.15 [INFO] [stderr] Compiling 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)]` 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)]` 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)]` 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: field `labels` is never read [INFO] [stdout] --> src/mail/gmail_api.rs:82:5 [INFO] [stdout] | [INFO] [stdout] 81 | struct GmailLabels { [INFO] [stdout] | ----------- field in this struct [INFO] [stdout] 82 | labels: Option>, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `GmailLabels` 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 `id`, `name`, `message_list_visibility`, `label_list_visibility`, and `label_type` are never read [INFO] [stdout] --> src/mail/gmail_api.rs:87:5 [INFO] [stdout] | [INFO] [stdout] 86 | struct GmailLabel { [INFO] [stdout] | ---------- fields in this struct [INFO] [stdout] 87 | id: String, [INFO] [stdout] | ^^ [INFO] [stdout] 88 | name: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] 89 | #[serde(rename = "messageListVisibility")] [INFO] [stdout] 90 | message_list_visibility: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 91 | #[serde(rename = "labelListVisibility")] [INFO] [stdout] 92 | label_list_visibility: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 93 | #[serde(rename = "type")] [INFO] [stdout] 94 | label_type: Option, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `GmailLabel` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [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: 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: methods `search`, `search_by_sender`, and `search_by_subject` are never used [INFO] [stdout] --> src/search/mod.rs:14:12 [INFO] [stdout] | [INFO] [stdout] 9 | impl SearchEngine { [INFO] [stdout] | ----------------- methods in this implementation [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)]` 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 2m 29s [INFO] running `Command { std: "docker" "inspect" "f1862266b0e30da49b36a9503a0d89e57b9a2b65bf5c15e5cc30463189aeb604", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "f1862266b0e30da49b36a9503a0d89e57b9a2b65bf5c15e5cc30463189aeb604", kill_on_drop: false }` [INFO] [stdout] f1862266b0e30da49b36a9503a0d89e57b9a2b65bf5c15e5cc30463189aeb604 [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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:eea15d5475069c3ef791f10c2c6b5af2ee421ef2da1e680ecce1cba46243983b" "/opt/rustwide/cargo-home/bin/cargo" "+44f415c1d617ebc7b931a243b7b321ef8a6ca47c" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 380f70cf9aac57852ad246362dcf36235280ba20e487695cf2b55cbfb2398359 [INFO] running `Command { std: "docker" "start" "-a" "380f70cf9aac57852ad246362dcf36235280ba20e487695cf2b55cbfb2398359", kill_on_drop: false }` [INFO] [stderr] Compiling 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)]` 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)]` 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)]` 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: field `labels` is never read [INFO] [stdout] --> src/mail/gmail_api.rs:82:5 [INFO] [stdout] | [INFO] [stdout] 81 | struct GmailLabels { [INFO] [stdout] | ----------- field in this struct [INFO] [stdout] 82 | labels: Option>, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `GmailLabels` 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 `id`, `name`, `message_list_visibility`, `label_list_visibility`, and `label_type` are never read [INFO] [stdout] --> src/mail/gmail_api.rs:87:5 [INFO] [stdout] | [INFO] [stdout] 86 | struct GmailLabel { [INFO] [stdout] | ---------- fields in this struct [INFO] [stdout] 87 | id: String, [INFO] [stdout] | ^^ [INFO] [stdout] 88 | name: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] 89 | #[serde(rename = "messageListVisibility")] [INFO] [stdout] 90 | message_list_visibility: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 91 | #[serde(rename = "labelListVisibility")] [INFO] [stdout] 92 | label_list_visibility: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 93 | #[serde(rename = "type")] [INFO] [stdout] 94 | label_type: Option, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `GmailLabel` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [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: 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: methods `search`, `search_by_sender`, and `search_by_subject` are never used [INFO] [stdout] --> src/search/mod.rs:14:12 [INFO] [stdout] | [INFO] [stdout] 9 | impl SearchEngine { [INFO] [stdout] | ----------------- methods in this implementation [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)]` 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 `test` profile [unoptimized + debuginfo] target(s) in 4.52s [INFO] running `Command { std: "docker" "inspect" "380f70cf9aac57852ad246362dcf36235280ba20e487695cf2b55cbfb2398359", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "380f70cf9aac57852ad246362dcf36235280ba20e487695cf2b55cbfb2398359", kill_on_drop: false }` [INFO] [stdout] 380f70cf9aac57852ad246362dcf36235280ba20e487695cf2b55cbfb2398359