[INFO] fetching crate ipmsg-rs 0.7.1... [INFO] checking ipmsg-rs-0.7.1 against try#a4980311fb7bb9e7893708e6bd3fbbfb2819fd3d for pr-145342-1 [INFO] extracting crate ipmsg-rs 0.7.1 into /workspace/builds/worker-1-tc2/source [INFO] started tweaking crates.io crate ipmsg-rs 0.7.1 [INFO] finished tweaking crates.io crate ipmsg-rs 0.7.1 [INFO] tweaked toml for crates.io crate ipmsg-rs 0.7.1 written to /workspace/builds/worker-1-tc2/source/Cargo.toml [INFO] validating manifest of crates.io crate ipmsg-rs 0.7.1 on toolchain a4980311fb7bb9e7893708e6bd3fbbfb2819fd3d [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+a4980311fb7bb9e7893708e6bd3fbbfb2819fd3d" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate ipmsg-rs 0.7.1 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" "+a4980311fb7bb9e7893708e6bd3fbbfb2819fd3d" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+a4980311fb7bb9e7893708e6bd3fbbfb2819fd3d" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] b141a7668336ad1893e91ea5751b2b96b108f8997f75326b8b04809caf2b8dbb [INFO] running `Command { std: "docker" "start" "-a" "b141a7668336ad1893e91ea5751b2b96b108f8997f75326b8b04809caf2b8dbb", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "b141a7668336ad1893e91ea5751b2b96b108f8997f75326b8b04809caf2b8dbb", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "b141a7668336ad1893e91ea5751b2b96b108f8997f75326b8b04809caf2b8dbb", kill_on_drop: false }` [INFO] [stdout] b141a7668336ad1893e91ea5751b2b96b108f8997f75326b8b04809caf2b8dbb [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+a4980311fb7bb9e7893708e6bd3fbbfb2819fd3d" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 714370dfbde82d1b744c9c50a65f66d42285e17428cae7764b74b393fd65452f [INFO] running `Command { std: "docker" "start" "-a" "714370dfbde82d1b744c9c50a65f66d42285e17428cae7764b74b393fd65452f", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.60 [INFO] [stderr] Compiling unicode-ident v1.0.9 [INFO] [stderr] Compiling quote v1.0.28 [INFO] [stderr] Compiling autocfg v1.1.0 [INFO] [stderr] Compiling serde v1.0.164 [INFO] [stderr] Compiling hashbrown v0.12.3 [INFO] [stderr] Compiling winnow v0.4.6 [INFO] [stderr] Compiling target-lexicon v0.12.7 [INFO] [stderr] Compiling heck v0.4.1 [INFO] [stderr] Compiling smallvec v1.10.0 [INFO] [stderr] Compiling pkg-config v0.3.27 [INFO] [stderr] Compiling version-compare v0.1.1 [INFO] [stderr] Compiling libc v0.2.146 [INFO] [stderr] Compiling memchr v2.5.0 [INFO] [stderr] Compiling version_check v0.9.4 [INFO] [stderr] Compiling syn v1.0.109 [INFO] [stderr] Compiling anyhow v1.0.71 [INFO] [stderr] Checking bitflags v1.3.2 [INFO] [stderr] Compiling futures-core v0.3.28 [INFO] [stderr] Compiling futures-task v0.3.28 [INFO] [stderr] Compiling once_cell v1.18.0 [INFO] [stderr] Compiling thiserror v1.0.40 [INFO] [stderr] Compiling futures-util v0.3.28 [INFO] [stderr] Checking pin-project-lite v0.2.9 [INFO] [stderr] Compiling futures-channel v0.3.28 [INFO] [stderr] Compiling indexmap v1.9.3 [INFO] [stderr] Compiling slab v0.4.8 [INFO] [stderr] Compiling proc-macro-error-attr v1.0.4 [INFO] [stderr] Compiling proc-macro-error v1.0.4 [INFO] [stderr] Checking pin-utils v0.1.0 [INFO] [stderr] Compiling gio v0.17.10 [INFO] [stderr] Compiling semver v1.0.17 [INFO] [stderr] Checking futures-io v0.3.28 [INFO] [stderr] Compiling io-lifetimes v1.0.11 [INFO] [stderr] Checking cfg-if v1.0.0 [INFO] [stderr] Compiling rustix v0.37.20 [INFO] [stderr] Checking encoding_index_tests v0.1.4 [INFO] [stderr] Compiling memoffset v0.9.0 [INFO] [stderr] Checking linux-raw-sys v0.3.8 [INFO] [stderr] Checking log v0.4.19 [INFO] [stderr] Compiling cc v1.0.79 [INFO] [stderr] Compiling num-traits v0.2.15 [INFO] [stderr] Compiling cfg-expr v0.15.2 [INFO] [stderr] Checking gimli v0.27.2 [INFO] [stderr] Compiling either v1.8.1 [INFO] [stderr] Checking adler v1.0.2 [INFO] [stderr] Compiling syn v2.0.18 [INFO] [stderr] Compiling crossbeam-utils v0.8.16 [INFO] [stderr] Checking utf8parse v0.2.1 [INFO] [stderr] Checking miniz_oxide v0.6.2 [INFO] [stderr] Checking anstyle-parse v0.2.0 [INFO] [stderr] Checking object v0.30.4 [INFO] [stderr] Checking aho-corasick v1.0.2 [INFO] [stderr] Checking anstyle-query v1.0.0 [INFO] [stderr] Checking regex-syntax v0.7.2 [INFO] [stderr] Checking colorchoice v1.0.0 [INFO] [stderr] Checking getrandom v0.2.10 [INFO] [stderr] Checking rustc-demangle v0.1.23 [INFO] [stderr] Compiling rustc_version v0.4.0 [INFO] [stderr] Checking anstyle v1.0.0 [INFO] [stderr] Checking byteorder v1.4.3 [INFO] [stderr] Checking uuid v1.3.4 [INFO] [stderr] Checking time v0.1.45 [INFO] [stderr] Checking encoding-index-tradchinese v1.20141219.5 [INFO] [stderr] Compiling field-offset v0.3.6 [INFO] [stderr] Checking encoding-index-japanese v1.20141219.5 [INFO] [stderr] Checking encoding-index-korean v1.20141219.5 [INFO] [stderr] Checking encoding-index-simpchinese v1.20141219.5 [INFO] [stderr] Checking encoding-index-singlebyte v1.20141219.5 [INFO] [stderr] Checking bytes v1.4.0 [INFO] [stderr] Checking humantime v2.1.0 [INFO] [stderr] Checking iana-time-zone v0.1.57 [INFO] [stderr] Checking match_cfg v0.1.0 [INFO] [stderr] Checking termcolor v1.2.0 [INFO] [stderr] Checking crossbeam-channel v0.5.8 [INFO] [stderr] Checking hostname v0.3.1 [INFO] [stderr] Checking encoding v0.2.33 [INFO] [stderr] Compiling backtrace v0.3.67 [INFO] [stderr] Checking regex v1.8.4 [INFO] [stderr] Checking combine v4.6.6 [INFO] [stderr] Checking chrono v0.4.26 [INFO] [stderr] Checking is-terminal v0.4.7 [INFO] [stderr] Checking anstream v0.3.2 [INFO] [stderr] Checking env_logger v0.10.0 [INFO] [stderr] Checking addr2line v0.19.0 [INFO] [stderr] Compiling serde_derive v1.0.164 [INFO] [stderr] Compiling thiserror-impl v1.0.40 [INFO] [stderr] Compiling futures-macro v0.3.28 [INFO] [stderr] Checking futures-executor v0.3.28 [INFO] [stderr] Compiling toml_datetime v0.6.2 [INFO] [stderr] Compiling serde_spanned v0.6.2 [INFO] [stderr] Compiling neli-proc-macros v0.1.3 [INFO] [stderr] Compiling toml_edit v0.19.10 [INFO] [stderr] Checking os_info v3.7.0 [INFO] [stderr] Checking neli v0.6.4 [INFO] [stderr] Checking toml v0.7.4 [INFO] [stderr] Checking local-ip-address v0.5.3 [INFO] [stderr] Checking human-panic v1.1.4 [INFO] [stderr] Compiling proc-macro-crate v1.3.1 [INFO] [stderr] Compiling system-deps v6.1.0 [INFO] [stderr] Compiling glib-macros v0.17.10 [INFO] [stderr] Compiling gtk4-macros v0.6.6 [INFO] [stderr] Compiling glib-sys v0.17.10 [INFO] [stderr] Compiling gobject-sys v0.17.10 [INFO] [stderr] Compiling gio-sys v0.17.10 [INFO] [stderr] Compiling pango-sys v0.17.10 [INFO] [stderr] Compiling cairo-sys-rs v0.17.10 [INFO] [stderr] Compiling gdk-pixbuf-sys v0.17.10 [INFO] [stderr] Compiling graphene-sys v0.17.10 [INFO] [stderr] Compiling gdk4-sys v0.6.3 [INFO] [stderr] Compiling gsk4-sys v0.6.3 [INFO] [stderr] Compiling gtk4-sys v0.6.3 [INFO] [stderr] Compiling libadwaita-sys v0.3.0 [INFO] [stderr] Checking glib v0.17.10 [INFO] [stderr] Checking cairo-rs v0.17.10 [INFO] [stderr] Checking graphene-rs v0.17.10 [INFO] [stderr] Checking pango v0.17.10 [INFO] [stderr] Checking gdk-pixbuf v0.17.10 [INFO] [stderr] Checking gdk4 v0.6.3 [INFO] [stderr] Checking gsk4 v0.6.3 [INFO] [stderr] Checking gtk4 v0.6.6 [INFO] [stderr] Checking libadwaita v0.3.1 [INFO] [stderr] Checking ipmsg-rs v0.7.1 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `gio::ApplicationFlags` [INFO] [stdout] --> src/main.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use gio::ApplicationFlags; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `FileInfo` [INFO] [stdout] --> src/models/event.rs:2:28 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::models::model::{FileInfo, Packet, ReceivedPacketInner, ReceivedSimpleFileInfo, ShareInfo, User}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::net::TcpStream` [INFO] [stdout] --> src/models/model.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::net::TcpStream; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Path` [INFO] [stdout] --> src/models/model.rs:3:17 [INFO] [stdout] | [INFO] [stdout] 3 | use std::path::{Path, PathBuf}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Arc` and `Mutex` [INFO] [stdout] --> src/models/message.rs:1:17 [INFO] [stdout] | [INFO] [stdout] 1 | use std::sync::{Arc, Mutex}; [INFO] [stdout] | ^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::cell::RefCell` [INFO] [stdout] --> src/models/message.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::cell::RefCell; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::thread` [INFO] [stdout] --> src/models/message.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use std::thread; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::net::UdpSocket` [INFO] [stdout] --> src/models/message.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::net::UdpSocket; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `DecoderTrap`, `EncoderTrap`, and `Encoding` [INFO] [stdout] --> src/models/message.rs:5:16 [INFO] [stdout] | [INFO] [stdout] 5 | use encoding::{Encoding, EncoderTrap, DecoderTrap}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `encoding::all::GB18030` [INFO] [stdout] --> src/models/message.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use encoding::all::GB18030; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `trace` and `warn` [INFO] [stdout] --> src/models/message.rs:8:17 [INFO] [stdout] | [INFO] [stdout] 8 | use log::{info, trace, warn}; [INFO] [stdout] | ^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `IPMSG_BROADCASTOPT`, `IPMSG_BR_ENTRY`, `IPMSG_DEFAULT_PORT`, and `self` [INFO] [stdout] --> src/models/message.rs:10:34 [INFO] [stdout] | [INFO] [stdout] 10 | use crate::constants::protocol::{self, IPMSG_SENDMSG, IPMSG_FILEATTACHOPT, IPMSG_DEFAULT_PORT, IPMSG_BR_ENTRY, IPMSG_BROADCASTOPT}; [INFO] [stdout] | ^^^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `DecoderTrap` [INFO] [stdout] --> src/util.rs:1:39 [INFO] [stdout] | [INFO] [stdout] 1 | use encoding::{Encoding, EncoderTrap, DecoderTrap}; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Duration` [INFO] [stdout] --> src/util.rs:6:17 [INFO] [stdout] | [INFO] [stdout] 6 | use std::time::{Duration, SystemTime}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `any`, `choice`, `optional`, `sep_by`, `skip_many1`, and `skip_many` [INFO] [stdout] --> src/util.rs:9:44 [INFO] [stdout] | [INFO] [stdout] 9 | use combine::{many1, many, Parser, Stream, sep_by, token, skip_many, skip_many1, satisfy, choice, optional, any}; [INFO] [stdout] | ^^^^^^ ^^^^^^^^^ ^^^^^^^^^^ ^^^^^^ ^^^^^^^^ ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `take_until_range`, `take_while1`, and `take_while` [INFO] [stdout] --> src/util.rs:10:30 [INFO] [stdout] | [INFO] [stdout] 10 | use combine::parser::range::{take_while, take_while1, take_until_range}; [INFO] [stdout] | ^^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `char`, `digit`, `letter`, and `space` [INFO] [stdout] --> src/util.rs:11:29 [INFO] [stdout] | [INFO] [stdout] 11 | use combine::parser::char::{letter, space, digit, char}; [INFO] [stdout] | ^^^^^^ ^^^^^ ^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `EncoderTrap` [INFO] [stdout] --> src/events/model.rs:4:29 [INFO] [stdout] | [INFO] [stdout] 4 | use encoding::{DecoderTrap, EncoderTrap, Encoding}; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::path::PathBuf` [INFO] [stdout] --> src/events/model.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use std::path::PathBuf; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `debug`, `trace`, and `warn` [INFO] [stdout] --> src/events/model.rs:9:11 [INFO] [stdout] | [INFO] [stdout] 9 | use log::{debug, error, info, trace, warn}; [INFO] [stdout] | ^^^^^ ^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `FileInfo` [INFO] [stdout] --> src/events/model.rs:11:28 [INFO] [stdout] | [INFO] [stdout] 11 | use crate::models::model::{FileInfo, Packet, ReceivedPacketInner, ReceivedSimpleFileInfo, ShareInfo, User}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `IPMSG_FILEATTACHOPT` and `IPMSG_SENDMSG` [INFO] [stdout] --> src/events/model.rs:15:96 [INFO] [stdout] | [INFO] [stdout] 15 | ...SG_BROADCASTOPT, IPMSG_DEFAULT_PORT, IPMSG_FILEATTACHOPT, IPMSG_LIMITED_BROADCAST, IPMSG_SENDMSG}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/events/model.rs:179:9 [INFO] [stdout] | [INFO] [stdout] 179 | ///扩展段 用户名|用户组 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 180 | let ext_vec = extstr.splitn(2, |c| c == ':').collect::>(); [INFO] [stdout] | -------------------------------------------------------------------- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `//` for a plain comment [INFO] [stdout] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AboutDialog`, `Fixed`, `Grid`, `IconSize`, `Image`, `Label`, `Orientation`, `ScrolledWindow`, and `Widget` [INFO] [stdout] --> src/ui/chat_window.rs:3:29 [INFO] [stdout] | [INFO] [stdout] 3 | self, CellRendererText, AboutDialog, IconSize, Image, Label, Window, [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^^ ^^^^^ ^^^^^ [INFO] [stdout] 4 | ListStore, TreeView, TreeViewColumn, Builder, Grid, Button, Orientation, [INFO] [stdout] | ^^^^ ^^^^^^^^^^^ [INFO] [stdout] 5 | Widget, TextView, Fixed, ScrolledWindow, WrapMode [INFO] [stdout] | ^^^^^^ ^^^^^ ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Mutex` [INFO] [stdout] --> src/ui/chat_window.rs:7:22 [INFO] [stdout] | [INFO] [stdout] 7 | use std::sync::{Arc, Mutex}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::sync::mpsc` [INFO] [stdout] --> src/ui/chat_window.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use std::sync::mpsc; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::thread` [INFO] [stdout] --> src/ui/chat_window.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use std::thread; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Path` [INFO] [stdout] --> src/ui/chat_window.rs:11:26 [INFO] [stdout] | [INFO] [stdout] 11 | use std::path::{PathBuf, Path}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `File` and `ReadDir` [INFO] [stdout] --> src/ui/chat_window.rs:12:21 [INFO] [stdout] | [INFO] [stdout] 12 | use std::fs::{self, File, Metadata, ReadDir}; [INFO] [stdout] | ^^^^ ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Duration`, `SystemTime`, and `UNIX_EPOCH` [INFO] [stdout] --> src/ui/chat_window.rs:13:23 [INFO] [stdout] | [INFO] [stdout] 13 | use std::time::{self, Duration, SystemTime, UNIX_EPOCH}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `trace` and `warn` [INFO] [stdout] --> src/ui/chat_window.rs:15:17 [INFO] [stdout] | [INFO] [stdout] 15 | use log::{info, trace, warn}; [INFO] [stdout] | ^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Packet` and `ShareInfo` [INFO] [stdout] --> src/ui/chat_window.rs:18:34 [INFO] [stdout] | [INFO] [stdout] 18 | use crate::models::model::{self, Packet, ShareInfo, ReceivedSimpleFileInfo}; [INFO] [stdout] | ^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::constants::protocol` [INFO] [stdout] --> src/ui/chat_window.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | use crate::constants::protocol; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `chrono::prelude::*` [INFO] [stdout] --> src/ui/main_win.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use chrono::prelude::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `TcpListener` and `TcpStream` [INFO] [stdout] --> src/ui/main_win.rs:2:16 [INFO] [stdout] | [INFO] [stdout] 2 | use std::net::{TcpListener, TcpStream}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Arc` and `Mutex` [INFO] [stdout] --> src/ui/main_win.rs:3:17 [INFO] [stdout] | [INFO] [stdout] 3 | use std::sync::{Arc, Mutex}; [INFO] [stdout] | ^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::cell::RefCell` [INFO] [stdout] --> src/ui/main_win.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::cell::RefCell; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::thread` [INFO] [stdout] --> src/ui/main_win.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use std::thread; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::sync::mpsc` [INFO] [stdout] --> src/ui/main_win.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use std::sync::mpsc; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Ipv4Addr`, `Ipv6Addr`, `SocketAddrV4`, `SocketAddrV6`, `SocketAddr`, and `ToSocketAddrs` [INFO] [stdout] --> src/ui/main_win.rs:9:16 [INFO] [stdout] | [INFO] [stdout] 9 | use std::net::{Ipv4Addr, Ipv6Addr, SocketAddr, SocketAddrV4, SocketAddrV6, ToSocketAddrs}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::env::args` [INFO] [stdout] --> src/ui/main_win.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use std::env::args; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `human_panic::setup_panic` [INFO] [stdout] --> src/ui/main_win.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | use human_panic::setup_panic; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ApplicationFlags`, `Icon`, `MenuItem`, and `Menu` [INFO] [stdout] --> src/ui/main_win.rs:12:11 [INFO] [stdout] | [INFO] [stdout] 12 | use gio::{ApplicationFlags, Icon, Menu, MenuItem}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ ^^^^ ^^^^ ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AboutDialog`, `Application`, `Builder`, `Button`, `CellRendererProgress`, `Fixed`, `Grid`, `IconSize`, `Image`, `ListBoxRow`, `ListBox`, `Orientation`, `TextView`, `Widget`, and `Window` [INFO] [stdout] --> src/ui/main_win.rs:14:17 [INFO] [stdout] | [INFO] [stdout] 14 | ...f, AboutDialog, Application, Builder, Button, CellRendererPixbuf, CellRendererProgress, CellRendererText, Fixed, Grid, IconSize, Image, Label, ListBox, ListBoxRow, ListStore, Orientation, ScrolledWindow, TextView, TreeView, TreeViewColumn, Widget, Window}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^ ^^^^^^^^ ^^^^^ ^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^ ^^^^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `gdk_pixbuf::Pixbuf` [INFO] [stdout] --> src/ui/main_win.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | use gdk_pixbuf::Pixbuf; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Receiver` [INFO] [stdout] --> src/ui/main_win.rs:16:25 [INFO] [stdout] | [INFO] [stdout] 16 | use glib::{MainContext, Receiver}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crossbeam_channel::unbounded` [INFO] [stdout] --> src/ui/main_win.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | use crossbeam_channel::unbounded; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `debug`, `trace`, and `warn` [INFO] [stdout] --> src/ui/main_win.rs:18:11 [INFO] [stdout] | [INFO] [stdout] 18 | use log::{debug, info, trace, warn}; [INFO] [stdout] | ^^^^^ ^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ErrMsg`, `FileInfo`, `OperUser`, `Operate`, `Packet`, `ReceivedPacketInner`, `ReceivedSimpleFileInfo`, `ShareInfo`, `User`, and `self` [INFO] [stdout] --> src/ui/main_win.rs:20:28 [INFO] [stdout] | [INFO] [stdout] 20 | use crate::models::model::{self, ErrMsg, FileInfo, Operate, OperUser, Packet, ReceivedPacketInner, ReceivedSimpleFileInfo, ShareInfo, User}; [INFO] [stdout] | ^^^^ ^^^^^^ ^^^^^^^^ ^^^^^^^ ^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `self` [INFO] [stdout] --> src/core/download.rs:3:15 [INFO] [stdout] | [INFO] [stdout] 3 | use std::io::{self, BufReader}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Display` and `self` [INFO] [stdout] --> src/core/download.rs:6:16 [INFO] [stdout] | [INFO] [stdout] 6 | use std::fmt::{self, Display}; [INFO] [stdout] | ^^^^ ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::error::Error` [INFO] [stdout] --> src/core/download.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use std::error::Error; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ReadDir` [INFO] [stdout] --> src/core/download.rs:8:27 [INFO] [stdout] | [INFO] [stdout] 8 | use std::fs::{self, File, ReadDir}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `EncoderTrap` [INFO] [stdout] --> src/core/download.rs:12:26 [INFO] [stdout] | [INFO] [stdout] 12 | use encoding::{Encoding, EncoderTrap, DecoderTrap}; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `trace` and `warn` [INFO] [stdout] --> src/core/download.rs:14:17 [INFO] [stdout] | [INFO] [stdout] 14 | use log::{info, trace, warn, debug}; [INFO] [stdout] | ^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `FileInfo` [INFO] [stdout] --> src/core/download.rs:19:36 [INFO] [stdout] | [INFO] [stdout] 19 | use crate::models::model::{Packet, FileInfo, ReceivedSimpleFileInfo}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around function argument [INFO] [stdout] --> src/core/download.rs:97:62 [INFO] [stdout] | [INFO] [stdout] 97 | ... let header_context_str = read_bytes(&mut buffer, (header_size - 1 - header_size_str.as_bytes().len() as u64))?;//-1是减去的那个冒号 [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 97 - let header_context_str = read_bytes(&mut buffer, (header_size - 1 - header_size_str.as_bytes().len() as u64))?;//-1是减去的那个冒号 [INFO] [stdout] 97 + let header_context_str = read_bytes(&mut buffer, header_size - 1 - header_size_str.as_bytes().len() as u64)?;//-1是减去的那个冒号 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ReadDir` [INFO] [stdout] --> src/core/fileserver.rs:7:37 [INFO] [stdout] | [INFO] [stdout] 7 | use std::fs::{self, File, Metadata, ReadDir}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `EncoderTrap` [INFO] [stdout] --> src/core/fileserver.rs:8:26 [INFO] [stdout] | [INFO] [stdout] 8 | use encoding::{Encoding, EncoderTrap, DecoderTrap}; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `trace` and `warn` [INFO] [stdout] --> src/core/fileserver.rs:11:17 [INFO] [stdout] | [INFO] [stdout] 11 | use log::{info, trace, warn, debug}; [INFO] [stdout] | ^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `FileInfo` and `Packet` [INFO] [stdout] --> src/core/fileserver.rs:13:28 [INFO] [stdout] | [INFO] [stdout] 13 | use crate::models::model::{FileInfo, Packet, ShareInfo}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `gio::ApplicationFlags` [INFO] [stdout] --> src/main.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use gio::ApplicationFlags; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `FileInfo` [INFO] [stdout] --> src/models/event.rs:2:28 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::models::model::{FileInfo, Packet, ReceivedPacketInner, ReceivedSimpleFileInfo, ShareInfo, User}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::net::TcpStream` [INFO] [stdout] --> src/models/model.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::net::TcpStream; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Path` [INFO] [stdout] --> src/models/model.rs:3:17 [INFO] [stdout] | [INFO] [stdout] 3 | use std::path::{Path, PathBuf}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Arc` and `Mutex` [INFO] [stdout] --> src/models/message.rs:1:17 [INFO] [stdout] | [INFO] [stdout] 1 | use std::sync::{Arc, Mutex}; [INFO] [stdout] | ^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::cell::RefCell` [INFO] [stdout] --> src/models/message.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::cell::RefCell; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::thread` [INFO] [stdout] --> src/models/message.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use std::thread; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::net::UdpSocket` [INFO] [stdout] --> src/models/message.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::net::UdpSocket; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `DecoderTrap`, `EncoderTrap`, and `Encoding` [INFO] [stdout] --> src/models/message.rs:5:16 [INFO] [stdout] | [INFO] [stdout] 5 | use encoding::{Encoding, EncoderTrap, DecoderTrap}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `encoding::all::GB18030` [INFO] [stdout] --> src/models/message.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use encoding::all::GB18030; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `trace` and `warn` [INFO] [stdout] --> src/models/message.rs:8:17 [INFO] [stdout] | [INFO] [stdout] 8 | use log::{info, trace, warn}; [INFO] [stdout] | ^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `IPMSG_BROADCASTOPT`, `IPMSG_BR_ENTRY`, `IPMSG_DEFAULT_PORT`, and `self` [INFO] [stdout] --> src/models/message.rs:10:34 [INFO] [stdout] | [INFO] [stdout] 10 | use crate::constants::protocol::{self, IPMSG_SENDMSG, IPMSG_FILEATTACHOPT, IPMSG_DEFAULT_PORT, IPMSG_BR_ENTRY, IPMSG_BROADCASTOPT}; [INFO] [stdout] | ^^^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `DecoderTrap` [INFO] [stdout] --> src/util.rs:1:39 [INFO] [stdout] | [INFO] [stdout] 1 | use encoding::{Encoding, EncoderTrap, DecoderTrap}; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Duration` [INFO] [stdout] --> src/util.rs:6:17 [INFO] [stdout] | [INFO] [stdout] 6 | use std::time::{Duration, SystemTime}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `any`, `choice`, `optional`, `sep_by`, `skip_many1`, and `skip_many` [INFO] [stdout] --> src/util.rs:9:44 [INFO] [stdout] | [INFO] [stdout] 9 | use combine::{many1, many, Parser, Stream, sep_by, token, skip_many, skip_many1, satisfy, choice, optional, any}; [INFO] [stdout] | ^^^^^^ ^^^^^^^^^ ^^^^^^^^^^ ^^^^^^ ^^^^^^^^ ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `take_until_range`, `take_while1`, and `take_while` [INFO] [stdout] --> src/util.rs:10:30 [INFO] [stdout] | [INFO] [stdout] 10 | use combine::parser::range::{take_while, take_while1, take_until_range}; [INFO] [stdout] | ^^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `char`, `digit`, `letter`, and `space` [INFO] [stdout] --> src/util.rs:11:29 [INFO] [stdout] | [INFO] [stdout] 11 | use combine::parser::char::{letter, space, digit, char}; [INFO] [stdout] | ^^^^^^ ^^^^^ ^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `EncoderTrap` [INFO] [stdout] --> src/events/model.rs:4:29 [INFO] [stdout] | [INFO] [stdout] 4 | use encoding::{DecoderTrap, EncoderTrap, Encoding}; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::path::PathBuf` [INFO] [stdout] --> src/events/model.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use std::path::PathBuf; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `debug`, `trace`, and `warn` [INFO] [stdout] --> src/events/model.rs:9:11 [INFO] [stdout] | [INFO] [stdout] 9 | use log::{debug, error, info, trace, warn}; [INFO] [stdout] | ^^^^^ ^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `FileInfo` [INFO] [stdout] --> src/events/model.rs:11:28 [INFO] [stdout] | [INFO] [stdout] 11 | use crate::models::model::{FileInfo, Packet, ReceivedPacketInner, ReceivedSimpleFileInfo, ShareInfo, User}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `IPMSG_FILEATTACHOPT` and `IPMSG_SENDMSG` [INFO] [stdout] --> src/events/model.rs:15:96 [INFO] [stdout] | [INFO] [stdout] 15 | ...SG_BROADCASTOPT, IPMSG_DEFAULT_PORT, IPMSG_FILEATTACHOPT, IPMSG_LIMITED_BROADCAST, IPMSG_SENDMSG}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/events/model.rs:179:9 [INFO] [stdout] | [INFO] [stdout] 179 | ///扩展段 用户名|用户组 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 180 | let ext_vec = extstr.splitn(2, |c| c == ':').collect::>(); [INFO] [stdout] | -------------------------------------------------------------------- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `//` for a plain comment [INFO] [stdout] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AboutDialog`, `Fixed`, `Grid`, `IconSize`, `Image`, `Label`, `Orientation`, `ScrolledWindow`, and `Widget` [INFO] [stdout] --> src/ui/chat_window.rs:3:29 [INFO] [stdout] | [INFO] [stdout] 3 | self, CellRendererText, AboutDialog, IconSize, Image, Label, Window, [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^^ ^^^^^ ^^^^^ [INFO] [stdout] 4 | ListStore, TreeView, TreeViewColumn, Builder, Grid, Button, Orientation, [INFO] [stdout] | ^^^^ ^^^^^^^^^^^ [INFO] [stdout] 5 | Widget, TextView, Fixed, ScrolledWindow, WrapMode [INFO] [stdout] | ^^^^^^ ^^^^^ ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Mutex` [INFO] [stdout] --> src/ui/chat_window.rs:7:22 [INFO] [stdout] | [INFO] [stdout] 7 | use std::sync::{Arc, Mutex}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::sync::mpsc` [INFO] [stdout] --> src/ui/chat_window.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use std::sync::mpsc; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::thread` [INFO] [stdout] --> src/ui/chat_window.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use std::thread; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Path` [INFO] [stdout] --> src/ui/chat_window.rs:11:26 [INFO] [stdout] | [INFO] [stdout] 11 | use std::path::{PathBuf, Path}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `File` and `ReadDir` [INFO] [stdout] --> src/ui/chat_window.rs:12:21 [INFO] [stdout] | [INFO] [stdout] 12 | use std::fs::{self, File, Metadata, ReadDir}; [INFO] [stdout] | ^^^^ ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Duration`, `SystemTime`, and `UNIX_EPOCH` [INFO] [stdout] --> src/ui/chat_window.rs:13:23 [INFO] [stdout] | [INFO] [stdout] 13 | use std::time::{self, Duration, SystemTime, UNIX_EPOCH}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `trace` and `warn` [INFO] [stdout] --> src/ui/chat_window.rs:15:17 [INFO] [stdout] | [INFO] [stdout] 15 | use log::{info, trace, warn}; [INFO] [stdout] | ^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Packet` and `ShareInfo` [INFO] [stdout] --> src/ui/chat_window.rs:18:34 [INFO] [stdout] | [INFO] [stdout] 18 | use crate::models::model::{self, Packet, ShareInfo, ReceivedSimpleFileInfo}; [INFO] [stdout] | ^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::constants::protocol` [INFO] [stdout] --> src/ui/chat_window.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | use crate::constants::protocol; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `chrono::prelude::*` [INFO] [stdout] --> src/ui/main_win.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use chrono::prelude::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `TcpListener` and `TcpStream` [INFO] [stdout] --> src/ui/main_win.rs:2:16 [INFO] [stdout] | [INFO] [stdout] 2 | use std::net::{TcpListener, TcpStream}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Arc` and `Mutex` [INFO] [stdout] --> src/ui/main_win.rs:3:17 [INFO] [stdout] | [INFO] [stdout] 3 | use std::sync::{Arc, Mutex}; [INFO] [stdout] | ^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::cell::RefCell` [INFO] [stdout] --> src/ui/main_win.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::cell::RefCell; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::thread` [INFO] [stdout] --> src/ui/main_win.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use std::thread; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::sync::mpsc` [INFO] [stdout] --> src/ui/main_win.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use std::sync::mpsc; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Ipv4Addr`, `Ipv6Addr`, `SocketAddrV4`, `SocketAddrV6`, `SocketAddr`, and `ToSocketAddrs` [INFO] [stdout] --> src/ui/main_win.rs:9:16 [INFO] [stdout] | [INFO] [stdout] 9 | use std::net::{Ipv4Addr, Ipv6Addr, SocketAddr, SocketAddrV4, SocketAddrV6, ToSocketAddrs}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated type alias `std::panic::PanicInfo`: use `PanicHookInfo` instead [INFO] [stdout] --> src/main.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | setup_panic!(); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] = note: this warning originates in the macro `$crate::setup_panic` which comes from the expansion of the macro `setup_panic` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated type alias `std::panic::PanicInfo`: use `PanicHookInfo` instead [INFO] [stdout] --> src/main.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | setup_panic!(); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `$crate::setup_panic` which comes from the expansion of the macro `setup_panic` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::env::args` [INFO] [stdout] --> src/ui/main_win.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use std::env::args; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `human_panic::setup_panic` [INFO] [stdout] --> src/ui/main_win.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | use human_panic::setup_panic; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ApplicationFlags`, `Icon`, `MenuItem`, and `Menu` [INFO] [stdout] --> src/ui/main_win.rs:12:11 [INFO] [stdout] | [INFO] [stdout] 12 | use gio::{ApplicationFlags, Icon, Menu, MenuItem}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ ^^^^ ^^^^ ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AboutDialog`, `Application`, `Builder`, `Button`, `CellRendererProgress`, `Fixed`, `Grid`, `IconSize`, `Image`, `ListBoxRow`, `ListBox`, `Orientation`, `TextView`, `Widget`, and `Window` [INFO] [stdout] --> src/ui/main_win.rs:14:17 [INFO] [stdout] | [INFO] [stdout] 14 | ...f, AboutDialog, Application, Builder, Button, CellRendererPixbuf, CellRendererProgress, CellRendererText, Fixed, Grid, IconSize, Image, Label, ListBox, ListBoxRow, ListStore, Orientation, ScrolledWindow, TextView, TreeView, TreeViewColumn, Widget, Window}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^ ^^^^^^^^ ^^^^^ ^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^ ^^^^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `gdk_pixbuf::Pixbuf` [INFO] [stdout] --> src/ui/main_win.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | use gdk_pixbuf::Pixbuf; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Receiver` [INFO] [stdout] --> src/ui/main_win.rs:16:25 [INFO] [stdout] | [INFO] [stdout] 16 | use glib::{MainContext, Receiver}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crossbeam_channel::unbounded` [INFO] [stdout] --> src/ui/main_win.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | use crossbeam_channel::unbounded; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `debug`, `trace`, and `warn` [INFO] [stdout] --> src/ui/main_win.rs:18:11 [INFO] [stdout] | [INFO] [stdout] 18 | use log::{debug, info, trace, warn}; [INFO] [stdout] | ^^^^^ ^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ErrMsg`, `FileInfo`, `OperUser`, `Operate`, `Packet`, `ReceivedPacketInner`, `ReceivedSimpleFileInfo`, `ShareInfo`, `User`, and `self` [INFO] [stdout] --> src/ui/main_win.rs:20:28 [INFO] [stdout] | [INFO] [stdout] 20 | use crate::models::model::{self, ErrMsg, FileInfo, Operate, OperUser, Packet, ReceivedPacketInner, ReceivedSimpleFileInfo, ShareInfo, User}; [INFO] [stdout] | ^^^^ ^^^^^^ ^^^^^^^^ ^^^^^^^ ^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `self` [INFO] [stdout] --> src/core/download.rs:3:15 [INFO] [stdout] | [INFO] [stdout] 3 | use std::io::{self, BufReader}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Display` and `self` [INFO] [stdout] --> src/core/download.rs:6:16 [INFO] [stdout] | [INFO] [stdout] 6 | use std::fmt::{self, Display}; [INFO] [stdout] | ^^^^ ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::error::Error` [INFO] [stdout] --> src/core/download.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use std::error::Error; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ReadDir` [INFO] [stdout] --> src/core/download.rs:8:27 [INFO] [stdout] | [INFO] [stdout] 8 | use std::fs::{self, File, ReadDir}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `EncoderTrap` [INFO] [stdout] --> src/core/download.rs:12:26 [INFO] [stdout] | [INFO] [stdout] 12 | use encoding::{Encoding, EncoderTrap, DecoderTrap}; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `trace` and `warn` [INFO] [stdout] --> src/core/download.rs:14:17 [INFO] [stdout] | [INFO] [stdout] 14 | use log::{info, trace, warn, debug}; [INFO] [stdout] | ^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `FileInfo` [INFO] [stdout] --> src/core/download.rs:19:36 [INFO] [stdout] | [INFO] [stdout] 19 | use crate::models::model::{Packet, FileInfo, ReceivedSimpleFileInfo}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around function argument [INFO] [stdout] --> src/core/download.rs:97:62 [INFO] [stdout] | [INFO] [stdout] 97 | ... let header_context_str = read_bytes(&mut buffer, (header_size - 1 - header_size_str.as_bytes().len() as u64))?;//-1是减去的那个冒号 [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 97 - let header_context_str = read_bytes(&mut buffer, (header_size - 1 - header_size_str.as_bytes().len() as u64))?;//-1是减去的那个冒号 [INFO] [stdout] 97 + let header_context_str = read_bytes(&mut buffer, header_size - 1 - header_size_str.as_bytes().len() as u64)?;//-1是减去的那个冒号 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ReadDir` [INFO] [stdout] --> src/core/fileserver.rs:7:37 [INFO] [stdout] | [INFO] [stdout] 7 | use std::fs::{self, File, Metadata, ReadDir}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `EncoderTrap` [INFO] [stdout] --> src/core/fileserver.rs:8:26 [INFO] [stdout] | [INFO] [stdout] 8 | use encoding::{Encoding, EncoderTrap, DecoderTrap}; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `trace` and `warn` [INFO] [stdout] --> src/core/fileserver.rs:11:17 [INFO] [stdout] | [INFO] [stdout] 11 | use log::{info, trace, warn, debug}; [INFO] [stdout] | ^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `FileInfo` and `Packet` [INFO] [stdout] --> src/core/fileserver.rs:13:28 [INFO] [stdout] | [INFO] [stdout] 13 | use crate::models::model::{FileInfo, Packet, ShareInfo}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated type alias `std::panic::PanicInfo`: use `PanicHookInfo` instead [INFO] [stdout] --> src/main.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | setup_panic!(); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] = note: this warning originates in the macro `$crate::setup_panic` which comes from the expansion of the macro `setup_panic` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated type alias `std::panic::PanicInfo`: use `PanicHookInfo` instead [INFO] [stdout] --> src/main.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | setup_panic!(); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `$crate::setup_panic` which comes from the expansion of the macro `setup_panic` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `c` [INFO] [stdout] --> src/util.rs:39:23 [INFO] [stdout] | [INFO] [stdout] 39 | many(satisfy(|c| true)), [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_c` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `c` [INFO] [stdout] --> src/util.rs:39:23 [INFO] [stdout] | [INFO] [stdout] 39 | many(satisfy(|c| true)), [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_c` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `chrono::NaiveDateTime::from_timestamp`: use `from_timestamp_opt()` instead [INFO] [stdout] --> src/events/model.rs:227:52 [INFO] [stdout] | [INFO] [stdout] 227 | let ntime = NaiveDateTime::from_timestamp(mmtime_num, 0); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `chrono::NaiveDateTime::from_timestamp`: use `from_timestamp_opt()` instead [INFO] [stdout] --> src/events/model.rs:227:52 [INFO] [stdout] | [INFO] [stdout] 227 | let ntime = NaiveDateTime::from_timestamp(mmtime_num, 0); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `adw::prelude` [INFO] [stdout] --> src/main.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use adw::prelude::*; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/models/message.rs:28:10 [INFO] [stdout] | [INFO] [stdout] 28 | for (i, file) in files.iter().enumerate() { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `adw::prelude` [INFO] [stdout] --> src/main.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use adw::prelude::*; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/models/message.rs:28:10 [INFO] [stdout] | [INFO] [stdout] 28 | for (i, file) in files.iter().enumerate() { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `msg_str` [INFO] [stdout] --> src/events/model.rs:206:13 [INFO] [stdout] | [INFO] [stdout] 206 | let msg_str = if ext_vec.len() > 0 { ext_vec[0] } else { "" }; [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_msg_str` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ntime` [INFO] [stdout] --> src/events/model.rs:227:29 [INFO] [stdout] | [INFO] [stdout] 227 | let ntime = NaiveDateTime::from_timestamp(mmtime_num, 0); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_ntime` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `text_view_history_clone` [INFO] [stdout] --> src/ui/chat_window.rs:68:9 [INFO] [stdout] | [INFO] [stdout] 68 | let text_view_history_clone = text_view_history.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_text_view_history_clone` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `chat_window_open_file` [INFO] [stdout] --> src/ui/chat_window.rs:130:9 [INFO] [stdout] | [INFO] [stdout] 130 | let chat_window_open_file = chat_window.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_chat_window_open_file` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `chat_window_open_dir` [INFO] [stdout] --> src/ui/chat_window.rs:181:9 [INFO] [stdout] | [INFO] [stdout] 181 | let chat_window_open_dir = chat_window.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_chat_window_open_dir` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `pre_send_files_open_dir` [INFO] [stdout] --> src/ui/chat_window.rs:182:9 [INFO] [stdout] | [INFO] [stdout] 182 | let pre_send_files_open_dir = pre_send_files.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pre_send_files_open_dir` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `tree_path` [INFO] [stdout] --> src/ui/chat_window.rs:88:118 [INFO] [stdout] | [INFO] [stdout] 88 | ...st_ip => move |tree_view, tree_path, tree_view_column| { [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tree_path` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `tree_view_column` [INFO] [stdout] --> src/ui/chat_window.rs:88:129 [INFO] [stdout] | [INFO] [stdout] 88 | ...e_view, tree_path, tree_view_column| { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tree_view_column` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `local_time` [INFO] [stdout] --> src/ui/chat_window.rs:159:21 [INFO] [stdout] | [INFO] [stdout] 159 | let local_time = chrono_time.with_timezone(&::chrono::Local); [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_local_time` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `local_time` [INFO] [stdout] --> src/ui/chat_window.rs:208:25 [INFO] [stdout] | [INFO] [stdout] 208 | let local_time = chrono_time.with_timezone(&::chrono::Local); [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_local_time` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/ui/chat_window.rs:78:26 [INFO] [stdout] | [INFO] [stdout] 78 | let (start_iter, mut end_iter) = text_view_presend.buffer().bounds(); [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `msg_str` [INFO] [stdout] --> src/events/model.rs:206:13 [INFO] [stdout] | [INFO] [stdout] 206 | let msg_str = if ext_vec.len() > 0 { ext_vec[0] } else { "" }; [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_msg_str` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ntime` [INFO] [stdout] --> src/events/model.rs:227:29 [INFO] [stdout] | [INFO] [stdout] 227 | let ntime = NaiveDateTime::from_timestamp(mmtime_num, 0); [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_ntime` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `text_view_history_clone` [INFO] [stdout] --> src/ui/chat_window.rs:68:9 [INFO] [stdout] | [INFO] [stdout] 68 | let text_view_history_clone = text_view_history.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_text_view_history_clone` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `chat_window_open_file` [INFO] [stdout] --> src/ui/chat_window.rs:130:9 [INFO] [stdout] | [INFO] [stdout] 130 | let chat_window_open_file = chat_window.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_chat_window_open_file` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `chat_window_open_dir` [INFO] [stdout] --> src/ui/chat_window.rs:181:9 [INFO] [stdout] | [INFO] [stdout] 181 | let chat_window_open_dir = chat_window.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_chat_window_open_dir` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `pre_send_files_open_dir` [INFO] [stdout] --> src/ui/chat_window.rs:182:9 [INFO] [stdout] | [INFO] [stdout] 182 | let pre_send_files_open_dir = pre_send_files.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pre_send_files_open_dir` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `tree_path` [INFO] [stdout] --> src/ui/chat_window.rs:88:118 [INFO] [stdout] | [INFO] [stdout] 88 | ...st_ip => move |tree_view, tree_path, tree_view_column| { [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tree_path` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `received_store` [INFO] [stdout] --> src/ui/chat_window.rs:267:25 [INFO] [stdout] | [INFO] [stdout] 267 | fn modify_received_list(received_store :Option, received_files: Arc>>) -> Continue { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_received_store` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `tree_view_column` [INFO] [stdout] --> src/ui/chat_window.rs:88:129 [INFO] [stdout] | [INFO] [stdout] 88 | ...e_view, tree_path, tree_view_column| { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tree_view_column` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `received_files` [INFO] [stdout] --> src/ui/chat_window.rs:267:60 [INFO] [stdout] | [INFO] [stdout] 267 | fn modify_received_list(received_store :Option, received_files: Arc>>) -> Continue { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_received_files` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `local_time` [INFO] [stdout] --> src/ui/chat_window.rs:159:21 [INFO] [stdout] | [INFO] [stdout] 159 | let local_time = chrono_time.with_timezone(&::chrono::Local); [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_local_time` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `local_time` [INFO] [stdout] --> src/ui/chat_window.rs:208:25 [INFO] [stdout] | [INFO] [stdout] 208 | let local_time = chrono_time.with_timezone(&::chrono::Local); [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_local_time` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `tree_path` [INFO] [stdout] --> src/ui/main_win.rs:78:53 [INFO] [stdout] | [INFO] [stdout] 78 | tree.connect_row_activated(move |tree_view, tree_path, tree_view_column| { [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tree_path` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `tree_view_column` [INFO] [stdout] --> src/ui/main_win.rs:78:64 [INFO] [stdout] | [INFO] [stdout] 78 | tree.connect_row_activated(move |tree_view, tree_path, tree_view_column| { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tree_view_column` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/ui/chat_window.rs:78:26 [INFO] [stdout] | [INFO] [stdout] 78 | let (start_iter, mut end_iter) = text_view_presend.buffer().bounds(); [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/ui/main_win.rs:236:17 [INFO] [stdout] | [INFO] [stdout] 236 | _ => { [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> src/ui/main_win.rs:236:17 [INFO] [stdout] | [INFO] [stdout] 101 | UiEvent::OpenOrReOpenChatWindow { name, ip } => { [INFO] [stdout] | -------------------------------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 110 | UiEvent::UpdateUserListFooterStatus(text) => { [INFO] [stdout] | ----------------------------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 113 | UiEvent::UserListRemoveOne(ip) => { [INFO] [stdout] | ------------------------------ matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 135 | UiEvent::UserListAddOne(income_user) => { [INFO] [stdout] | ------------------------------------ matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 236 | _ => { [INFO] [stdout] | ^ ...and 5 other patterns collectively make this unreachable [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `win` [INFO] [stdout] --> src/ui/main_win.rs:103:30 [INFO] [stdout] | [INFO] [stdout] 103 | Some(win) => {} [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_win` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `win` [INFO] [stdout] --> src/ui/main_win.rs:164:30 [INFO] [stdout] | [INFO] [stdout] 164 | Some(win) => { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_win` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `packet` [INFO] [stdout] --> src/ui/main_win.rs:170:62 [INFO] [stdout] | [INFO] [stdout] 170 | UiEvent::OpenOrReOpenChatWindow1 { name, ip, packet } => { [INFO] [stdout] | ^^^^^^ help: try ignoring the field: `packet: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `files` [INFO] [stdout] --> src/ui/main_win.rs:183:68 [INFO] [stdout] | [INFO] [stdout] 183 | UiEvent::DisplaySelfSendMsgInHis { to_ip, context, files } => { [INFO] [stdout] | ^^^^^ help: try ignoring the field: `files: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `his_start_iter` [INFO] [stdout] --> src/ui/main_win.rs:186:34 [INFO] [stdout] | [INFO] [stdout] 186 | ... let (his_start_iter, mut his_end_iter) = win.his_view.buffer().bounds(); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_his_start_iter` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `his_start_iter` [INFO] [stdout] --> src/ui/main_win.rs:195:34 [INFO] [stdout] | [INFO] [stdout] 195 | ... let (his_start_iter, mut his_end_iter) = win.his_view.buffer().bounds(); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_his_start_iter` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `received_store` [INFO] [stdout] --> src/ui/chat_window.rs:267:25 [INFO] [stdout] | [INFO] [stdout] 267 | fn modify_received_list(received_store :Option, received_files: Arc>>) -> Continue { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_received_store` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `received_files` [INFO] [stdout] --> src/ui/chat_window.rs:267:60 [INFO] [stdout] | [INFO] [stdout] 267 | fn modify_received_list(received_store :Option, received_files: Arc>>) -> Continue { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_received_files` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/core/download.rs:32:16 [INFO] [stdout] | [INFO] [stdout] 32 | pub fn run(mut self, file_info: ReceivedSimpleFileInfo, save_path: PathBuf, download_ip: String) { [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `tree_path` [INFO] [stdout] --> src/ui/main_win.rs:78:53 [INFO] [stdout] | [INFO] [stdout] 78 | tree.connect_row_activated(move |tree_view, tree_path, tree_view_column| { [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tree_path` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `tree_view_column` [INFO] [stdout] --> src/ui/main_win.rs:78:64 [INFO] [stdout] | [INFO] [stdout] 78 | tree.connect_row_activated(move |tree_view, tree_path, tree_view_column| { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tree_view_column` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `opt` [INFO] [stdout] --> src/core/download.rs:102:17 [INFO] [stdout] | [INFO] [stdout] 102 | let opt = protocol::get_opt(file_attr); [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_opt` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/core/download.rs:128:19 [INFO] [stdout] | [INFO] [stdout] 128 | fn read_delimiter(mut stream : & mut BufReader) -> Result> { [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/core/download.rs:143:15 [INFO] [stdout] | [INFO] [stdout] 143 | fn read_bytes(mut stream : & mut BufReader, len: u64) -> Result { [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/ui/main_win.rs:236:17 [INFO] [stdout] | [INFO] [stdout] 236 | _ => { [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> src/ui/main_win.rs:236:17 [INFO] [stdout] | [INFO] [stdout] 101 | UiEvent::OpenOrReOpenChatWindow { name, ip } => { [INFO] [stdout] | -------------------------------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 110 | UiEvent::UpdateUserListFooterStatus(text) => { [INFO] [stdout] | ----------------------------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 113 | UiEvent::UserListRemoveOne(ip) => { [INFO] [stdout] | ------------------------------ matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 135 | UiEvent::UserListAddOne(income_user) => { [INFO] [stdout] | ------------------------------------ matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 236 | _ => { [INFO] [stdout] | ^ ...and 5 other patterns collectively make this unreachable [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/core/download.rs:150:23 [INFO] [stdout] | [INFO] [stdout] 150 | fn read_bytes_to_file(mut stream : & mut BufReader, len: u64, file_path: &PathBuf) -> Result<()> { [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `win` [INFO] [stdout] --> src/ui/main_win.rs:103:30 [INFO] [stdout] | [INFO] [stdout] 103 | Some(win) => {} [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_win` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `win` [INFO] [stdout] --> src/ui/main_win.rs:164:30 [INFO] [stdout] | [INFO] [stdout] 164 | Some(win) => { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_win` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/core/download.rs:166:30 [INFO] [stdout] | [INFO] [stdout] 166 | fn read_bytes_to_file_unsize(mut stream : & mut BufReader, file_path: &PathBuf) -> Result<()> { [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `packet` [INFO] [stdout] --> src/ui/main_win.rs:170:62 [INFO] [stdout] | [INFO] [stdout] 170 | UiEvent::OpenOrReOpenChatWindow1 { name, ip, packet } => { [INFO] [stdout] | ^^^^^^ help: try ignoring the field: `packet: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `files` [INFO] [stdout] --> src/ui/main_win.rs:183:68 [INFO] [stdout] | [INFO] [stdout] 183 | UiEvent::DisplaySelfSendMsgInHis { to_ip, context, files } => { [INFO] [stdout] | ^^^^^ help: try ignoring the field: `files: _` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `his_start_iter` [INFO] [stdout] --> src/ui/main_win.rs:186:34 [INFO] [stdout] | [INFO] [stdout] 186 | ... let (his_start_iter, mut his_end_iter) = win.his_view.buffer().bounds(); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_his_start_iter` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `his_start_iter` [INFO] [stdout] --> src/ui/main_win.rs:195:34 [INFO] [stdout] | [INFO] [stdout] 195 | ... let (his_start_iter, mut his_end_iter) = win.his_view.buffer().bounds(); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_his_start_iter` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/core/fileserver.rs:46:25 [INFO] [stdout] | [INFO] [stdout] 46 | let mut tmp_buf = &buf[0..byte_size]; [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `search_result` is never read [INFO] [stdout] --> src/core/fileserver.rs:82:21 [INFO] [stdout] | [INFO] [stdout] 82 | let mut search_result: Option = Option::None; [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: variable does not need to be mutable [INFO] [stdout] --> src/core/fileserver.rs:76:58 [INFO] [stdout] | [INFO] [stdout] 76 | fn process_dir(pool_tmp: Arc>>, mut stream_echo: TcpStream, ext_str: String) -> () { [INFO] [stdout] | ----^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `offset` [INFO] [stdout] --> src/core/fileserver.rs:106:17 [INFO] [stdout] | [INFO] [stdout] 106 | let offset = file_attr[2].parse::().unwrap(); [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `search_result` is never read [INFO] [stdout] --> src/core/fileserver.rs:107:21 [INFO] [stdout] | [INFO] [stdout] 107 | let mut search_result: Option = Option::None; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/core/fileserver.rs:100:60 [INFO] [stdout] | [INFO] [stdout] 100 | fn process_file(pool_tmp: &Arc>>, mut stream_echo: &mut TcpStream, ext_str: String) -> () { [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/core/download.rs:32:16 [INFO] [stdout] | [INFO] [stdout] 32 | pub fn run(mut self, file_info: ReceivedSimpleFileInfo, save_path: PathBuf, download_ip: String) { [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `opt` [INFO] [stdout] --> src/core/download.rs:102:17 [INFO] [stdout] | [INFO] [stdout] 102 | let opt = protocol::get_opt(file_attr); [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_opt` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `PutInTcpFilePool` is never constructed [INFO] [stdout] --> src/models/event.rs:31:5 [INFO] [stdout] | [INFO] [stdout] 19 | pub enum ModelEvent { [INFO] [stdout] | ---------- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 31 | PutInTcpFilePool(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `ExtStr` is never used [INFO] [stdout] --> src/models/model.rs:26:6 [INFO] [stdout] | [INFO] [stdout] 26 | type ExtStr = String; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `ExtMsg` is never used [INFO] [stdout] --> src/models/model.rs:28:7 [INFO] [stdout] | [INFO] [stdout] 28 | trait ExtMsg { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `PacketBuilder` is never constructed [INFO] [stdout] --> src/models/model.rs:33:12 [INFO] [stdout] | [INFO] [stdout] 33 | pub struct PacketBuilder { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `command` and `command_opt` are never used [INFO] [stdout] --> src/models/model.rs:50:8 [INFO] [stdout] | [INFO] [stdout] 48 | impl PacketBuilder { [INFO] [stdout] | ------------------ associated items in this implementation [INFO] [stdout] 49 | ///命令 [INFO] [stdout] 50 | fn command(command_no: u32) -> PacketBuilder { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 61 | fn command_opt(mut self, ext_command_no: u32) -> PacketBuilder { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Operate` is never used [INFO] [stdout] --> src/models/model.rs:148:10 [INFO] [stdout] | [INFO] [stdout] 148 | pub enum Operate { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `OperUser` is never constructed [INFO] [stdout] --> src/models/model.rs:153:12 [INFO] [stdout] | [INFO] [stdout] 153 | pub struct OperUser{ [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/models/model.rs:159:12 [INFO] [stdout] | [INFO] [stdout] 158 | impl OperUser { [INFO] [stdout] | ------------- associated function in this implementation [INFO] [stdout] 159 | pub fn new(user: User, oper :Operate) -> OperUser{ [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/core/download.rs:128:19 [INFO] [stdout] | [INFO] [stdout] 128 | fn read_delimiter(mut stream : & mut BufReader) -> Result> { [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `host`, `host_cnt`, `file_cnt`, and `attach_time` are never read [INFO] [stdout] --> src/models/model.rs:172:9 [INFO] [stdout] | [INFO] [stdout] 168 | pub struct ShareInfo { [INFO] [stdout] | --------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 172 | pub host: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] 173 | // 要发送的目的机器个数 [INFO] [stdout] 174 | pub host_cnt: u32, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 179 | pub file_cnt: u32, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 180 | //文件添加时间 [INFO] [stdout] 181 | pub attach_time: NaiveTime, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ShareInfo` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `name`, `atime`, and `crtime` are never read [INFO] [stdout] --> src/models/model.rs:190:9 [INFO] [stdout] | [INFO] [stdout] 185 | pub struct FileInfo { [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 190 | pub name: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 198 | pub atime: NaiveTime, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 199 | //文件创建时间 [INFO] [stdout] 200 | pub crtime: NaiveTime [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `FileInfo` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `opt_files` is never used [INFO] [stdout] --> src/models/model.rs:248:12 [INFO] [stdout] | [INFO] [stdout] 234 | impl ReceivedPacketInner { [INFO] [stdout] | ------------------------ method in this implementation [INFO] [stdout] ... [INFO] [stdout] 248 | pub fn opt_files(mut self, opt_files: Vec) -> ReceivedPacketInner { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ErrMsg` is never constructed [INFO] [stdout] --> src/models/model.rs:259:12 [INFO] [stdout] | [INFO] [stdout] 259 | pub struct ErrMsg { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `ip` and `pre_send_files` are never read [INFO] [stdout] --> src/ui/chat_window.rs:31:9 [INFO] [stdout] | [INFO] [stdout] 28 | pub struct ChatWindow { [INFO] [stdout] | ---------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 31 | pub ip :String, [INFO] [stdout] | ^^ [INFO] [stdout] 32 | pub pre_send_files :Arc>>, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ChatWindow` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `modify_received_list` is never used [INFO] [stdout] --> src/ui/chat_window.rs:267:4 [INFO] [stdout] | [INFO] [stdout] 267 | fn modify_received_list(received_store :Option, received_files: Arc>>) -> Continue { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/core/download.rs:143:15 [INFO] [stdout] | [INFO] [stdout] 143 | fn read_bytes(mut stream : & mut BufReader, len: u64) -> Result { [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `read_bytes_to_file_unsize` is never used [INFO] [stdout] --> src/core/download.rs:166:4 [INFO] [stdout] | [INFO] [stdout] 166 | fn read_bytes_to_file_unsize(mut stream : & mut BufReader, file_path: &PathBuf) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `IPMSG_BR_ISGETLIST` is never used [INFO] [stdout] --> src/constants/protocol.rs:21:11 [INFO] [stdout] | [INFO] [stdout] 21 | pub const IPMSG_BR_ISGETLIST: u32 = 0x00000010; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `IPMSG_OKGETLIST` is never used [INFO] [stdout] --> src/constants/protocol.rs:23:11 [INFO] [stdout] | [INFO] [stdout] 23 | pub const IPMSG_OKGETLIST: u32 = 0x00000011; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `IPMSG_GETLIST` is never used [INFO] [stdout] --> src/constants/protocol.rs:25:11 [INFO] [stdout] | [INFO] [stdout] 25 | pub const IPMSG_GETLIST: u32 = 0x00000012; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `IPMSG_ANSLIST` is never used [INFO] [stdout] --> src/constants/protocol.rs:27:11 [INFO] [stdout] | [INFO] [stdout] 27 | pub const IPMSG_ANSLIST: u32 = 0x00000013; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `IPMSG_BR_ISGETLIST2` is never used [INFO] [stdout] --> src/constants/protocol.rs:29:11 [INFO] [stdout] | [INFO] [stdout] 29 | pub const IPMSG_BR_ISGETLIST2: u32 = 0x00000018; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `IPMSG_READMSG` is never used [INFO] [stdout] --> src/constants/protocol.rs:37:11 [INFO] [stdout] | [INFO] [stdout] 37 | pub const IPMSG_READMSG: u32 = 0x00000030; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `IPMSG_DELMSG` is never used [INFO] [stdout] --> src/constants/protocol.rs:39:11 [INFO] [stdout] | [INFO] [stdout] 39 | pub const IPMSG_DELMSG: u32 = 0x00000031; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `IPMSG_ANSREADMSG` is never used [INFO] [stdout] --> src/constants/protocol.rs:42:11 [INFO] [stdout] | [INFO] [stdout] 42 | pub const IPMSG_ANSREADMSG: u32 = 0x00000032; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `IPMSG_GETINFO` is never used [INFO] [stdout] --> src/constants/protocol.rs:44:11 [INFO] [stdout] | [INFO] [stdout] 44 | pub const IPMSG_GETINFO: u32 = 0x00000040; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `IPMSG_SENDINFO` is never used [INFO] [stdout] --> src/constants/protocol.rs:46:11 [INFO] [stdout] | [INFO] [stdout] 46 | pub const IPMSG_SENDINFO: u32 = 0x00000041; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `IPMSG_GETABSENCEINFO` is never used [INFO] [stdout] --> src/constants/protocol.rs:49:11 [INFO] [stdout] | [INFO] [stdout] 49 | pub const IPMSG_GETABSENCEINFO: u32 = 0x00000050; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `IPMSG_SENDABSENCEINFO` is never used [INFO] [stdout] --> src/constants/protocol.rs:51:11 [INFO] [stdout] | [INFO] [stdout] 51 | pub const IPMSG_SENDABSENCEINFO: u32 = 0x00000051; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `IPMSG_RELEASEFILES` is never used [INFO] [stdout] --> src/constants/protocol.rs:56:11 [INFO] [stdout] | [INFO] [stdout] 56 | pub const IPMSG_RELEASEFILES: u32 = 0x00000061; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `IPMSG_GETPUBKEY` is never used [INFO] [stdout] --> src/constants/protocol.rs:61:11 [INFO] [stdout] | [INFO] [stdout] 61 | pub const IPMSG_GETPUBKEY: u32 = 0x00000072; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `IPMSG_ANSPUBKEY` is never used [INFO] [stdout] --> src/constants/protocol.rs:63:11 [INFO] [stdout] | [INFO] [stdout] 63 | pub const IPMSG_ANSPUBKEY: u32 = 0x00000073; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `IPMSG_FILE_SYMLINK` is never used [INFO] [stdout] --> src/constants/protocol.rs:69:11 [INFO] [stdout] | [INFO] [stdout] 69 | pub const IPMSG_FILE_SYMLINK: u32 = 0x00000004; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `IPMSG_FILE_CDEV` is never used [INFO] [stdout] --> src/constants/protocol.rs:70:11 [INFO] [stdout] | [INFO] [stdout] 70 | pub const IPMSG_FILE_CDEV: u32 = 0x00000005;// for UNIX [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `IPMSG_FILE_BDEV` is never used [INFO] [stdout] --> src/constants/protocol.rs:71:11 [INFO] [stdout] | [INFO] [stdout] 71 | pub const IPMSG_FILE_BDEV: u32 = 0x00000006;// for UNIX [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `IPMSG_FILE_FIFO` is never used [INFO] [stdout] --> src/constants/protocol.rs:72:11 [INFO] [stdout] | [INFO] [stdout] 72 | pub const IPMSG_FILE_FIFO: u32 = 0x00000007;// for UNIX [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `IPMSG_FILE_RESFORK` is never used [INFO] [stdout] --> src/constants/protocol.rs:73:11 [INFO] [stdout] | [INFO] [stdout] 73 | pub const IPMSG_FILE_RESFORK: u32 = 0x00000010;// for mac [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `IPMSG_FILE_RONLYOPT` is never used [INFO] [stdout] --> src/constants/protocol.rs:76:11 [INFO] [stdout] | [INFO] [stdout] 76 | pub const IPMSG_FILE_RONLYOPT: u32 = 0x00000100; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/core/download.rs:150:23 [INFO] [stdout] | [INFO] [stdout] 150 | fn read_bytes_to_file(mut stream : & mut BufReader, len: u64, file_path: &PathBuf) -> Result<()> { [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `IPMSG_FILE_HIDDENOPT` is never used [INFO] [stdout] --> src/constants/protocol.rs:77:11 [INFO] [stdout] | [INFO] [stdout] 77 | pub const IPMSG_FILE_HIDDENOPT: u32 = 0x00001000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `IPMSG_FILE_EXHIDDENOPT` is never used [INFO] [stdout] --> src/constants/protocol.rs:78:11 [INFO] [stdout] | [INFO] [stdout] 78 | pub const IPMSG_FILE_EXHIDDENOPT: u32 = 0x00002000;// for MacOS X [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `IPMSG_FILE_ARCHIVEOPT` is never used [INFO] [stdout] --> src/constants/protocol.rs:79:11 [INFO] [stdout] | [INFO] [stdout] 79 | pub const IPMSG_FILE_ARCHIVEOPT: u32 = 0x00004000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `IPMSG_FILE_SYSTEMOPT` is never used [INFO] [stdout] --> src/constants/protocol.rs:80:11 [INFO] [stdout] | [INFO] [stdout] 80 | pub const IPMSG_FILE_SYSTEMOPT: u32 = 0x00008000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/core/download.rs:166:30 [INFO] [stdout] | [INFO] [stdout] 166 | fn read_bytes_to_file_unsize(mut stream : & mut BufReader, file_path: &PathBuf) -> Result<()> { [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `HOSTLIST_SEPARATOR` is never used [INFO] [stdout] --> src/constants/protocol.rs:87:11 [INFO] [stdout] | [INFO] [stdout] 87 | pub const HOSTLIST_SEPARATOR: char = '\u{7}'; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `IPMSG_ABSENCEOPT` is never used [INFO] [stdout] --> src/constants/protocol.rs:91:11 [INFO] [stdout] | [INFO] [stdout] 91 | pub const IPMSG_ABSENCEOPT: u32 = 0x00000100; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `IPMSG_SERVEROPT` is never used [INFO] [stdout] --> src/constants/protocol.rs:93:11 [INFO] [stdout] | [INFO] [stdout] 93 | pub const IPMSG_SERVEROPT: u32 = 0x00000200; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `IPMSG_DIALUPOPT` is never used [INFO] [stdout] --> src/constants/protocol.rs:95:11 [INFO] [stdout] | [INFO] [stdout] 95 | pub const IPMSG_DIALUPOPT: u32 = 0x00010000; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `IPMSG_ENCRYPTOPT` is never used [INFO] [stdout] --> src/constants/protocol.rs:99:11 [INFO] [stdout] | [INFO] [stdout] 99 | pub const IPMSG_ENCRYPTOPT: u32 = 0x00400000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `IPMSG_UTF8OPT` is never used [INFO] [stdout] --> src/constants/protocol.rs:101:11 [INFO] [stdout] | [INFO] [stdout] 101 | pub const IPMSG_UTF8OPT: u32 = 0x00800000; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `IPMSG_CAPUTF8OPT` is never used [INFO] [stdout] --> src/constants/protocol.rs:103:11 [INFO] [stdout] | [INFO] [stdout] 103 | pub const IPMSG_CAPUTF8OPT: u32 = 0x01000000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `IPMSG_ENCEXTMSGOPT` is never used [INFO] [stdout] --> src/constants/protocol.rs:105:11 [INFO] [stdout] | [INFO] [stdout] 105 | pub const IPMSG_ENCEXTMSGOPT: u32 = 0x04000000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `IPMSG_CLIPBOARDOPT` is never used [INFO] [stdout] --> src/constants/protocol.rs:107:11 [INFO] [stdout] | [INFO] [stdout] 107 | pub const IPMSG_CLIPBOARDOPT: u32 = 0x08000000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `IPMSG_CAPFILEENC_OBSLT` is never used [INFO] [stdout] --> src/constants/protocol.rs:108:11 [INFO] [stdout] | [INFO] [stdout] 108 | pub const IPMSG_CAPFILEENC_OBSLT: u32 = 0x00001000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `IPMSG_CAPFILEENCOPT` is never used [INFO] [stdout] --> src/constants/protocol.rs:109:11 [INFO] [stdout] | [INFO] [stdout] 109 | pub const IPMSG_CAPFILEENCOPT: u32 = 0x00040000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `IPMSG_MULTICASTOPT` is never used [INFO] [stdout] --> src/constants/protocol.rs:119:11 [INFO] [stdout] | [INFO] [stdout] 119 | pub const IPMSG_MULTICASTOPT: u32 = 0x00000800; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `IPMSG_AUTORETOPT` is never used [INFO] [stdout] --> src/constants/protocol.rs:121:11 [INFO] [stdout] | [INFO] [stdout] 121 | pub const IPMSG_AUTORETOPT: u32 = 0x00002000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `IPMSG_RETRYOPT` is never used [INFO] [stdout] --> src/constants/protocol.rs:123:11 [INFO] [stdout] | [INFO] [stdout] 123 | pub const IPMSG_RETRYOPT: u32 = 0x00004000; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `IPMSG_PASSWORDOPT` is never used [INFO] [stdout] --> src/constants/protocol.rs:125:11 [INFO] [stdout] | [INFO] [stdout] 125 | pub const IPMSG_PASSWORDOPT: u32 = 0x00008000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `IPMSG_NOLOGOPT` is never used [INFO] [stdout] --> src/constants/protocol.rs:127:11 [INFO] [stdout] | [INFO] [stdout] 127 | pub const IPMSG_NOLOGOPT: u32 = 0x00020000; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `IPMSG_NOADDLISTOPT` is never used [INFO] [stdout] --> src/constants/protocol.rs:129:11 [INFO] [stdout] | [INFO] [stdout] 129 | pub const IPMSG_NOADDLISTOPT: u32 = 0x00080000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `IPMSG_READCHECKOPT` is never used [INFO] [stdout] --> src/constants/protocol.rs:131:11 [INFO] [stdout] | [INFO] [stdout] 131 | pub const IPMSG_READCHECKOPT: u32 = 0x00100000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `IPMSG_SECRETEXOPT` is never used [INFO] [stdout] --> src/constants/protocol.rs:132:11 [INFO] [stdout] | [INFO] [stdout] 132 | pub const IPMSG_SECRETEXOPT: u32 = IPMSG_READCHECKOPT|IPMSG_SECRETOPT; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_local_ip` is never used [INFO] [stdout] --> src/constants/protocol.rs:156:8 [INFO] [stdout] | [INFO] [stdout] 156 | pub fn get_local_ip() -> IpAddr { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `LOCAL_IP` is never used [INFO] [stdout] --> src/constants/protocol.rs:169:12 [INFO] [stdout] | [INFO] [stdout] 169 | pub static LOCAL_IP: Lazy = Lazy::new(||{ [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/main.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 22 | drop(env_logger::init()); [INFO] [stdout] | ^^^^^------------------^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `()` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dropping_copy_types)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 22 - drop(env_logger::init()); [INFO] [stdout] 22 + let _ = env_logger::init(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/core/fileserver.rs:46:25 [INFO] [stdout] | [INFO] [stdout] 46 | let mut tmp_buf = &buf[0..byte_size]; [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/events/model.rs:174:9 [INFO] [stdout] | [INFO] [stdout] 174 | GLOBLE_SENDER.send(ModelEvent::RecMsgReply{packet: recvmsg, from_ip: (&packet).ip.to_owned()}); [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)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 174 | let _ = GLOBLE_SENDER.send(ModelEvent::RecMsgReply{packet: recvmsg, from_ip: (&packet).ip.to_owned()}); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/events/model.rs:177:9 [INFO] [stdout] | [INFO] [stdout] 177 | GLOBLE_SENDER.send(ModelEvent::BroadcastExit((&packet).sender_host.to_owned())); [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] 177 | let _ = GLOBLE_SENDER.send(ModelEvent::BroadcastExit((&packet).sender_host.to_owned())); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/events/model.rs:196:9 [INFO] [stdout] | [INFO] [stdout] 196 | GLOBLE_SENDER.send(ModelEvent::RecOnlineMsgReply{packet: ansentry_packet, from_user: user}); [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] 196 | let _ = GLOBLE_SENDER.send(ModelEvent::RecOnlineMsgReply{packet: ansentry_packet, from_user: user}); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/events/model.rs:199:9 [INFO] [stdout] | [INFO] [stdout] 199 | GLOBLE_SENDER.send(ModelEvent::NotifyOnline{user}); [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] 199 | let _ = GLOBLE_SENDER.send(ModelEvent::NotifyOnline{user}); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/ui/chat_window.rs:111:21 [INFO] [stdout] | [INFO] [stdout] 111 | / GLOBLE_SENDER.send(ModelEvent::PutDownloadTaskInPool{ file: ReceivedSimpleFileInfo{ [INFO] [stdout] 112 | | file_id: fid, [INFO] [stdout] 113 | | packet_id: pid, [INFO] [stdout] 114 | | name: name.clone(), [INFO] [stdout] ... | [INFO] [stdout] 117 | | mtime [INFO] [stdout] 118 | | }, save_base_path, download_ip: host_ip.clone() }); [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] 111 | let _ = GLOBLE_SENDER.send(ModelEvent::PutDownloadTaskInPool{ file: ReceivedSimpleFileInfo{ [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/ui/main_win.rs:98:9 [INFO] [stdout] | [INFO] [stdout] 98 | main_context.acquire(); [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] 98 | let _ = main_context.acquire(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `search_result` is never read [INFO] [stdout] --> src/core/fileserver.rs:82:21 [INFO] [stdout] | [INFO] [stdout] 82 | let mut search_result: Option = Option::None; [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: unused `Result` that must be used [INFO] [stdout] --> src/core/fileserver.rs:182:9 [INFO] [stdout] | [INFO] [stdout] 182 | path_metadata.created(); [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] 182 | let _ = path_metadata.created(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/core/fileserver.rs:183:9 [INFO] [stdout] | [INFO] [stdout] 183 | path_metadata.modified(); [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] 183 | let _ = path_metadata.modified(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/core/fileserver.rs:76:58 [INFO] [stdout] | [INFO] [stdout] 76 | fn process_dir(pool_tmp: Arc>>, mut stream_echo: TcpStream, ext_str: String) -> () { [INFO] [stdout] | ----^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `offset` [INFO] [stdout] --> src/core/fileserver.rs:106:17 [INFO] [stdout] | [INFO] [stdout] 106 | let offset = file_attr[2].parse::().unwrap(); [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `search_result` is never read [INFO] [stdout] --> src/core/fileserver.rs:107:21 [INFO] [stdout] | [INFO] [stdout] 107 | let mut search_result: Option = Option::None; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/core/fileserver.rs:100:60 [INFO] [stdout] | [INFO] [stdout] 100 | fn process_file(pool_tmp: &Arc>>, mut stream_echo: &mut TcpStream, ext_str: String) -> () { [INFO] [stdout] | ----^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `PutInTcpFilePool` is never constructed [INFO] [stdout] --> src/models/event.rs:31:5 [INFO] [stdout] | [INFO] [stdout] 19 | pub enum ModelEvent { [INFO] [stdout] | ---------- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 31 | PutInTcpFilePool(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `ExtStr` is never used [INFO] [stdout] --> src/models/model.rs:26:6 [INFO] [stdout] | [INFO] [stdout] 26 | type ExtStr = String; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `ExtMsg` is never used [INFO] [stdout] --> src/models/model.rs:28:7 [INFO] [stdout] | [INFO] [stdout] 28 | trait ExtMsg { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `PacketBuilder` is never constructed [INFO] [stdout] --> src/models/model.rs:33:12 [INFO] [stdout] | [INFO] [stdout] 33 | pub struct PacketBuilder { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `command` and `command_opt` are never used [INFO] [stdout] --> src/models/model.rs:50:8 [INFO] [stdout] | [INFO] [stdout] 48 | impl PacketBuilder { [INFO] [stdout] | ------------------ associated items in this implementation [INFO] [stdout] 49 | ///命令 [INFO] [stdout] 50 | fn command(command_no: u32) -> PacketBuilder { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 61 | fn command_opt(mut self, ext_command_no: u32) -> PacketBuilder { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Operate` is never used [INFO] [stdout] --> src/models/model.rs:148:10 [INFO] [stdout] | [INFO] [stdout] 148 | pub enum Operate { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `OperUser` is never constructed [INFO] [stdout] --> src/models/model.rs:153:12 [INFO] [stdout] | [INFO] [stdout] 153 | pub struct OperUser{ [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/models/model.rs:159:12 [INFO] [stdout] | [INFO] [stdout] 158 | impl OperUser { [INFO] [stdout] | ------------- associated function in this implementation [INFO] [stdout] 159 | pub fn new(user: User, oper :Operate) -> OperUser{ [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `host`, `host_cnt`, `file_cnt`, and `attach_time` are never read [INFO] [stdout] --> src/models/model.rs:172:9 [INFO] [stdout] | [INFO] [stdout] 168 | pub struct ShareInfo { [INFO] [stdout] | --------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 172 | pub host: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] 173 | // 要发送的目的机器个数 [INFO] [stdout] 174 | pub host_cnt: u32, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 179 | pub file_cnt: u32, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 180 | //文件添加时间 [INFO] [stdout] 181 | pub attach_time: NaiveTime, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ShareInfo` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `name`, `atime`, and `crtime` are never read [INFO] [stdout] --> src/models/model.rs:190:9 [INFO] [stdout] | [INFO] [stdout] 185 | pub struct FileInfo { [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 190 | pub name: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 198 | pub atime: NaiveTime, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 199 | //文件创建时间 [INFO] [stdout] 200 | pub crtime: NaiveTime [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `FileInfo` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `opt_files` is never used [INFO] [stdout] --> src/models/model.rs:248:12 [INFO] [stdout] | [INFO] [stdout] 234 | impl ReceivedPacketInner { [INFO] [stdout] | ------------------------ method in this implementation [INFO] [stdout] ... [INFO] [stdout] 248 | pub fn opt_files(mut self, opt_files: Vec) -> ReceivedPacketInner { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ErrMsg` is never constructed [INFO] [stdout] --> src/models/model.rs:259:12 [INFO] [stdout] | [INFO] [stdout] 259 | pub struct ErrMsg { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `ip` and `pre_send_files` are never read [INFO] [stdout] --> src/ui/chat_window.rs:31:9 [INFO] [stdout] | [INFO] [stdout] 28 | pub struct ChatWindow { [INFO] [stdout] | ---------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 31 | pub ip :String, [INFO] [stdout] | ^^ [INFO] [stdout] 32 | pub pre_send_files :Arc>>, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ChatWindow` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `modify_received_list` is never used [INFO] [stdout] --> src/ui/chat_window.rs:267:4 [INFO] [stdout] | [INFO] [stdout] 267 | fn modify_received_list(received_store :Option, received_files: Arc>>) -> Continue { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `read_bytes_to_file_unsize` is never used [INFO] [stdout] --> src/core/download.rs:166:4 [INFO] [stdout] | [INFO] [stdout] 166 | fn read_bytes_to_file_unsize(mut stream : & mut BufReader, file_path: &PathBuf) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `IPMSG_BR_ISGETLIST` is never used [INFO] [stdout] --> src/constants/protocol.rs:21:11 [INFO] [stdout] | [INFO] [stdout] 21 | pub const IPMSG_BR_ISGETLIST: u32 = 0x00000010; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `IPMSG_OKGETLIST` is never used [INFO] [stdout] --> src/constants/protocol.rs:23:11 [INFO] [stdout] | [INFO] [stdout] 23 | pub const IPMSG_OKGETLIST: u32 = 0x00000011; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `IPMSG_GETLIST` is never used [INFO] [stdout] --> src/constants/protocol.rs:25:11 [INFO] [stdout] | [INFO] [stdout] 25 | pub const IPMSG_GETLIST: u32 = 0x00000012; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `IPMSG_ANSLIST` is never used [INFO] [stdout] --> src/constants/protocol.rs:27:11 [INFO] [stdout] | [INFO] [stdout] 27 | pub const IPMSG_ANSLIST: u32 = 0x00000013; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `IPMSG_BR_ISGETLIST2` is never used [INFO] [stdout] --> src/constants/protocol.rs:29:11 [INFO] [stdout] | [INFO] [stdout] 29 | pub const IPMSG_BR_ISGETLIST2: u32 = 0x00000018; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `IPMSG_READMSG` is never used [INFO] [stdout] --> src/constants/protocol.rs:37:11 [INFO] [stdout] | [INFO] [stdout] 37 | pub const IPMSG_READMSG: u32 = 0x00000030; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `IPMSG_DELMSG` is never used [INFO] [stdout] --> src/constants/protocol.rs:39:11 [INFO] [stdout] | [INFO] [stdout] 39 | pub const IPMSG_DELMSG: u32 = 0x00000031; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `IPMSG_ANSREADMSG` is never used [INFO] [stdout] --> src/constants/protocol.rs:42:11 [INFO] [stdout] | [INFO] [stdout] 42 | pub const IPMSG_ANSREADMSG: u32 = 0x00000032; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `IPMSG_GETINFO` is never used [INFO] [stdout] --> src/constants/protocol.rs:44:11 [INFO] [stdout] | [INFO] [stdout] 44 | pub const IPMSG_GETINFO: u32 = 0x00000040; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `IPMSG_SENDINFO` is never used [INFO] [stdout] --> src/constants/protocol.rs:46:11 [INFO] [stdout] | [INFO] [stdout] 46 | pub const IPMSG_SENDINFO: u32 = 0x00000041; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `IPMSG_GETABSENCEINFO` is never used [INFO] [stdout] --> src/constants/protocol.rs:49:11 [INFO] [stdout] | [INFO] [stdout] 49 | pub const IPMSG_GETABSENCEINFO: u32 = 0x00000050; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `IPMSG_SENDABSENCEINFO` is never used [INFO] [stdout] --> src/constants/protocol.rs:51:11 [INFO] [stdout] | [INFO] [stdout] 51 | pub const IPMSG_SENDABSENCEINFO: u32 = 0x00000051; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `IPMSG_RELEASEFILES` is never used [INFO] [stdout] --> src/constants/protocol.rs:56:11 [INFO] [stdout] | [INFO] [stdout] 56 | pub const IPMSG_RELEASEFILES: u32 = 0x00000061; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `IPMSG_GETPUBKEY` is never used [INFO] [stdout] --> src/constants/protocol.rs:61:11 [INFO] [stdout] | [INFO] [stdout] 61 | pub const IPMSG_GETPUBKEY: u32 = 0x00000072; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `IPMSG_ANSPUBKEY` is never used [INFO] [stdout] --> src/constants/protocol.rs:63:11 [INFO] [stdout] | [INFO] [stdout] 63 | pub const IPMSG_ANSPUBKEY: u32 = 0x00000073; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `IPMSG_FILE_SYMLINK` is never used [INFO] [stdout] --> src/constants/protocol.rs:69:11 [INFO] [stdout] | [INFO] [stdout] 69 | pub const IPMSG_FILE_SYMLINK: u32 = 0x00000004; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `IPMSG_FILE_CDEV` is never used [INFO] [stdout] --> src/constants/protocol.rs:70:11 [INFO] [stdout] | [INFO] [stdout] 70 | pub const IPMSG_FILE_CDEV: u32 = 0x00000005;// for UNIX [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `IPMSG_FILE_BDEV` is never used [INFO] [stdout] --> src/constants/protocol.rs:71:11 [INFO] [stdout] | [INFO] [stdout] 71 | pub const IPMSG_FILE_BDEV: u32 = 0x00000006;// for UNIX [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `IPMSG_FILE_FIFO` is never used [INFO] [stdout] --> src/constants/protocol.rs:72:11 [INFO] [stdout] | [INFO] [stdout] 72 | pub const IPMSG_FILE_FIFO: u32 = 0x00000007;// for UNIX [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `IPMSG_FILE_RESFORK` is never used [INFO] [stdout] --> src/constants/protocol.rs:73:11 [INFO] [stdout] | [INFO] [stdout] 73 | pub const IPMSG_FILE_RESFORK: u32 = 0x00000010;// for mac [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `IPMSG_FILE_RONLYOPT` is never used [INFO] [stdout] --> src/constants/protocol.rs:76:11 [INFO] [stdout] | [INFO] [stdout] 76 | pub const IPMSG_FILE_RONLYOPT: u32 = 0x00000100; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `IPMSG_FILE_HIDDENOPT` is never used [INFO] [stdout] --> src/constants/protocol.rs:77:11 [INFO] [stdout] | [INFO] [stdout] 77 | pub const IPMSG_FILE_HIDDENOPT: u32 = 0x00001000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `IPMSG_FILE_EXHIDDENOPT` is never used [INFO] [stdout] --> src/constants/protocol.rs:78:11 [INFO] [stdout] | [INFO] [stdout] 78 | pub const IPMSG_FILE_EXHIDDENOPT: u32 = 0x00002000;// for MacOS X [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `IPMSG_FILE_ARCHIVEOPT` is never used [INFO] [stdout] --> src/constants/protocol.rs:79:11 [INFO] [stdout] | [INFO] [stdout] 79 | pub const IPMSG_FILE_ARCHIVEOPT: u32 = 0x00004000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `IPMSG_FILE_SYSTEMOPT` is never used [INFO] [stdout] --> src/constants/protocol.rs:80:11 [INFO] [stdout] | [INFO] [stdout] 80 | pub const IPMSG_FILE_SYSTEMOPT: u32 = 0x00008000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `HOSTLIST_SEPARATOR` is never used [INFO] [stdout] --> src/constants/protocol.rs:87:11 [INFO] [stdout] | [INFO] [stdout] 87 | pub const HOSTLIST_SEPARATOR: char = '\u{7}'; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `IPMSG_ABSENCEOPT` is never used [INFO] [stdout] --> src/constants/protocol.rs:91:11 [INFO] [stdout] | [INFO] [stdout] 91 | pub const IPMSG_ABSENCEOPT: u32 = 0x00000100; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `IPMSG_SERVEROPT` is never used [INFO] [stdout] --> src/constants/protocol.rs:93:11 [INFO] [stdout] | [INFO] [stdout] 93 | pub const IPMSG_SERVEROPT: u32 = 0x00000200; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `IPMSG_DIALUPOPT` is never used [INFO] [stdout] --> src/constants/protocol.rs:95:11 [INFO] [stdout] | [INFO] [stdout] 95 | pub const IPMSG_DIALUPOPT: u32 = 0x00010000; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `IPMSG_ENCRYPTOPT` is never used [INFO] [stdout] --> src/constants/protocol.rs:99:11 [INFO] [stdout] | [INFO] [stdout] 99 | pub const IPMSG_ENCRYPTOPT: u32 = 0x00400000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `IPMSG_UTF8OPT` is never used [INFO] [stdout] --> src/constants/protocol.rs:101:11 [INFO] [stdout] | [INFO] [stdout] 101 | pub const IPMSG_UTF8OPT: u32 = 0x00800000; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `IPMSG_CAPUTF8OPT` is never used [INFO] [stdout] --> src/constants/protocol.rs:103:11 [INFO] [stdout] | [INFO] [stdout] 103 | pub const IPMSG_CAPUTF8OPT: u32 = 0x01000000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `IPMSG_ENCEXTMSGOPT` is never used [INFO] [stdout] --> src/constants/protocol.rs:105:11 [INFO] [stdout] | [INFO] [stdout] 105 | pub const IPMSG_ENCEXTMSGOPT: u32 = 0x04000000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `IPMSG_CLIPBOARDOPT` is never used [INFO] [stdout] --> src/constants/protocol.rs:107:11 [INFO] [stdout] | [INFO] [stdout] 107 | pub const IPMSG_CLIPBOARDOPT: u32 = 0x08000000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `IPMSG_CAPFILEENC_OBSLT` is never used [INFO] [stdout] --> src/constants/protocol.rs:108:11 [INFO] [stdout] | [INFO] [stdout] 108 | pub const IPMSG_CAPFILEENC_OBSLT: u32 = 0x00001000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `IPMSG_CAPFILEENCOPT` is never used [INFO] [stdout] --> src/constants/protocol.rs:109:11 [INFO] [stdout] | [INFO] [stdout] 109 | pub const IPMSG_CAPFILEENCOPT: u32 = 0x00040000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `IPMSG_MULTICASTOPT` is never used [INFO] [stdout] --> src/constants/protocol.rs:119:11 [INFO] [stdout] | [INFO] [stdout] 119 | pub const IPMSG_MULTICASTOPT: u32 = 0x00000800; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `IPMSG_AUTORETOPT` is never used [INFO] [stdout] --> src/constants/protocol.rs:121:11 [INFO] [stdout] | [INFO] [stdout] 121 | pub const IPMSG_AUTORETOPT: u32 = 0x00002000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `IPMSG_RETRYOPT` is never used [INFO] [stdout] --> src/constants/protocol.rs:123:11 [INFO] [stdout] | [INFO] [stdout] 123 | pub const IPMSG_RETRYOPT: u32 = 0x00004000; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `IPMSG_PASSWORDOPT` is never used [INFO] [stdout] --> src/constants/protocol.rs:125:11 [INFO] [stdout] | [INFO] [stdout] 125 | pub const IPMSG_PASSWORDOPT: u32 = 0x00008000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `IPMSG_NOLOGOPT` is never used [INFO] [stdout] --> src/constants/protocol.rs:127:11 [INFO] [stdout] | [INFO] [stdout] 127 | pub const IPMSG_NOLOGOPT: u32 = 0x00020000; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `IPMSG_NOADDLISTOPT` is never used [INFO] [stdout] --> src/constants/protocol.rs:129:11 [INFO] [stdout] | [INFO] [stdout] 129 | pub const IPMSG_NOADDLISTOPT: u32 = 0x00080000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `IPMSG_READCHECKOPT` is never used [INFO] [stdout] --> src/constants/protocol.rs:131:11 [INFO] [stdout] | [INFO] [stdout] 131 | pub const IPMSG_READCHECKOPT: u32 = 0x00100000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `IPMSG_SECRETEXOPT` is never used [INFO] [stdout] --> src/constants/protocol.rs:132:11 [INFO] [stdout] | [INFO] [stdout] 132 | pub const IPMSG_SECRETEXOPT: u32 = IPMSG_READCHECKOPT|IPMSG_SECRETOPT; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_local_ip` is never used [INFO] [stdout] --> src/constants/protocol.rs:156:8 [INFO] [stdout] | [INFO] [stdout] 156 | pub fn get_local_ip() -> IpAddr { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `LOCAL_IP` is never used [INFO] [stdout] --> src/constants/protocol.rs:169:12 [INFO] [stdout] | [INFO] [stdout] 169 | pub static LOCAL_IP: Lazy = Lazy::new(||{ [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `std::mem::drop` with a value that implements `Copy` does nothing [INFO] [stdout] --> src/main.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 22 | drop(env_logger::init()); [INFO] [stdout] | ^^^^^------------------^ [INFO] [stdout] | | [INFO] [stdout] | argument has type `()` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dropping_copy_types)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the expression or result [INFO] [stdout] | [INFO] [stdout] 22 - drop(env_logger::init()); [INFO] [stdout] 22 + let _ = env_logger::init(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/events/model.rs:174:9 [INFO] [stdout] | [INFO] [stdout] 174 | GLOBLE_SENDER.send(ModelEvent::RecMsgReply{packet: recvmsg, from_ip: (&packet).ip.to_owned()}); [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)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 174 | let _ = GLOBLE_SENDER.send(ModelEvent::RecMsgReply{packet: recvmsg, from_ip: (&packet).ip.to_owned()}); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/events/model.rs:177:9 [INFO] [stdout] | [INFO] [stdout] 177 | GLOBLE_SENDER.send(ModelEvent::BroadcastExit((&packet).sender_host.to_owned())); [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] 177 | let _ = GLOBLE_SENDER.send(ModelEvent::BroadcastExit((&packet).sender_host.to_owned())); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/events/model.rs:196:9 [INFO] [stdout] | [INFO] [stdout] 196 | GLOBLE_SENDER.send(ModelEvent::RecOnlineMsgReply{packet: ansentry_packet, from_user: user}); [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] 196 | let _ = GLOBLE_SENDER.send(ModelEvent::RecOnlineMsgReply{packet: ansentry_packet, from_user: user}); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/events/model.rs:199:9 [INFO] [stdout] | [INFO] [stdout] 199 | GLOBLE_SENDER.send(ModelEvent::NotifyOnline{user}); [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] 199 | let _ = GLOBLE_SENDER.send(ModelEvent::NotifyOnline{user}); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/ui/chat_window.rs:111:21 [INFO] [stdout] | [INFO] [stdout] 111 | / GLOBLE_SENDER.send(ModelEvent::PutDownloadTaskInPool{ file: ReceivedSimpleFileInfo{ [INFO] [stdout] 112 | | file_id: fid, [INFO] [stdout] 113 | | packet_id: pid, [INFO] [stdout] 114 | | name: name.clone(), [INFO] [stdout] ... | [INFO] [stdout] 117 | | mtime [INFO] [stdout] 118 | | }, save_base_path, download_ip: host_ip.clone() }); [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] 111 | let _ = GLOBLE_SENDER.send(ModelEvent::PutDownloadTaskInPool{ file: ReceivedSimpleFileInfo{ [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/ui/main_win.rs:98:9 [INFO] [stdout] | [INFO] [stdout] 98 | main_context.acquire(); [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] 98 | let _ = main_context.acquire(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/core/fileserver.rs:182:9 [INFO] [stdout] | [INFO] [stdout] 182 | path_metadata.created(); [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] 182 | let _ = path_metadata.created(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/core/fileserver.rs:183:9 [INFO] [stdout] | [INFO] [stdout] 183 | path_metadata.modified(); [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] 183 | let _ = path_metadata.modified(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 45s [INFO] running `Command { std: "docker" "inspect" "714370dfbde82d1b744c9c50a65f66d42285e17428cae7764b74b393fd65452f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "714370dfbde82d1b744c9c50a65f66d42285e17428cae7764b74b393fd65452f", kill_on_drop: false }` [INFO] [stdout] 714370dfbde82d1b744c9c50a65f66d42285e17428cae7764b74b393fd65452f