[INFO] cloning repository https://github.com/madolchepalooza/rust_mail_client
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/madolchepalooza/rust_mail_client" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmadolchepalooza%2Frust_mail_client", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmadolchepalooza%2Frust_mail_client'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] cd0c8836382cb4d658bbf8fa297d8b39485b5a67
[INFO] checking madolchepalooza/rust_mail_client against try#b1f2594eac607c1f051534800237eeedb5590a49 for pr-139493-3
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmadolchepalooza%2Frust_mail_client" "/workspace/builds/worker-4-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/madolchepalooza/rust_mail_client
[INFO] finished tweaking git repo https://github.com/madolchepalooza/rust_mail_client
[INFO] tweaked toml for git repo https://github.com/madolchepalooza/rust_mail_client written to /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/madolchepalooza/rust_mail_client on toolchain b1f2594eac607c1f051534800237eeedb5590a49
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b1f2594eac607c1f051534800237eeedb5590a49" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/madolchepalooza/rust_mail_client 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" "+b1f2594eac607c1f051534800237eeedb5590a49" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/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:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+b1f2594eac607c1f051534800237eeedb5590a49" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 1e62e828561a5faac201becdb162fd594162ba39a1230e2f922b74ee9461d4b3
[INFO] running `Command { std: "docker" "start" "-a" "1e62e828561a5faac201becdb162fd594162ba39a1230e2f922b74ee9461d4b3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "1e62e828561a5faac201becdb162fd594162ba39a1230e2f922b74ee9461d4b3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1e62e828561a5faac201becdb162fd594162ba39a1230e2f922b74ee9461d4b3", kill_on_drop: false }`
[INFO] [stdout] 1e62e828561a5faac201becdb162fd594162ba39a1230e2f922b74ee9461d4b3
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/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:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+b1f2594eac607c1f051534800237eeedb5590a49" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 4a3f8a0a17fce0d4e332f7414fbcff0946c7059dcb81ab4371c29eeb09fd5ac8
[INFO] running `Command { std: "docker" "start" "-a" "4a3f8a0a17fce0d4e332f7414fbcff0946c7059dcb81ab4371c29eeb09fd5ac8", kill_on_drop: false }`
[INFO] [stderr] warning: mail_client v0.1.0 (/opt/rustwide/workdir) ignoring invalid dependency `trust-dns` which is missing a lib target
[INFO] [stderr]    Compiling proc-macro2 v1.0.18
[INFO] [stderr]    Compiling libc v0.2.71
[INFO] [stderr]    Compiling syn v1.0.33
[INFO] [stderr]    Compiling pin-project-internal v0.4.22
[INFO] [stderr]    Compiling proc-macro-hack v0.5.16
[INFO] [stderr]    Compiling log v0.4.8
[INFO] [stderr]    Compiling serde_derive v1.0.114
[INFO] [stderr]     Checking encoding_index_tests v0.1.4
[INFO] [stderr]     Checking tinyvec v0.3.3
[INFO] [stderr]    Compiling num-traits v0.2.12
[INFO] [stderr]     Checking adler32 v1.1.0
[INFO] [stderr]     Checking gimli v0.21.0
[INFO] [stderr]    Compiling serde v1.0.114
[INFO] [stderr]     Checking miniz_oxide v0.3.7
[INFO] [stderr]     Checking unicode-normalization v0.1.13
[INFO] [stderr]    Compiling num-integer v0.1.43
[INFO] [stderr]     Checking bytes v0.5.5
[INFO] [stderr]     Checking object v0.20.0
[INFO] [stderr]     Checking getrandom v0.1.14
[INFO] [stderr]    Compiling quote v1.0.7
[INFO] [stderr]     Checking rand_core v0.5.1
[INFO] [stderr]     Checking iovec v0.1.4
[INFO] [stderr]     Checking net2 v0.2.34
[INFO] [stderr]     Checking num_cpus v1.13.0
[INFO] [stderr]     Checking rand_chacha v0.2.2
[INFO] [stderr]     Checking mio v0.6.22
[INFO] [stderr]     Checking idna v0.2.0
[INFO] [stderr]     Checking match_cfg v0.1.0
[INFO] [stderr]     Checking rand v0.7.3
[INFO] [stderr]     Checking smallvec v1.4.0
[INFO] [stderr]     Checking data-encoding v2.2.1
[INFO] [stderr]     Checking url v2.1.1
[INFO] [stderr]     Checking tokio v0.2.21
[INFO] [stderr]     Checking hostname v0.3.1
[INFO] [stderr]     Checking time v0.1.43
[INFO] [stderr]     Checking nibble_vec v0.0.4
[INFO] [stderr]     Checking linked-hash-map v0.5.3
[INFO] [stderr]     Checking endian-type v0.1.2
[INFO] [stderr]     Checking resolv-conf v0.6.3
[INFO] [stderr]     Checking chrono v0.4.12
[INFO] [stderr]     Checking lru-cache v0.1.2
[INFO] [stderr]     Checking encoding-index-tradchinese v1.20141219.5
[INFO] [stderr]     Checking radix_trie v0.1.6
[INFO] [stderr]     Checking encoding-index-singlebyte v1.20141219.5
[INFO] [stderr]     Checking encoding-index-simpchinese v1.20141219.5
[INFO] [stderr]     Checking encoding-index-japanese v1.20141219.5
[INFO] [stderr]     Checking encoding-index-korean v1.20141219.5
[INFO] [stderr]     Checking encoding v0.2.33
[INFO] [stderr]     Checking addr2line v0.12.2
[INFO] [stderr]     Checking backtrace v0.3.49
[INFO] [stderr]    Compiling futures-macro v0.3.5
[INFO] [stderr]    Compiling thiserror-impl v1.0.20
[INFO] [stderr]    Compiling enum-as-inner v0.3.2
[INFO] [stderr]    Compiling async-trait v0.1.36
[INFO] [stderr]     Checking thiserror v1.0.20
[INFO] [stderr]     Checking pin-project v0.4.22
[INFO] [stderr]     Checking futures-util v0.3.5
[INFO] [stderr]     Checking futures-executor v0.3.5
[INFO] [stderr]     Checking futures v0.3.5
[INFO] [stderr]     Checking trust-dns-proto v0.19.5
[INFO] [stderr]     Checking trust-dns-client v0.19.5
[INFO] [stderr]     Checking trust-dns-resolver v0.19.5
[INFO] [stderr]     Checking mail_client v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `trust_dns_resolver::config`
[INFO] [stdout]  --> src/util.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use trust_dns_resolver::config;
[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: `trust_dns_resolver::proto::rr::record_data::RData::OPT`
[INFO] [stdout]  --> src/util.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use trust_dns_resolver::proto::rr::record_data::RData::OPT;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `regex::Regex`
[INFO] [stdout]  --> src/util.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use regex::Regex;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::pop3::State::TCPConnected`
[INFO] [stdout]  --> src/pop3.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::pop3::State::TCPConnected;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Add`
[INFO] [stdout]  --> src/pop3.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::ops::Add;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Shutdown` and `TcpStream`
[INFO] [stdout]  --> src/main.rs:9:16
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::net::{TcpStream, Shutdown};
[INFO] [stdout]   |                ^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BufRead`, `BufReader`, `Read`, and `Write`
[INFO] [stdout]   --> src/main.rs:10:15
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::io::{Write, Read, BufReader, BufRead};
[INFO] [stdout]    |               ^^^^^  ^^^^  ^^^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `chrono::prelude::*`
[INFO] [stdout]   --> src/main.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use chrono::prelude::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `trust_dns_resolver::config`
[INFO] [stdout]  --> src/util.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use trust_dns_resolver::config;
[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: `trust_dns_resolver::proto::rr::record_data::RData::OPT`
[INFO] [stdout]  --> src/util.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use trust_dns_resolver::proto::rr::record_data::RData::OPT;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `regex::Regex`
[INFO] [stdout]  --> src/util.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use regex::Regex;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::pop3::State::TCPConnected`
[INFO] [stdout]  --> src/pop3.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::pop3::State::TCPConnected;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Add`
[INFO] [stdout]  --> src/pop3.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::ops::Add;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Shutdown` and `TcpStream`
[INFO] [stdout]  --> src/main.rs:9:16
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::net::{TcpStream, Shutdown};
[INFO] [stdout]   |                ^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BufRead`, `BufReader`, `Read`, and `Write`
[INFO] [stdout]   --> src/main.rs:10:15
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::io::{Write, Read, BufReader, BufRead};
[INFO] [stdout]    |               ^^^^^  ^^^^  ^^^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `chrono::prelude::*`
[INFO] [stdout]   --> src/main.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use chrono::prelude::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]    --> src/pop3.rs:628:5
[INFO] [stdout]     |
[INFO] [stdout] 624 |         return Ok(counter);
[INFO] [stdout]     |         ------------------ any code following this expression is unreachable
[INFO] [stdout] ...
[INFO] [stdout] 628 |     return Ok(0);
[INFO] [stdout]     |     ^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `k`
[INFO] [stdout]   --> src/tcp.rs:48:30
[INFO] [stdout]    |
[INFO] [stdout] 48 |             return if let Ok(k) = connection.get_mut().write(content.as_bytes()) {
[INFO] [stdout]    |                              ^ help: if this is intentional, prefix it with an underscore: `_k`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `from`
[INFO] [stdout]   --> src/smtp.rs:46:21
[INFO] [stdout]    |
[INFO] [stdout] 46 |         if let Some(from) = &self.from{
[INFO] [stdout]    |                     ^^^^ help: if this is intentional, prefix it with an underscore: `_from`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `to`
[INFO] [stdout]   --> src/smtp.rs:47:25
[INFO] [stdout]    |
[INFO] [stdout] 47 |             if let Some(to) = &self.to{
[INFO] [stdout]    |                         ^^ help: if this is intentional, prefix it with an underscore: `_to`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `subject`
[INFO] [stdout]   --> src/smtp.rs:48:29
[INFO] [stdout]    |
[INFO] [stdout] 48 |                 if let Some(subject) = &self.subject{
[INFO] [stdout]    |                             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_subject`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `content`
[INFO] [stdout]   --> src/smtp.rs:49:33
[INFO] [stdout]    |
[INFO] [stdout] 49 |                     if let Some(content) = &self.content{
[INFO] [stdout]    |                                 ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_content`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> src/pop3.rs:57:16
[INFO] [stdout]    |
[INFO] [stdout] 57 |             Ok(s) => {
[INFO] [stdout]    |                ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/pop3.rs:284:13
[INFO] [stdout]     |
[INFO] [stdout] 284 |             _ => {
[INFO] [stdout]     |             ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/pop3.rs:284:13
[INFO] [stdout]     |
[INFO] [stdout] 249 |             State::Init => {
[INFO] [stdout]     |             ----------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 252 |             State::TCPConnected => {
[INFO] [stdout]     |             ------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 277 |             State::Authorized => {
[INFO] [stdout]     |             ----------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 284 |             _ => {
[INFO] [stdout]     |             ^ collectively making this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/pop3.rs:312:13
[INFO] [stdout]     |
[INFO] [stdout] 312 |             _ => {
[INFO] [stdout]     |             ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/pop3.rs:312:13
[INFO] [stdout]     |
[INFO] [stdout] 292 |             State::Init => { println!("客户端 <{}> 尚未发起连接，请先尝试连接", self.name); return; },
[INFO] [stdout]     |             ----------- matches some of the same values
[INFO] [stdout] 293 |             State::TCPConnected => { println!("客户端 <{}> 尚未完成登录，请先尝试登录", self.name); return; },
[INFO] [stdout]     |             ------------------- matches some of the same values
[INFO] [stdout] 294 |             State::Authorized => {
[INFO] [stdout]     |             ----------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 312 |             _ => {
[INFO] [stdout]     |             ^ collectively making this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `error`
[INFO] [stdout]    --> src/pop3.rs:308:34
[INFO] [stdout]     |
[INFO] [stdout] 308 |                 }else if let Err(error) = status_result{
[INFO] [stdout]     |                                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_error`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/pop3.rs:349:13
[INFO] [stdout]     |
[INFO] [stdout] 349 |             _ => {
[INFO] [stdout]     |             ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/pop3.rs:349:13
[INFO] [stdout]     |
[INFO] [stdout] 329 |             State::Init => { println!("客户端 <{}> 尚未发起连接，请先尝试连接", self.name); return; },
[INFO] [stdout]     |             ----------- matches some of the same values
[INFO] [stdout] 330 |             State::TCPConnected => { println!("客户端 <{}> 尚未完成登录，请先尝试登录", self.name); return; },
[INFO] [stdout]     |             ------------------- matches some of the same values
[INFO] [stdout] 331 |             State::Authorized => {
[INFO] [stdout]     |             ----------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 349 |             _ => {
[INFO] [stdout]     |             ^ collectively making this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `error`
[INFO] [stdout]    --> src/pop3.rs:345:34
[INFO] [stdout]     |
[INFO] [stdout] 345 |                 }else if let Err(error) = list_result{
[INFO] [stdout]     |                                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_error`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/pop3.rs:382:13
[INFO] [stdout]     |
[INFO] [stdout] 382 |             _ => {
[INFO] [stdout]     |             ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/pop3.rs:382:13
[INFO] [stdout]     |
[INFO] [stdout] 357 |             State::Init => { println!("客户端 <{}> 尚未发起连接，请先尝试连接", self.name); return; },
[INFO] [stdout]     |             ----------- matches some of the same values
[INFO] [stdout] 358 |             State::TCPConnected => { println!("客户端 <{}> 尚未完成登录，请先尝试登录", self.name); return; },
[INFO] [stdout]     |             ------------------- matches some of the same values
[INFO] [stdout] 359 |             State::Authorized => {
[INFO] [stdout]     |             ----------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 382 |             _ => {
[INFO] [stdout]     |             ^ collectively making this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/pop3.rs:435:13
[INFO] [stdout]     |
[INFO] [stdout] 435 |             _ => {
[INFO] [stdout]     |             ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/pop3.rs:435:13
[INFO] [stdout]     |
[INFO] [stdout] 390 |             State::Init => { println!("客户端 <{}> 尚未发起连接，请先尝试连接", self.name); return; },
[INFO] [stdout]     |             ----------- matches some of the same values
[INFO] [stdout] 391 |             State::TCPConnected => { println!("客户端 <{}> 尚未完成登录，请先尝试登录", self.name); return; },
[INFO] [stdout]     |             ------------------- matches some of the same values
[INFO] [stdout] 392 |             State::Authorized => {
[INFO] [stdout]     |             ----------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 435 |             _ => {
[INFO] [stdout]     |             ^ collectively making this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ok_res`
[INFO] [stdout]    --> src/pop3.rs:445:33
[INFO] [stdout]     |
[INFO] [stdout] 445 |             if let Response::Ok(ok_res) = response{
[INFO] [stdout]     |                                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_ok_res`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ok_res`
[INFO] [stdout]    --> src/pop3.rs:470:33
[INFO] [stdout]     |
[INFO] [stdout] 470 |             if let Response::Ok(ok_res) = response{
[INFO] [stdout]     |                                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_ok_res`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ok_res`
[INFO] [stdout]    --> src/pop3.rs:485:33
[INFO] [stdout]     |
[INFO] [stdout] 485 |             if let Response::Ok(ok_res) = response{
[INFO] [stdout]     |                                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_ok_res`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]    --> src/pop3.rs:538:21
[INFO] [stdout]     |
[INFO] [stdout] 538 |         if let Some(s) = &self.time{
[INFO] [stdout]     |                     ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]    --> src/pop3.rs:628:5
[INFO] [stdout]     |
[INFO] [stdout] 624 |         return Ok(counter);
[INFO] [stdout]     |         ------------------ any code following this expression is unreachable
[INFO] [stdout] ...
[INFO] [stdout] 628 |     return Ok(0);
[INFO] [stdout]     |     ^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]    --> src/pop3.rs:539:25
[INFO] [stdout]     |
[INFO] [stdout] 539 |             if let Some(s) = &self.from{
[INFO] [stdout]     |                         ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]    --> src/pop3.rs:540:29
[INFO] [stdout]     |
[INFO] [stdout] 540 |                 if let Some(s) = &self.to{
[INFO] [stdout]     |                             ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]    --> src/pop3.rs:541:33
[INFO] [stdout]     |
[INFO] [stdout] 541 |                     if let Some(s) = &self.plain{
[INFO] [stdout]     |                                 ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]    --> src/pop3.rs:542:37
[INFO] [stdout]     |
[INFO] [stdout] 542 |                         if let Some(s) = &self.html{
[INFO] [stdout]     |                                     ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/pop3.rs:586:13
[INFO] [stdout]     |
[INFO] [stdout] 586 |         let mut ok_cap = regex_ok.captures(&response);
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/pop3.rs:590:13
[INFO] [stdout]     |
[INFO] [stdout] 590 |         let mut err_cap = regex_err.captures(&response);
[INFO] [stdout]     |             ----^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/pop3.rs:621:13
[INFO] [stdout]     |
[INFO] [stdout] 621 |         let mut cap = octets_count_regex.captures(&response);
[INFO] [stdout]     |             ----^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/pop3.rs:641:9
[INFO] [stdout]     |
[INFO] [stdout] 641 |     let mut lines1 = lines.clone();
[INFO] [stdout]     |         ----^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/pop3.rs:644:17
[INFO] [stdout]     |
[INFO] [stdout] 644 |             let mut cap = time_regex.captures(line).unwrap();
[INFO] [stdout]     |                 ----^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/pop3.rs:647:17
[INFO] [stdout]     |
[INFO] [stdout] 647 |             let mut cap = from_regex.captures(line).unwrap();
[INFO] [stdout]     |                 ----^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/pop3.rs:650:17
[INFO] [stdout]     |
[INFO] [stdout] 650 |             let mut cap = to_regex.captures(line).unwrap();
[INFO] [stdout]     |                 ----^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/pop3.rs:653:17
[INFO] [stdout]     |
[INFO] [stdout] 653 |             let mut cap = subject_regex.captures(line).unwrap();
[INFO] [stdout]     |                 ----^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/pop3.rs:656:17
[INFO] [stdout]     |
[INFO] [stdout] 656 |             let mut cap = boundary_regex.captures(line).unwrap();
[INFO] [stdout]     |                 ----^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/pop3.rs:660:17
[INFO] [stdout]     |
[INFO] [stdout] 660 |             let mut cap = to1_regex.captures(line).unwrap();
[INFO] [stdout]     |                 ----^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `error`
[INFO] [stdout]    --> src/pop3.rs:715:38
[INFO] [stdout]     |
[INFO] [stdout] 715 |                     }else if let Err(error) = from_utf8_result{
[INFO] [stdout]     |                                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_error`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `error`
[INFO] [stdout]    --> src/pop3.rs:718:34
[INFO] [stdout]     |
[INFO] [stdout] 718 |                 }else if let Err(error) = decode_result{
[INFO] [stdout]     |                                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_error`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `error`
[INFO] [stdout]    --> src/pop3.rs:734:38
[INFO] [stdout]     |
[INFO] [stdout] 734 |                     }else if let Err(error) = from_utf8_result{
[INFO] [stdout]     |                                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_error`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `error`
[INFO] [stdout]    --> src/pop3.rs:737:34
[INFO] [stdout]     |
[INFO] [stdout] 737 |                 }else if let Err(error) = decode_result{
[INFO] [stdout]     |                                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_error`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `k`
[INFO] [stdout]   --> src/tcp.rs:48:30
[INFO] [stdout]    |
[INFO] [stdout] 48 |             return if let Ok(k) = connection.get_mut().write(content.as_bytes()) {
[INFO] [stdout]    |                              ^ help: if this is intentional, prefix it with an underscore: `_k`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `from`
[INFO] [stdout]   --> src/smtp.rs:46:21
[INFO] [stdout]    |
[INFO] [stdout] 46 |         if let Some(from) = &self.from{
[INFO] [stdout]    |                     ^^^^ help: if this is intentional, prefix it with an underscore: `_from`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `to`
[INFO] [stdout]   --> src/smtp.rs:47:25
[INFO] [stdout]    |
[INFO] [stdout] 47 |             if let Some(to) = &self.to{
[INFO] [stdout]    |                         ^^ help: if this is intentional, prefix it with an underscore: `_to`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `subject`
[INFO] [stdout]   --> src/smtp.rs:48:29
[INFO] [stdout]    |
[INFO] [stdout] 48 |                 if let Some(subject) = &self.subject{
[INFO] [stdout]    |                             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_subject`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `content`
[INFO] [stdout]   --> src/smtp.rs:49:33
[INFO] [stdout]    |
[INFO] [stdout] 49 |                     if let Some(content) = &self.content{
[INFO] [stdout]    |                                 ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_content`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `pop3::Response` is more private than the item `pop3::Client::print_debug`
[INFO] [stdout]   --> src/pop3.rs:49:5
[INFO] [stdout]    |
[INFO] [stdout] 49 |     pub fn print_debug(&mut self, response: &Response){
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `pop3::Client::print_debug` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `pop3::Response` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/pop3.rs:14:1
[INFO] [stdout]    |
[INFO] [stdout] 14 | enum Response{
[INFO] [stdout]    | ^^^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_port` and `error_handler` are never used
[INFO] [stdout]   --> src/tcp.rs:26:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl Client{
[INFO] [stdout]    | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 26 |     pub fn set_port(&mut self, port: u16){
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 78 |     pub fn error_handler(&mut self, error: MailError) -> Result<(), MailError>{
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `group` is never read
[INFO] [stdout]   --> src/smtp.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub struct Response{
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] 10 |     code: usize,
[INFO] [stdout] 11 |     group: Vec<String>
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Response` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/smtp.rs:15:8
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl Response{
[INFO] [stdout]    | ------------- associated function in this implementation
[INFO] [stdout] 15 |     fn new(code: usize) -> Response{
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `show_mail_group` and `quit` are never used
[INFO] [stdout]    --> src/smtp.rs:358:12
[INFO] [stdout]     |
[INFO] [stdout]  84 | impl Client{
[INFO] [stdout]     | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 358 |     pub fn show_mail_group(&mut self){
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 371 |     pub fn quit(&mut self){
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_response_group` is never used
[INFO] [stdout]    --> src/smtp.rs:394:4
[INFO] [stdout]     |
[INFO] [stdout] 394 | fn parse_response_group(response_group: Vec<String>) -> Result<Response, MailError>{
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_response_end` is never used
[INFO] [stdout]    --> src/smtp.rs:409:4
[INFO] [stdout]     |
[INFO] [stdout] 409 | fn is_response_end(response: String) -> bool{
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/util.rs:15:28
[INFO] [stdout]    |
[INFO] [stdout] 15 |     POP3ResponseParseError(String), POP3StatusParseError(String), POP3MailIntegrityFailedError(usize),
[INFO] [stdout]    |     ---------------------- ^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MailError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 15 -     POP3ResponseParseError(String), POP3StatusParseError(String), POP3MailIntegrityFailedError(usize),
[INFO] [stdout] 15 +     POP3ResponseParseError(()), POP3StatusParseError(String), POP3MailIntegrityFailedError(usize),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/util.rs:15:58
[INFO] [stdout]    |
[INFO] [stdout] 15 |     POP3ResponseParseError(String), POP3StatusParseError(String), POP3MailIntegrityFailedError(usize),
[INFO] [stdout]    |                                     -------------------- ^^^^^^
[INFO] [stdout]    |                                     |
[INFO] [stdout]    |                                     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MailError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 15 -     POP3ResponseParseError(String), POP3StatusParseError(String), POP3MailIntegrityFailedError(usize),
[INFO] [stdout] 15 +     POP3ResponseParseError(String), POP3StatusParseError(()), POP3MailIntegrityFailedError(usize),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/util.rs:15:96
[INFO] [stdout]    |
[INFO] [stdout] 15 |     POP3ResponseParseError(String), POP3StatusParseError(String), POP3MailIntegrityFailedError(usize),
[INFO] [stdout]    |                                                                   ---------------------------- ^^^^^
[INFO] [stdout]    |                                                                   |
[INFO] [stdout]    |                                                                   field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MailError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 15 -     POP3ResponseParseError(String), POP3StatusParseError(String), POP3MailIntegrityFailedError(usize),
[INFO] [stdout] 15 +     POP3ResponseParseError(String), POP3StatusParseError(String), POP3MailIntegrityFailedError(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/util.rs:16:25
[INFO] [stdout]    |
[INFO] [stdout] 16 |     POP3MailDecodeError(String), POP3MailFormatNotSupportError(String),
[INFO] [stdout]    |     ------------------- ^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MailError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 16 -     POP3MailDecodeError(String), POP3MailFormatNotSupportError(String),
[INFO] [stdout] 16 +     POP3MailDecodeError(()), POP3MailFormatNotSupportError(String),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/util.rs:16:64
[INFO] [stdout]    |
[INFO] [stdout] 16 |     POP3MailDecodeError(String), POP3MailFormatNotSupportError(String),
[INFO] [stdout]    |                                  ----------------------------- ^^^^^^
[INFO] [stdout]    |                                  |
[INFO] [stdout]    |                                  field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MailError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 16 -     POP3MailDecodeError(String), POP3MailFormatNotSupportError(String),
[INFO] [stdout] 16 +     POP3MailDecodeError(String), POP3MailFormatNotSupportError(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/util.rs:18:28
[INFO] [stdout]    |
[INFO] [stdout] 18 |     SMTPResponseParseError(String), SMTPResponseNotErrorCodeError(String),
[INFO] [stdout]    |     ---------------------- ^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MailError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 18 -     SMTPResponseParseError(String), SMTPResponseNotErrorCodeError(String),
[INFO] [stdout] 18 +     SMTPResponseParseError(()), SMTPResponseNotErrorCodeError(String),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `SMTPResponseNotErrorCodeError` is never constructed
[INFO] [stdout]   --> src/util.rs:18:37
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub enum MailError{
[INFO] [stdout]    |          --------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 18 |     SMTPResponseParseError(String), SMTPResponseNotErrorCodeError(String),
[INFO] [stdout]    |                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MailError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_error_tcp_handled` is never used
[INFO] [stdout]   --> src/util.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub fn is_error_tcp_handled(error: MailError) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `trim_ok_result` is never used
[INFO] [stdout]   --> src/util.rs:30:8
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub fn trim_ok_result(result: Result<String, String>) -> Result<String, String>{
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dns_resolve` is never used
[INFO] [stdout]   --> src/util.rs:42:8
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub fn dns_resolve(host_name: String) -> Result<Ipv4Addr, String>{
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `status_query` and `mail_info_short` are never used
[INFO] [stdout]    --> src/pop3.rs:290:12
[INFO] [stdout]     |
[INFO] [stdout]  33 | impl Client{
[INFO] [stdout]     | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 290 |     pub fn status_query(&mut self){
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 327 |     pub fn mail_info_short(&mut self, order_number: usize){
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `display` and `check_head_integrity` are never used
[INFO] [stdout]    --> src/pop3.rs:556:8
[INFO] [stdout]     |
[INFO] [stdout] 524 | impl POP3Mail{
[INFO] [stdout]     | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 556 |     fn display(&self){
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 565 |     fn check_head_integrity(&self) -> usize{
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/tcp.rs:60:13
[INFO] [stdout]    |
[INFO] [stdout] 60 |             connection.into_inner().shutdown(Both);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 60 |             let _ = connection.into_inner().shutdown(Both);
[INFO] [stdout]    |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/tcp.rs:67:13
[INFO] [stdout]    |
[INFO] [stdout] 67 |             connection.read_until(b'\n', &mut buf);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 67 |             let _ = connection.read_until(b'\n', &mut buf);
[INFO] [stdout]    |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/util.rs:70:5
[INFO] [stdout]    |
[INFO] [stdout] 70 |     std::io::stdin().read_line(&mut line);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 70 |     let _ = std::io::stdin().read_line(&mut line);
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> src/pop3.rs:57:16
[INFO] [stdout]    |
[INFO] [stdout] 57 |             Ok(s) => {
[INFO] [stdout]    |                ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/pop3.rs:284:13
[INFO] [stdout]     |
[INFO] [stdout] 284 |             _ => {
[INFO] [stdout]     |             ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/pop3.rs:284:13
[INFO] [stdout]     |
[INFO] [stdout] 249 |             State::Init => {
[INFO] [stdout]     |             ----------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 252 |             State::TCPConnected => {
[INFO] [stdout]     |             ------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 277 |             State::Authorized => {
[INFO] [stdout]     |             ----------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 284 |             _ => {
[INFO] [stdout]     |             ^ collectively making this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/pop3.rs:312:13
[INFO] [stdout]     |
[INFO] [stdout] 312 |             _ => {
[INFO] [stdout]     |             ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/pop3.rs:312:13
[INFO] [stdout]     |
[INFO] [stdout] 292 |             State::Init => { println!("客户端 <{}> 尚未发起连接，请先尝试连接", self.name); return; },
[INFO] [stdout]     |             ----------- matches some of the same values
[INFO] [stdout] 293 |             State::TCPConnected => { println!("客户端 <{}> 尚未完成登录，请先尝试登录", self.name); return; },
[INFO] [stdout]     |             ------------------- matches some of the same values
[INFO] [stdout] 294 |             State::Authorized => {
[INFO] [stdout]     |             ----------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 312 |             _ => {
[INFO] [stdout]     |             ^ collectively making this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `error`
[INFO] [stdout]    --> src/pop3.rs:308:34
[INFO] [stdout]     |
[INFO] [stdout] 308 |                 }else if let Err(error) = status_result{
[INFO] [stdout]     |                                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_error`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/pop3.rs:349:13
[INFO] [stdout]     |
[INFO] [stdout] 349 |             _ => {
[INFO] [stdout]     |             ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/pop3.rs:349:13
[INFO] [stdout]     |
[INFO] [stdout] 329 |             State::Init => { println!("客户端 <{}> 尚未发起连接，请先尝试连接", self.name); return; },
[INFO] [stdout]     |             ----------- matches some of the same values
[INFO] [stdout] 330 |             State::TCPConnected => { println!("客户端 <{}> 尚未完成登录，请先尝试登录", self.name); return; },
[INFO] [stdout]     |             ------------------- matches some of the same values
[INFO] [stdout] 331 |             State::Authorized => {
[INFO] [stdout]     |             ----------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 349 |             _ => {
[INFO] [stdout]     |             ^ collectively making this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `error`
[INFO] [stdout]    --> src/pop3.rs:345:34
[INFO] [stdout]     |
[INFO] [stdout] 345 |                 }else if let Err(error) = list_result{
[INFO] [stdout]     |                                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_error`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/pop3.rs:382:13
[INFO] [stdout]     |
[INFO] [stdout] 382 |             _ => {
[INFO] [stdout]     |             ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/pop3.rs:382:13
[INFO] [stdout]     |
[INFO] [stdout] 357 |             State::Init => { println!("客户端 <{}> 尚未发起连接，请先尝试连接", self.name); return; },
[INFO] [stdout]     |             ----------- matches some of the same values
[INFO] [stdout] 358 |             State::TCPConnected => { println!("客户端 <{}> 尚未完成登录，请先尝试登录", self.name); return; },
[INFO] [stdout]     |             ------------------- matches some of the same values
[INFO] [stdout] 359 |             State::Authorized => {
[INFO] [stdout]     |             ----------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 382 |             _ => {
[INFO] [stdout]     |             ^ collectively making this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/pop3.rs:435:13
[INFO] [stdout]     |
[INFO] [stdout] 435 |             _ => {
[INFO] [stdout]     |             ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/pop3.rs:435:13
[INFO] [stdout]     |
[INFO] [stdout] 390 |             State::Init => { println!("客户端 <{}> 尚未发起连接，请先尝试连接", self.name); return; },
[INFO] [stdout]     |             ----------- matches some of the same values
[INFO] [stdout] 391 |             State::TCPConnected => { println!("客户端 <{}> 尚未完成登录，请先尝试登录", self.name); return; },
[INFO] [stdout]     |             ------------------- matches some of the same values
[INFO] [stdout] 392 |             State::Authorized => {
[INFO] [stdout]     |             ----------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 435 |             _ => {
[INFO] [stdout]     |             ^ collectively making this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ok_res`
[INFO] [stdout]    --> src/pop3.rs:445:33
[INFO] [stdout]     |
[INFO] [stdout] 445 |             if let Response::Ok(ok_res) = response{
[INFO] [stdout]     |                                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_ok_res`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ok_res`
[INFO] [stdout]    --> src/pop3.rs:470:33
[INFO] [stdout]     |
[INFO] [stdout] 470 |             if let Response::Ok(ok_res) = response{
[INFO] [stdout]     |                                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_ok_res`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ok_res`
[INFO] [stdout]    --> src/pop3.rs:485:33
[INFO] [stdout]     |
[INFO] [stdout] 485 |             if let Response::Ok(ok_res) = response{
[INFO] [stdout]     |                                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_ok_res`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]    --> src/pop3.rs:538:21
[INFO] [stdout]     |
[INFO] [stdout] 538 |         if let Some(s) = &self.time{
[INFO] [stdout]     |                     ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]    --> src/pop3.rs:539:25
[INFO] [stdout]     |
[INFO] [stdout] 539 |             if let Some(s) = &self.from{
[INFO] [stdout]     |                         ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]    --> src/pop3.rs:540:29
[INFO] [stdout]     |
[INFO] [stdout] 540 |                 if let Some(s) = &self.to{
[INFO] [stdout]     |                             ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]    --> src/pop3.rs:541:33
[INFO] [stdout]     |
[INFO] [stdout] 541 |                     if let Some(s) = &self.plain{
[INFO] [stdout]     |                                 ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]    --> src/pop3.rs:542:37
[INFO] [stdout]     |
[INFO] [stdout] 542 |                         if let Some(s) = &self.html{
[INFO] [stdout]     |                                     ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/pop3.rs:586:13
[INFO] [stdout]     |
[INFO] [stdout] 586 |         let mut ok_cap = regex_ok.captures(&response);
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/pop3.rs:590:13
[INFO] [stdout]     |
[INFO] [stdout] 590 |         let mut err_cap = regex_err.captures(&response);
[INFO] [stdout]     |             ----^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/pop3.rs:621:13
[INFO] [stdout]     |
[INFO] [stdout] 621 |         let mut cap = octets_count_regex.captures(&response);
[INFO] [stdout]     |             ----^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/pop3.rs:641:9
[INFO] [stdout]     |
[INFO] [stdout] 641 |     let mut lines1 = lines.clone();
[INFO] [stdout]     |         ----^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/pop3.rs:644:17
[INFO] [stdout]     |
[INFO] [stdout] 644 |             let mut cap = time_regex.captures(line).unwrap();
[INFO] [stdout]     |                 ----^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/pop3.rs:647:17
[INFO] [stdout]     |
[INFO] [stdout] 647 |             let mut cap = from_regex.captures(line).unwrap();
[INFO] [stdout]     |                 ----^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/pop3.rs:650:17
[INFO] [stdout]     |
[INFO] [stdout] 650 |             let mut cap = to_regex.captures(line).unwrap();
[INFO] [stdout]     |                 ----^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/pop3.rs:653:17
[INFO] [stdout]     |
[INFO] [stdout] 653 |             let mut cap = subject_regex.captures(line).unwrap();
[INFO] [stdout]     |                 ----^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/pop3.rs:656:17
[INFO] [stdout]     |
[INFO] [stdout] 656 |             let mut cap = boundary_regex.captures(line).unwrap();
[INFO] [stdout]     |                 ----^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/pop3.rs:660:17
[INFO] [stdout]     |
[INFO] [stdout] 660 |             let mut cap = to1_regex.captures(line).unwrap();
[INFO] [stdout]     |                 ----^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `error`
[INFO] [stdout]    --> src/pop3.rs:715:38
[INFO] [stdout]     |
[INFO] [stdout] 715 |                     }else if let Err(error) = from_utf8_result{
[INFO] [stdout]     |                                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_error`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `error`
[INFO] [stdout]    --> src/pop3.rs:718:34
[INFO] [stdout]     |
[INFO] [stdout] 718 |                 }else if let Err(error) = decode_result{
[INFO] [stdout]     |                                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_error`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `error`
[INFO] [stdout]    --> src/pop3.rs:734:38
[INFO] [stdout]     |
[INFO] [stdout] 734 |                     }else if let Err(error) = from_utf8_result{
[INFO] [stdout]     |                                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_error`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `error`
[INFO] [stdout]    --> src/pop3.rs:737:34
[INFO] [stdout]     |
[INFO] [stdout] 737 |                 }else if let Err(error) = decode_result{
[INFO] [stdout]     |                                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_error`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `pop3::Response` is more private than the item `pop3::Client::print_debug`
[INFO] [stdout]   --> src/pop3.rs:49:5
[INFO] [stdout]    |
[INFO] [stdout] 49 |     pub fn print_debug(&mut self, response: &Response){
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `pop3::Client::print_debug` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `pop3::Response` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/pop3.rs:14:1
[INFO] [stdout]    |
[INFO] [stdout] 14 | enum Response{
[INFO] [stdout]    | ^^^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_port` and `error_handler` are never used
[INFO] [stdout]   --> src/tcp.rs:26:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl Client{
[INFO] [stdout]    | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 26 |     pub fn set_port(&mut self, port: u16){
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 78 |     pub fn error_handler(&mut self, error: MailError) -> Result<(), MailError>{
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `group` is never read
[INFO] [stdout]   --> src/smtp.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub struct Response{
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] 10 |     code: usize,
[INFO] [stdout] 11 |     group: Vec<String>
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Response` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/smtp.rs:15:8
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl Response{
[INFO] [stdout]    | ------------- associated function in this implementation
[INFO] [stdout] 15 |     fn new(code: usize) -> Response{
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `show_mail_group` and `quit` are never used
[INFO] [stdout]    --> src/smtp.rs:358:12
[INFO] [stdout]     |
[INFO] [stdout]  84 | impl Client{
[INFO] [stdout]     | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 358 |     pub fn show_mail_group(&mut self){
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 371 |     pub fn quit(&mut self){
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_response_group` is never used
[INFO] [stdout]    --> src/smtp.rs:394:4
[INFO] [stdout]     |
[INFO] [stdout] 394 | fn parse_response_group(response_group: Vec<String>) -> Result<Response, MailError>{
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_response_end` is never used
[INFO] [stdout]    --> src/smtp.rs:409:4
[INFO] [stdout]     |
[INFO] [stdout] 409 | fn is_response_end(response: String) -> bool{
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/util.rs:15:28
[INFO] [stdout]    |
[INFO] [stdout] 15 |     POP3ResponseParseError(String), POP3StatusParseError(String), POP3MailIntegrityFailedError(usize),
[INFO] [stdout]    |     ---------------------- ^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MailError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 15 -     POP3ResponseParseError(String), POP3StatusParseError(String), POP3MailIntegrityFailedError(usize),
[INFO] [stdout] 15 +     POP3ResponseParseError(()), POP3StatusParseError(String), POP3MailIntegrityFailedError(usize),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/util.rs:15:58
[INFO] [stdout]    |
[INFO] [stdout] 15 |     POP3ResponseParseError(String), POP3StatusParseError(String), POP3MailIntegrityFailedError(usize),
[INFO] [stdout]    |                                     -------------------- ^^^^^^
[INFO] [stdout]    |                                     |
[INFO] [stdout]    |                                     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MailError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 15 -     POP3ResponseParseError(String), POP3StatusParseError(String), POP3MailIntegrityFailedError(usize),
[INFO] [stdout] 15 +     POP3ResponseParseError(String), POP3StatusParseError(()), POP3MailIntegrityFailedError(usize),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/util.rs:15:96
[INFO] [stdout]    |
[INFO] [stdout] 15 |     POP3ResponseParseError(String), POP3StatusParseError(String), POP3MailIntegrityFailedError(usize),
[INFO] [stdout]    |                                                                   ---------------------------- ^^^^^
[INFO] [stdout]    |                                                                   |
[INFO] [stdout]    |                                                                   field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MailError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 15 -     POP3ResponseParseError(String), POP3StatusParseError(String), POP3MailIntegrityFailedError(usize),
[INFO] [stdout] 15 +     POP3ResponseParseError(String), POP3StatusParseError(String), POP3MailIntegrityFailedError(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/util.rs:16:25
[INFO] [stdout]    |
[INFO] [stdout] 16 |     POP3MailDecodeError(String), POP3MailFormatNotSupportError(String),
[INFO] [stdout]    |     ------------------- ^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MailError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 16 -     POP3MailDecodeError(String), POP3MailFormatNotSupportError(String),
[INFO] [stdout] 16 +     POP3MailDecodeError(()), POP3MailFormatNotSupportError(String),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/util.rs:16:64
[INFO] [stdout]    |
[INFO] [stdout] 16 |     POP3MailDecodeError(String), POP3MailFormatNotSupportError(String),
[INFO] [stdout]    |                                  ----------------------------- ^^^^^^
[INFO] [stdout]    |                                  |
[INFO] [stdout]    |                                  field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MailError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 16 -     POP3MailDecodeError(String), POP3MailFormatNotSupportError(String),
[INFO] [stdout] 16 +     POP3MailDecodeError(String), POP3MailFormatNotSupportError(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 37.91s
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/util.rs:18:28
[INFO] [stdout]    |
[INFO] [stdout] 18 |     SMTPResponseParseError(String), SMTPResponseNotErrorCodeError(String),
[INFO] [stdout]    |     ---------------------- ^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MailError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 18 -     SMTPResponseParseError(String), SMTPResponseNotErrorCodeError(String),
[INFO] [stdout] 18 +     SMTPResponseParseError(()), SMTPResponseNotErrorCodeError(String),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `SMTPResponseNotErrorCodeError` is never constructed
[INFO] [stdout]   --> src/util.rs:18:37
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub enum MailError{
[INFO] [stdout]    |          --------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 18 |     SMTPResponseParseError(String), SMTPResponseNotErrorCodeError(String),
[INFO] [stdout]    |                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MailError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_error_tcp_handled` is never used
[INFO] [stdout]   --> src/util.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub fn is_error_tcp_handled(error: MailError) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `trim_ok_result` is never used
[INFO] [stdout]   --> src/util.rs:30:8
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub fn trim_ok_result(result: Result<String, String>) -> Result<String, String>{
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dns_resolve` is never used
[INFO] [stdout]   --> src/util.rs:42:8
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub fn dns_resolve(host_name: String) -> Result<Ipv4Addr, String>{
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `status_query` and `mail_info_short` are never used
[INFO] [stdout]    --> src/pop3.rs:290:12
[INFO] [stdout]     |
[INFO] [stdout]  33 | impl Client{
[INFO] [stdout]     | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 290 |     pub fn status_query(&mut self){
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 327 |     pub fn mail_info_short(&mut self, order_number: usize){
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `display` and `check_head_integrity` are never used
[INFO] [stdout]    --> src/pop3.rs:556:8
[INFO] [stdout]     |
[INFO] [stdout] 524 | impl POP3Mail{
[INFO] [stdout]     | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 556 |     fn display(&self){
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 565 |     fn check_head_integrity(&self) -> usize{
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/tcp.rs:60:13
[INFO] [stdout]    |
[INFO] [stdout] 60 |             connection.into_inner().shutdown(Both);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 60 |             let _ = connection.into_inner().shutdown(Both);
[INFO] [stdout]    |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/tcp.rs:67:13
[INFO] [stdout]    |
[INFO] [stdout] 67 |             connection.read_until(b'\n', &mut buf);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 67 |             let _ = connection.read_until(b'\n', &mut buf);
[INFO] [stdout]    |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/util.rs:70:5
[INFO] [stdout]    |
[INFO] [stdout] 70 |     std::io::stdin().read_line(&mut line);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 70 |     let _ = std::io::stdin().read_line(&mut line);
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "4a3f8a0a17fce0d4e332f7414fbcff0946c7059dcb81ab4371c29eeb09fd5ac8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4a3f8a0a17fce0d4e332f7414fbcff0946c7059dcb81ab4371c29eeb09fd5ac8", kill_on_drop: false }`
[INFO] [stdout] 4a3f8a0a17fce0d4e332f7414fbcff0946c7059dcb81ab4371c29eeb09fd5ac8
