[INFO] crate raudient 0.3.3 is already in cache
[INFO] checking raudient-0.3.3 against master#bf1f2eedda4fa02b7c9347dd849ed73ddd43dedc for pr-70917
[INFO] extracting crate raudient 0.3.3 into /workspace/builds/worker-7/source
[INFO] validating manifest of crates.io crate raudient 0.3.3 on toolchain bf1f2eedda4fa02b7c9347dd849ed73ddd43dedc
[INFO] running `"/workspace/cargo-home/bin/cargo" "+bf1f2eedda4fa02b7c9347dd849ed73ddd43dedc" "read-manifest" "--manifest-path" "Cargo.toml"`
[INFO] started tweaking crates.io crate raudient 0.3.3
[INFO] finished tweaking crates.io crate raudient 0.3.3
[INFO] tweaked toml for crates.io crate raudient 0.3.3 written to /workspace/builds/worker-7/source/Cargo.toml
[INFO] running `"/workspace/cargo-home/bin/cargo" "+bf1f2eedda4fa02b7c9347dd849ed73ddd43dedc" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `"/workspace/cargo-home/bin/cargo" "+bf1f2eedda4fa02b7c9347dd849ed73ddd43dedc" "fetch" "--locked" "--manifest-path" "Cargo.toml"`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `"docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7/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" "MAP_USER_ID=0" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--network" "none" "rustops/crates-build-env" "/opt/rustwide/cargo-home/bin/cargo" "+bf1f2eedda4fa02b7c9347dd849ed73ddd43dedc" "check" "--frozen" "--all" "--all-targets"`
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] [stdout] de0396eba6e24447fed987140d2a0ebdadb3e4713e3d3605c224ada1e5d6ea39
[INFO] running `"docker" "start" "-a" "de0396eba6e24447fed987140d2a0ebdadb3e4713e3d3605c224ada1e5d6ea39"`
[INFO] [stderr]    Compiling gio v0.6.0
[INFO] [stderr]    Compiling pango v0.6.0
[INFO] [stderr]    Compiling cairo-rs v0.6.0
[INFO] [stderr]    Compiling gdk-pixbuf v0.6.0
[INFO] [stderr]    Compiling atk v0.6.0
[INFO] [stderr]    Compiling gdk v0.10.0
[INFO] [stderr]    Compiling gtk v0.6.0
[INFO] [stderr]    Compiling glib-sys v0.8.0
[INFO] [stderr]    Compiling gobject-sys v0.8.0
[INFO] [stderr]    Compiling gio-sys v0.8.0
[INFO] [stderr]    Compiling pango-sys v0.8.0
[INFO] [stderr]    Compiling gdk-pixbuf-sys v0.8.0
[INFO] [stderr]    Compiling cairo-sys-rs v0.8.0
[INFO] [stderr]    Compiling atk-sys v0.8.0
[INFO] [stderr]    Compiling gdk-sys v0.8.0
[INFO] [stderr]    Compiling gtk-sys v0.8.0
[INFO] [stderr]     Checking combine v3.8.1
[INFO] [stderr]     Checking local-ip v0.1.0
[INFO] [stderr]     Checking human-panic v1.0.3
[INFO] [stderr]     Checking glib v0.7.1
[INFO] [stderr]     Checking raudient v0.3.3 (/opt/rustwide/workdir)
[INFO] [stderr] warning: unused import: `std::net::TcpStream`
[INFO] [stderr]  --> src/model.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use std::net::TcpStream;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Path`
[INFO] [stderr]  --> src/model.rs:3:26
[INFO] [stderr]   |
[INFO] [stderr] 3 | use std::path::{PathBuf, Path};
[INFO] [stderr]   |                          ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Arc`, `Mutex`
[INFO] [stderr]  --> src/message.rs:1:17
[INFO] [stderr]   |
[INFO] [stderr] 1 | use std::sync::{Arc, Mutex};
[INFO] [stderr]   |                 ^^^  ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::cell::RefCell`
[INFO] [stderr]  --> src/message.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use std::cell::RefCell;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::thread`
[INFO] [stderr]  --> src/message.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | use std::thread;
[INFO] [stderr]   |     ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::net::UdpSocket`
[INFO] [stderr]  --> src/message.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 4 | use std::net::UdpSocket;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `DecoderTrap`, `EncoderTrap`, `Encoding`
[INFO] [stderr]  --> src/message.rs:5:16
[INFO] [stderr]   |
[INFO] [stderr] 5 | use encoding::{Encoding, EncoderTrap, DecoderTrap};
[INFO] [stderr]   |                ^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `encoding::all::GB18030`
[INFO] [stderr]  --> src/message.rs:6:5
[INFO] [stderr]   |
[INFO] [stderr] 6 | use encoding::all::GB18030;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `trace`, `warn`
[INFO] [stderr]  --> src/message.rs:8:17
[INFO] [stderr]   |
[INFO] [stderr] 8 | use log::{info, trace, warn};
[INFO] [stderr]   |                 ^^^^^  ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `IPMSG_BROADCASTOPT`, `IPMSG_BR_ENTRY`, `IPMSG_DEFAULT_PORT`, `self`
[INFO] [stderr]   --> src/message.rs:10:23
[INFO] [stderr]    |
[INFO] [stderr] 10 | use crate::constant::{self, IPMSG_SENDMSG, IPMSG_FILEATTACHOPT, IPMSG_DEFAULT_PORT, IPMSG_BR_ENTRY, IPMSG_BROADCASTOPT};
[INFO] [stderr]    |                       ^^^^                                      ^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `DecoderTrap`
[INFO] [stderr]  --> src/util.rs:1:39
[INFO] [stderr]   |
[INFO] [stderr] 1 | use encoding::{Encoding, EncoderTrap, DecoderTrap};
[INFO] [stderr]   |                                       ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Duration`
[INFO] [stderr]  --> src/util.rs:6:17
[INFO] [stderr]   |
[INFO] [stderr] 6 | use std::time::{Duration, SystemTime};
[INFO] [stderr]   |                 ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `any`, `choice`, `optional`, `sep_by`, `skip_many1`, `skip_many`
[INFO] [stderr]  --> src/util.rs:9:44
[INFO] [stderr]   |
[INFO] [stderr] 9 | use combine::{many1, many, Parser, Stream, sep_by, token, skip_many, skip_many1, satisfy, choice, optional, any};
[INFO] [stderr]   |                                            ^^^^^^         ^^^^^^^^^  ^^^^^^^^^^           ^^^^^^  ^^^^^^^^  ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `take_until_range`, `take_while1`, `take_while`
[INFO] [stderr]   --> src/util.rs:10:22
[INFO] [stderr]    |
[INFO] [stderr] 10 | use combine::range::{take_while, take_while1, take_until_range};
[INFO] [stderr]    |                      ^^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `char`, `digit`, `letter`, `space`
[INFO] [stderr]   --> src/util.rs:11:21
[INFO] [stderr]    |
[INFO] [stderr] 11 | use combine::char::{letter, space, digit, char};
[INFO] [stderr]    |                     ^^^^^^  ^^^^^  ^^^^^  ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `AboutDialog`, `Alignment`, `ButtonBox`, `CheckMenuItem`, `Fixed`, `Grid`, `IconSize`, `Image`, `Label`, `MenuBar`, `MenuItem`, `Menu`, `Orientation`, `ReliefStyle`, `ScrolledWindow`, `StatusIcon`, `Widget`, `WindowPosition`, `WindowType`
[INFO] [stderr]  --> src/chat_window.rs:3:29
[INFO] [stderr]   |
[INFO] [stderr] 3 |     self, CellRendererText, AboutDialog, CheckMenuItem, IconSize, Image, Label, Menu, MenuBar, MenuItem, Window,
[INFO] [stderr]   |                             ^^^^^^^^^^^  ^^^^^^^^^^^^^  ^^^^^^^^  ^^^^^  ^^^^^  ^^^^  ^^^^^^^  ^^^^^^^^
[INFO] [stderr] 4 |     WindowPosition, WindowType, StatusIcon, ListStore, TreeView, TreeViewColumn, Builder, Grid, Button, Orientation,
[INFO] [stderr]   |     ^^^^^^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^                                                ^^^^          ^^^^^^^^^^^
[INFO] [stderr] 5 |     ReliefStyle, Widget, TextView, Fixed, ScrolledWindow, Alignment, ButtonBox, WrapMode
[INFO] [stderr]   |     ^^^^^^^^^^^  ^^^^^^            ^^^^^  ^^^^^^^^^^^^^^  ^^^^^^^^^  ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Mutex`
[INFO] [stderr]  --> src/chat_window.rs:7:22
[INFO] [stderr]   |
[INFO] [stderr] 7 | use std::sync::{Arc, Mutex};
[INFO] [stderr]   |                      ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::sync::mpsc`
[INFO] [stderr]  --> src/chat_window.rs:9:5
[INFO] [stderr]   |
[INFO] [stderr] 9 | use std::sync::mpsc;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::thread`
[INFO] [stderr]   --> src/chat_window.rs:10:5
[INFO] [stderr]    |
[INFO] [stderr] 10 | use std::thread;
[INFO] [stderr]    |     ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Path`
[INFO] [stderr]   --> src/chat_window.rs:11:26
[INFO] [stderr]    |
[INFO] [stderr] 11 | use std::path::{PathBuf, Path};
[INFO] [stderr]    |                          ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `File`, `ReadDir`
[INFO] [stderr]   --> src/chat_window.rs:12:21
[INFO] [stderr]    |
[INFO] [stderr] 12 | use std::fs::{self, File, Metadata, ReadDir};
[INFO] [stderr]    |                     ^^^^            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Duration`, `SystemTime`, `UNIX_EPOCH`
[INFO] [stderr]   --> src/chat_window.rs:13:23
[INFO] [stderr]    |
[INFO] [stderr] 13 | use std::time::{self, Duration, SystemTime, UNIX_EPOCH};
[INFO] [stderr]    |                       ^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `trace`, `warn`
[INFO] [stderr]   --> src/chat_window.rs:15:17
[INFO] [stderr]    |
[INFO] [stderr] 15 | use log::{info, trace, warn};
[INFO] [stderr]    |                 ^^^^^  ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Packet`, `ShareInfo`
[INFO] [stderr]   --> src/chat_window.rs:16:26
[INFO] [stderr]    |
[INFO] [stderr] 16 | use crate::model::{self, Packet, ShareInfo, ReceivedSimpleFileInfo};
[INFO] [stderr]    |                          ^^^^^^  ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::constant`
[INFO] [stderr]   --> src/chat_window.rs:19:5
[INFO] [stderr]    |
[INFO] [stderr] 19 | use crate::constant;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `ReadDir`
[INFO] [stderr]  --> src/download.rs:8:37
[INFO] [stderr]   |
[INFO] [stderr] 8 | use std::fs::{self, File, Metadata, ReadDir};
[INFO] [stderr]   |                                     ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `EncoderTrap`
[INFO] [stderr]   --> src/download.rs:12:26
[INFO] [stderr]    |
[INFO] [stderr] 12 | use encoding::{Encoding, EncoderTrap, DecoderTrap};
[INFO] [stderr]    |                          ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `trace`, `warn`
[INFO] [stderr]   --> src/download.rs:14:17
[INFO] [stderr]    |
[INFO] [stderr] 14 | use log::{info, trace, warn, debug};
[INFO] [stderr]    |                 ^^^^^  ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `FileInfo`
[INFO] [stderr]   --> src/download.rs:18:20
[INFO] [stderr]    |
[INFO] [stderr] 18 | use crate::model::{FileInfo, ReceivedSimpleFileInfo};
[INFO] [stderr]    |                    ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/download.rs:44:32
[INFO] [stderr]    |
[INFO] [stderr] 44 |     fn cause(&self) -> Option<&Error> {
[INFO] [stderr]    |                                ^^^^^ help: use `dyn`: `dyn Error`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around function argument
[INFO] [stderr]    --> src/download.rs:167:65
[INFO] [stderr]     |
[INFO] [stderr] 167 |                     let header_context_str = read_bytes(stream, (header_size - 1 - header_size_str.as_bytes().len() as u64));//-1是减去的那个冒号
[INFO] [stderr]     |                                                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `EncoderTrap`
[INFO] [stderr]  --> src/events/model.rs:4:26
[INFO] [stderr]   |
[INFO] [stderr] 4 | use encoding::{Encoding, EncoderTrap, DecoderTrap};
[INFO] [stderr]   |                          ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `debug`, `trace`, `warn`
[INFO] [stderr]  --> src/events/model.rs:9:17
[INFO] [stderr]   |
[INFO] [stderr] 9 | use log::{info, trace, warn, debug, error};
[INFO] [stderr]   |                 ^^^^^  ^^^^  ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `FileInfo`
[INFO] [stderr]   --> src/events/model.rs:11:79
[INFO] [stderr]    |
[INFO] [stderr] 11 | use crate::model::{Packet, User, ReceivedSimpleFileInfo, ReceivedPacketInner, FileInfo, ShareInfo};
[INFO] [stderr]    |                                                                               ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `IPMSG_FILEATTACHOPT`, `IPMSG_SENDMSG`
[INFO] [stderr]   --> src/events/model.rs:15:29
[INFO] [stderr]    |
[INFO] [stderr] 15 | use crate::constant::{self, IPMSG_SENDMSG, IPMSG_FILEATTACHOPT, IPMSG_DEFAULT_PORT, IPMSG_BR_ENTRY, IPMSG_BROADCASTOPT, IPMSG_LIMITED_BROADCAST};
[INFO] [stderr]    |                             ^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/events/model.rs:192:9
[INFO] [stderr]     |
[INFO] [stderr] 192 |         ///扩展段 用户名|用户组
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 193 |         let ext_vec = extstr.splitn(2, |c| c == ':').collect::<Vec<&str>>();
[INFO] [stderr]     |         -------------------------------------------------------------------- rustdoc does not generate documentation for statements
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_doc_comments)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `FileInfo`, `ReceivedPacketInner`
[INFO] [stderr]  --> src/events/ui.rs:1:26
[INFO] [stderr]   |
[INFO] [stderr] 1 | use crate::model::{User, ReceivedPacketInner, Packet, ReceivedSimpleFileInfo, FileInfo, ShareInfo};
[INFO] [stderr]   |                          ^^^^^^^^^^^^^^^^^^^                                  ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `ReadDir`
[INFO] [stderr]  --> src/fileserver.rs:7:37
[INFO] [stderr]   |
[INFO] [stderr] 7 | use std::fs::{self, File, Metadata, ReadDir};
[INFO] [stderr]   |                                     ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `EncoderTrap`
[INFO] [stderr]  --> src/fileserver.rs:8:26
[INFO] [stderr]   |
[INFO] [stderr] 8 | use encoding::{Encoding, EncoderTrap, DecoderTrap};
[INFO] [stderr]   |                          ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `debug`, `trace`, `warn`
[INFO] [stderr]   --> src/fileserver.rs:11:17
[INFO] [stderr]    |
[INFO] [stderr] 11 | use log::{info, trace, warn, debug};
[INFO] [stderr]    |                 ^^^^^  ^^^^  ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `FileInfo`, `Packet`
[INFO] [stderr]   --> src/fileserver.rs:13:20
[INFO] [stderr]    |
[INFO] [stderr] 13 | use crate::model::{FileInfo, Packet, ShareInfo};
[INFO] [stderr]    |                    ^^^^^^^^  ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `chrono::prelude::*`
[INFO] [stderr]  --> src/main_win.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use chrono::prelude::*;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `TcpListener`, `TcpStream`
[INFO] [stderr]  --> src/main_win.rs:2:16
[INFO] [stderr]   |
[INFO] [stderr] 2 | use std::net::{TcpListener, TcpStream};
[INFO] [stderr]   |                ^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Arc`, `Mutex`
[INFO] [stderr]  --> src/main_win.rs:3:17
[INFO] [stderr]   |
[INFO] [stderr] 3 | use std::sync::{Arc, Mutex};
[INFO] [stderr]   |                 ^^^  ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::cell::RefCell`
[INFO] [stderr]  --> src/main_win.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 4 | use std::cell::RefCell;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::thread`
[INFO] [stderr]  --> src/main_win.rs:5:5
[INFO] [stderr]   |
[INFO] [stderr] 5 | use std::thread;
[INFO] [stderr]   |     ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::sync::mpsc`
[INFO] [stderr]  --> src/main_win.rs:6:5
[INFO] [stderr]   |
[INFO] [stderr] 6 | use std::sync::mpsc;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Ipv4Addr`, `Ipv6Addr`, `SocketAddrV4`, `SocketAddrV6`, `SocketAddr`, `ToSocketAddrs`
[INFO] [stderr]  --> src/main_win.rs:9:16
[INFO] [stderr]   |
[INFO] [stderr] 9 | use std::net::{SocketAddr, SocketAddrV4, SocketAddrV6, Ipv4Addr, Ipv6Addr, ToSocketAddrs};
[INFO] [stderr]   |                ^^^^^^^^^^  ^^^^^^^^^^^^  ^^^^^^^^^^^^  ^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::env::args`
[INFO] [stderr]   --> src/main_win.rs:10:5
[INFO] [stderr]    |
[INFO] [stderr] 10 | use std::env::args;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `human_panic::setup_panic`
[INFO] [stderr]   --> src/main_win.rs:11:5
[INFO] [stderr]    |
[INFO] [stderr] 11 | use human_panic::setup_panic;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `ApplicationFlags`
[INFO] [stderr]   --> src/main_win.rs:12:49
[INFO] [stderr]    |
[INFO] [stderr] 12 | use gio::{ApplicationExt, ApplicationExtManual, ApplicationFlags};
[INFO] [stderr]    |                                                 ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Alignment`, `Builder`, `Button`, `CellRendererProgress`, `CheckMenuItem`, `Fixed`, `Grid`, `IconSize`, `Image`, `ListBoxRow`, `ListBox`, `Orientation`, `ReliefStyle`, `StatusIcon`, `TextView`, `Widget`, `WindowPosition`, `WindowType`, `Window`
[INFO] [stderr]   --> src/main_win.rs:15:29
[INFO] [stderr]    |
[INFO] [stderr] 15 |     self, CellRendererText, CellRendererProgress, AboutDialog, CheckMenuItem, IconSize, Image, Label, Menu, MenuBar, MenuItem, Window,
[INFO] [stderr]    |                             ^^^^^^^^^^^^^^^^^^^^               ^^^^^^^^^^^^^  ^^^^^^^^  ^^^^^                                  ^^^^^^
[INFO] [stderr] 16 |     WindowPosition, WindowType, StatusIcon, ListStore, TreeView, TreeViewColumn, Builder, Grid, Button, Orientation,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^                                       ^^^^^^^  ^^^^  ^^^^^^  ^^^^^^^^^^^
[INFO] [stderr] 17 |     ReliefStyle, Widget, TextView, Fixed, ScrolledWindow, Alignment, ListBox, ListBoxRow, Application
[INFO] [stderr]    |     ^^^^^^^^^^^  ^^^^^^  ^^^^^^^^  ^^^^^                  ^^^^^^^^^  ^^^^^^^  ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Receiver`
[INFO] [stderr]   --> src/main_win.rs:20:12
[INFO] [stderr]    |
[INFO] [stderr] 20 | use glib::{Receiver, MainContext};
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `debug`, `trace`, `warn`
[INFO] [stderr]   --> src/main_win.rs:22:17
[INFO] [stderr]    |
[INFO] [stderr] 22 | use log::{info, trace, warn, debug};
[INFO] [stderr]    |                 ^^^^^  ^^^^  ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `ErrMsg`, `FileInfo`, `OperUser`, `Operate`, `Packet`, `ReceivedPacketInner`, `ReceivedSimpleFileInfo`, `ShareInfo`, `User`, `self`
[INFO] [stderr]   --> src/main_win.rs:23:20
[INFO] [stderr]    |
[INFO] [stderr] 23 | use crate::model::{self, User, OperUser, Operate, ShareInfo, Packet, FileInfo, ReceivedSimpleFileInfo, ReceivedPacketInner, ErrMsg};
[INFO] [stderr]    |                    ^^^^  ^^^^  ^^^^^^^^  ^^^^^^^  ^^^^^^^^^  ^^^^^^  ^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^  ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `chrono::prelude::*`
[INFO] [stderr]  --> src/app.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use chrono::prelude::*;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `TcpListener`, `TcpStream`
[INFO] [stderr]  --> src/app.rs:2:16
[INFO] [stderr]   |
[INFO] [stderr] 2 | use std::net::{TcpListener, TcpStream};
[INFO] [stderr]   |                ^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Arc`, `Mutex`
[INFO] [stderr]  --> src/app.rs:3:17
[INFO] [stderr]   |
[INFO] [stderr] 3 | use std::sync::{Arc, Mutex};
[INFO] [stderr]   |                 ^^^  ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::cell::RefCell`
[INFO] [stderr]  --> src/app.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 4 | use std::cell::RefCell;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::thread`
[INFO] [stderr]  --> src/app.rs:5:5
[INFO] [stderr]   |
[INFO] [stderr] 5 | use std::thread;
[INFO] [stderr]   |     ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::sync::mpsc`
[INFO] [stderr]  --> src/app.rs:6:5
[INFO] [stderr]   |
[INFO] [stderr] 6 | use std::sync::mpsc;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::collections::HashMap`
[INFO] [stderr]  --> src/app.rs:7:5
[INFO] [stderr]   |
[INFO] [stderr] 7 | use std::collections::HashMap;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::net::UdpSocket`
[INFO] [stderr]  --> src/app.rs:8:5
[INFO] [stderr]   |
[INFO] [stderr] 8 | use std::net::UdpSocket;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Ipv4Addr`, `Ipv6Addr`, `SocketAddrV4`, `SocketAddrV6`, `SocketAddr`, `ToSocketAddrs`
[INFO] [stderr]  --> src/app.rs:9:16
[INFO] [stderr]   |
[INFO] [stderr] 9 | use std::net::{SocketAddr, SocketAddrV4, SocketAddrV6, Ipv4Addr, Ipv6Addr, ToSocketAddrs};
[INFO] [stderr]   |                ^^^^^^^^^^  ^^^^^^^^^^^^  ^^^^^^^^^^^^  ^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `AboutDialog`, `Alignment`, `Builder`, `Button`, `CellRendererProgress`, `CellRendererText`, `CheckMenuItem`, `Fixed`, `Grid`, `IconSize`, `Image`, `Label`, `ListBoxRow`, `ListBox`, `ListStore`, `MenuBar`, `MenuItem`, `Menu`, `Orientation`, `ReliefStyle`, `ScrolledWindow`, `StatusIcon`, `TextView`, `TreeViewColumn`, `TreeView`, `Widget`, `WindowPosition`, `WindowType`, `Window`
[INFO] [stderr]   --> src/app.rs:15:11
[INFO] [stderr]    |
[INFO] [stderr] 15 |     self, CellRendererText, CellRendererProgress, AboutDialog, CheckMenuItem, IconSize, Image, Label, Menu, MenuBar, MenuItem, Window,
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^^^^^  ^^^^^^^^  ^^^^^  ^^^^^  ^^^^  ^^^^^^^  ^^^^^^^^  ^^^^^^
[INFO] [stderr] 16 |     WindowPosition, WindowType, StatusIcon, ListStore, TreeView, TreeViewColumn, Builder, Grid, Button, Orientation,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^^^^^  ^^^^^^^  ^^^^  ^^^^^^  ^^^^^^^^^^^
[INFO] [stderr] 17 |     ReliefStyle, Widget, TextView, Fixed, ScrolledWindow, Alignment, ListBox, ListBoxRow
[INFO] [stderr]    |     ^^^^^^^^^^^  ^^^^^^  ^^^^^^^^  ^^^^^  ^^^^^^^^^^^^^^  ^^^^^^^^^  ^^^^^^^  ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `gdk_pixbuf::Pixbuf`
[INFO] [stderr]   --> src/app.rs:19:5
[INFO] [stderr]    |
[INFO] [stderr] 19 | use gdk_pixbuf::Pixbuf;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `MainContext`, `Receiver`
[INFO] [stderr]   --> src/app.rs:20:12
[INFO] [stderr]    |
[INFO] [stderr] 20 | use glib::{Receiver, MainContext};
[INFO] [stderr]    |            ^^^^^^^^  ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crossbeam_channel::unbounded`
[INFO] [stderr]   --> src/app.rs:21:5
[INFO] [stderr]    |
[INFO] [stderr] 21 | use crossbeam_channel::unbounded;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `debug`, `trace`, `warn`
[INFO] [stderr]   --> src/app.rs:22:17
[INFO] [stderr]    |
[INFO] [stderr] 22 | use log::{info, trace, warn, debug};
[INFO] [stderr]    |                 ^^^^^  ^^^^  ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `ErrMsg`, `FileInfo`, `OperUser`, `Operate`, `Packet`, `ReceivedPacketInner`, `ReceivedSimpleFileInfo`, `ShareInfo`, `User`, `self`
[INFO] [stderr]   --> src/app.rs:23:20
[INFO] [stderr]    |
[INFO] [stderr] 23 | use crate::model::{self, User, OperUser, Operate, ShareInfo, Packet, FileInfo, ReceivedSimpleFileInfo, ReceivedPacketInner, ErrMsg};
[INFO] [stderr]    |                    ^^^^  ^^^^  ^^^^^^^^  ^^^^^^^  ^^^^^^^^^  ^^^^^^  ^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^  ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::chat_window::ChatWindow`
[INFO] [stderr]   --> src/app.rs:24:5
[INFO] [stderr]    |
[INFO] [stderr] 24 | use crate::chat_window::ChatWindow;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `model::ModelEvent`, `model::model_run`, `ui::UiEvent`
[INFO] [stderr]   --> src/app.rs:25:21
[INFO] [stderr]    |
[INFO] [stderr] 25 | use crate::events::{ui::UiEvent, model::ModelEvent, model::model_run};
[INFO] [stderr]    |                     ^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::net::TcpStream`
[INFO] [stderr]  --> src/model.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use std::net::TcpStream;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Path`
[INFO] [stderr]  --> src/model.rs:3:26
[INFO] [stderr]   |
[INFO] [stderr] 3 | use std::path::{PathBuf, Path};
[INFO] [stderr]   |                          ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Arc`, `Mutex`
[INFO] [stderr]  --> src/message.rs:1:17
[INFO] [stderr]   |
[INFO] [stderr] 1 | use std::sync::{Arc, Mutex};
[INFO] [stderr]   |                 ^^^  ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::cell::RefCell`
[INFO] [stderr]  --> src/message.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use std::cell::RefCell;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::thread`
[INFO] [stderr]  --> src/message.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | use std::thread;
[INFO] [stderr]   |     ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::net::UdpSocket`
[INFO] [stderr]  --> src/message.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 4 | use std::net::UdpSocket;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `DecoderTrap`, `EncoderTrap`, `Encoding`
[INFO] [stderr]  --> src/message.rs:5:16
[INFO] [stderr]   |
[INFO] [stderr] 5 | use encoding::{Encoding, EncoderTrap, DecoderTrap};
[INFO] [stderr]   |                ^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `encoding::all::GB18030`
[INFO] [stderr]  --> src/message.rs:6:5
[INFO] [stderr]   |
[INFO] [stderr] 6 | use encoding::all::GB18030;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `trace`, `warn`
[INFO] [stderr]  --> src/message.rs:8:17
[INFO] [stderr]   |
[INFO] [stderr] 8 | use log::{info, trace, warn};
[INFO] [stderr]   |                 ^^^^^  ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `IPMSG_BROADCASTOPT`, `IPMSG_BR_ENTRY`, `IPMSG_DEFAULT_PORT`, `self`
[INFO] [stderr]   --> src/message.rs:10:23
[INFO] [stderr]    |
[INFO] [stderr] 10 | use crate::constant::{self, IPMSG_SENDMSG, IPMSG_FILEATTACHOPT, IPMSG_DEFAULT_PORT, IPMSG_BR_ENTRY, IPMSG_BROADCASTOPT};
[INFO] [stderr]    |                       ^^^^                                      ^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `DecoderTrap`
[INFO] [stderr]  --> src/util.rs:1:39
[INFO] [stderr]   |
[INFO] [stderr] 1 | use encoding::{Encoding, EncoderTrap, DecoderTrap};
[INFO] [stderr]   |                                       ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Duration`
[INFO] [stderr]  --> src/util.rs:6:17
[INFO] [stderr]   |
[INFO] [stderr] 6 | use std::time::{Duration, SystemTime};
[INFO] [stderr]   |                 ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `any`, `choice`, `optional`, `sep_by`, `skip_many1`, `skip_many`
[INFO] [stderr]  --> src/util.rs:9:44
[INFO] [stderr]   |
[INFO] [stderr] 9 | use combine::{many1, many, Parser, Stream, sep_by, token, skip_many, skip_many1, satisfy, choice, optional, any};
[INFO] [stderr]   |                                            ^^^^^^         ^^^^^^^^^  ^^^^^^^^^^           ^^^^^^  ^^^^^^^^  ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `take_until_range`, `take_while1`, `take_while`
[INFO] [stderr]   --> src/util.rs:10:22
[INFO] [stderr]    |
[INFO] [stderr] 10 | use combine::range::{take_while, take_while1, take_until_range};
[INFO] [stderr]    |                      ^^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `char`, `digit`, `letter`, `space`
[INFO] [stderr]   --> src/util.rs:11:21
[INFO] [stderr]    |
[INFO] [stderr] 11 | use combine::char::{letter, space, digit, char};
[INFO] [stderr]    |                     ^^^^^^  ^^^^^  ^^^^^  ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `AboutDialog`, `Alignment`, `ButtonBox`, `CheckMenuItem`, `Fixed`, `Grid`, `IconSize`, `Image`, `Label`, `MenuBar`, `MenuItem`, `Menu`, `Orientation`, `ReliefStyle`, `ScrolledWindow`, `StatusIcon`, `Widget`, `WindowPosition`, `WindowType`
[INFO] [stderr]  --> src/chat_window.rs:3:29
[INFO] [stderr]   |
[INFO] [stderr] 3 |     self, CellRendererText, AboutDialog, CheckMenuItem, IconSize, Image, Label, Menu, MenuBar, MenuItem, Window,
[INFO] [stderr]   |                             ^^^^^^^^^^^  ^^^^^^^^^^^^^  ^^^^^^^^  ^^^^^  ^^^^^  ^^^^  ^^^^^^^  ^^^^^^^^
[INFO] [stderr] 4 |     WindowPosition, WindowType, StatusIcon, ListStore, TreeView, TreeViewColumn, Builder, Grid, Button, Orientation,
[INFO] [stderr]   |     ^^^^^^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^                                                ^^^^          ^^^^^^^^^^^
[INFO] [stderr] 5 |     ReliefStyle, Widget, TextView, Fixed, ScrolledWindow, Alignment, ButtonBox, WrapMode
[INFO] [stderr]   |     ^^^^^^^^^^^  ^^^^^^            ^^^^^  ^^^^^^^^^^^^^^  ^^^^^^^^^  ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Mutex`
[INFO] [stderr]  --> src/chat_window.rs:7:22
[INFO] [stderr]   |
[INFO] [stderr] 7 | use std::sync::{Arc, Mutex};
[INFO] [stderr]   |                      ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::sync::mpsc`
[INFO] [stderr]  --> src/chat_window.rs:9:5
[INFO] [stderr]   |
[INFO] [stderr] 9 | use std::sync::mpsc;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::thread`
[INFO] [stderr]   --> src/chat_window.rs:10:5
[INFO] [stderr]    |
[INFO] [stderr] 10 | use std::thread;
[INFO] [stderr]    |     ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Path`
[INFO] [stderr]   --> src/chat_window.rs:11:26
[INFO] [stderr]    |
[INFO] [stderr] 11 | use std::path::{PathBuf, Path};
[INFO] [stderr]    |                          ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `File`, `ReadDir`
[INFO] [stderr]   --> src/chat_window.rs:12:21
[INFO] [stderr]    |
[INFO] [stderr] 12 | use std::fs::{self, File, Metadata, ReadDir};
[INFO] [stderr]    |                     ^^^^            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Duration`, `SystemTime`, `UNIX_EPOCH`
[INFO] [stderr]   --> src/chat_window.rs:13:23
[INFO] [stderr]    |
[INFO] [stderr] 13 | use std::time::{self, Duration, SystemTime, UNIX_EPOCH};
[INFO] [stderr]    |                       ^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `trace`, `warn`
[INFO] [stderr]   --> src/chat_window.rs:15:17
[INFO] [stderr]    |
[INFO] [stderr] 15 | use log::{info, trace, warn};
[INFO] [stderr]    |                 ^^^^^  ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Packet`, `ShareInfo`
[INFO] [stderr]   --> src/chat_window.rs:16:26
[INFO] [stderr]    |
[INFO] [stderr] 16 | use crate::model::{self, Packet, ShareInfo, ReceivedSimpleFileInfo};
[INFO] [stderr]    |                          ^^^^^^  ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::constant`
[INFO] [stderr]   --> src/chat_window.rs:19:5
[INFO] [stderr]    |
[INFO] [stderr] 19 | use crate::constant;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `ReadDir`
[INFO] [stderr]  --> src/download.rs:8:37
[INFO] [stderr]   |
[INFO] [stderr] 8 | use std::fs::{self, File, Metadata, ReadDir};
[INFO] [stderr]   |                                     ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `EncoderTrap`
[INFO] [stderr]   --> src/download.rs:12:26
[INFO] [stderr]    |
[INFO] [stderr] 12 | use encoding::{Encoding, EncoderTrap, DecoderTrap};
[INFO] [stderr]    |                          ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `trace`, `warn`
[INFO] [stderr]   --> src/download.rs:14:17
[INFO] [stderr]    |
[INFO] [stderr] 14 | use log::{info, trace, warn, debug};
[INFO] [stderr]    |                 ^^^^^  ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `FileInfo`
[INFO] [stderr]   --> src/download.rs:18:20
[INFO] [stderr]    |
[INFO] [stderr] 18 | use crate::model::{FileInfo, ReceivedSimpleFileInfo};
[INFO] [stderr]    |                    ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/download.rs:44:32
[INFO] [stderr]    |
[INFO] [stderr] 44 |     fn cause(&self) -> Option<&Error> {
[INFO] [stderr]    |                                ^^^^^ help: use `dyn`: `dyn Error`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around function argument
[INFO] [stderr]    --> src/download.rs:167:65
[INFO] [stderr]     |
[INFO] [stderr] 167 |                     let header_context_str = read_bytes(stream, (header_size - 1 - header_size_str.as_bytes().len() as u64));//-1是减去的那个冒号
[INFO] [stderr]     |                                                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `EncoderTrap`
[INFO] [stderr]  --> src/events/model.rs:4:26
[INFO] [stderr]   |
[INFO] [stderr] 4 | use encoding::{Encoding, EncoderTrap, DecoderTrap};
[INFO] [stderr]   |                          ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `debug`, `trace`, `warn`
[INFO] [stderr]  --> src/events/model.rs:9:17
[INFO] [stderr]   |
[INFO] [stderr] 9 | use log::{info, trace, warn, debug, error};
[INFO] [stderr]   |                 ^^^^^  ^^^^  ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `FileInfo`
[INFO] [stderr]   --> src/events/model.rs:11:79
[INFO] [stderr]    |
[INFO] [stderr] 11 | use crate::model::{Packet, User, ReceivedSimpleFileInfo, ReceivedPacketInner, FileInfo, ShareInfo};
[INFO] [stderr]    |                                                                               ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `IPMSG_FILEATTACHOPT`, `IPMSG_SENDMSG`
[INFO] [stderr]   --> src/events/model.rs:15:29
[INFO] [stderr]    |
[INFO] [stderr] 15 | use crate::constant::{self, IPMSG_SENDMSG, IPMSG_FILEATTACHOPT, IPMSG_DEFAULT_PORT, IPMSG_BR_ENTRY, IPMSG_BROADCASTOPT, IPMSG_LIMITED_BROADCAST};
[INFO] [stderr]    |                             ^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]    --> src/events/model.rs:192:9
[INFO] [stderr]     |
[INFO] [stderr] 192 |         ///扩展段 用户名|用户组
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 193 |         let ext_vec = extstr.splitn(2, |c| c == ':').collect::<Vec<&str>>();
[INFO] [stderr]     |         -------------------------------------------------------------------- rustdoc does not generate documentation for statements
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_doc_comments)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `FileInfo`, `ReceivedPacketInner`
[INFO] [stderr]  --> src/events/ui.rs:1:26
[INFO] [stderr]   |
[INFO] [stderr] 1 | use crate::model::{User, ReceivedPacketInner, Packet, ReceivedSimpleFileInfo, FileInfo, ShareInfo};
[INFO] [stderr]   |                          ^^^^^^^^^^^^^^^^^^^                                  ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `ReadDir`
[INFO] [stderr]  --> src/fileserver.rs:7:37
[INFO] [stderr]   |
[INFO] [stderr] 7 | use std::fs::{self, File, Metadata, ReadDir};
[INFO] [stderr]   |                                     ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `EncoderTrap`
[INFO] [stderr]  --> src/fileserver.rs:8:26
[INFO] [stderr]   |
[INFO] [stderr] 8 | use encoding::{Encoding, EncoderTrap, DecoderTrap};
[INFO] [stderr]   |                          ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `debug`, `trace`, `warn`
[INFO] [stderr]   --> src/fileserver.rs:11:17
[INFO] [stderr]    |
[INFO] [stderr] 11 | use log::{info, trace, warn, debug};
[INFO] [stderr]    |                 ^^^^^  ^^^^  ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `FileInfo`, `Packet`
[INFO] [stderr]   --> src/fileserver.rs:13:20
[INFO] [stderr]    |
[INFO] [stderr] 13 | use crate::model::{FileInfo, Packet, ShareInfo};
[INFO] [stderr]    |                    ^^^^^^^^  ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `chrono::prelude::*`
[INFO] [stderr]  --> src/main_win.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use chrono::prelude::*;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `TcpListener`, `TcpStream`
[INFO] [stderr]  --> src/main_win.rs:2:16
[INFO] [stderr]   |
[INFO] [stderr] 2 | use std::net::{TcpListener, TcpStream};
[INFO] [stderr]   |                ^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Arc`, `Mutex`
[INFO] [stderr]  --> src/main_win.rs:3:17
[INFO] [stderr]   |
[INFO] [stderr] 3 | use std::sync::{Arc, Mutex};
[INFO] [stderr]   |                 ^^^  ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::cell::RefCell`
[INFO] [stderr]  --> src/main_win.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 4 | use std::cell::RefCell;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::thread`
[INFO] [stderr]  --> src/main_win.rs:5:5
[INFO] [stderr]   |
[INFO] [stderr] 5 | use std::thread;
[INFO] [stderr]   |     ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::sync::mpsc`
[INFO] [stderr]  --> src/main_win.rs:6:5
[INFO] [stderr]   |
[INFO] [stderr] 6 | use std::sync::mpsc;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Ipv4Addr`, `Ipv6Addr`, `SocketAddrV4`, `SocketAddrV6`, `SocketAddr`, `ToSocketAddrs`
[INFO] [stderr]  --> src/main_win.rs:9:16
[INFO] [stderr]   |
[INFO] [stderr] 9 | use std::net::{SocketAddr, SocketAddrV4, SocketAddrV6, Ipv4Addr, Ipv6Addr, ToSocketAddrs};
[INFO] [stderr]   |                ^^^^^^^^^^  ^^^^^^^^^^^^  ^^^^^^^^^^^^  ^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::env::args`
[INFO] [stderr]   --> src/main_win.rs:10:5
[INFO] [stderr]    |
[INFO] [stderr] 10 | use std::env::args;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `human_panic::setup_panic`
[INFO] [stderr]   --> src/main_win.rs:11:5
[INFO] [stderr]    |
[INFO] [stderr] 11 | use human_panic::setup_panic;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `ApplicationFlags`
[INFO] [stderr]   --> src/main_win.rs:12:49
[INFO] [stderr]    |
[INFO] [stderr] 12 | use gio::{ApplicationExt, ApplicationExtManual, ApplicationFlags};
[INFO] [stderr]    |                                                 ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Alignment`, `Builder`, `Button`, `CellRendererProgress`, `CheckMenuItem`, `Fixed`, `Grid`, `IconSize`, `Image`, `ListBoxRow`, `ListBox`, `Orientation`, `ReliefStyle`, `StatusIcon`, `TextView`, `Widget`, `WindowPosition`, `WindowType`, `Window`
[INFO] [stderr]   --> src/main_win.rs:15:29
[INFO] [stderr]    |
[INFO] [stderr] 15 |     self, CellRendererText, CellRendererProgress, AboutDialog, CheckMenuItem, IconSize, Image, Label, Menu, MenuBar, MenuItem, Window,
[INFO] [stderr]    |                             ^^^^^^^^^^^^^^^^^^^^               ^^^^^^^^^^^^^  ^^^^^^^^  ^^^^^                                  ^^^^^^
[INFO] [stderr] 16 |     WindowPosition, WindowType, StatusIcon, ListStore, TreeView, TreeViewColumn, Builder, Grid, Button, Orientation,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^                                       ^^^^^^^  ^^^^  ^^^^^^  ^^^^^^^^^^^
[INFO] [stderr] 17 |     ReliefStyle, Widget, TextView, Fixed, ScrolledWindow, Alignment, ListBox, ListBoxRow, Application
[INFO] [stderr]    |     ^^^^^^^^^^^  ^^^^^^  ^^^^^^^^  ^^^^^                  ^^^^^^^^^  ^^^^^^^  ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Receiver`
[INFO] [stderr]   --> src/main_win.rs:20:12
[INFO] [stderr]    |
[INFO] [stderr] 20 | use glib::{Receiver, MainContext};
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `debug`, `trace`, `warn`
[INFO] [stderr]   --> src/main_win.rs:22:17
[INFO] [stderr]    |
[INFO] [stderr] 22 | use log::{info, trace, warn, debug};
[INFO] [stderr]    |                 ^^^^^  ^^^^  ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `ErrMsg`, `FileInfo`, `OperUser`, `Operate`, `Packet`, `ReceivedPacketInner`, `ReceivedSimpleFileInfo`, `ShareInfo`, `User`, `self`
[INFO] [stderr]   --> src/main_win.rs:23:20
[INFO] [stderr]    |
[INFO] [stderr] 23 | use crate::model::{self, User, OperUser, Operate, ShareInfo, Packet, FileInfo, ReceivedSimpleFileInfo, ReceivedPacketInner, ErrMsg};
[INFO] [stderr]    |                    ^^^^  ^^^^  ^^^^^^^^  ^^^^^^^  ^^^^^^^^^  ^^^^^^  ^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^  ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `chrono::prelude::*`
[INFO] [stderr]  --> src/app.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use chrono::prelude::*;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `TcpListener`, `TcpStream`
[INFO] [stderr]  --> src/app.rs:2:16
[INFO] [stderr]   |
[INFO] [stderr] 2 | use std::net::{TcpListener, TcpStream};
[INFO] [stderr]   |                ^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Arc`, `Mutex`
[INFO] [stderr]  --> src/app.rs:3:17
[INFO] [stderr]   |
[INFO] [stderr] 3 | use std::sync::{Arc, Mutex};
[INFO] [stderr]   |                 ^^^  ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::cell::RefCell`
[INFO] [stderr]  --> src/app.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 4 | use std::cell::RefCell;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::thread`
[INFO] [stderr]  --> src/app.rs:5:5
[INFO] [stderr]   |
[INFO] [stderr] 5 | use std::thread;
[INFO] [stderr]   |     ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::sync::mpsc`
[INFO] [stderr]  --> src/app.rs:6:5
[INFO] [stderr]   |
[INFO] [stderr] 6 | use std::sync::mpsc;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::collections::HashMap`
[INFO] [stderr]  --> src/app.rs:7:5
[INFO] [stderr]   |
[INFO] [stderr] 7 | use std::collections::HashMap;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::net::UdpSocket`
[INFO] [stderr]  --> src/app.rs:8:5
[INFO] [stderr]   |
[INFO] [stderr] 8 | use std::net::UdpSocket;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Ipv4Addr`, `Ipv6Addr`, `SocketAddrV4`, `SocketAddrV6`, `SocketAddr`, `ToSocketAddrs`
[INFO] [stderr]  --> src/app.rs:9:16
[INFO] [stderr]   |
[INFO] [stderr] 9 | use std::net::{SocketAddr, SocketAddrV4, SocketAddrV6, Ipv4Addr, Ipv6Addr, ToSocketAddrs};
[INFO] [stderr]   |                ^^^^^^^^^^  ^^^^^^^^^^^^  ^^^^^^^^^^^^  ^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `AboutDialog`, `Alignment`, `Builder`, `Button`, `CellRendererProgress`, `CellRendererText`, `CheckMenuItem`, `Fixed`, `Grid`, `IconSize`, `Image`, `Label`, `ListBoxRow`, `ListBox`, `ListStore`, `MenuBar`, `MenuItem`, `Menu`, `Orientation`, `ReliefStyle`, `ScrolledWindow`, `StatusIcon`, `TextView`, `TreeViewColumn`, `TreeView`, `Widget`, `WindowPosition`, `WindowType`, `Window`
[INFO] [stderr]   --> src/app.rs:15:11
[INFO] [stderr]    |
[INFO] [stderr] 15 |     self, CellRendererText, CellRendererProgress, AboutDialog, CheckMenuItem, IconSize, Image, Label, Menu, MenuBar, MenuItem, Window,
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^^^^^  ^^^^^^^^  ^^^^^  ^^^^^  ^^^^  ^^^^^^^  ^^^^^^^^  ^^^^^^
[INFO] [stderr] 16 |     WindowPosition, WindowType, StatusIcon, ListStore, TreeView, TreeViewColumn, Builder, Grid, Button, Orientation,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^^^^^  ^^^^^^^  ^^^^  ^^^^^^  ^^^^^^^^^^^
[INFO] [stderr] 17 |     ReliefStyle, Widget, TextView, Fixed, ScrolledWindow, Alignment, ListBox, ListBoxRow
[INFO] [stderr]    |     ^^^^^^^^^^^  ^^^^^^  ^^^^^^^^  ^^^^^  ^^^^^^^^^^^^^^  ^^^^^^^^^  ^^^^^^^  ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `gdk_pixbuf::Pixbuf`
[INFO] [stderr]   --> src/app.rs:19:5
[INFO] [stderr]    |
[INFO] [stderr] 19 | use gdk_pixbuf::Pixbuf;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `MainContext`, `Receiver`
[INFO] [stderr]   --> src/app.rs:20:12
[INFO] [stderr]    |
[INFO] [stderr] 20 | use glib::{Receiver, MainContext};
[INFO] [stderr]    |            ^^^^^^^^  ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crossbeam_channel::unbounded`
[INFO] [stderr]   --> src/app.rs:21:5
[INFO] [stderr]    |
[INFO] [stderr] 21 | use crossbeam_channel::unbounded;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `debug`, `trace`, `warn`
[INFO] [stderr]   --> src/app.rs:22:17
[INFO] [stderr]    |
[INFO] [stderr] 22 | use log::{info, trace, warn, debug};
[INFO] [stderr]    |                 ^^^^^  ^^^^  ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `ErrMsg`, `FileInfo`, `OperUser`, `Operate`, `Packet`, `ReceivedPacketInner`, `ReceivedSimpleFileInfo`, `ShareInfo`, `User`, `self`
[INFO] [stderr]   --> src/app.rs:23:20
[INFO] [stderr]    |
[INFO] [stderr] 23 | use crate::model::{self, User, OperUser, Operate, ShareInfo, Packet, FileInfo, ReceivedSimpleFileInfo, ReceivedPacketInner, ErrMsg};
[INFO] [stderr]    |                    ^^^^  ^^^^  ^^^^^^^^  ^^^^^^^  ^^^^^^^^^  ^^^^^^  ^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^  ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::chat_window::ChatWindow`
[INFO] [stderr]   --> src/app.rs:24:5
[INFO] [stderr]    |
[INFO] [stderr] 24 | use crate::chat_window::ChatWindow;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `model::ModelEvent`, `model::model_run`, `ui::UiEvent`
[INFO] [stderr]   --> src/app.rs:25:21
[INFO] [stderr]    |
[INFO] [stderr] 25 | use crate::events::{ui::UiEvent, model::ModelEvent, model::model_run};
[INFO] [stderr]    |                     ^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'std::error::Error::description': use the Display impl or to_string()
[INFO] [stderr]   --> src/download.rs:40:52
[INFO] [stderr]    |
[INFO] [stderr] 40 |             DownLoadError::IoError(ref err) => err.description(),
[INFO] [stderr]    |                                                    ^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(deprecated)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated item 'std::error::Error::description': use the Display impl or to_string()
[INFO] [stderr]   --> src/download.rs:40:52
[INFO] [stderr]    |
[INFO] [stderr] 40 |             DownLoadError::IoError(ref err) => err.description(),
[INFO] [stderr]    |                                                    ^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(deprecated)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `ApplicationExt`
[INFO] [stderr]   --> src/main_win.rs:12:11
[INFO] [stderr]    |
[INFO] [stderr] 12 | use gio::{ApplicationExt, ApplicationExtManual, ApplicationFlags};
[INFO] [stderr]    |           ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `ApplicationExtManual`
[INFO] [stderr]   --> src/main_win.rs:12:27
[INFO] [stderr]    |
[INFO] [stderr] 12 | use gio::{ApplicationExt, ApplicationExtManual, ApplicationFlags};
[INFO] [stderr]    |                           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `gtk::prelude`
[INFO] [stderr]   --> src/app.rs:13:5
[INFO] [stderr]    |
[INFO] [stderr] 13 | use gtk::prelude::*;
[INFO] [stderr]    |     ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable pattern
[INFO] [stderr]    --> src/main_win.rs:257:17
[INFO] [stderr]     |
[INFO] [stderr] 257 |                 _ => {
[INFO] [stderr]     |                 ^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unreachable_patterns)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `i`
[INFO] [stderr]   --> src/message.rs:28:10
[INFO] [stderr]    |
[INFO] [stderr] 28 |     for (i, file) in (&files).iter().enumerate() {
[INFO] [stderr]    |          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `c`
[INFO] [stderr]   --> src/util.rs:57:23
[INFO] [stderr]    |
[INFO] [stderr] 57 |         many(satisfy(|c| true)),
[INFO] [stderr]    |                       ^ help: if this is intentional, prefix it with an underscore: `_c`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `tree_path`
[INFO] [stderr]   --> src/chat_window.rs:87:95
[INFO] [stderr]    |
[INFO] [stderr] 87 |     tree_view_received.connect_row_activated(clone!(model_sender, host_ip => move |tree_view, tree_path, tree_view_column| {
[INFO] [stderr]    |                                                                                               ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tree_path`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `tree_view_column`
[INFO] [stderr]   --> src/chat_window.rs:87:106
[INFO] [stderr]    |
[INFO] [stderr] 87 |     tree_view_received.connect_row_activated(clone!(model_sender, host_ip => move |tree_view, tree_path, tree_view_column| {
[INFO] [stderr]    |                                                                                                          ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tree_view_column`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `local_time`
[INFO] [stderr]    --> src/chat_window.rs:145:17
[INFO] [stderr]     |
[INFO] [stderr] 145 |             let local_time = chrono_time.with_timezone(&::chrono::Local);
[INFO] [stderr]     |                 ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_local_time`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `local_time`
[INFO] [stderr]    --> src/chat_window.rs:187:17
[INFO] [stderr]     |
[INFO] [stderr] 187 |             let local_time = chrono_time.with_timezone(&::chrono::Local);
[INFO] [stderr]     |                 ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_local_time`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `text_view_history_clone`
[INFO] [stderr]   --> src/chat_window.rs:66:9
[INFO] [stderr]    |
[INFO] [stderr] 66 |     let text_view_history_clone = text_view_history.clone();
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_text_view_history_clone`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `received_store`
[INFO] [stderr]    --> src/chat_window.rs:240:25
[INFO] [stderr]     |
[INFO] [stderr] 240 | fn modify_received_list(received_store :Option<ListStore>, received_files: Arc<RefCell<Vec<ReceivedSimpleFileInfo>>>) -> ::glib::Continue {
[INFO] [stderr]     |                         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_received_store`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `received_files`
[INFO] [stderr]    --> src/chat_window.rs:240:60
[INFO] [stderr]     |
[INFO] [stderr] 240 | fn modify_received_list(received_store :Option<ListStore>, received_files: Arc<RefCell<Vec<ReceivedSimpleFileInfo>>>) -> ::glib::Continue {
[INFO] [stderr]     |                                                            ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_received_files`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `metadata`
[INFO] [stderr]    --> src/download.rs:124:9
[INFO] [stderr]     |
[INFO] [stderr] 124 |     let metadata: Metadata = fs::metadata(path)?;
[INFO] [stderr]     |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_metadata`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `path_info`
[INFO] [stderr]    --> src/download.rs:142:13
[INFO] [stderr]     |
[INFO] [stderr] 142 |         for path_info in path_infos {
[INFO] [stderr]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_path_info`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `len`
[INFO] [stderr]    --> src/download.rs:238:71
[INFO] [stderr]     |
[INFO] [stderr] 238 | fn read_bytes_to_file_unsize(mut stream : & mut BufReader<TcpStream>, len: u64, file_path: &PathBuf) {
[INFO] [stderr]     |                                                                       ^^^ help: if this is intentional, prefix it with an underscore: `_len`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `opt`
[INFO] [stderr]    --> src/download.rs:172:25
[INFO] [stderr]     |
[INFO] [stderr] 172 |                     let opt = constant::get_opt(file_attr);
[INFO] [stderr]     |                         ^^^ help: if this is intentional, prefix it with an underscore: `_opt`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `msg_str`
[INFO] [stderr]    --> src/events/model.rs:219:13
[INFO] [stderr]     |
[INFO] [stderr] 219 |         let msg_str = if ext_vec.len() > 0 { ext_vec[0] } else { "" };
[INFO] [stderr]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_msg_str`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `ntime`
[INFO] [stderr]    --> src/events/model.rs:240:29
[INFO] [stderr]     |
[INFO] [stderr] 240 |                         let ntime = NaiveDateTime::from_timestamp(mmtime_num, 0);
[INFO] [stderr]     |                             ^^^^^ help: if this is intentional, prefix it with an underscore: `_ntime`
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `search_result` is never read
[INFO] [stderr]   --> src/fileserver.rs:81:21
[INFO] [stderr]    |
[INFO] [stderr] 81 |             let mut search_result: Option<ShareInfo> = Option::None;
[INFO] [stderr]    |                     ^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_assignments)]` on by default
[INFO] [stderr]    = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `offset`
[INFO] [stderr]    --> src/fileserver.rs:105:17
[INFO] [stderr]     |
[INFO] [stderr] 105 |             let offset = file_attr[2].parse::<u32>().unwrap();
[INFO] [stderr]     |                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset`
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `search_result` is never read
[INFO] [stderr]    --> src/fileserver.rs:106:21
[INFO] [stderr]     |
[INFO] [stderr] 106 |             let mut search_result: Option<ShareInfo> = Option::None;
[INFO] [stderr]     |                     ^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `tree_path`
[INFO] [stderr]   --> src/main_win.rs:99:76
[INFO] [stderr]    |
[INFO] [stderr] 99 |         tree.connect_row_activated(clone!(model_sender => move |tree_view, tree_path, tree_view_column| {
[INFO] [stderr]    |                                                                            ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tree_path`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `tree_view_column`
[INFO] [stderr]   --> src/main_win.rs:99:87
[INFO] [stderr]    |
[INFO] [stderr] 99 |         tree.connect_row_activated(clone!(model_sender => move |tree_view, tree_path, tree_view_column| {
[INFO] [stderr]    |                                                                                       ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tree_view_column`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `win`
[INFO] [stderr]    --> src/main_win.rs:124:30
[INFO] [stderr]     |
[INFO] [stderr] 124 |                         Some(win) => {
[INFO] [stderr]     |                              ^^^ help: if this is intentional, prefix it with an underscore: `_win`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `win`
[INFO] [stderr]    --> src/main_win.rs:185:30
[INFO] [stderr]     |
[INFO] [stderr] 185 |                         Some(win) => {
[INFO] [stderr]     |                              ^^^ help: if this is intentional, prefix it with an underscore: `_win`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `packet`
[INFO] [stderr]    --> src/main_win.rs:192:62
[INFO] [stderr]     |
[INFO] [stderr] 192 |                 UiEvent::OpenOrReOpenChatWindow1 { name, ip, packet} => {
[INFO] [stderr]     |                                                              ^^^^^^ help: try ignoring the field: `packet: _`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `win`
[INFO] [stderr]    --> src/main_win.rs:194:30
[INFO] [stderr]     |
[INFO] [stderr] 194 |                         Some(win) => {
[INFO] [stderr]     |                              ^^^ help: if this is intentional, prefix it with an underscore: `_win`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `files`
[INFO] [stderr]    --> src/main_win.rs:204:67
[INFO] [stderr]     |
[INFO] [stderr] 204 |                 UiEvent::DisplaySelfSendMsgInHis {to_ip, context, files} => {
[INFO] [stderr]     |                                                                   ^^^^^ help: try ignoring the field: `files: _`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `his_start_iter`
[INFO] [stderr]    --> src/main_win.rs:207:34
[INFO] [stderr]     |
[INFO] [stderr] 207 | ...                   let (his_start_iter, mut his_end_iter) = win.his_view.get_buffer().unwrap().get_bounds();
[INFO] [stderr]     |                            ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_his_start_iter`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `his_start_iter`
[INFO] [stderr]    --> src/main_win.rs:217:34
[INFO] [stderr]     |
[INFO] [stderr] 217 | ...                   let (his_start_iter, mut his_end_iter) = win.his_view.get_buffer().unwrap().get_bounds();
[INFO] [stderr]     |                            ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_his_start_iter`
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `ApplicationExt`
[INFO] [stderr]   --> src/main_win.rs:12:11
[INFO] [stderr]    |
[INFO] [stderr] 12 | use gio::{ApplicationExt, ApplicationExtManual, ApplicationFlags};
[INFO] [stderr]    |           ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `ApplicationExtManual`
[INFO] [stderr]   --> src/main_win.rs:12:27
[INFO] [stderr]    |
[INFO] [stderr] 12 | use gio::{ApplicationExt, ApplicationExtManual, ApplicationFlags};
[INFO] [stderr]    |                           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `gtk::prelude`
[INFO] [stderr]   --> src/app.rs:13:5
[INFO] [stderr]    |
[INFO] [stderr] 13 | use gtk::prelude::*;
[INFO] [stderr]    |     ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable pattern
[INFO] [stderr]    --> src/main_win.rs:257:17
[INFO] [stderr]     |
[INFO] [stderr] 257 |                 _ => {
[INFO] [stderr]     |                 ^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unreachable_patterns)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/chat_window.rs:76:26
[INFO] [stderr]    |
[INFO] [stderr] 76 |         let (start_iter, mut end_iter) = text_view_presend.get_buffer().unwrap().get_bounds();
[INFO] [stderr]    |                          ----^^^^^^^^
[INFO] [stderr]    |                          |
[INFO] [stderr]    |                          help: remove this `mut`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `i`
[INFO] [stderr]   --> src/message.rs:28:10
[INFO] [stderr]    |
[INFO] [stderr] 28 |     for (i, file) in (&files).iter().enumerate() {
[INFO] [stderr]    |          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `c`
[INFO] [stderr]   --> src/util.rs:57:23
[INFO] [stderr]    |
[INFO] [stderr] 57 |         many(satisfy(|c| true)),
[INFO] [stderr]    |                       ^ help: if this is intentional, prefix it with an underscore: `_c`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `tree_path`
[INFO] [stderr]   --> src/chat_window.rs:87:95
[INFO] [stderr]    |
[INFO] [stderr] 87 |     tree_view_received.connect_row_activated(clone!(model_sender, host_ip => move |tree_view, tree_path, tree_view_column| {
[INFO] [stderr]    |                                                                                               ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tree_path`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `tree_view_column`
[INFO] [stderr]   --> src/chat_window.rs:87:106
[INFO] [stderr]    |
[INFO] [stderr] 87 |     tree_view_received.connect_row_activated(clone!(model_sender, host_ip => move |tree_view, tree_path, tree_view_column| {
[INFO] [stderr]    |                                                                                                          ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tree_view_column`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `local_time`
[INFO] [stderr]    --> src/chat_window.rs:145:17
[INFO] [stderr]     |
[INFO] [stderr] 145 |             let local_time = chrono_time.with_timezone(&::chrono::Local);
[INFO] [stderr]     |                 ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_local_time`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `local_time`
[INFO] [stderr]    --> src/chat_window.rs:187:17
[INFO] [stderr]     |
[INFO] [stderr] 187 |             let local_time = chrono_time.with_timezone(&::chrono::Local);
[INFO] [stderr]     |                 ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_local_time`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `text_view_history_clone`
[INFO] [stderr]   --> src/chat_window.rs:66:9
[INFO] [stderr]    |
[INFO] [stderr] 66 |     let text_view_history_clone = text_view_history.clone();
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_text_view_history_clone`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `received_store`
[INFO] [stderr]    --> src/chat_window.rs:240:25
[INFO] [stderr]     |
[INFO] [stderr] 240 | fn modify_received_list(received_store :Option<ListStore>, received_files: Arc<RefCell<Vec<ReceivedSimpleFileInfo>>>) -> ::glib::Continue {
[INFO] [stderr]     |                         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_received_store`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `received_files`
[INFO] [stderr]    --> src/chat_window.rs:240:60
[INFO] [stderr]     |
[INFO] [stderr] 240 | fn modify_received_list(received_store :Option<ListStore>, received_files: Arc<RefCell<Vec<ReceivedSimpleFileInfo>>>) -> ::glib::Continue {
[INFO] [stderr]     |                                                            ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_received_files`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `metadata`
[INFO] [stderr]    --> src/download.rs:124:9
[INFO] [stderr]     |
[INFO] [stderr] 124 |     let metadata: Metadata = fs::metadata(path)?;
[INFO] [stderr]     |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_metadata`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `path_info`
[INFO] [stderr]    --> src/download.rs:142:13
[INFO] [stderr]     |
[INFO] [stderr] 142 |         for path_info in path_infos {
[INFO] [stderr]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_path_info`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `len`
[INFO] [stderr]    --> src/download.rs:238:71
[INFO] [stderr]     |
[INFO] [stderr] 238 | fn read_bytes_to_file_unsize(mut stream : & mut BufReader<TcpStream>, len: u64, file_path: &PathBuf) {
[INFO] [stderr]     |                                                                       ^^^ help: if this is intentional, prefix it with an underscore: `_len`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `opt`
[INFO] [stderr]    --> src/download.rs:172:25
[INFO] [stderr]     |
[INFO] [stderr] 172 |                     let opt = constant::get_opt(file_attr);
[INFO] [stderr]     |                         ^^^ help: if this is intentional, prefix it with an underscore: `_opt`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `msg_str`
[INFO] [stderr]    --> src/events/model.rs:219:13
[INFO] [stderr]     |
[INFO] [stderr] 219 |         let msg_str = if ext_vec.len() > 0 { ext_vec[0] } else { "" };
[INFO] [stderr]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_msg_str`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `ntime`
[INFO] [stderr]    --> src/events/model.rs:240:29
[INFO] [stderr]     |
[INFO] [stderr] 240 |                         let ntime = NaiveDateTime::from_timestamp(mmtime_num, 0);
[INFO] [stderr]     |                             ^^^^^ help: if this is intentional, prefix it with an underscore: `_ntime`
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `search_result` is never read
[INFO] [stderr]   --> src/fileserver.rs:81:21
[INFO] [stderr]    |
[INFO] [stderr] 81 |             let mut search_result: Option<ShareInfo> = Option::None;
[INFO] [stderr]    |                     ^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_assignments)]` on by default
[INFO] [stderr]    = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `offset`
[INFO] [stderr]    --> src/fileserver.rs:105:17
[INFO] [stderr]     |
[INFO] [stderr] 105 |             let offset = file_attr[2].parse::<u32>().unwrap();
[INFO] [stderr]     |                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset`
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `search_result` is never read
[INFO] [stderr]    --> src/fileserver.rs:106:21
[INFO] [stderr]     |
[INFO] [stderr] 106 |             let mut search_result: Option<ShareInfo> = Option::None;
[INFO] [stderr]     |                     ^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `tree_path`
[INFO] [stderr]   --> src/main_win.rs:99:76
[INFO] [stderr]    |
[INFO] [stderr] 99 |         tree.connect_row_activated(clone!(model_sender => move |tree_view, tree_path, tree_view_column| {
[INFO] [stderr]    |                                                                            ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tree_path`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `tree_view_column`
[INFO] [stderr]   --> src/main_win.rs:99:87
[INFO] [stderr]    |
[INFO] [stderr] 99 |         tree.connect_row_activated(clone!(model_sender => move |tree_view, tree_path, tree_view_column| {
[INFO] [stderr]    |                                                                                       ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tree_view_column`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `win`
[INFO] [stderr]    --> src/main_win.rs:124:30
[INFO] [stderr]     |
[INFO] [stderr] 124 |                         Some(win) => {
[INFO] [stderr]     |                              ^^^ help: if this is intentional, prefix it with an underscore: `_win`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `win`
[INFO] [stderr]    --> src/main_win.rs:185:30
[INFO] [stderr]     |
[INFO] [stderr] 185 |                         Some(win) => {
[INFO] [stderr]     |                              ^^^ help: if this is intentional, prefix it with an underscore: `_win`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `packet`
[INFO] [stderr]    --> src/main_win.rs:192:62
[INFO] [stderr]     |
[INFO] [stderr] 192 |                 UiEvent::OpenOrReOpenChatWindow1 { name, ip, packet} => {
[INFO] [stderr]     |                                                              ^^^^^^ help: try ignoring the field: `packet: _`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `win`
[INFO] [stderr]    --> src/main_win.rs:194:30
[INFO] [stderr]     |
[INFO] [stderr] 194 |                         Some(win) => {
[INFO] [stderr]     |                              ^^^ help: if this is intentional, prefix it with an underscore: `_win`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `files`
[INFO] [stderr]    --> src/main_win.rs:204:67
[INFO] [stderr]     |
[INFO] [stderr] 204 |                 UiEvent::DisplaySelfSendMsgInHis {to_ip, context, files} => {
[INFO] [stderr]     |                                                                   ^^^^^ help: try ignoring the field: `files: _`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `his_start_iter`
[INFO] [stderr]    --> src/main_win.rs:207:34
[INFO] [stderr]     |
[INFO] [stderr] 207 | ...                   let (his_start_iter, mut his_end_iter) = win.his_view.get_buffer().unwrap().get_bounds();
[INFO] [stderr]     |                            ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_his_start_iter`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `his_start_iter`
[INFO] [stderr]    --> src/main_win.rs:217:34
[INFO] [stderr]     |
[INFO] [stderr] 217 | ...                   let (his_start_iter, mut his_end_iter) = win.his_view.get_buffer().unwrap().get_bounds();
[INFO] [stderr]     |                            ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_his_start_iter`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/download.rs:65:16
[INFO] [stderr]    |
[INFO] [stderr] 65 |     pub fn run(mut self, file_info: ReceivedSimpleFileInfo, save_path: PathBuf, download_ip: String) {
[INFO] [stderr]    |                ----^^^^
[INFO] [stderr]    |                |
[INFO] [stderr]    |                help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/download.rs:136:13
[INFO] [stderr]     |
[INFO] [stderr] 136 |         let mut base_file_location = path.to_path_buf();
[INFO] [stderr]     |             ----^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/download.rs:137:13
[INFO] [stderr]     |
[INFO] [stderr] 137 |         let mut buffer = BufReader::new(stream);
[INFO] [stderr]     |             ----^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/download.rs:138:13
[INFO] [stderr]     |
[INFO] [stderr] 138 |         let mut path_infos = PathInfos{
[INFO] [stderr]     |             ----^^^^^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/download.rs:202:19
[INFO] [stderr]     |
[INFO] [stderr] 202 | fn read_delimiter(mut stream : & mut BufReader<TcpStream>) -> Result<Option<String>, DownLoadError> {
[INFO] [stderr]     |                   ----^^^^^^
[INFO] [stderr]     |                   |
[INFO] [stderr]     |                   help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/download.rs:217:15
[INFO] [stderr]     |
[INFO] [stderr] 217 | fn read_bytes(mut stream : & mut BufReader<TcpStream>, len: u64) -> String {
[INFO] [stderr]     |               ----^^^^^^
[INFO] [stderr]     |               |
[INFO] [stderr]     |               help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/download.rs:224:23
[INFO] [stderr]     |
[INFO] [stderr] 224 | fn read_bytes_to_file(mut stream : & mut BufReader<TcpStream>, len: u64, file_path: &PathBuf) {
[INFO] [stderr]     |                       ----^^^^^^
[INFO] [stderr]     |                       |
[INFO] [stderr]     |                       help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/download.rs:238:30
[INFO] [stderr]     |
[INFO] [stderr] 238 | fn read_bytes_to_file_unsize(mut stream : & mut BufReader<TcpStream>, len: u64, file_path: &PathBuf) {
[INFO] [stderr]     |                              ----^^^^^^
[INFO] [stderr]     |                              |
[INFO] [stderr]     |                              help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/chat_window.rs:76:26
[INFO] [stderr]    |
[INFO] [stderr] 76 |         let (start_iter, mut end_iter) = text_view_presend.get_buffer().unwrap().get_bounds();
[INFO] [stderr]    |                          ----^^^^^^^^
[INFO] [stderr]    |                          |
[INFO] [stderr]    |                          help: remove this `mut`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/download.rs:65:16
[INFO] [stderr]    |
[INFO] [stderr] 65 |     pub fn run(mut self, file_info: ReceivedSimpleFileInfo, save_path: PathBuf, download_ip: String) {
[INFO] [stderr]    |                ----^^^^
[INFO] [stderr]    |                |
[INFO] [stderr]    |                help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/download.rs:136:13
[INFO] [stderr]     |
[INFO] [stderr] 136 |         let mut base_file_location = path.to_path_buf();
[INFO] [stderr]     |             ----^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/fileserver.rs:45:25
[INFO] [stderr]    |
[INFO] [stderr] 45 |                     let mut tmp_buf = &buf[0..byte_size];
[INFO] [stderr]    |                         ----^^^^^^^
[INFO] [stderr]    |                         |
[INFO] [stderr]    |                         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/download.rs:137:13
[INFO] [stderr]     |
[INFO] [stderr] 137 |         let mut buffer = BufReader::new(stream);
[INFO] [stderr]     |             ----^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/download.rs:138:13
[INFO] [stderr]     |
[INFO] [stderr] 138 |         let mut path_infos = PathInfos{
[INFO] [stderr]     |             ----^^^^^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/download.rs:202:19
[INFO] [stderr]     |
[INFO] [stderr] 202 | fn read_delimiter(mut stream : & mut BufReader<TcpStream>) -> Result<Option<String>, DownLoadError> {
[INFO] [stderr]     |                   ----^^^^^^
[INFO] [stderr]     |                   |
[INFO] [stderr]     |                   help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/fileserver.rs:75:58
[INFO] [stderr]    |
[INFO] [stderr] 75 |     fn process_dir(pool_tmp: Arc<Mutex<Vec<ShareInfo>>>, mut stream_echo: TcpStream, ext_str: String) -> () {
[INFO] [stderr]    |                                                          ----^^^^^^^^^^^
[INFO] [stderr]    |                                                          |
[INFO] [stderr]    |                                                          help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/download.rs:217:15
[INFO] [stderr]     |
[INFO] [stderr] 217 | fn read_bytes(mut stream : & mut BufReader<TcpStream>, len: u64) -> String {
[INFO] [stderr]     |               ----^^^^^^
[INFO] [stderr]     |               |
[INFO] [stderr]     |               help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/fileserver.rs:99:60
[INFO] [stderr]    |
[INFO] [stderr] 99 |     fn process_file(pool_tmp: &Arc<Mutex<Vec<ShareInfo>>>, mut stream_echo: &mut TcpStream, ext_str: String) -> () {
[INFO] [stderr]    |                                                            ----^^^^^^^^^^^
[INFO] [stderr]    |                                                            |
[INFO] [stderr]    |                                                            help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/download.rs:224:23
[INFO] [stderr]     |
[INFO] [stderr] 224 | fn read_bytes_to_file(mut stream : & mut BufReader<TcpStream>, len: u64, file_path: &PathBuf) {
[INFO] [stderr]     |                       ----^^^^^^
[INFO] [stderr]     |                       |
[INFO] [stderr]     |                       help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/download.rs:238:30
[INFO] [stderr]     |
[INFO] [stderr] 238 | fn read_bytes_to_file_unsize(mut stream : & mut BufReader<TcpStream>, len: u64, file_path: &PathBuf) {
[INFO] [stderr]     |                              ----^^^^^^
[INFO] [stderr]     |                              |
[INFO] [stderr]     |                              help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/fileserver.rs:45:25
[INFO] [stderr]    |
[INFO] [stderr] 45 |                     let mut tmp_buf = &buf[0..byte_size];
[INFO] [stderr]    |                         ----^^^^^^^
[INFO] [stderr]    |                         |
[INFO] [stderr]    |                         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `IPMSG_BR_ISGETLIST`
[INFO] [stderr]   --> src/constant.rs:21:1
[INFO] [stderr]    |
[INFO] [stderr] 21 | pub const IPMSG_BR_ISGETLIST: u32 = 0x00000010;
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `IPMSG_OKGETLIST`
[INFO] [stderr]   --> src/constant.rs:23:1
[INFO] [stderr]    |
[INFO] [stderr] 23 | pub const IPMSG_OKGETLIST: u32 = 0x00000011;
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `IPMSG_GETLIST`
[INFO] [stderr]   --> src/constant.rs:25:1
[INFO] [stderr]    |
[INFO] [stderr] 25 | pub const IPMSG_GETLIST: u32 = 0x00000012;
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `IPMSG_ANSLIST`
[INFO] [stderr]   --> src/constant.rs:27:1
[INFO] [stderr]    |
[INFO] [stderr] 27 | pub const IPMSG_ANSLIST: u32 = 0x00000013;
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `IPMSG_BR_ISGETLIST2`
[INFO] [stderr]   --> src/constant.rs:29:1
[INFO] [stderr]    |
[INFO] [stderr] 29 | pub const IPMSG_BR_ISGETLIST2: u32 = 0x00000018;
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `IPMSG_READMSG`
[INFO] [stderr]   --> src/constant.rs:37:1
[INFO] [stderr]    |
[INFO] [stderr] 37 | pub const IPMSG_READMSG: u32 = 0x00000030;
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `IPMSG_DELMSG`
[INFO] [stderr]   --> src/constant.rs:39:1
[INFO] [stderr]    |
[INFO] [stderr] 39 | pub const IPMSG_DELMSG: u32 = 0x00000031;
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `IPMSG_ANSREADMSG`
[INFO] [stderr]   --> src/constant.rs:42:1
[INFO] [stderr]    |
[INFO] [stderr] 42 | pub const IPMSG_ANSREADMSG: u32 = 0x00000032;
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `IPMSG_GETINFO`
[INFO] [stderr]   --> src/constant.rs:44:1
[INFO] [stderr]    |
[INFO] [stderr] 44 | pub const IPMSG_GETINFO: u32 = 0x00000040;
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `IPMSG_SENDINFO`
[INFO] [stderr]   --> src/constant.rs:46:1
[INFO] [stderr]    |
[INFO] [stderr] 46 | pub const IPMSG_SENDINFO: u32 = 0x00000041;
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `IPMSG_GETABSENCEINFO`
[INFO] [stderr]   --> src/constant.rs:49:1
[INFO] [stderr]    |
[INFO] [stderr] 49 | pub const IPMSG_GETABSENCEINFO: u32 = 0x00000050;
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `IPMSG_SENDABSENCEINFO`
[INFO] [stderr]   --> src/constant.rs:51:1
[INFO] [stderr]    |
[INFO] [stderr] 51 | pub const IPMSG_SENDABSENCEINFO: u32 = 0x00000051;
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `IPMSG_RELEASEFILES`
[INFO] [stderr]   --> src/constant.rs:56:1
[INFO] [stderr]    |
[INFO] [stderr] 56 | pub const IPMSG_RELEASEFILES: u32 = 0x00000061;
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `IPMSG_GETPUBKEY`
[INFO] [stderr]   --> src/constant.rs:61:1
[INFO] [stderr]    |
[INFO] [stderr] 61 | pub const IPMSG_GETPUBKEY: u32 = 0x00000072;
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `IPMSG_ANSPUBKEY`
[INFO] [stderr]   --> src/constant.rs:63:1
[INFO] [stderr]    |
[INFO] [stderr] 63 | pub const IPMSG_ANSPUBKEY: u32 = 0x00000073;
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `IPMSG_FILE_SYMLINK`
[INFO] [stderr]   --> src/constant.rs:69:1
[INFO] [stderr]    |
[INFO] [stderr] 69 | pub const IPMSG_FILE_SYMLINK: u32 = 0x00000004;
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `IPMSG_FILE_CDEV`
[INFO] [stderr]   --> src/constant.rs:70:1
[INFO] [stderr]    |
[INFO] [stderr] 70 | pub const IPMSG_FILE_CDEV: u32 = 0x00000005;// for UNIX
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `IPMSG_FILE_BDEV`
[INFO] [stderr]   --> src/constant.rs:71:1
[INFO] [stderr]    |
[INFO] [stderr] 71 | pub const IPMSG_FILE_BDEV: u32 = 0x00000006;// for UNIX
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `IPMSG_FILE_FIFO`
[INFO] [stderr]   --> src/constant.rs:72:1
[INFO] [stderr]    |
[INFO] [stderr] 72 | pub const IPMSG_FILE_FIFO: u32 = 0x00000007;// for UNIX
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `IPMSG_FILE_RESFORK`
[INFO] [stderr]   --> src/constant.rs:73:1
[INFO] [stderr]    |
[INFO] [stderr] 73 | pub const IPMSG_FILE_RESFORK: u32 = 0x00000010;// for mac
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `IPMSG_FILE_RONLYOPT`
[INFO] [stderr]   --> src/constant.rs:76:1
[INFO] [stderr]    |
[INFO] [stderr] 76 | pub const IPMSG_FILE_RONLYOPT: u32 = 0x00000100;
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `IPMSG_FILE_HIDDENOPT`
[INFO] [stderr]   --> src/constant.rs:77:1
[INFO] [stderr]    |
[INFO] [stderr] 77 | pub const IPMSG_FILE_HIDDENOPT: u32 = 0x00001000;
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `IPMSG_FILE_EXHIDDENOPT`
[INFO] [stderr]   --> src/constant.rs:78:1
[INFO] [stderr]    |
[INFO] [stderr] 78 | pub const IPMSG_FILE_EXHIDDENOPT: u32 = 0x00002000;// for MacOS X
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `IPMSG_FILE_ARCHIVEOPT`
[INFO] [stderr]   --> src/constant.rs:79:1
[INFO] [stderr]    |
[INFO] [stderr] 79 | pub const IPMSG_FILE_ARCHIVEOPT: u32 = 0x00004000;
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `IPMSG_FILE_SYSTEMOPT`
[INFO] [stderr]   --> src/constant.rs:80:1
[INFO] [stderr]    |
[INFO] [stderr] 80 | pub const IPMSG_FILE_SYSTEMOPT: u32 = 0x00008000;
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `HOSTLIST_SEPARATOR`
[INFO] [stderr]   --> src/constant.rs:87:1
[INFO] [stderr]    |
[INFO] [stderr] 87 | pub const HOSTLIST_SEPARATOR: char = '\u{7}';
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `IPMSG_ABSENCEOPT`
[INFO] [stderr]   --> src/constant.rs:91:1
[INFO] [stderr]    |
[INFO] [stderr] 91 | pub const IPMSG_ABSENCEOPT: u32 = 0x00000100;
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `IPMSG_SERVEROPT`
[INFO] [stderr]   --> src/constant.rs:93:1
[INFO] [stderr]    |
[INFO] [stderr] 93 | pub const IPMSG_SERVEROPT: u32 = 0x00000200;
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `IPMSG_DIALUPOPT`
[INFO] [stderr]   --> src/constant.rs:95:1
[INFO] [stderr]    |
[INFO] [stderr] 95 | pub const IPMSG_DIALUPOPT: u32 = 0x00010000;
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `IPMSG_ENCRYPTOPT`
[INFO] [stderr]   --> src/constant.rs:99:1
[INFO] [stderr]    |
[INFO] [stderr] 99 | pub const IPMSG_ENCRYPTOPT: u32 = 0x00400000;
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `IPMSG_UTF8OPT`
[INFO] [stderr]    --> src/constant.rs:101:1
[INFO] [stderr]     |
[INFO] [stderr] 101 | pub const IPMSG_UTF8OPT: u32 = 0x00800000;
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `IPMSG_CAPUTF8OPT`
[INFO] [stderr]    --> src/constant.rs:103:1
[INFO] [stderr]     |
[INFO] [stderr] 103 | pub const IPMSG_CAPUTF8OPT: u32 = 0x01000000;
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `IPMSG_ENCEXTMSGOPT`
[INFO] [stderr]    --> src/constant.rs:105:1
[INFO] [stderr]     |
[INFO] [stderr] 105 | pub const IPMSG_ENCEXTMSGOPT: u32 = 0x04000000;
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `IPMSG_CLIPBOARDOPT`
[INFO] [stderr]    --> src/constant.rs:107:1
[INFO] [stderr]     |
[INFO] [stderr] 107 | pub const IPMSG_CLIPBOARDOPT: u32 = 0x08000000;
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `IPMSG_CAPFILEENC_OBSLT`
[INFO] [stderr]    --> src/constant.rs:108:1
[INFO] [stderr]     |
[INFO] [stderr] 108 | pub const IPMSG_CAPFILEENC_OBSLT: u32 = 0x00001000;
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `IPMSG_CAPFILEENCOPT`
[INFO] [stderr]    --> src/constant.rs:109:1
[INFO] [stderr]     |
[INFO] [stderr] 109 | pub const IPMSG_CAPFILEENCOPT: u32 = 0x00040000;
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `IPMSG_MULTICASTOPT`
[INFO] [stderr]    --> src/constant.rs:119:1
[INFO] [stderr]     |
[INFO] [stderr] 119 | pub const IPMSG_MULTICASTOPT: u32 = 0x00000800;
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `IPMSG_AUTORETOPT`
[INFO] [stderr]    --> src/constant.rs:121:1
[INFO] [stderr]     |
[INFO] [stderr] 121 | pub const IPMSG_AUTORETOPT: u32 = 0x00002000;
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `IPMSG_RETRYOPT`
[INFO] [stderr]    --> src/constant.rs:123:1
[INFO] [stderr]     |
[INFO] [stderr] 123 | pub const IPMSG_RETRYOPT: u32 = 0x00004000;
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `IPMSG_PASSWORDOPT`
[INFO] [stderr]    --> src/constant.rs:125:1
[INFO] [stderr]     |
[INFO] [stderr] 125 | pub const IPMSG_PASSWORDOPT: u32 = 0x00008000;
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `IPMSG_NOLOGOPT`
[INFO] [stderr]    --> src/constant.rs:127:1
[INFO] [stderr]     |
[INFO] [stderr] 127 | pub const IPMSG_NOLOGOPT: u32 = 0x00020000;
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `IPMSG_NOADDLISTOPT`
[INFO] [stderr]    --> src/constant.rs:129:1
[INFO] [stderr]     |
[INFO] [stderr] 129 | pub const IPMSG_NOADDLISTOPT: u32 = 0x00080000;
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `IPMSG_READCHECKOPT`
[INFO] [stderr]    --> src/constant.rs:131:1
[INFO] [stderr]     |
[INFO] [stderr] 131 | pub const IPMSG_READCHECKOPT: u32 = 0x00100000;
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `IPMSG_SECRETEXOPT`
[INFO] [stderr]    --> src/constant.rs:132:1
[INFO] [stderr]     |
[INFO] [stderr] 132 | pub const IPMSG_SECRETEXOPT: u32 = IPMSG_READCHECKOPT|IPMSG_SECRETOPT;
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: type alias is never used: `ExtStr`
[INFO] [stderr]   --> src/model.rs:26:1
[INFO] [stderr]    |
[INFO] [stderr] 26 | type ExtStr = String;
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method is never used: `command`
[INFO] [stderr]   --> src/model.rs:50:5
[INFO] [stderr]    |
[INFO] [stderr] 50 |     fn command(command_no: u32) -> PacketBuilder {
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method is never used: `command_opt`
[INFO] [stderr]   --> src/model.rs:61:5
[INFO] [stderr]    |
[INFO] [stderr] 61 |     fn command_opt(mut self, ext_command_no: u32) -> PacketBuilder {
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variant is never constructed: `ADD`
[INFO] [stderr]    --> src/model.rs:149:5
[INFO] [stderr]     |
[INFO] [stderr] 149 |     ADD, REMOVE
[INFO] [stderr]     |     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variant is never constructed: `REMOVE`
[INFO] [stderr]    --> src/model.rs:149:10
[INFO] [stderr]     |
[INFO] [stderr] 149 |     ADD, REMOVE
[INFO] [stderr]     |          ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method is never used: `new`
[INFO] [stderr]    --> src/model.rs:159:5
[INFO] [stderr]     |
[INFO] [stderr] 159 |     pub fn new(user: User, oper :Operate) -> OperUser{
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method is never used: `opt_files`
[INFO] [stderr]    --> src/model.rs:248:5
[INFO] [stderr]     |
[INFO] [stderr] 248 |     pub fn opt_files(mut self, opt_files: Vec<ReceivedSimpleFileInfo>) -> ReceivedPacketInner {
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct is never constructed: `ErrMsg`
[INFO] [stderr]    --> src/model.rs:259:12
[INFO] [stderr]     |
[INFO] [stderr] 259 | pub struct ErrMsg {
[INFO] [stderr]     |            ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function is never used: `modify_received_list`
[INFO] [stderr]    --> src/chat_window.rs:240:4
[INFO] [stderr]     |
[INFO] [stderr] 240 | fn modify_received_list(received_store :Option<ListStore>, received_files: Arc<RefCell<Vec<ReceivedSimpleFileInfo>>>) -> ::glib::Continue {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variant is never constructed: `InValidType`
[INFO] [stderr]   --> src/download.rs:23:5
[INFO] [stderr]    |
[INFO] [stderr] 23 |     InValidType,
[INFO] [stderr]    |     ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function is never used: `read_bytes_to_file_unsize`
[INFO] [stderr]    --> src/download.rs:238:4
[INFO] [stderr]     |
[INFO] [stderr] 238 | fn read_bytes_to_file_unsize(mut stream : & mut BufReader<TcpStream>, len: u64, file_path: &PathBuf) {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variant is never constructed: `PutInTcpFilePool`
[INFO] [stderr]   --> src/events/model.rs:30:5
[INFO] [stderr]    |
[INFO] [stderr] 30 |     PutInTcpFilePool(),
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: static variable `hostname` should have an upper case name
[INFO] [stderr]    --> src/constant.rs:161:20
[INFO] [stderr]     |
[INFO] [stderr] 161 |     pub static ref hostname: String = get_host_name().unwrap();
[INFO] [stderr]     |                    ^^^^^^^^ help: convert the identifier to upper case: `HOSTNAME`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(non_upper_case_globals)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/fileserver.rs:75:58
[INFO] [stderr]    |
[INFO] [stderr] 75 |     fn process_dir(pool_tmp: Arc<Mutex<Vec<ShareInfo>>>, mut stream_echo: TcpStream, ext_str: String) -> () {
[INFO] [stderr]    |                                                          ----^^^^^^^^^^^
[INFO] [stderr]    |                                                          |
[INFO] [stderr]    |                                                          help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: static variable `localip` should have an upper case name
[INFO] [stderr]    --> src/constant.rs:162:20
[INFO] [stderr]     |
[INFO] [stderr] 162 |     pub static ref localip: String = get_local_ip().unwrap().to_string();
[INFO] [stderr]     |                    ^^^^^^^ help: convert the identifier to upper case: `LOCALIP`
[INFO] [stderr] 
[INFO] [stderr] warning: static variable `addr` should have an upper case name
[INFO] [stderr]    --> src/constant.rs:163:20
[INFO] [stderr]     |
[INFO] [stderr] 163 |     pub static ref addr: String = format!("{}{}", "0.0.0.0:", IPMSG_DEFAULT_PORT);
[INFO] [stderr]     |                    ^^^^ help: convert the identifier to upper case: `ADDR`
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]    --> src/chat_window.rs:105:17
[INFO] [stderr]     |
[INFO] [stderr] 105 | /                 model_sender.send(ModelEvent::PutDownloadTaskInPool{ file: ReceivedSimpleFileInfo{
[INFO] [stderr] 106 | |                     file_id: fid,
[INFO] [stderr] 107 | |                     packet_id: pid,
[INFO] [stderr] 108 | |                     name: name,
[INFO] [stderr] ...   |
[INFO] [stderr] 111 | |                     mtime
[INFO] [stderr] 112 | |                 }, save_base_path, download_ip: host_ip.clone() });
[INFO] [stderr]     | |___________________________________________________________________^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_must_use)]` on by default
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]   --> src/download.rs:74:21
[INFO] [stderr]    |
[INFO] [stderr] 74 |                     sender.send(ModelEvent::DownloadIsBusy{ file: file_info });
[INFO] [stderr]    |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]   --> src/download.rs:92:25
[INFO] [stderr]    |
[INFO] [stderr] 92 |                         sender.send(ModelEvent::RemoveDownloadTaskInPool{ packet_id: file_info.packet_id, file_id: file_info.file_id, download_ip });
[INFO] [stderr]    |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]    --> src/download.rs:220:5
[INFO] [stderr]     |
[INFO] [stderr] 220 |     handler.read_to_end(&mut s_buffer);
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]    --> src/download.rs:231:9
[INFO] [stderr]     |
[INFO] [stderr] 231 |         f.write(&buf[..bytes_read]);
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]    --> src/events/model.rs:187:9
[INFO] [stderr]     |
[INFO] [stderr] 187 |         model_event_sender.send(ModelEvent::RecMsgReply{packet: recvmsg, from_ip: (&packet).ip.to_owned()});
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]    --> src/events/model.rs:190:9
[INFO] [stderr]     |
[INFO] [stderr] 190 |         model_event_sender.send(ModelEvent::BroadcastExit((&packet).sender_host.to_owned()));
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]    --> src/events/model.rs:209:9
[INFO] [stderr]     |
[INFO] [stderr] 209 |         model_event_sender.send(ModelEvent::RecOnlineMsgReply{packet: ansentry_packet, from_user: user});
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]    --> src/events/model.rs:212:9
[INFO] [stderr]     |
[INFO] [stderr] 212 |         model_event_sender.send(ModelEvent::NotifyOnline{user});
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/fileserver.rs:99:60
[INFO] [stderr]    |
[INFO] [stderr] 99 |     fn process_file(pool_tmp: &Arc<Mutex<Vec<ShareInfo>>>, mut stream_echo: &mut TcpStream, ext_str: String) -> () {
[INFO] [stderr]    |                                                            ----^^^^^^^^^^^
[INFO] [stderr]    |                                                            |
[INFO] [stderr]    |                                                            help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `IPMSG_BR_ISGETLIST`
[INFO] [stderr]   --> src/constant.rs:21:1
[INFO] [stderr]    |
[INFO] [stderr] 21 | pub const IPMSG_BR_ISGETLIST: u32 = 0x00000010;
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `IPMSG_OKGETLIST`
[INFO] [stderr]   --> src/constant.rs:23:1
[INFO] [stderr]    |
[INFO] [stderr] 23 | pub const IPMSG_OKGETLIST: u32 = 0x00000011;
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `IPMSG_GETLIST`
[INFO] [stderr]   --> src/constant.rs:25:1
[INFO] [stderr]    |
[INFO] [stderr] 25 | pub const IPMSG_GETLIST: u32 = 0x00000012;
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `IPMSG_ANSLIST`
[INFO] [stderr]   --> src/constant.rs:27:1
[INFO] [stderr]    |
[INFO] [stderr] 27 | pub const IPMSG_ANSLIST: u32 = 0x00000013;
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `IPMSG_BR_ISGETLIST2`
[INFO] [stderr]   --> src/constant.rs:29:1
[INFO] [stderr]    |
[INFO] [stderr] 29 | pub const IPMSG_BR_ISGETLIST2: u32 = 0x00000018;
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `IPMSG_READMSG`
[INFO] [stderr]   --> src/constant.rs:37:1
[INFO] [stderr]    |
[INFO] [stderr] 37 | pub const IPMSG_READMSG: u32 = 0x00000030;
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `IPMSG_DELMSG`
[INFO] [stderr]   --> src/constant.rs:39:1
[INFO] [stderr]    |
[INFO] [stderr] 39 | pub const IPMSG_DELMSG: u32 = 0x00000031;
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `IPMSG_ANSREADMSG`
[INFO] [stderr]   --> src/constant.rs:42:1
[INFO] [stderr]    |
[INFO] [stderr] 42 | pub const IPMSG_ANSREADMSG: u32 = 0x00000032;
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `IPMSG_GETINFO`
[INFO] [stderr]   --> src/constant.rs:44:1
[INFO] [stderr]    |
[INFO] [stderr] 44 | pub const IPMSG_GETINFO: u32 = 0x00000040;
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `IPMSG_SENDINFO`
[INFO] [stderr]   --> src/constant.rs:46:1
[INFO] [stderr]    |
[INFO] [stderr] 46 | pub const IPMSG_SENDINFO: u32 = 0x00000041;
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `IPMSG_GETABSENCEINFO`
[INFO] [stderr]   --> src/constant.rs:49:1
[INFO] [stderr]    |
[INFO] [stderr] 49 | pub const IPMSG_GETABSENCEINFO: u32 = 0x00000050;
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `IPMSG_SENDABSENCEINFO`
[INFO] [stderr]   --> src/constant.rs:51:1
[INFO] [stderr]    |
[INFO] [stderr] 51 | pub const IPMSG_SENDABSENCEINFO: u32 = 0x00000051;
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `IPMSG_RELEASEFILES`
[INFO] [stderr]   --> src/constant.rs:56:1
[INFO] [stderr]    |
[INFO] [stderr] 56 | pub const IPMSG_RELEASEFILES: u32 = 0x00000061;
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `IPMSG_GETPUBKEY`
[INFO] [stderr]   --> src/constant.rs:61:1
[INFO] [stderr]    |
[INFO] [stderr] 61 | pub const IPMSG_GETPUBKEY: u32 = 0x00000072;
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `IPMSG_ANSPUBKEY`
[INFO] [stderr]   --> src/constant.rs:63:1
[INFO] [stderr]    |
[INFO] [stderr] 63 | pub const IPMSG_ANSPUBKEY: u32 = 0x00000073;
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `IPMSG_FILE_SYMLINK`
[INFO] [stderr]   --> src/constant.rs:69:1
[INFO] [stderr]    |
[INFO] [stderr] 69 | pub const IPMSG_FILE_SYMLINK: u32 = 0x00000004;
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `IPMSG_FILE_CDEV`
[INFO] [stderr]   --> src/constant.rs:70:1
[INFO] [stderr]    |
[INFO] [stderr] 70 | pub const IPMSG_FILE_CDEV: u32 = 0x00000005;// for UNIX
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `IPMSG_FILE_BDEV`
[INFO] [stderr]   --> src/constant.rs:71:1
[INFO] [stderr]    |
[INFO] [stderr] 71 | pub const IPMSG_FILE_BDEV: u32 = 0x00000006;// for UNIX
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `IPMSG_FILE_FIFO`
[INFO] [stderr]   --> src/constant.rs:72:1
[INFO] [stderr]    |
[INFO] [stderr] 72 | pub const IPMSG_FILE_FIFO: u32 = 0x00000007;// for UNIX
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `IPMSG_FILE_RESFORK`
[INFO] [stderr]   --> src/constant.rs:73:1
[INFO] [stderr]    |
[INFO] [stderr] 73 | pub const IPMSG_FILE_RESFORK: u32 = 0x00000010;// for mac
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `IPMSG_FILE_RONLYOPT`
[INFO] [stderr]   --> src/constant.rs:76:1
[INFO] [stderr]    |
[INFO] [stderr] 76 | pub const IPMSG_FILE_RONLYOPT: u32 = 0x00000100;
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `IPMSG_FILE_HIDDENOPT`
[INFO] [stderr]   --> src/constant.rs:77:1
[INFO] [stderr]    |
[INFO] [stderr] 77 | pub const IPMSG_FILE_HIDDENOPT: u32 = 0x00001000;
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `IPMSG_FILE_EXHIDDENOPT`
[INFO] [stderr]   --> src/constant.rs:78:1
[INFO] [stderr]    |
[INFO] [stderr] 78 | pub const IPMSG_FILE_EXHIDDENOPT: u32 = 0x00002000;// for MacOS X
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `IPMSG_FILE_ARCHIVEOPT`
[INFO] [stderr]   --> src/constant.rs:79:1
[INFO] [stderr]    |
[INFO] [stderr] 79 | pub const IPMSG_FILE_ARCHIVEOPT: u32 = 0x00004000;
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `IPMSG_FILE_SYSTEMOPT`
[INFO] [stderr]   --> src/constant.rs:80:1
[INFO] [stderr]    |
[INFO] [stderr] 80 | pub const IPMSG_FILE_SYSTEMOPT: u32 = 0x00008000;
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `HOSTLIST_SEPARATOR`
[INFO] [stderr]   --> src/constant.rs:87:1
[INFO] [stderr]    |
[INFO] [stderr] 87 | pub const HOSTLIST_SEPARATOR: char = '\u{7}';
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `IPMSG_ABSENCEOPT`
[INFO] [stderr]   --> src/constant.rs:91:1
[INFO] [stderr]    |
[INFO] [stderr] 91 | pub const IPMSG_ABSENCEOPT: u32 = 0x00000100;
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `IPMSG_SERVEROPT`
[INFO] [stderr]   --> src/constant.rs:93:1
[INFO] [stderr]    |
[INFO] [stderr] 93 | pub const IPMSG_SERVEROPT: u32 = 0x00000200;
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `IPMSG_DIALUPOPT`
[INFO] [stderr]   --> src/constant.rs:95:1
[INFO] [stderr]    |
[INFO] [stderr] 95 | pub const IPMSG_DIALUPOPT: u32 = 0x00010000;
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `IPMSG_ENCRYPTOPT`
[INFO] [stderr]   --> src/constant.rs:99:1
[INFO] [stderr]    |
[INFO] [stderr] 99 | pub const IPMSG_ENCRYPTOPT: u32 = 0x00400000;
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `IPMSG_UTF8OPT`
[INFO] [stderr]    --> src/constant.rs:101:1
[INFO] [stderr]     |
[INFO] [stderr] 101 | pub const IPMSG_UTF8OPT: u32 = 0x00800000;
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `IPMSG_CAPUTF8OPT`
[INFO] [stderr]    --> src/constant.rs:103:1
[INFO] [stderr]     |
[INFO] [stderr] 103 | pub const IPMSG_CAPUTF8OPT: u32 = 0x01000000;
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `IPMSG_ENCEXTMSGOPT`
[INFO] [stderr]    --> src/constant.rs:105:1
[INFO] [stderr]     |
[INFO] [stderr] 105 | pub const IPMSG_ENCEXTMSGOPT: u32 = 0x04000000;
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `IPMSG_CLIPBOARDOPT`
[INFO] [stderr]    --> src/constant.rs:107:1
[INFO] [stderr]     |
[INFO] [stderr] 107 | pub const IPMSG_CLIPBOARDOPT: u32 = 0x08000000;
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `IPMSG_CAPFILEENC_OBSLT`
[INFO] [stderr]    --> src/constant.rs:108:1
[INFO] [stderr]     |
[INFO] [stderr] 108 | pub const IPMSG_CAPFILEENC_OBSLT: u32 = 0x00001000;
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `IPMSG_CAPFILEENCOPT`
[INFO] [stderr]    --> src/constant.rs:109:1
[INFO] [stderr]     |
[INFO] [stderr] 109 | pub const IPMSG_CAPFILEENCOPT: u32 = 0x00040000;
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `IPMSG_MULTICASTOPT`
[INFO] [stderr]    --> src/constant.rs:119:1
[INFO] [stderr]     |
[INFO] [stderr] 119 | pub const IPMSG_MULTICASTOPT: u32 = 0x00000800;
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `IPMSG_AUTORETOPT`
[INFO] [stderr]    --> src/constant.rs:121:1
[INFO] [stderr]     |
[INFO] [stderr] 121 | pub const IPMSG_AUTORETOPT: u32 = 0x00002000;
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `IPMSG_RETRYOPT`
[INFO] [stderr]    --> src/constant.rs:123:1
[INFO] [stderr]     |
[INFO] [stderr] 123 | pub const IPMSG_RETRYOPT: u32 = 0x00004000;
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `IPMSG_PASSWORDOPT`
[INFO] [stderr]    --> src/constant.rs:125:1
[INFO] [stderr]     |
[INFO] [stderr] 125 | pub const IPMSG_PASSWORDOPT: u32 = 0x00008000;
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `IPMSG_NOLOGOPT`
[INFO] [stderr]    --> src/constant.rs:127:1
[INFO] [stderr]     |
[INFO] [stderr] 127 | pub const IPMSG_NOLOGOPT: u32 = 0x00020000;
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `IPMSG_NOADDLISTOPT`
[INFO] [stderr]    --> src/constant.rs:129:1
[INFO] [stderr]     |
[INFO] [stderr] 129 | pub const IPMSG_NOADDLISTOPT: u32 = 0x00080000;
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `IPMSG_READCHECKOPT`
[INFO] [stderr]    --> src/constant.rs:131:1
[INFO] [stderr]     |
[INFO] [stderr] 131 | pub const IPMSG_READCHECKOPT: u32 = 0x00100000;
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant item is never used: `IPMSG_SECRETEXOPT`
[INFO] [stderr]    --> src/constant.rs:132:1
[INFO] [stderr]     |
[INFO] [stderr] 132 | pub const IPMSG_SECRETEXOPT: u32 = IPMSG_READCHECKOPT|IPMSG_SECRETOPT;
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: type alias is never used: `ExtStr`
[INFO] [stderr]   --> src/model.rs:26:1
[INFO] [stderr]    |
[INFO] [stderr] 26 | type ExtStr = String;
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method is never used: `command`
[INFO] [stderr]   --> src/model.rs:50:5
[INFO] [stderr]    |
[INFO] [stderr] 50 |     fn command(command_no: u32) -> PacketBuilder {
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method is never used: `command_opt`
[INFO] [stderr]   --> src/model.rs:61:5
[INFO] [stderr]    |
[INFO] [stderr] 61 |     fn command_opt(mut self, ext_command_no: u32) -> PacketBuilder {
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variant is never constructed: `ADD`
[INFO] [stderr]    --> src/model.rs:149:5
[INFO] [stderr]     |
[INFO] [stderr] 149 |     ADD, REMOVE
[INFO] [stderr]     |     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variant is never constructed: `REMOVE`
[INFO] [stderr]    --> src/model.rs:149:10
[INFO] [stderr]     |
[INFO] [stderr] 149 |     ADD, REMOVE
[INFO] [stderr]     |          ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method is never used: `new`
[INFO] [stderr]    --> src/model.rs:159:5
[INFO] [stderr]     |
[INFO] [stderr] 159 |     pub fn new(user: User, oper :Operate) -> OperUser{
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method is never used: `opt_files`
[INFO] [stderr]    --> src/model.rs:248:5
[INFO] [stderr]     |
[INFO] [stderr] 248 |     pub fn opt_files(mut self, opt_files: Vec<ReceivedSimpleFileInfo>) -> ReceivedPacketInner {
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct is never constructed: `ErrMsg`
[INFO] [stderr]    --> src/model.rs:259:12
[INFO] [stderr]     |
[INFO] [stderr] 259 | pub struct ErrMsg {
[INFO] [stderr]     |            ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function is never used: `modify_received_list`
[INFO] [stderr]    --> src/chat_window.rs:240:4
[INFO] [stderr]     |
[INFO] [stderr] 240 | fn modify_received_list(received_store :Option<ListStore>, received_files: Arc<RefCell<Vec<ReceivedSimpleFileInfo>>>) -> ::glib::Continue {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variant is never constructed: `InValidType`
[INFO] [stderr]   --> src/download.rs:23:5
[INFO] [stderr]    |
[INFO] [stderr] 23 |     InValidType,
[INFO] [stderr]    |     ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function is never used: `read_bytes_to_file_unsize`
[INFO] [stderr]    --> src/download.rs:238:4
[INFO] [stderr]     |
[INFO] [stderr] 238 | fn read_bytes_to_file_unsize(mut stream : & mut BufReader<TcpStream>, len: u64, file_path: &PathBuf) {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variant is never constructed: `PutInTcpFilePool`
[INFO] [stderr]   --> src/events/model.rs:30:5
[INFO] [stderr]    |
[INFO] [stderr] 30 |     PutInTcpFilePool(),
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: static variable `hostname` should have an upper case name
[INFO] [stderr]    --> src/constant.rs:161:20
[INFO] [stderr]     |
[INFO] [stderr] 161 |     pub static ref hostname: String = get_host_name().unwrap();
[INFO] [stderr]     |                    ^^^^^^^^ help: convert the identifier to upper case: `HOSTNAME`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(non_upper_case_globals)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: static variable `localip` should have an upper case name
[INFO] [stderr]    --> src/constant.rs:162:20
[INFO] [stderr]     |
[INFO] [stderr] 162 |     pub static ref localip: String = get_local_ip().unwrap().to_string();
[INFO] [stderr]     |                    ^^^^^^^ help: convert the identifier to upper case: `LOCALIP`
[INFO] [stderr] 
[INFO] [stderr] warning: static variable `addr` should have an upper case name
[INFO] [stderr]    --> src/constant.rs:163:20
[INFO] [stderr]     |
[INFO] [stderr] 163 |     pub static ref addr: String = format!("{}{}", "0.0.0.0:", IPMSG_DEFAULT_PORT);
[INFO] [stderr]     |                    ^^^^ help: convert the identifier to upper case: `ADDR`
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]    --> src/chat_window.rs:105:17
[INFO] [stderr]     |
[INFO] [stderr] 105 | /                 model_sender.send(ModelEvent::PutDownloadTaskInPool{ file: ReceivedSimpleFileInfo{
[INFO] [stderr] 106 | |                     file_id: fid,
[INFO] [stderr] 107 | |                     packet_id: pid,
[INFO] [stderr] 108 | |                     name: name,
[INFO] [stderr] ...   |
[INFO] [stderr] 111 | |                     mtime
[INFO] [stderr] 112 | |                 }, save_base_path, download_ip: host_ip.clone() });
[INFO] [stderr]     | |___________________________________________________________________^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_must_use)]` on by default
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]   --> src/download.rs:74:21
[INFO] [stderr]    |
[INFO] [stderr] 74 |                     sender.send(ModelEvent::DownloadIsBusy{ file: file_info });
[INFO] [stderr]    |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]   --> src/download.rs:92:25
[INFO] [stderr]    |
[INFO] [stderr] 92 |                         sender.send(ModelEvent::RemoveDownloadTaskInPool{ packet_id: file_info.packet_id, file_id: file_info.file_id, download_ip });
[INFO] [stderr]    |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]    --> src/download.rs:220:5
[INFO] [stderr]     |
[INFO] [stderr] 220 |     handler.read_to_end(&mut s_buffer);
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]    --> src/download.rs:231:9
[INFO] [stderr]     |
[INFO] [stderr] 231 |         f.write(&buf[..bytes_read]);
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]    --> src/events/model.rs:187:9
[INFO] [stderr]     |
[INFO] [stderr] 187 |         model_event_sender.send(ModelEvent::RecMsgReply{packet: recvmsg, from_ip: (&packet).ip.to_owned()});
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]    --> src/events/model.rs:190:9
[INFO] [stderr]     |
[INFO] [stderr] 190 |         model_event_sender.send(ModelEvent::BroadcastExit((&packet).sender_host.to_owned()));
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]    --> src/events/model.rs:209:9
[INFO] [stderr]     |
[INFO] [stderr] 209 |         model_event_sender.send(ModelEvent::RecOnlineMsgReply{packet: ansentry_packet, from_user: user});
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]    --> src/events/model.rs:212:9
[INFO] [stderr]     |
[INFO] [stderr] 212 |         model_event_sender.send(ModelEvent::NotifyOnline{user});
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] 
[INFO] [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 1m 58s
[INFO] running `"docker" "inspect" "de0396eba6e24447fed987140d2a0ebdadb3e4713e3d3605c224ada1e5d6ea39"`
[INFO] running `"docker" "rm" "-f" "de0396eba6e24447fed987140d2a0ebdadb3e4713e3d3605c224ada1e5d6ea39"`
[INFO] [stdout] de0396eba6e24447fed987140d2a0ebdadb3e4713e3d3605c224ada1e5d6ea39
