[INFO] crate raudient 0.2.0 is already in cache [INFO] extracting crate raudient 0.2.0 into work/ex/pr-59199/sources/master#bc44841ad2a2ad5f6c5e67b9e35ed8e7e71d4dc7/reg/raudient/0.2.0 [INFO] extracting crate raudient 0.2.0 into work/ex/pr-59199/sources/try#68fcf881bd1e4dbfc21e22f8c7a56b8a5d8e8f7b/reg/raudient/0.2.0 [INFO] validating manifest of raudient-0.2.0 on toolchain master#bc44841ad2a2ad5f6c5e67b9e35ed8e7e71d4dc7 [INFO] running `"/mnt/crater-raid/crater/work/local/cargo-home/bin/cargo" "+bc44841ad2a2ad5f6c5e67b9e35ed8e7e71d4dc7-alt" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of raudient-0.2.0 on toolchain try#68fcf881bd1e4dbfc21e22f8c7a56b8a5d8e8f7b [INFO] running `"/mnt/crater-raid/crater/work/local/cargo-home/bin/cargo" "+68fcf881bd1e4dbfc21e22f8c7a56b8a5d8e8f7b-alt" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started frobbing raudient-0.2.0 [INFO] finished frobbing raudient-0.2.0 [INFO] frobbed toml for raudient-0.2.0 written to work/ex/pr-59199/sources/master#bc44841ad2a2ad5f6c5e67b9e35ed8e7e71d4dc7/reg/raudient/0.2.0/Cargo.toml [INFO] started frobbing raudient-0.2.0 [INFO] finished frobbing raudient-0.2.0 [INFO] frobbed toml for raudient-0.2.0 written to work/ex/pr-59199/sources/try#68fcf881bd1e4dbfc21e22f8c7a56b8a5d8e8f7b/reg/raudient/0.2.0/Cargo.toml [INFO] running `"/mnt/crater-raid/crater/work/local/cargo-home/bin/cargo" "+bc44841ad2a2ad5f6c5e67b9e35ed8e7e71d4dc7-alt" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/crater-raid/crater/work/local/cargo-home/bin/cargo" "+68fcf881bd1e4dbfc21e22f8c7a56b8a5d8e8f7b-alt" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/crater-raid/crater/work/local/cargo-home/bin/cargo" "+bc44841ad2a2ad5f6c5e67b9e35ed8e7e71d4dc7-alt" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/crater-raid/crater/work/local/cargo-home/bin/cargo" "+68fcf881bd1e4dbfc21e22f8c7a56b8a5d8e8f7b-alt" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] checking raudient-0.2.0 against master#bc44841ad2a2ad5f6c5e67b9e35ed8e7e71d4dc7 for pr-59199 [INFO] running `"docker" "create" "-v" "/mnt/crater-raid/crater/work/local/target-dirs/pr-59199/worker-2/master#bc44841ad2a2ad5f6c5e67b9e35ed8e7e71d4dc7:/opt/crater/target:rw,Z" "-v" "/mnt/crater-raid/crater/work/ex/pr-59199/sources/master#bc44841ad2a2ad5f6c5e67b9e35ed8e7e71d4dc7/reg/raudient/0.2.0:/opt/crater/workdir:ro,Z" "-v" "/mnt/crater-raid/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/crater-raid/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+bc44841ad2a2ad5f6c5e67b9e35ed8e7e71d4dc7-alt" "check" "--frozen" "--all" "--all-targets"` [INFO] [stdout] df476bfed078387958f2ecc195dda1f37e6f2f2fa4e2a1c91c2947a0d4a3d579 [INFO] running `"docker" "start" "-a" "df476bfed078387958f2ecc195dda1f37e6f2f2fa4e2a1c91c2947a0d4a3d579"` [INFO] [stderr] Compiling cairo-rs v0.1.3 [INFO] [stderr] Compiling gdk-pixbuf v0.1.3 [INFO] [stderr] Compiling gio v0.1.3 [INFO] [stderr] Compiling gdk v0.5.3 [INFO] [stderr] Compiling gtk v0.1.3 [INFO] [stderr] Compiling gio-sys v0.3.4 [INFO] [stderr] Compiling cairo-sys-rs v0.3.4 [INFO] [stderr] Compiling pango-sys v0.3.4 [INFO] [stderr] Compiling gdk-pixbuf-sys v0.3.4 [INFO] [stderr] Compiling gdk-sys v0.3.4 [INFO] [stderr] Compiling gtk-sys v0.3.4 [INFO] [stderr] Checking local-ip v0.1.0 [INFO] [stderr] Checking pango v0.1.3 [INFO] [stderr] Checking raudient v0.2.0 (/opt/crater/workdir) [INFO] [stderr] warning: unused doc comment [INFO] [stderr] --> src/demons.rs:103:25 [INFO] [stderr] | [INFO] [stderr] 103 | ///扩展段 用户名|用户组 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 104 | let ext_vec = extstr.splitn(2, |c| c == ':').collect::>(); [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 doc comment [INFO] [stderr] --> src/app.rs:138:5 [INFO] [stderr] | [INFO] [stderr] 138 | ///待处理消息队列 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] 139 | let (packet_sender, packet_receiver): (mpsc::Sender, mpsc::Receiver) = mpsc::channel(); [INFO] [stderr] | ------------------------------------------------------------------------------------------------------- rustdoc does not generate documentation for statements [INFO] [stderr] [INFO] [stderr] warning: unused doc comment [INFO] [stderr] --> src/demons.rs:103:25 [INFO] [stderr] | [INFO] [stderr] 103 | ///扩展段 用户名|用户组 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 104 | let ext_vec = extstr.splitn(2, |c| c == ':').collect::>(); [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 doc comment [INFO] [stderr] --> src/app.rs:138:5 [INFO] [stderr] | [INFO] [stderr] 138 | ///待处理消息队列 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] 139 | let (packet_sender, packet_receiver): (mpsc::Sender, mpsc::Receiver) = mpsc::channel(); [INFO] [stderr] | ------------------------------------------------------------------------------------------------------- rustdoc does not generate documentation for statements [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:4:26 [INFO] [stderr] | [INFO] [stderr] 4 | use std::path::{PathBuf, Path}; [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::net::UdpSocket` [INFO] [stderr] --> src/demons.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 5 | use std::net::UdpSocket; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::collections::HashMap` [INFO] [stderr] --> src/demons.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | use std::collections::HashMap; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Duration`, `SystemTime`, `UNIX_EPOCH`, `self` [INFO] [stderr] --> src/demons.rs:9:17 [INFO] [stderr] | [INFO] [stderr] 9 | use std::time::{self, Duration, SystemTime, UNIX_EPOCH}; [INFO] [stderr] | ^^^^ ^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `ReadDir` [INFO] [stderr] --> src/demons.rs:12:37 [INFO] [stderr] | [INFO] [stderr] 12 | use std::fs::{self, File, Metadata, ReadDir}; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `BufReader` [INFO] [stderr] --> src/demons.rs:13:15 [INFO] [stderr] | [INFO] [stderr] 13 | use std::io::{BufReader, BufWriter}; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Path` [INFO] [stderr] --> src/demons.rs:14:26 [INFO] [stderr] | [INFO] [stderr] 14 | use std::path::{PathBuf, Path}; [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `FileInfo`, `self` [INFO] [stderr] --> src/demons.rs:17:13 [INFO] [stderr] | [INFO] [stderr] 17 | use model::{self, User, OperUser, Operate, ShareInfo, FileInfo, ReceivedSimpleFileInfo, ReceivedPacketInner}; [INFO] [stderr] | ^^^^ ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `EncoderTrap` [INFO] [stderr] --> src/demons.rs:19:26 [INFO] [stderr] | [INFO] [stderr] 19 | use encoding::{Encoding, EncoderTrap, DecoderTrap}; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::cell::RefCell` [INFO] [stderr] --> src/demons.rs:21:5 [INFO] [stderr] | [INFO] [stderr] 21 | use std::cell::RefCell; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Arc`, `Mutex` [INFO] [stderr] --> src/demons.rs:22:17 [INFO] [stderr] | [INFO] [stderr] 22 | use std::sync::{Arc, Mutex}; [INFO] [stderr] | ^^^ ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `AboutDialog`, `Alignment`, `Builder`, `Button`, `CellRendererText`, `CheckMenuItem`, `Fixed`, `Grid`, `IconSize`, `Image`, `Label`, `ListStore`, `MenuBar`, `MenuItem`, `Menu`, `Orientation`, `ReliefStyle`, `ScrolledWindow`, `StatusIcon`, `TextView`, `TreeViewColumn`, `TreeView`, `Widget`, `WindowPosition`, `WindowType`, `Window`, `self` [INFO] [stderr] --> src/demons.rs:25:5 [INFO] [stderr] | [INFO] [stderr] 25 | self, TreeModelExt, CellRendererText, AboutDialog, CheckMenuItem, IconSize, Image, Label, Menu, MenuBar, MenuItem, Window, [INFO] [stderr] | ^^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^ ^^^^^ ^^^^ ^^^^^^^ ^^^^^^^^ ^^^^^^ [INFO] [stderr] 26 | WindowPosition, WindowType, StatusIcon, ListStore, TreeView, TreeViewColumn, Builder, Grid, Button, Orientation, [INFO] [stderr] | ^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^ ^^^^ ^^^^^^ ^^^^^^^^^^^ [INFO] [stderr] 27 | ReliefStyle, Widget, TextView, Fixed, ScrolledWindow, Alignment, [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^ ^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `message` [INFO] [stderr] --> src/demons.rs:29:5 [INFO] [stderr] | [INFO] [stderr] 29 | use message; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `ChatWindow` [INFO] [stderr] --> src/demons.rs:31:25 [INFO] [stderr] | [INFO] [stderr] 31 | use chat_window::{self, ChatWindow}; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `self` [INFO] [stderr] --> src/demons.rs:32:11 [INFO] [stderr] | [INFO] [stderr] 32 | use app::{self, GLOBAL_UDPSOCKET, GLOBAL_SHARELIST, GLOBAL_WINDOWS, GLOBAL}; [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Mutex` [INFO] [stderr] --> src/message.rs:1:22 [INFO] [stderr] | [INFO] [stderr] 1 | use std::sync::{Arc, Mutex}; [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: `GLOBAL_WINDOWS`, `GLOBAL`, `self` [INFO] [stderr] --> src/message.rs:10:11 [INFO] [stderr] | [INFO] [stderr] 10 | use app::{self, GLOBAL_UDPSOCKET, GLOBAL_SHARELIST, GLOBAL_WINDOWS, GLOBAL}; [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: `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, [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: `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 import: `ShareInfo` [INFO] [stderr] --> src/chat_window.rs:15:27 [INFO] [stderr] | [INFO] [stderr] 15 | use model::{self, Packet, ShareInfo, ReceivedSimpleFileInfo}; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::thread` [INFO] [stderr] --> src/download.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 5 | use std::thread; [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:10:26 [INFO] [stderr] | [INFO] [stderr] 10 | use encoding::{Encoding, EncoderTrap, DecoderTrap}; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around function argument [INFO] [stderr] --> src/download.rs:105:65 [INFO] [stderr] | [INFO] [stderr] 105 | 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 imports: `Alignment`, `Builder`, `Button`, `CheckMenuItem`, `Fixed`, `Grid`, `IconSize`, `Image`, `Orientation`, `ReliefStyle`, `StatusIcon`, `TextView`, `Widget`, `WindowPosition`, `WindowType` [INFO] [stderr] --> src/app.rs:3:42 [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, [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^ ^^^^^^^^ ^^^^^ ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `chrono::prelude::*` [INFO] [stderr] --> src/app.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | use chrono::prelude::*; [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:4:26 [INFO] [stderr] | [INFO] [stderr] 4 | use std::path::{PathBuf, Path}; [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::net::UdpSocket` [INFO] [stderr] --> src/demons.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 5 | use std::net::UdpSocket; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::collections::HashMap` [INFO] [stderr] --> src/demons.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | use std::collections::HashMap; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Duration`, `SystemTime`, `UNIX_EPOCH`, `self` [INFO] [stderr] --> src/demons.rs:9:17 [INFO] [stderr] | [INFO] [stderr] 9 | use std::time::{self, Duration, SystemTime, UNIX_EPOCH}; [INFO] [stderr] | ^^^^ ^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `ReadDir` [INFO] [stderr] --> src/demons.rs:12:37 [INFO] [stderr] | [INFO] [stderr] 12 | use std::fs::{self, File, Metadata, ReadDir}; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `BufReader` [INFO] [stderr] --> src/demons.rs:13:15 [INFO] [stderr] | [INFO] [stderr] 13 | use std::io::{BufReader, BufWriter}; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Path` [INFO] [stderr] --> src/demons.rs:14:26 [INFO] [stderr] | [INFO] [stderr] 14 | use std::path::{PathBuf, Path}; [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `FileInfo`, `self` [INFO] [stderr] --> src/demons.rs:17:13 [INFO] [stderr] | [INFO] [stderr] 17 | use model::{self, User, OperUser, Operate, ShareInfo, FileInfo, ReceivedSimpleFileInfo, ReceivedPacketInner}; [INFO] [stderr] | ^^^^ ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `EncoderTrap` [INFO] [stderr] --> src/demons.rs:19:26 [INFO] [stderr] | [INFO] [stderr] 19 | use encoding::{Encoding, EncoderTrap, DecoderTrap}; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::cell::RefCell` [INFO] [stderr] --> src/demons.rs:21:5 [INFO] [stderr] | [INFO] [stderr] 21 | use std::cell::RefCell; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Arc`, `Mutex` [INFO] [stderr] --> src/demons.rs:22:17 [INFO] [stderr] | [INFO] [stderr] 22 | use std::sync::{Arc, Mutex}; [INFO] [stderr] | ^^^ ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `AboutDialog`, `Alignment`, `Builder`, `Button`, `CellRendererText`, `CheckMenuItem`, `Fixed`, `Grid`, `IconSize`, `Image`, `Label`, `ListStore`, `MenuBar`, `MenuItem`, `Menu`, `Orientation`, `ReliefStyle`, `ScrolledWindow`, `StatusIcon`, `TextView`, `TreeViewColumn`, `TreeView`, `Widget`, `WindowPosition`, `WindowType`, `Window`, `self` [INFO] [stderr] --> src/demons.rs:25:5 [INFO] [stderr] | [INFO] [stderr] 25 | self, TreeModelExt, CellRendererText, AboutDialog, CheckMenuItem, IconSize, Image, Label, Menu, MenuBar, MenuItem, Window, [INFO] [stderr] | ^^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^ ^^^^^ ^^^^ ^^^^^^^ ^^^^^^^^ ^^^^^^ [INFO] [stderr] 26 | WindowPosition, WindowType, StatusIcon, ListStore, TreeView, TreeViewColumn, Builder, Grid, Button, Orientation, [INFO] [stderr] | ^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^ ^^^^ ^^^^^^ ^^^^^^^^^^^ [INFO] [stderr] 27 | ReliefStyle, Widget, TextView, Fixed, ScrolledWindow, Alignment, [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^ ^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `message` [INFO] [stderr] --> src/demons.rs:29:5 [INFO] [stderr] | [INFO] [stderr] 29 | use message; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `ChatWindow` [INFO] [stderr] --> src/demons.rs:31:25 [INFO] [stderr] | [INFO] [stderr] 31 | use chat_window::{self, ChatWindow}; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `self` [INFO] [stderr] --> src/demons.rs:32:11 [INFO] [stderr] | [INFO] [stderr] 32 | use app::{self, GLOBAL_UDPSOCKET, GLOBAL_SHARELIST, GLOBAL_WINDOWS, GLOBAL}; [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Mutex` [INFO] [stderr] --> src/message.rs:1:22 [INFO] [stderr] | [INFO] [stderr] 1 | use std::sync::{Arc, Mutex}; [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: `GLOBAL_WINDOWS`, `GLOBAL`, `self` [INFO] [stderr] --> src/message.rs:10:11 [INFO] [stderr] | [INFO] [stderr] 10 | use app::{self, GLOBAL_UDPSOCKET, GLOBAL_SHARELIST, GLOBAL_WINDOWS, GLOBAL}; [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: `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, [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: `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 import: `ShareInfo` [INFO] [stderr] --> src/chat_window.rs:15:27 [INFO] [stderr] | [INFO] [stderr] 15 | use model::{self, Packet, ShareInfo, ReceivedSimpleFileInfo}; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::thread` [INFO] [stderr] --> src/download.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 5 | use std::thread; [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:10:26 [INFO] [stderr] | [INFO] [stderr] 10 | use encoding::{Encoding, EncoderTrap, DecoderTrap}; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around function argument [INFO] [stderr] --> src/download.rs:105:65 [INFO] [stderr] | [INFO] [stderr] 105 | 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 imports: `Alignment`, `Builder`, `Button`, `CheckMenuItem`, `Fixed`, `Grid`, `IconSize`, `Image`, `Orientation`, `ReliefStyle`, `StatusIcon`, `TextView`, `Widget`, `WindowPosition`, `WindowType` [INFO] [stderr] --> src/app.rs:3:42 [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, [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^ ^^^^^^^^ ^^^^^ ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `chrono::prelude::*` [INFO] [stderr] --> src/app.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | use chrono::prelude::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `TcpListener`, `TcpStream` [INFO] [stderr] --> src/app.rs:9:16 [INFO] [stderr] | [INFO] [stderr] 9 | use std::net::{TcpListener, TcpStream}; [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::thread` [INFO] [stderr] --> src/app.rs:12:5 [INFO] [stderr] | [INFO] [stderr] 12 | use std::thread; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Ipv4Addr`, `Ipv6Addr`, `SocketAddrV4`, `SocketAddrV6`, `SocketAddr`, `ToSocketAddrs` [INFO] [stderr] --> src/app.rs:16:16 [INFO] [stderr] | [INFO] [stderr] 16 | use std::net::{SocketAddr, SocketAddrV4, SocketAddrV6, Ipv4Addr, Ipv6Addr, ToSocketAddrs}; [INFO] [stderr] | ^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `FileInfo`, `Operate`, `ReceivedSimpleFileInfo`, `User`, `self` [INFO] [stderr] --> src/app.rs:17:13 [INFO] [stderr] | [INFO] [stderr] 17 | use model::{self, User, OperUser, Operate, ShareInfo, Packet, FileInfo, ReceivedSimpleFileInfo, ReceivedPacketInner}; [INFO] [stderr] | ^^^^ ^^^^ ^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] [INFO] [stderr] warning: unused imports: `TcpListener`, `TcpStream` [INFO] [stderr] --> src/app.rs:9:16 [INFO] [stderr] | [INFO] [stderr] 9 | use std::net::{TcpListener, TcpStream}; [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::thread` [INFO] [stderr] --> src/app.rs:12:5 [INFO] [stderr] | [INFO] [stderr] 12 | use std::thread; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Ipv4Addr`, `Ipv6Addr`, `SocketAddrV4`, `SocketAddrV6`, `SocketAddr`, `ToSocketAddrs` [INFO] [stderr] --> src/app.rs:16:16 [INFO] [stderr] | [INFO] [stderr] 16 | use std::net::{SocketAddr, SocketAddrV4, SocketAddrV6, Ipv4Addr, Ipv6Addr, ToSocketAddrs}; [INFO] [stderr] | ^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `FileInfo`, `Operate`, `ReceivedSimpleFileInfo`, `User`, `self` [INFO] [stderr] --> src/app.rs:17:13 [INFO] [stderr] | [INFO] [stderr] 17 | use model::{self, User, OperUser, Operate, ShareInfo, Packet, FileInfo, ReceivedSimpleFileInfo, ReceivedPacketInner}; [INFO] [stderr] | ^^^^ ^^^^ ^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'core::str::::trim_right_matches': superseded by `trim_end_matches` [INFO] [stderr] --> src/demons.rs:201:51 [INFO] [stderr] | [INFO] [stderr] 201 | let receive_str = tmp_str.trim_right_matches('\u{0}'); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(deprecated)] on by default [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'core::str::::trim_right_matches': superseded by `trim_end_matches` [INFO] [stderr] --> src/demons.rs:201:51 [INFO] [stderr] | [INFO] [stderr] 201 | let receive_str = tmp_str.trim_right_matches('\u{0}'); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(deprecated)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `gtk::prelude` [INFO] [stderr] --> src/demons.rs:23:5 [INFO] [stderr] | [INFO] [stderr] 23 | use gtk::prelude::*; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `msg_str` [INFO] [stderr] --> src/demons.rs:131:29 [INFO] [stderr] | [INFO] [stderr] 131 | let msg_str = if ext_vec.len() > 0 { ext_vec[0] } else { "" }; [INFO] [stderr] | ^^^^^^^ help: consider prefixing with an underscore: `_msg_str` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `size` [INFO] [stderr] --> src/demons.rs:145:45 [INFO] [stderr] | [INFO] [stderr] 145 | let size = file_attr[2];//大小 [INFO] [stderr] | ^^^^ help: consider prefixing with an underscore: `_size` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `offset` [INFO] [stderr] --> src/demons.rs:221:45 [INFO] [stderr] | [INFO] [stderr] 221 | let offset = file_attr[2].parse::().unwrap(); [INFO] [stderr] | ^^^^^^ help: consider prefixing with an underscore: `_offset` [INFO] [stderr] [INFO] [stderr] warning: value assigned to `search_result` is never read [INFO] [stderr] --> src/demons.rs:222:49 [INFO] [stderr] | [INFO] [stderr] 222 | let mut search_result: Option = 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: value assigned to `search_result` is never read [INFO] [stderr] --> src/demons.rs:251:49 [INFO] [stderr] | [INFO] [stderr] 251 | let mut search_result: Option = Option::None; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: maybe it is overwritten before being read? [INFO] [stderr] [INFO] [stderr] warning: unused variable: `start` [INFO] [stderr] --> src/demons.rs:343:34 [INFO] [stderr] | [INFO] [stderr] 343 | let (start, mut end) = chat_win.his_view.get_buffer().unwrap().get_bounds(); [INFO] [stderr] | ^^^^^ help: consider prefixing with an underscore: `_start` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `in_flag` [INFO] [stderr] --> src/demons.rs:407:33 [INFO] [stderr] | [INFO] [stderr] 407 | let mut in_flag = false; [INFO] [stderr] | ^^^^^^^ help: consider prefixing with an underscore: `_in_flag` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/message.rs:50:18 [INFO] [stderr] | [INFO] [stderr] 50 | for (i, file) in (&files).iter().enumerate() { [INFO] [stderr] | ^ help: consider prefixing with an underscore: `_i` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `his_start_iter` [INFO] [stderr] --> src/chat_window.rs:83:14 [INFO] [stderr] | [INFO] [stderr] 83 | let (his_start_iter, mut his_end_iter) = text_view_history_clone.get_buffer().unwrap().get_bounds(); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider prefixing with an underscore: `_his_start_iter` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `tree_path` [INFO] [stderr] --> src/chat_window.rs:90:63 [INFO] [stderr] | [INFO] [stderr] 90 | tree_view_received.connect_row_activated(move |tree_view, tree_path, tree_view_column| { [INFO] [stderr] | ^^^^^^^^^ help: consider prefixing with an underscore: `_tree_path` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `tree_view_column` [INFO] [stderr] --> src/chat_window.rs:90:74 [INFO] [stderr] | [INFO] [stderr] 90 | tree_view_received.connect_row_activated(move |tree_view, tree_path, tree_view_column| { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider prefixing with an underscore: `_tree_view_column` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `local_time` [INFO] [stderr] --> src/chat_window.rs:155:17 [INFO] [stderr] | [INFO] [stderr] 155 | let local_time = chrono_time.with_timezone(&::chrono::Local); [INFO] [stderr] | ^^^^^^^^^^ help: consider prefixing with an underscore: `_local_time` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `local_time` [INFO] [stderr] --> src/chat_window.rs:199:17 [INFO] [stderr] | [INFO] [stderr] 199 | let local_time = chrono_time.with_timezone(&::chrono::Local); [INFO] [stderr] | ^^^^^^^^^^ help: consider prefixing with an underscore: `_local_time` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `ip_str3` [INFO] [stderr] --> src/chat_window.rs:36:9 [INFO] [stderr] | [INFO] [stderr] 36 | let ip_str3 = host_ip.clone(); [INFO] [stderr] | ^^^^^^^ help: consider prefixing with an underscore: `_ip_str3` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `received_store` [INFO] [stderr] --> src/chat_window.rs:264:25 [INFO] [stderr] | [INFO] [stderr] 264 | fn modify_received_list(received_store :Option, received_files: Arc>>) -> ::glib::Continue { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider prefixing with an underscore: `_received_store` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `received_files` [INFO] [stderr] --> src/chat_window.rs:264:60 [INFO] [stderr] | [INFO] [stderr] 264 | fn modify_received_list(received_store :Option, received_files: Arc>>) -> ::glib::Continue { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider prefixing with an underscore: `_received_files` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `metadata` [INFO] [stderr] --> src/download.rs:58:9 [INFO] [stderr] | [INFO] [stderr] 58 | let metadata: Metadata = fs::metadata(path)?; [INFO] [stderr] | ^^^^^^^^ help: consider prefixing with an underscore: `_metadata` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `path_info` [INFO] [stderr] --> src/download.rs:81:13 [INFO] [stderr] | [INFO] [stderr] 81 | for path_info in path_infos { [INFO] [stderr] | ^^^^^^^^^ help: consider prefixing with an underscore: `_path_info` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `opt` [INFO] [stderr] --> src/download.rs:110:25 [INFO] [stderr] | [INFO] [stderr] 110 | let opt = constant::get_opt(file_attr); [INFO] [stderr] | ^^^ help: consider prefixing with an underscore: `_opt` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `name` [INFO] [stderr] --> src/app.rs:111:17 [INFO] [stderr] | [INFO] [stderr] 111 | let name = model.get_value(&iter, 0).get::().unwrap(); [INFO] [stderr] | ^^^^ help: consider prefixing with an underscore: `_name` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `tree_path` [INFO] [stderr] --> src/app.rs:107:49 [INFO] [stderr] | [INFO] [stderr] 107 | tree.connect_row_activated(move |tree_view, tree_path, tree_view_column| { [INFO] [stderr] | ^^^^^^^^^ help: consider prefixing with an underscore: `_tree_path` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `tree_view_column` [INFO] [stderr] --> src/app.rs:107:60 [INFO] [stderr] | [INFO] [stderr] 107 | tree.connect_row_activated(move |tree_view, tree_path, tree_view_column| { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider prefixing with an underscore: `_tree_view_column` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `window_quit` [INFO] [stderr] --> src/app.rs:80:9 [INFO] [stderr] | [INFO] [stderr] 80 | let window_quit = window.clone(); [INFO] [stderr] | ^^^^^^^^^^^ help: consider prefixing with an underscore: `_window_quit` [INFO] [stderr] [INFO] [stderr] warning: unused import: `gtk::prelude` [INFO] [stderr] --> src/demons.rs:23:5 [INFO] [stderr] | [INFO] [stderr] 23 | use gtk::prelude::*; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `msg_str` [INFO] [stderr] --> src/demons.rs:131:29 [INFO] [stderr] | [INFO] [stderr] 131 | let msg_str = if ext_vec.len() > 0 { ext_vec[0] } else { "" }; [INFO] [stderr] | ^^^^^^^ help: consider prefixing with an underscore: `_msg_str` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `size` [INFO] [stderr] --> src/demons.rs:145:45 [INFO] [stderr] | [INFO] [stderr] 145 | let size = file_attr[2];//大小 [INFO] [stderr] | ^^^^ help: consider prefixing with an underscore: `_size` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `offset` [INFO] [stderr] --> src/demons.rs:221:45 [INFO] [stderr] | [INFO] [stderr] 221 | let offset = file_attr[2].parse::().unwrap(); [INFO] [stderr] | ^^^^^^ help: consider prefixing with an underscore: `_offset` [INFO] [stderr] [INFO] [stderr] warning: value assigned to `search_result` is never read [INFO] [stderr] --> src/demons.rs:222:49 [INFO] [stderr] | [INFO] [stderr] 222 | let mut search_result: Option = 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: value assigned to `search_result` is never read [INFO] [stderr] --> src/demons.rs:251:49 [INFO] [stderr] | [INFO] [stderr] 251 | let mut search_result: Option = Option::None; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: maybe it is overwritten before being read? [INFO] [stderr] [INFO] [stderr] warning: unused variable: `start` [INFO] [stderr] --> src/demons.rs:343:34 [INFO] [stderr] | [INFO] [stderr] 343 | let (start, mut end) = chat_win.his_view.get_buffer().unwrap().get_bounds(); [INFO] [stderr] | ^^^^^ help: consider prefixing with an underscore: `_start` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `in_flag` [INFO] [stderr] --> src/demons.rs:407:33 [INFO] [stderr] | [INFO] [stderr] 407 | let mut in_flag = false; [INFO] [stderr] | ^^^^^^^ help: consider prefixing with an underscore: `_in_flag` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/message.rs:50:18 [INFO] [stderr] | [INFO] [stderr] 50 | for (i, file) in (&files).iter().enumerate() { [INFO] [stderr] | ^ help: consider prefixing with an underscore: `_i` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `his_start_iter` [INFO] [stderr] --> src/chat_window.rs:83:14 [INFO] [stderr] | [INFO] [stderr] 83 | let (his_start_iter, mut his_end_iter) = text_view_history_clone.get_buffer().unwrap().get_bounds(); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider prefixing with an underscore: `_his_start_iter` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `tree_path` [INFO] [stderr] --> src/chat_window.rs:90:63 [INFO] [stderr] | [INFO] [stderr] 90 | tree_view_received.connect_row_activated(move |tree_view, tree_path, tree_view_column| { [INFO] [stderr] | ^^^^^^^^^ help: consider prefixing with an underscore: `_tree_path` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `tree_view_column` [INFO] [stderr] --> src/chat_window.rs:90:74 [INFO] [stderr] | [INFO] [stderr] 90 | tree_view_received.connect_row_activated(move |tree_view, tree_path, tree_view_column| { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider prefixing with an underscore: `_tree_view_column` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `local_time` [INFO] [stderr] --> src/chat_window.rs:155:17 [INFO] [stderr] | [INFO] [stderr] 155 | let local_time = chrono_time.with_timezone(&::chrono::Local); [INFO] [stderr] | ^^^^^^^^^^ help: consider prefixing with an underscore: `_local_time` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `local_time` [INFO] [stderr] --> src/chat_window.rs:199:17 [INFO] [stderr] | [INFO] [stderr] 199 | let local_time = chrono_time.with_timezone(&::chrono::Local); [INFO] [stderr] | ^^^^^^^^^^ help: consider prefixing with an underscore: `_local_time` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `ip_str3` [INFO] [stderr] --> src/chat_window.rs:36:9 [INFO] [stderr] | [INFO] [stderr] 36 | let ip_str3 = host_ip.clone(); [INFO] [stderr] | ^^^^^^^ help: consider prefixing with an underscore: `_ip_str3` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `received_store` [INFO] [stderr] --> src/chat_window.rs:264:25 [INFO] [stderr] | [INFO] [stderr] 264 | fn modify_received_list(received_store :Option, received_files: Arc>>) -> ::glib::Continue { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider prefixing with an underscore: `_received_store` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `received_files` [INFO] [stderr] --> src/chat_window.rs:264:60 [INFO] [stderr] | [INFO] [stderr] 264 | fn modify_received_list(received_store :Option, received_files: Arc>>) -> ::glib::Continue { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider prefixing with an underscore: `_received_files` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `metadata` [INFO] [stderr] --> src/download.rs:58:9 [INFO] [stderr] | [INFO] [stderr] 58 | let metadata: Metadata = fs::metadata(path)?; [INFO] [stderr] | ^^^^^^^^ help: consider prefixing with an underscore: `_metadata` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `path_info` [INFO] [stderr] --> src/download.rs:81:13 [INFO] [stderr] | [INFO] [stderr] 81 | for path_info in path_infos { [INFO] [stderr] | ^^^^^^^^^ help: consider prefixing with an underscore: `_path_info` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `opt` [INFO] [stderr] --> src/download.rs:110:25 [INFO] [stderr] | [INFO] [stderr] 110 | let opt = constant::get_opt(file_attr); [INFO] [stderr] | ^^^ help: consider prefixing with an underscore: `_opt` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `name` [INFO] [stderr] --> src/app.rs:111:17 [INFO] [stderr] | [INFO] [stderr] 111 | let name = model.get_value(&iter, 0).get::().unwrap(); [INFO] [stderr] | ^^^^ help: consider prefixing with an underscore: `_name` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `tree_path` [INFO] [stderr] --> src/app.rs:107:49 [INFO] [stderr] | [INFO] [stderr] 107 | tree.connect_row_activated(move |tree_view, tree_path, tree_view_column| { [INFO] [stderr] | ^^^^^^^^^ help: consider prefixing with an underscore: `_tree_path` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `tree_view_column` [INFO] [stderr] --> src/app.rs:107:60 [INFO] [stderr] | [INFO] [stderr] 107 | tree.connect_row_activated(move |tree_view, tree_path, tree_view_column| { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider prefixing with an underscore: `_tree_view_column` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `window_quit` [INFO] [stderr] --> src/app.rs:80:9 [INFO] [stderr] | [INFO] [stderr] 80 | let window_quit = window.clone(); [INFO] [stderr] | ^^^^^^^^^^^ help: consider prefixing with an underscore: `_window_quit` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/demons.rs:205:33 [INFO] [stderr] | [INFO] [stderr] 205 | let mut packet = Packet::from(String::from(v[0]), [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/demons.rs:205:33 [INFO] [stderr] | [INFO] [stderr] 205 | let mut packet = Packet::from(String::from(v[0]), [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/chat_window.rs:78:26 [INFO] [stderr] | [INFO] [stderr] 78 | let (start_iter, mut end_iter) = text_view_presend_clone.get_buffer().unwrap().get_bounds(); [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:75:13 [INFO] [stderr] | [INFO] [stderr] 75 | 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:76:13 [INFO] [stderr] | [INFO] [stderr] 76 | 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:77:13 [INFO] [stderr] | [INFO] [stderr] 77 | 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:140:19 [INFO] [stderr] | [INFO] [stderr] 140 | fn read_delimiter(mut stream : & mut BufReader) -> Result, 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:155:15 [INFO] [stderr] | [INFO] [stderr] 155 | fn read_bytes(mut stream : & mut BufReader, 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:162:23 [INFO] [stderr] | [INFO] [stderr] 162 | fn read_bytes_to_file(mut stream : & mut BufReader, 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:78:26 [INFO] [stderr] | [INFO] [stderr] 78 | let (start_iter, mut end_iter) = text_view_presend_clone.get_buffer().unwrap().get_bounds(); [INFO] [stderr] | ----^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `IPMSG_NOOPERATION` [INFO] [stderr] --> src/constant.rs:9:1 [INFO] [stderr] | [INFO] [stderr] 9 | pub const IPMSG_NOOPERATION: u32 = 0x00000000; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `IPMSG_BR_ABSENCE` [INFO] [stderr] --> src/constant.rs:17:1 [INFO] [stderr] | [INFO] [stderr] 17 | pub const IPMSG_BR_ABSENCE: u32 = 0x00000004; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [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] 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: function is never used: `modify_received_list` [INFO] [stderr] --> src/chat_window.rs:264:1 [INFO] [stderr] | [INFO] [stderr] 264 | fn modify_received_list(received_store :Option, received_files: Arc>>) -> ::glib::Continue { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `InValidType` [INFO] [stderr] --> src/download.rs:18:5 [INFO] [stderr] | [INFO] [stderr] 18 | InValidType, [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/download.rs:75:13 [INFO] [stderr] | [INFO] [stderr] 75 | 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:76:13 [INFO] [stderr] | [INFO] [stderr] 76 | 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:77:13 [INFO] [stderr] | [INFO] [stderr] 77 | let mut path_infos = PathInfos{ [INFO] [stderr] | ----^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: static variable `hostname` should have an upper case name [INFO] [stderr] --> src/constant.rs:160:20 [INFO] [stderr] | [INFO] [stderr] 160 | 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:161:20 [INFO] [stderr] | [INFO] [stderr] 161 | 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:162:20 [INFO] [stderr] | [INFO] [stderr] 162 | 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/demons.rs:61:33 [INFO] [stderr] | [INFO] [stderr] 61 | sender.send(packet); [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/demons.rs:100:25 [INFO] [stderr] | [INFO] [stderr] 100 | sender.send(OperUser::new(user, Operate::REMOVE)); [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] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/demons.rs:119:25 [INFO] [stderr] | [INFO] [stderr] 119 | sender.send(OperUser::new(user, Operate::ADD)); [INFO] [stderr] --> src/download.rs:140:19 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] 140 | fn read_delimiter(mut stream : & mut BufReader) -> Result, DownLoadError> { [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/demons.rs:123:25 [INFO] [stderr] | [INFO] [stderr] 123 | sender.send(OperUser::new(user, Operate::ADD)); [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/demons.rs:175:25 [INFO] [stderr] | [INFO] [stderr] 175 | remained_sender.send(received_packet_inner); [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/download.rs:155:15 [INFO] [stderr] | [INFO] [stderr] 155 | fn read_bytes(mut stream : & mut BufReader, len: u64) -> String { [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/demons.rs:281:5 [INFO] [stderr] | [INFO] [stderr] 281 | buffer.write(util::utf8_to_gb18030(&make_header(&root_path)).as_slice());//root dir [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/demons.rs:288:17 [INFO] [stderr] | [INFO] [stderr] 288 | buffer.write(util::utf8_to_gb18030(&header).as_slice()); [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/demons.rs:294:21 [INFO] [stderr] | [INFO] [stderr] 294 | buffer.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/demons.rs:302:5 [INFO] [stderr] | [INFO] [stderr] 302 | buffer.write("000D:.:0:3:0:".as_bytes()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: variable `receivedPacketInner` should have a snake case name [INFO] [stderr] --> src/demons.rs:332:23 [INFO] [stderr] | [INFO] [stderr] 332 | if let Ok(receivedPacketInner) = rx.try_recv() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `received_packet_inner` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(non_snake_case)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/download.rs:162:23 [INFO] [stderr] | [INFO] [stderr] 162 | fn read_bytes_to_file(mut stream : & mut BufReader, len: u64, file_path: &PathBuf) { [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/download.rs:116:29 [INFO] [stderr] | [INFO] [stderr] 116 | fs::create_dir(&next_path); [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:158:5 [INFO] [stderr] | [INFO] [stderr] 158 | 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:170:9 [INFO] [stderr] | [INFO] [stderr] 170 | 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/app.rs:112:13 [INFO] [stderr] | [INFO] [stderr] 112 | remained_sender1.send(ReceivedPacketInner::new(ip_str)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `IPMSG_NOOPERATION` [INFO] [stderr] --> src/constant.rs:9:1 [INFO] [stderr] | [INFO] [stderr] 9 | pub const IPMSG_NOOPERATION: u32 = 0x00000000; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `IPMSG_BR_ABSENCE` [INFO] [stderr] --> src/constant.rs:17:1 [INFO] [stderr] | [INFO] [stderr] 17 | pub const IPMSG_BR_ABSENCE: u32 = 0x00000004; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [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] 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: function is never used: `modify_received_list` [INFO] [stderr] --> src/chat_window.rs:264:1 [INFO] [stderr] | [INFO] [stderr] 264 | fn modify_received_list(received_store :Option, received_files: Arc>>) -> ::glib::Continue { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `InValidType` [INFO] [stderr] --> src/download.rs:18:5 [INFO] [stderr] | [INFO] [stderr] 18 | InValidType, [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: static variable `hostname` should have an upper case name [INFO] [stderr] --> src/constant.rs:160:20 [INFO] [stderr] | [INFO] [stderr] 160 | 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:161:20 [INFO] [stderr] | [INFO] [stderr] 161 | 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:162:20 [INFO] [stderr] | [INFO] [stderr] 162 | 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/demons.rs:61:33 [INFO] [stderr] | [INFO] [stderr] 61 | sender.send(packet); [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/demons.rs:100:25 [INFO] [stderr] | [INFO] [stderr] 100 | sender.send(OperUser::new(user, Operate::REMOVE)); [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/demons.rs:119:25 [INFO] [stderr] | [INFO] [stderr] 119 | sender.send(OperUser::new(user, Operate::ADD)); [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/demons.rs:123:25 [INFO] [stderr] | [INFO] [stderr] 123 | sender.send(OperUser::new(user, Operate::ADD)); [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/demons.rs:175:25 [INFO] [stderr] | [INFO] [stderr] 175 | remained_sender.send(received_packet_inner); [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/demons.rs:281:5 [INFO] [stderr] | [INFO] [stderr] 281 | buffer.write(util::utf8_to_gb18030(&make_header(&root_path)).as_slice());//root dir [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/demons.rs:288:17 [INFO] [stderr] | [INFO] [stderr] 288 | buffer.write(util::utf8_to_gb18030(&header).as_slice()); [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/demons.rs:294:21 [INFO] [stderr] | [INFO] [stderr] 294 | buffer.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/demons.rs:302:5 [INFO] [stderr] | [INFO] [stderr] 302 | buffer.write("000D:.:0:3:0:".as_bytes()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: variable `receivedPacketInner` should have a snake case name [INFO] [stderr] --> src/demons.rs:332:23 [INFO] [stderr] | [INFO] [stderr] 332 | if let Ok(receivedPacketInner) = rx.try_recv() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `received_packet_inner` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(non_snake_case)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/download.rs:116:29 [INFO] [stderr] | [INFO] [stderr] 116 | fs::create_dir(&next_path); [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:158:5 [INFO] [stderr] | [INFO] [stderr] 158 | 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:170:9 [INFO] [stderr] | [INFO] [stderr] 170 | 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/app.rs:112:13 [INFO] [stderr] | [INFO] [stderr] 112 | remained_sender1.send(ReceivedPacketInner::new(ip_str)); [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 38.81s [INFO] running `"docker" "inspect" "df476bfed078387958f2ecc195dda1f37e6f2f2fa4e2a1c91c2947a0d4a3d579"` [INFO] running `"docker" "rm" "-f" "df476bfed078387958f2ecc195dda1f37e6f2f2fa4e2a1c91c2947a0d4a3d579"` [INFO] [stdout] df476bfed078387958f2ecc195dda1f37e6f2f2fa4e2a1c91c2947a0d4a3d579