[INFO] fetching crate zbus-lib 0.1.6...
[INFO] testing zbus-lib-0.1.6 against beta-2023-04-20 for beta-1.70-1
[INFO] extracting crate zbus-lib 0.1.6 into /workspace/builds/worker-7-tc2/source
[INFO] validating manifest of crates.io crate zbus-lib 0.1.6 on toolchain beta-2023-04-20
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2023-04-20" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking crates.io crate zbus-lib 0.1.6
[INFO] finished tweaking crates.io crate zbus-lib 0.1.6
[INFO] tweaked toml for crates.io crate zbus-lib 0.1.6 written to /workspace/builds/worker-7-tc2/source/Cargo.toml
[INFO] crate crates.io crate zbus-lib 0.1.6 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2023-04-20" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded serde_json v1.0.48
[INFO] [stderr]   Downloaded libc v0.2.67
[INFO] [stderr]   Downloaded serde-value v0.6.0
[INFO] [stderr]   Downloaded log4rs v0.12.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:97d61d7686bf65f8ecb15491ab51835e82dc9176a96a831f143a431b191fc501" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2023-04-20" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] bd36d638cecc66e407a5469caf10178792ef7d1aa4d320839a0473ef7c4611b3
[INFO] running `Command { std: "docker" "start" "-a" "bd36d638cecc66e407a5469caf10178792ef7d1aa4d320839a0473ef7c4611b3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "bd36d638cecc66e407a5469caf10178792ef7d1aa4d320839a0473ef7c4611b3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "bd36d638cecc66e407a5469caf10178792ef7d1aa4d320839a0473ef7c4611b3", kill_on_drop: false }`
[INFO] [stdout] bd36d638cecc66e407a5469caf10178792ef7d1aa4d320839a0473ef7c4611b3
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:97d61d7686bf65f8ecb15491ab51835e82dc9176a96a831f143a431b191fc501" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2023-04-20" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] c56ddf0fa75c0a390e108072d677358659fc52583de7b77f4415c70597eb2db5
[INFO] running `Command { std: "docker" "start" "-a" "c56ddf0fa75c0a390e108072d677358659fc52583de7b77f4415c70597eb2db5", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.67
[INFO] [stderr]    Compiling proc-macro2 v1.0.9
[INFO] [stderr]    Compiling unicode-xid v0.2.0
[INFO] [stderr]    Compiling syn v1.0.16
[INFO] [stderr]    Compiling serde v1.0.104
[INFO] [stderr]    Compiling autocfg v1.0.0
[INFO] [stderr]    Compiling getrandom v0.1.14
[INFO] [stderr]    Compiling typenum v1.11.2
[INFO] [stderr]    Compiling smallvec v1.2.0
[INFO] [stderr]    Compiling byteorder v1.3.4
[INFO] [stderr]    Compiling log v0.4.8
[INFO] [stderr]    Compiling ppv-lite86 v0.2.6
[INFO] [stderr]    Compiling byte-tools v0.3.1
[INFO] [stderr]    Compiling num-traits v0.2.11
[INFO] [stderr]    Compiling num-integer v0.1.42
[INFO] [stderr]    Compiling matches v0.1.8
[INFO] [stderr]    Compiling quote v1.0.3
[INFO] [stderr]    Compiling c2-chacha v0.2.3
[INFO] [stderr]    Compiling rand_core v0.5.1
[INFO] [stderr]    Compiling iovec v0.1.4
[INFO] [stderr]    Compiling crc32fast v1.2.0
[INFO] [stderr]    Compiling ryu v1.0.2
[INFO] [stderr]    Compiling generic-array v0.12.3
[INFO] [stderr]    Compiling rand_chacha v0.2.1
[INFO] [stderr]    Compiling net2 v0.2.33
[INFO] [stderr]    Compiling unicode-bidi v0.3.4
[INFO] [stderr]    Compiling block-padding v0.1.5
[INFO] [stderr]    Compiling unicode-normalization v0.1.12
[INFO] [stderr]    Compiling slab v0.4.2
[INFO] [stderr]    Compiling traitobject v0.1.0
[INFO] [stderr]    Compiling httparse v1.3.4
[INFO] [stderr]    Compiling adler v0.2.2
[INFO] [stderr]    Compiling linked-hash-map v0.5.3
[INFO] [stderr]    Compiling lock_api v0.3.4
[INFO] [stderr]    Compiling miniz_oxide v0.4.0
[INFO] [stderr]    Compiling unsafe-any v0.4.2
[INFO] [stderr]    Compiling yaml-rust v0.4.4
[INFO] [stderr]    Compiling block-buffer v0.7.3
[INFO] [stderr]    Compiling ordered-float v1.0.2
[INFO] [stderr]    Compiling idna v0.2.0
[INFO] [stderr]    Compiling rand v0.7.3
[INFO] [stderr]    Compiling digest v0.8.1
[INFO] [stderr]    Compiling time v0.1.42
[INFO] [stderr]    Compiling parking_lot_core v0.7.2
[INFO] [stderr]    Compiling opaque-debug v0.2.3
[INFO] [stderr]    Compiling quick-error v1.2.3
[INFO] [stderr]    Compiling dtoa v0.4.6
[INFO] [stderr]    Compiling itoa v0.4.5
[INFO] [stderr]    Compiling fake-simd v0.1.2
[INFO] [stderr]    Compiling lazycell v1.2.1
[INFO] [stderr]    Compiling url v2.1.1
[INFO] [stderr]    Compiling sha-1 v0.8.2
[INFO] [stderr]    Compiling humantime v1.3.0
[INFO] [stderr]    Compiling parking_lot v0.10.2
[INFO] [stderr]    Compiling flate2 v1.0.16
[INFO] [stderr]    Compiling typemap v0.3.3
[INFO] [stderr]    Compiling bytes v0.4.12
[INFO] [stderr]    Compiling thread-id v3.3.0
[INFO] [stderr]    Compiling num_cpus v1.13.0
[INFO] [stderr]    Compiling arc-swap v0.4.7
[INFO] [stderr]    Compiling log-mdc v0.1.0
[INFO] [stderr]    Compiling threadpool v1.8.1
[INFO] [stderr]    Compiling serde_derive v1.0.104
[INFO] [stderr]    Compiling serde_yaml v0.8.13
[INFO] [stderr]    Compiling chrono v0.4.11
[INFO] [stderr]    Compiling serde-value v0.6.0
[INFO] [stderr]    Compiling serde_json v1.0.48
[INFO] [stderr]    Compiling uuid v0.8.1
[INFO] [stderr]    Compiling mio v0.6.21
[INFO] [stderr]    Compiling mio-extras v2.0.6
[INFO] [stderr]    Compiling ws v0.9.1
[INFO] [stderr]    Compiling log4rs v0.12.0
[INFO] [stderr]    Compiling zbus-lib v0.1.6 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `debug`, `error`, `info`, `trace`, `warn`
[INFO] [stdout]  --> src/log_config.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use log::{debug, error, info, LevelFilter, SetLoggerError, trace, warn};
[INFO] [stdout]   |           ^^^^^  ^^^^^  ^^^^                               ^^^^^  ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `channel`
[INFO] [stdout]  --> src/rpc/io.rs:3:23
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::sync::mpsc::{channel, Sender};
[INFO] [stdout]   |                       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread`
[INFO] [stdout]  --> src/rpc/io.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::thread;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Duration`
[INFO] [stdout]  --> src/rpc/io.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::time::Duration;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ZbusErr`
[INFO] [stdout]   --> src/rpc/io.rs:11:18
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::err::{ZbusErr, ZbusResult};
[INFO] [stdout]    |                  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/rpc/io.rs:47:36
[INFO] [stdout]    |
[INFO] [stdout] 47 |         let id = req.id().unwrap();/// 这个存在判断是在调用rpc前验证过的
[INFO] [stdout]    |                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 48 |         let req_headers = req.headers();
[INFO] [stdout]    |         -------------------------------- rustdoc does not generate documentation for statements
[INFO] [stdout]    |
[INFO] [stdout]    = help: use `//` for a plain comment
[INFO] [stdout]    = note: `#[warn(unused_doc_comments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread`
[INFO] [stdout]  --> src/rpc/handler.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::thread;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Duration`
[INFO] [stdout]  --> src/rpc/handler.rs:2:17
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::time::{Duration, SystemTime};
[INFO] [stdout]   |                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread`
[INFO] [stdout]  --> src/client/mod.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::thread;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Duration`
[INFO] [stdout]  --> src/client/mod.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::time::Duration;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde::de::DeserializeOwned`
[INFO] [stdout]  --> src/client/mod.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use serde::de::DeserializeOwned;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde::Deserialize`
[INFO] [stdout]  --> src/client/mod.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use serde::Deserialize;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/client/component.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]  --> src/client/component.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::sync::Arc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::mpsc::Sender`
[INFO] [stdout]  --> src/client/component.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::sync::mpsc::Sender;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `log::info`
[INFO] [stdout]  --> src/client/component.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use log::info;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde_json::Value`
[INFO] [stdout]  --> src/client/component.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use serde_json::Value;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::client::RpcClient`
[INFO] [stdout]  --> src/client/component.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::client::RpcClient;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Message`, `Request`
[INFO] [stdout]   --> src/client/component.rs:10:22
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::message::{Message, Request};
[INFO] [stdout]    |                      ^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `IOHandlers`, `Protocol`
[INFO] [stdout]   --> src/client/component.rs:11:18
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::rpc::{IOHandlers, Protocol, WsRpcHandler};
[INFO] [stdout]    |                  ^^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Instruct`
[INFO] [stdout]   --> src/client/component.rs:12:22
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crate::wsocket::{Instruct, WsClient};
[INFO] [stdout]    |                      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]  --> src/service/component.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::sync::Arc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::mpsc::Sender`
[INFO] [stdout]  --> src/service/component.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::sync::mpsc::Sender;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `log::info`
[INFO] [stdout]  --> src/service/component.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use log::info;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Message`
[INFO] [stdout]   --> src/service/component.rs:11:22
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::message::{Message, Request};
[INFO] [stdout]    |                      ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Instruct`
[INFO] [stdout]   --> src/service/component.rs:13:22
[INFO] [stdout]    |
[INFO] [stdout] 13 | use crate::wsocket::{Instruct, WsClient};
[INFO] [stdout]    |                      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Duration`
[INFO] [stdout]  --> src/err/mod.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::time::Duration;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CloseCode`, `Handler`
[INFO] [stdout]  --> src/wsocket/mod.rs:3:10
[INFO] [stdout]   |
[INFO] [stdout] 3 | use ws::{CloseCode, Handler, Sender as WsCmd};
[INFO] [stdout]   |          ^^^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ZbusErr`
[INFO] [stdout]  --> src/wsocket/mod.rs:8:28
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::err::{OkResult, ZbusErr, ZbusResult};
[INFO] [stdout]   |                            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Request`
[INFO] [stdout]  --> src/wsocket/mod.rs:9:31
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::message::{Message, Request, Response};
[INFO] [stdout]   |                               ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Request`
[INFO] [stdout]  --> src/wsocket/handler.rs:5:31
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::message::{Message, Request, Response};
[INFO] [stdout]   |                               ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]  --> src/wsocket/component.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::sync::Arc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `info`
[INFO] [stdout]  --> src/wsocket/component.rs:7:25
[INFO] [stdout]   |
[INFO] [stdout] 7 | use log::{debug, error, info};
[INFO] [stdout]   |                         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `resp`
[INFO] [stdout]    --> src/wsocket/component.rs:181:36
[INFO] [stdout]     |
[INFO] [stdout] 181 |                 for (id, (timeout, resp)) in &queue {
[INFO] [stdout]     |                                    ^^^^ help: if this is intentional, prefix it with an underscore: `_resp`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `code`
[INFO] [stdout]    --> src/wsocket/component.rs:222:28
[INFO] [stdout]     |
[INFO] [stdout] 222 |     fn on_close(&mut self, code: CloseCode, reason: &str) {
[INFO] [stdout]     |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `reason`
[INFO] [stdout]    --> src/wsocket/component.rs:222:45
[INFO] [stdout]     |
[INFO] [stdout] 222 |     fn on_close(&mut self, code: CloseCode, reason: &str) {
[INFO] [stdout]     |                                             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_reason`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `execute` is never used
[INFO] [stdout]   --> src/rpc/io.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl IOHandler {
[INFO] [stdout]    | -------------- method in this implementation
[INFO] [stdout] 21 |     pub fn execute(&self, req: Request) -> ZbusResult<Value> {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated constants are never used
[INFO] [stdout]   --> src/rpc/protocol.rs:7:11
[INFO] [stdout]    |
[INFO] [stdout] 3  | impl Protocol {
[INFO] [stdout]    | ------------- associated constants in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 7  |     const STATUS: &'static str = "status";
[INFO] [stdout]    |           ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 11 |     const BODY: &'static str = "body";
[INFO] [stdout]    |           ^^^^
[INFO] [stdout] 12 |     // Message body
[INFO] [stdout] 13 |     const API_KEY: &'static str = "apiKey";
[INFO] [stdout]    |           ^^^^^^^
[INFO] [stdout] 14 |     // Authentication  Key
[INFO] [stdout] 15 |     const SIGNATURE: &'static str = "signature"; // Authentication signature generated
[INFO] [stdout]    |           ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 18 |     const PUB: &'static str = "pub";
[INFO] [stdout]    |           ^^^
[INFO] [stdout] ...
[INFO] [stdout] 22 |     const TAKE: &'static str = "take";
[INFO] [stdout]    |           ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     const REMOVE: &'static str = "remove";
[INFO] [stdout]    |           ^^^^^^
[INFO] [stdout] 29 |     //Remove MQ/Channel
[INFO] [stdout] 30 |     const QUERY: &'static str = "query";
[INFO] [stdout]    |           ^^^^^
[INFO] [stdout] 31 |     //Query MQ/Channel
[INFO] [stdout] 32 |     const PING: &'static str = "ping";     //Heartbeat ping
[INFO] [stdout]    |           ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |     const FILTER: &'static str = "filter";
[INFO] [stdout]    |           ^^^^^^
[INFO] [stdout] 37 |     //Filter on message's tag
[INFO] [stdout] 38 |     const TAG: &'static str = "tag";
[INFO] [stdout]    |           ^^^
[INFO] [stdout] 39 |     //Tag of message, if filter applied
[INFO] [stdout] 40 |     const OFFSET: &'static str = "offset";
[INFO] [stdout]    |           ^^^^^^
[INFO] [stdout] 41 |     const CHECKSUM: &'static str = "checksum";
[INFO] [stdout]    |           ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 49 |     const CHANNEL_MASK: &'static str = "channelMask";
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 50 |     const WINDOW: &'static str = "window";
[INFO] [stdout]    |           ^^^^^^
[INFO] [stdout] 51 |     const ACK: &'static str = "ack";
[INFO] [stdout]    |           ^^^
[INFO] [stdout] ...
[INFO] [stdout] 55 |     const MASK_EXCLUSIVE: i32 = 1 << 1;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^
[INFO] [stdout] 56 |     const MASK_TAKEOVER: i32 = 1 << 2;   //NOT support yet
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `url` is never read
[INFO] [stdout]   --> src/wsocket/component.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct WsClient {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] 17 |     tx: Sender<Instruct>,
[INFO] [stdout] 18 |     url: &'static str,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/rpc/io.rs:54:13
[INFO] [stdout]    |
[INFO] [stdout] 54 |             tx.send(Instruct::Delivery(reply(builder, headers, 400, "url required"), None));
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 54 |             let _ = tx.send(Instruct::Delivery(reply(builder, headers, 400, "url required"), None));
[INFO] [stdout]    |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/rpc/io.rs:61:17
[INFO] [stdout]    |
[INFO] [stdout] 61 |                 tx.send(Instruct::Delivery(reply(builder, headers, 404, format!("URL={} Not Found", url)), None));
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 61 |                 let _ = tx.send(Instruct::Delivery(reply(builder, headers, 404, format!("URL={} Not Found", url)), None));
[INFO] [stdout]    |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/rpc/io.rs:77:21
[INFO] [stdout]    |
[INFO] [stdout] 77 |                     tx.send(Instruct::Delivery(response, None));
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 77 |                     let _ = tx.send(Instruct::Delivery(response, None));
[INFO] [stdout]    |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `cookieList` should have a snake case name
[INFO] [stdout]    --> src/message/mod.rs:156:17
[INFO] [stdout]     |
[INFO] [stdout] 156 |         let mut cookieList = Vec::new();
[INFO] [stdout]     |                 ^^^^^^^^^^ help: convert the identifier to snake case: `cookie_list`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `cookieString` should have a snake case name
[INFO] [stdout]    --> src/message/mod.rs:160:13
[INFO] [stdout]     |
[INFO] [stdout] 160 |         let cookieString = cookieList.iter().map(|cookie| String::from(cookie) + "; ").collect();
[INFO] [stdout]     |             ^^^^^^^^^^^^ help: convert the identifier to snake case: `cookie_string`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `mqType` should have a snake case name
[INFO] [stdout]   --> src/service/component.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 |     mqType: String,
[INFO] [stdout]    |     ^^^^^^ help: convert the identifier to snake case: `mq_type`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `mqMask` should have a snake case name
[INFO] [stdout]   --> src/service/component.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 |     mqMask: i32,
[INFO] [stdout]    |     ^^^^^^ help: convert the identifier to snake case: `mq_mask`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `subMessage` should have a snake case name
[INFO] [stdout]   --> src/service/component.rs:47:13
[INFO] [stdout]    |
[INFO] [stdout] 47 |         let subMessage = Request::builder().headers(headers).id("0002f6eca3fc42c6812d23dd73cbed1").method("").url("").build();
[INFO] [stdout]    |             ^^^^^^^^^^ help: convert the identifier to snake case: `sub_message`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/service/component.rs:48:9
[INFO] [stdout]    |
[INFO] [stdout] 48 | /         self.handler().deliver(subMessage).map(|resp| {
[INFO] [stdout] 49 | |             error!("{:?}", serde_json::to_string(&resp));
[INFO] [stdout] 50 | |         });
[INFO] [stdout]    | |__________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 48 |         let _ = self.handler().deliver(subMessage).map(|resp| {
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/wsocket/component.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 26 |         tx.send(Instruct::Connect);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 26 |         let _ = tx.send(Instruct::Connect);
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/wsocket/component.rs:35:13
[INFO] [stdout]    |
[INFO] [stdout] 35 |             self.tx.send(Instruct::Connect);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 35 |             let _ = self.tx.send(Instruct::Connect);
[INFO] [stdout]    |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/wsocket/component.rs:44:9
[INFO] [stdout]    |
[INFO] [stdout] 44 |         self.tx.send(Instruct::IsClose(Some(tx)));
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 44 |         let _ = self.tx.send(Instruct::IsClose(Some(tx)));
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/wsocket/component.rs:63:9
[INFO] [stdout]    |
[INFO] [stdout] 63 |         self.tx.send(Instruct::Close(None));
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 63 |         let _ = self.tx.send(Instruct::Close(None));
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/wsocket/component.rs:64:9
[INFO] [stdout]    |
[INFO] [stdout] 64 |         self.tx.send(Instruct::Exit);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 64 |         let _ = self.tx.send(Instruct::Exit);
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/wsocket/component.rs:91:41
[INFO] [stdout]    |
[INFO] [stdout] 91 | ...                   tx.send(Instruct::Closed);
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 91 |                                         let _ = tx.send(Instruct::Closed);
[INFO] [stdout]    |                                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/wsocket/component.rs:153:29
[INFO] [stdout]     |
[INFO] [stdout] 153 | ...                   cmd.close(CloseCode::Normal);
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 153 |                             let _ = cmd.close(CloseCode::Normal);
[INFO] [stdout]     |                             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/wsocket/component.rs:154:29
[INFO] [stdout]     |
[INFO] [stdout] 154 | ...                   tx.send(Instruct::Closed);//关闭成功失败都认为关闭成功
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 154 |                             let _ = tx.send(Instruct::Closed);//关闭成功失败都认为关闭成功
[INFO] [stdout]     |                             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/wsocket/component.rs:165:37
[INFO] [stdout]     |
[INFO] [stdout] 165 | ...                   tx.send(Instruct::Closed);
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 165 |                                     let _ = tx.send(Instruct::Closed);
[INFO] [stdout]     |                                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/wsocket/component.rs:180:17
[INFO] [stdout]     |
[INFO] [stdout] 180 |                 tx.send(Instruct::IsClose(None));
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 180 |                 let _ = tx.send(Instruct::IsClose(None));
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/wsocket/component.rs:182:21
[INFO] [stdout]     |
[INFO] [stdout] 182 | /                     timeout.elapsed().map(|elapsed| if elapsed.as_secs() > 30 {
[INFO] [stdout] 183 | |                         tx.send(Instruct::Response(id.into(), None));
[INFO] [stdout] 184 | |                     });
[INFO] [stdout]     | |______________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 182 |                     let _ = timeout.elapsed().map(|elapsed| if elapsed.as_secs() > 30 {
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/wsocket/component.rs:183:25
[INFO] [stdout]     |
[INFO] [stdout] 183 |                         tx.send(Instruct::Response(id.into(), None));
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 183 |                         let _ = tx.send(Instruct::Response(id.into(), None));
[INFO] [stdout]     |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/wsocket/component.rs:205:9
[INFO] [stdout]     |
[INFO] [stdout] 205 |         self.sender.send(self.ws_client.clone());
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 205 |         let _ = self.sender.send(self.ws_client.clone());
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/wsocket/component.rs:218:86
[INFO] [stdout]     |
[INFO] [stdout] 218 |         msg.map_or_else(|e| debug!(" recv message err is {} [{}]", e, json), |msg| { self.tx.send(Instruct::Receive(msg)); });
[INFO] [stdout]     |                                                                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 218 |         msg.map_or_else(|e| debug!(" recv message err is {} [{}]", e, json), |msg| { let _ = self.tx.send(Instruct::Receive(msg)); });
[INFO] [stdout]     |                                                                                      +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/wsocket/component.rs:224:9
[INFO] [stdout]     |
[INFO] [stdout] 224 |         self.tx.send(Instruct::Closed);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 224 |         let _ = self.tx.send(Instruct::Closed);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 63 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 24.91s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: traitobject v0.1.0
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
[INFO] running `Command { std: "docker" "inspect" "c56ddf0fa75c0a390e108072d677358659fc52583de7b77f4415c70597eb2db5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c56ddf0fa75c0a390e108072d677358659fc52583de7b77f4415c70597eb2db5", kill_on_drop: false }`
[INFO] [stdout] c56ddf0fa75c0a390e108072d677358659fc52583de7b77f4415c70597eb2db5
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:97d61d7686bf65f8ecb15491ab51835e82dc9176a96a831f143a431b191fc501" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2023-04-20" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] cf1355ea94a4728fe582ebae8454a4a1775c62f7896a0a1fff1c19dc275be0dc
[INFO] running `Command { std: "docker" "start" "-a" "cf1355ea94a4728fe582ebae8454a4a1775c62f7896a0a1fff1c19dc275be0dc", kill_on_drop: false }`
[INFO] [stdout] warning: unused imports: `debug`, `error`, `info`, `trace`, `warn`
[INFO] [stdout]  --> src/log_config.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use log::{debug, error, info, LevelFilter, SetLoggerError, trace, warn};
[INFO] [stdout]   |           ^^^^^  ^^^^^  ^^^^                               ^^^^^  ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `channel`
[INFO] [stdout]  --> src/rpc/io.rs:3:23
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::sync::mpsc::{channel, Sender};
[INFO] [stdout]   |                       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread`
[INFO] [stdout]  --> src/rpc/io.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::thread;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Duration`
[INFO] [stdout]  --> src/rpc/io.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::time::Duration;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ZbusErr`
[INFO] [stdout]   --> src/rpc/io.rs:11:18
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::err::{ZbusErr, ZbusResult};
[INFO] [stdout]    |                  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/rpc/io.rs:47:36
[INFO] [stdout]    |
[INFO] [stdout] 47 |         let id = req.id().unwrap();/// 这个存在判断是在调用rpc前验证过的
[INFO] [stdout]    |                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 48 |         let req_headers = req.headers();
[INFO] [stdout]    |         -------------------------------- rustdoc does not generate documentation for statements
[INFO] [stdout]    |
[INFO] [stdout]    = help: use `//` for a plain comment
[INFO] [stdout]    = note: `#[warn(unused_doc_comments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread`
[INFO] [stdout]  --> src/rpc/handler.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::thread;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Duration`
[INFO] [stdout]  --> src/rpc/handler.rs:2:17
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::time::{Duration, SystemTime};
[INFO] [stdout]   |                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread`
[INFO] [stdout]  --> src/client/mod.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::thread;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Duration`
[INFO] [stdout]  --> src/client/mod.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::time::Duration;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde::de::DeserializeOwned`
[INFO] [stdout]  --> src/client/mod.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use serde::de::DeserializeOwned;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde::Deserialize`
[INFO] [stdout]  --> src/client/mod.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use serde::Deserialize;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/client/component.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]  --> src/client/component.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::sync::Arc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::mpsc::Sender`
[INFO] [stdout]  --> src/client/component.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::sync::mpsc::Sender;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `log::info`
[INFO] [stdout]  --> src/client/component.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use log::info;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde_json::Value`
[INFO] [stdout]  --> src/client/component.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use serde_json::Value;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::client::RpcClient`
[INFO] [stdout]  --> src/client/component.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::client::RpcClient;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Message`, `Request`
[INFO] [stdout]   --> src/client/component.rs:10:22
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::message::{Message, Request};
[INFO] [stdout]    |                      ^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `IOHandlers`, `Protocol`
[INFO] [stdout]   --> src/client/component.rs:11:18
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::rpc::{IOHandlers, Protocol, WsRpcHandler};
[INFO] [stdout]    |                  ^^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Instruct`
[INFO] [stdout]   --> src/client/component.rs:12:22
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crate::wsocket::{Instruct, WsClient};
[INFO] [stdout]    |                      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]  --> src/service/component.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::sync::Arc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::mpsc::Sender`
[INFO] [stdout]  --> src/service/component.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::sync::mpsc::Sender;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `log::info`
[INFO] [stdout]  --> src/service/component.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use log::info;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Message`
[INFO] [stdout]   --> src/service/component.rs:11:22
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::message::{Message, Request};
[INFO] [stdout]    |                      ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling zbus-lib v0.1.6 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `Instruct`
[INFO] [stdout]   --> src/service/component.rs:13:22
[INFO] [stdout]    |
[INFO] [stdout] 13 | use crate::wsocket::{Instruct, WsClient};
[INFO] [stdout]    |                      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Duration`
[INFO] [stdout]  --> src/err/mod.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::time::Duration;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CloseCode`, `Handler`
[INFO] [stdout]  --> src/wsocket/mod.rs:3:10
[INFO] [stdout]   |
[INFO] [stdout] 3 | use ws::{CloseCode, Handler, Sender as WsCmd};
[INFO] [stdout]   |          ^^^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ZbusErr`
[INFO] [stdout]  --> src/wsocket/mod.rs:8:28
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::err::{OkResult, ZbusErr, ZbusResult};
[INFO] [stdout]   |                            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Request`
[INFO] [stdout]  --> src/wsocket/mod.rs:9:31
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::message::{Message, Request, Response};
[INFO] [stdout]   |                               ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Request`
[INFO] [stdout]  --> src/wsocket/handler.rs:5:31
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::message::{Message, Request, Response};
[INFO] [stdout]   |                               ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]  --> src/wsocket/component.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::sync::Arc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `info`
[INFO] [stdout]  --> src/wsocket/component.rs:7:25
[INFO] [stdout]   |
[INFO] [stdout] 7 | use log::{debug, error, info};
[INFO] [stdout]   |                         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `resp`
[INFO] [stdout]    --> src/wsocket/component.rs:181:36
[INFO] [stdout]     |
[INFO] [stdout] 181 |                 for (id, (timeout, resp)) in &queue {
[INFO] [stdout]     |                                    ^^^^ help: if this is intentional, prefix it with an underscore: `_resp`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `code`
[INFO] [stdout]    --> src/wsocket/component.rs:222:28
[INFO] [stdout]     |
[INFO] [stdout] 222 |     fn on_close(&mut self, code: CloseCode, reason: &str) {
[INFO] [stdout]     |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `reason`
[INFO] [stdout]    --> src/wsocket/component.rs:222:45
[INFO] [stdout]     |
[INFO] [stdout] 222 |     fn on_close(&mut self, code: CloseCode, reason: &str) {
[INFO] [stdout]     |                                             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_reason`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `execute` is never used
[INFO] [stdout]   --> src/rpc/io.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl IOHandler {
[INFO] [stdout]    | -------------- method in this implementation
[INFO] [stdout] 21 |     pub fn execute(&self, req: Request) -> ZbusResult<Value> {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated constants are never used
[INFO] [stdout]   --> src/rpc/protocol.rs:7:11
[INFO] [stdout]    |
[INFO] [stdout] 3  | impl Protocol {
[INFO] [stdout]    | ------------- associated constants in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 7  |     const STATUS: &'static str = "status";
[INFO] [stdout]    |           ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 11 |     const BODY: &'static str = "body";
[INFO] [stdout]    |           ^^^^
[INFO] [stdout] 12 |     // Message body
[INFO] [stdout] 13 |     const API_KEY: &'static str = "apiKey";
[INFO] [stdout]    |           ^^^^^^^
[INFO] [stdout] 14 |     // Authentication  Key
[INFO] [stdout] 15 |     const SIGNATURE: &'static str = "signature"; // Authentication signature generated
[INFO] [stdout]    |           ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 18 |     const PUB: &'static str = "pub";
[INFO] [stdout]    |           ^^^
[INFO] [stdout] ...
[INFO] [stdout] 22 |     const TAKE: &'static str = "take";
[INFO] [stdout]    |           ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     const REMOVE: &'static str = "remove";
[INFO] [stdout]    |           ^^^^^^
[INFO] [stdout] 29 |     //Remove MQ/Channel
[INFO] [stdout] 30 |     const QUERY: &'static str = "query";
[INFO] [stdout]    |           ^^^^^
[INFO] [stdout] 31 |     //Query MQ/Channel
[INFO] [stdout] 32 |     const PING: &'static str = "ping";     //Heartbeat ping
[INFO] [stdout]    |           ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |     const FILTER: &'static str = "filter";
[INFO] [stdout]    |           ^^^^^^
[INFO] [stdout] 37 |     //Filter on message's tag
[INFO] [stdout] 38 |     const TAG: &'static str = "tag";
[INFO] [stdout]    |           ^^^
[INFO] [stdout] 39 |     //Tag of message, if filter applied
[INFO] [stdout] 40 |     const OFFSET: &'static str = "offset";
[INFO] [stdout]    |           ^^^^^^
[INFO] [stdout] 41 |     const CHECKSUM: &'static str = "checksum";
[INFO] [stdout]    |           ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 49 |     const CHANNEL_MASK: &'static str = "channelMask";
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 50 |     const WINDOW: &'static str = "window";
[INFO] [stdout]    |           ^^^^^^
[INFO] [stdout] 51 |     const ACK: &'static str = "ack";
[INFO] [stdout]    |           ^^^
[INFO] [stdout] ...
[INFO] [stdout] 55 |     const MASK_EXCLUSIVE: i32 = 1 << 1;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^
[INFO] [stdout] 56 |     const MASK_TAKEOVER: i32 = 1 << 2;   //NOT support yet
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `url` is never read
[INFO] [stdout]   --> src/wsocket/component.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct WsClient {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] 17 |     tx: Sender<Instruct>,
[INFO] [stdout] 18 |     url: &'static str,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/rpc/io.rs:54:13
[INFO] [stdout]    |
[INFO] [stdout] 54 |             tx.send(Instruct::Delivery(reply(builder, headers, 400, "url required"), None));
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 54 |             let _ = tx.send(Instruct::Delivery(reply(builder, headers, 400, "url required"), None));
[INFO] [stdout]    |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/rpc/io.rs:61:17
[INFO] [stdout]    |
[INFO] [stdout] 61 |                 tx.send(Instruct::Delivery(reply(builder, headers, 404, format!("URL={} Not Found", url)), None));
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 61 |                 let _ = tx.send(Instruct::Delivery(reply(builder, headers, 404, format!("URL={} Not Found", url)), None));
[INFO] [stdout]    |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/rpc/io.rs:77:21
[INFO] [stdout]    |
[INFO] [stdout] 77 |                     tx.send(Instruct::Delivery(response, None));
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 77 |                     let _ = tx.send(Instruct::Delivery(response, None));
[INFO] [stdout]    |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `cookieList` should have a snake case name
[INFO] [stdout]    --> src/message/mod.rs:156:17
[INFO] [stdout]     |
[INFO] [stdout] 156 |         let mut cookieList = Vec::new();
[INFO] [stdout]     |                 ^^^^^^^^^^ help: convert the identifier to snake case: `cookie_list`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `cookieString` should have a snake case name
[INFO] [stdout]    --> src/message/mod.rs:160:13
[INFO] [stdout]     |
[INFO] [stdout] 160 |         let cookieString = cookieList.iter().map(|cookie| String::from(cookie) + "; ").collect();
[INFO] [stdout]     |             ^^^^^^^^^^^^ help: convert the identifier to snake case: `cookie_string`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `mqType` should have a snake case name
[INFO] [stdout]   --> src/service/component.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 |     mqType: String,
[INFO] [stdout]    |     ^^^^^^ help: convert the identifier to snake case: `mq_type`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `mqMask` should have a snake case name
[INFO] [stdout]   --> src/service/component.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 |     mqMask: i32,
[INFO] [stdout]    |     ^^^^^^ help: convert the identifier to snake case: `mq_mask`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `subMessage` should have a snake case name
[INFO] [stdout]   --> src/service/component.rs:47:13
[INFO] [stdout]    |
[INFO] [stdout] 47 |         let subMessage = Request::builder().headers(headers).id("0002f6eca3fc42c6812d23dd73cbed1").method("").url("").build();
[INFO] [stdout]    |             ^^^^^^^^^^ help: convert the identifier to snake case: `sub_message`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/service/component.rs:48:9
[INFO] [stdout]    |
[INFO] [stdout] 48 | /         self.handler().deliver(subMessage).map(|resp| {
[INFO] [stdout] 49 | |             error!("{:?}", serde_json::to_string(&resp));
[INFO] [stdout] 50 | |         });
[INFO] [stdout]    | |__________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 48 |         let _ = self.handler().deliver(subMessage).map(|resp| {
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/wsocket/component.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 26 |         tx.send(Instruct::Connect);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 26 |         let _ = tx.send(Instruct::Connect);
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/wsocket/component.rs:35:13
[INFO] [stdout]    |
[INFO] [stdout] 35 |             self.tx.send(Instruct::Connect);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 35 |             let _ = self.tx.send(Instruct::Connect);
[INFO] [stdout]    |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/wsocket/component.rs:44:9
[INFO] [stdout]    |
[INFO] [stdout] 44 |         self.tx.send(Instruct::IsClose(Some(tx)));
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 44 |         let _ = self.tx.send(Instruct::IsClose(Some(tx)));
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/wsocket/component.rs:63:9
[INFO] [stdout]    |
[INFO] [stdout] 63 |         self.tx.send(Instruct::Close(None));
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 63 |         let _ = self.tx.send(Instruct::Close(None));
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/wsocket/component.rs:64:9
[INFO] [stdout]    |
[INFO] [stdout] 64 |         self.tx.send(Instruct::Exit);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 64 |         let _ = self.tx.send(Instruct::Exit);
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/wsocket/component.rs:91:41
[INFO] [stdout]    |
[INFO] [stdout] 91 | ...                   tx.send(Instruct::Closed);
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 91 |                                         let _ = tx.send(Instruct::Closed);
[INFO] [stdout]    |                                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/wsocket/component.rs:153:29
[INFO] [stdout]     |
[INFO] [stdout] 153 | ...                   cmd.close(CloseCode::Normal);
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 153 |                             let _ = cmd.close(CloseCode::Normal);
[INFO] [stdout]     |                             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/wsocket/component.rs:154:29
[INFO] [stdout]     |
[INFO] [stdout] 154 | ...                   tx.send(Instruct::Closed);//关闭成功失败都认为关闭成功
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 154 |                             let _ = tx.send(Instruct::Closed);//关闭成功失败都认为关闭成功
[INFO] [stdout]     |                             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/wsocket/component.rs:165:37
[INFO] [stdout]     |
[INFO] [stdout] 165 | ...                   tx.send(Instruct::Closed);
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 165 |                                     let _ = tx.send(Instruct::Closed);
[INFO] [stdout]     |                                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/wsocket/component.rs:180:17
[INFO] [stdout]     |
[INFO] [stdout] 180 |                 tx.send(Instruct::IsClose(None));
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 180 |                 let _ = tx.send(Instruct::IsClose(None));
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/wsocket/component.rs:182:21
[INFO] [stdout]     |
[INFO] [stdout] 182 | /                     timeout.elapsed().map(|elapsed| if elapsed.as_secs() > 30 {
[INFO] [stdout] 183 | |                         tx.send(Instruct::Response(id.into(), None));
[INFO] [stdout] 184 | |                     });
[INFO] [stdout]     | |______________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 182 |                     let _ = timeout.elapsed().map(|elapsed| if elapsed.as_secs() > 30 {
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/wsocket/component.rs:183:25
[INFO] [stdout]     |
[INFO] [stdout] 183 |                         tx.send(Instruct::Response(id.into(), None));
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 183 |                         let _ = tx.send(Instruct::Response(id.into(), None));
[INFO] [stdout]     |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/wsocket/component.rs:205:9
[INFO] [stdout]     |
[INFO] [stdout] 205 |         self.sender.send(self.ws_client.clone());
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 205 |         let _ = self.sender.send(self.ws_client.clone());
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/wsocket/component.rs:218:86
[INFO] [stdout]     |
[INFO] [stdout] 218 |         msg.map_or_else(|e| debug!(" recv message err is {} [{}]", e, json), |msg| { self.tx.send(Instruct::Receive(msg)); });
[INFO] [stdout]     |                                                                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 218 |         msg.map_or_else(|e| debug!(" recv message err is {} [{}]", e, json), |msg| { let _ = self.tx.send(Instruct::Receive(msg)); });
[INFO] [stdout]     |                                                                                      +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/wsocket/component.rs:224:9
[INFO] [stdout]     |
[INFO] [stdout] 224 |         self.tx.send(Instruct::Closed);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 224 |         let _ = self.tx.send(Instruct::Closed);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 63 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `zbus`
[INFO] [stdout]  --> examples/rpc_server.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use zbus::{
[INFO] [stdout]   |     ^^^^ use of undeclared crate or module `zbus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `zbus`
[INFO] [stdout]   --> examples/rpc_server.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use zbus::rpc::IOHandlers;
[INFO] [stdout]    |     ^^^^ use of undeclared crate or module `zbus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `zbus`
[INFO] [stdout]   --> examples/rpc_server.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use zbus::service::WsRpcServer;
[INFO] [stdout]    |     ^^^^ use of undeclared crate or module `zbus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `zbus`
[INFO] [stdout]   --> examples/rpc_server.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use zbus::wsocket::Instruct;
[INFO] [stdout]    |     ^^^^ use of undeclared crate or module `zbus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `zbus`
[INFO] [stdout]   --> examples/rpc_server.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use zbus::log_config;
[INFO] [stdout]    |     ^^^^ use of undeclared crate or module `zbus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]  --> examples/rpc_server.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::sync::Arc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Error`
[INFO] [stdout]  --> examples/rpc_server.rs:5:18
[INFO] [stdout]   |
[INFO] [stdout] 5 | use serde_json::{Error, Value};
[INFO] [stdout]   |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0053]: method `deref` has an incompatible type for trait
[INFO] [stdout]   --> examples/trait_demo.rs:30:24
[INFO] [stdout]    |
[INFO] [stdout] 30 |     fn deref(&self) -> Box<Human> {
[INFO] [stdout]    |                        ^^^^^^^^^^
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        expected `&Human`, found `Box<Human>`
[INFO] [stdout]    |                        help: change the output type to match the trait: `&Human`
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected signature `fn(&Person) -> &Human`
[INFO] [stdout]               found signature `fn(&Person) -> Box<Human>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to previous error
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0053`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `zbus-lib` (example "trait_demo") due to 2 previous errors
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: unused imports: `debug`, `error`, `info`, `trace`, `warn`
[INFO] [stdout]  --> src/log_config.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use log::{debug, error, info, LevelFilter, SetLoggerError, trace, warn};
[INFO] [stdout]   |           ^^^^^  ^^^^^  ^^^^                               ^^^^^  ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ZbusErr`
[INFO] [stdout]   --> src/rpc/io.rs:11:18
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::err::{ZbusErr, ZbusResult};
[INFO] [stdout]    |                  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 5 previous errors; 2 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0432, E0433.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0432`.
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/rpc/io.rs:47:36
[INFO] [stdout]    |
[INFO] [stdout] 47 |         let id = req.id().unwrap();/// 这个存在判断是在调用rpc前验证过的
[INFO] [stdout]    |                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 48 |         let req_headers = req.headers();
[INFO] [stdout]    |         -------------------------------- rustdoc does not generate documentation for statements
[INFO] [stdout]    |
[INFO] [stdout]    = help: use `//` for a plain comment
[INFO] [stdout]    = note: `#[warn(unused_doc_comments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread`
[INFO] [stdout]  --> src/rpc/handler.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::thread;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Duration`
[INFO] [stdout]  --> src/rpc/handler.rs:2:17
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::time::{Duration, SystemTime};
[INFO] [stdout]   |                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `zbus-lib` (example "rpc_server") due to 6 previous errors; 2 warnings emitted
[INFO] [stdout] warning: unused import: `std::thread`
[INFO] [stdout]  --> src/client/mod.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::thread;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Duration`
[INFO] [stdout]  --> src/client/mod.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::time::Duration;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde::de::DeserializeOwned`
[INFO] [stdout]  --> src/client/mod.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use serde::de::DeserializeOwned;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde::Deserialize`
[INFO] [stdout]  --> src/client/mod.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use serde::Deserialize;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/client/component.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]  --> src/client/component.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::sync::Arc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::mpsc::Sender`
[INFO] [stdout]  --> src/client/component.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::sync::mpsc::Sender;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `log::info`
[INFO] [stdout]  --> src/client/component.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use log::info;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde_json::Value`
[INFO] [stdout]  --> src/client/component.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use serde_json::Value;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::client::RpcClient`
[INFO] [stdout]  --> src/client/component.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::client::RpcClient;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Message`, `Request`
[INFO] [stdout]   --> src/client/component.rs:10:22
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::message::{Message, Request};
[INFO] [stdout]    |                      ^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `IOHandlers`, `Protocol`
[INFO] [stdout]   --> src/client/component.rs:11:18
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::rpc::{IOHandlers, Protocol, WsRpcHandler};
[INFO] [stdout]    |                  ^^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Instruct`
[INFO] [stdout]   --> src/client/component.rs:12:22
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crate::wsocket::{Instruct, WsClient};
[INFO] [stdout]    |                      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]  --> src/service/component.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::sync::Arc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::mpsc::Sender`
[INFO] [stdout]  --> src/service/component.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::sync::mpsc::Sender;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `log::info`
[INFO] [stdout]  --> src/service/component.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use log::info;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Message`
[INFO] [stdout]   --> src/service/component.rs:11:22
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::message::{Message, Request};
[INFO] [stdout]    |                      ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Instruct`
[INFO] [stdout]   --> src/service/component.rs:13:22
[INFO] [stdout]    |
[INFO] [stdout] 13 | use crate::wsocket::{Instruct, WsClient};
[INFO] [stdout]    |                      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Duration`
[INFO] [stdout]  --> src/err/mod.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::time::Duration;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CloseCode`, `Handler`
[INFO] [stdout]  --> src/wsocket/mod.rs:3:10
[INFO] [stdout]   |
[INFO] [stdout] 3 | use ws::{CloseCode, Handler, Sender as WsCmd};
[INFO] [stdout]   |          ^^^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ZbusErr`
[INFO] [stdout]  --> src/wsocket/mod.rs:8:28
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::err::{OkResult, ZbusErr, ZbusResult};
[INFO] [stdout]   |                            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Request`
[INFO] [stdout]  --> src/wsocket/mod.rs:9:31
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::message::{Message, Request, Response};
[INFO] [stdout]   |                               ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Request`
[INFO] [stdout]  --> src/wsocket/handler.rs:5:31
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::message::{Message, Request, Response};
[INFO] [stdout]   |                               ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]  --> src/wsocket/component.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::sync::Arc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `info`
[INFO] [stdout]  --> src/wsocket/component.rs:7:25
[INFO] [stdout]   |
[INFO] [stdout] 7 | use log::{debug, error, info};
[INFO] [stdout]   |                         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `sync` in this scope
[INFO] [stdout]   --> examples/loop.rs:66:5
[INFO] [stdout]    |
[INFO] [stdout] 66 |     sync || "name".to_string()
[INFO] [stdout]    |     ^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `id` is never read
[INFO] [stdout]  --> examples/json.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | struct Outer {
[INFO] [stdout]   |        ----- field in this struct
[INFO] [stdout] 9 |     id: String,
[INFO] [stdout]   |     ^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> examples/loop.rs:66:13
[INFO] [stdout]    |
[INFO] [stdout] 66 |     sync || "name".to_string()
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^ expected `bool`, found `String`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> examples/loop.rs:66:5
[INFO] [stdout]    |
[INFO] [stdout] 62 | fn get_handler<F, H>() -> F
[INFO] [stdout]    |                -          -
[INFO] [stdout]    |                |          |
[INFO] [stdout]    |                |          expected `F` because of return type
[INFO] [stdout]    |                |          help: consider using an impl return type: `impl Fn() -> H`
[INFO] [stdout]    |                this type parameter
[INFO] [stdout] ...
[INFO] [stdout] 66 |     sync || "name".to_string()
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^ expected type parameter `F`, found `bool`
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected type parameter `F`
[INFO] [stdout]                         found type `bool`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 3 previous errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0308, E0425.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0308`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `zbus-lib` (example "loop") due to 4 previous errors
[INFO] [stdout] warning: unused variable: `receiv`
[INFO] [stdout]    --> src/rpc/io.rs:116:18
[INFO] [stdout]     |
[INFO] [stdout] 116 |     let (sender, receiv) = channel::<Instruct>();
[INFO] [stdout]     |                  ^^^^^^ help: if this is intentional, prefix it with an underscore: `_receiv`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/rpc/io.rs:117:9
[INFO] [stdout]     |
[INFO] [stdout] 117 |     for i in 0..10 {
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `req`
[INFO] [stdout]    --> src/rpc/io.rs:103:43
[INFO] [stdout]     |
[INFO] [stdout] 103 |     io_handler.add_method("test".into(), |req: Value| {
[INFO] [stdout]     |                                           ^^^ help: if this is intentional, prefix it with an underscore: `_req`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `req`
[INFO] [stdout]    --> src/rpc/io.rs:106:44
[INFO] [stdout]     |
[INFO] [stdout] 106 |     io_handler.add_method("test1".into(), |req: Value| {
[INFO] [stdout]     |                                            ^^^ help: if this is intentional, prefix it with an underscore: `_req`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `resp`
[INFO] [stdout]    --> src/wsocket/component.rs:181:36
[INFO] [stdout]     |
[INFO] [stdout] 181 |                 for (id, (timeout, resp)) in &queue {
[INFO] [stdout]     |                                    ^^^^ help: if this is intentional, prefix it with an underscore: `_resp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `code`
[INFO] [stdout]    --> src/wsocket/component.rs:222:28
[INFO] [stdout]     |
[INFO] [stdout] 222 |     fn on_close(&mut self, code: CloseCode, reason: &str) {
[INFO] [stdout]     |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `reason`
[INFO] [stdout]    --> src/wsocket/component.rs:222:45
[INFO] [stdout]     |
[INFO] [stdout] 222 |     fn on_close(&mut self, code: CloseCode, reason: &str) {
[INFO] [stdout]     |                                             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_reason`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `execute` is never used
[INFO] [stdout]   --> src/rpc/io.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl IOHandler {
[INFO] [stdout]    | -------------- method in this implementation
[INFO] [stdout] 21 |     pub fn execute(&self, req: Request) -> ZbusResult<Value> {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated constants are never used
[INFO] [stdout]   --> src/rpc/protocol.rs:7:11
[INFO] [stdout]    |
[INFO] [stdout] 3  | impl Protocol {
[INFO] [stdout]    | ------------- associated constants in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 7  |     const STATUS: &'static str = "status";
[INFO] [stdout]    |           ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 11 |     const BODY: &'static str = "body";
[INFO] [stdout]    |           ^^^^
[INFO] [stdout] 12 |     // Message body
[INFO] [stdout] 13 |     const API_KEY: &'static str = "apiKey";
[INFO] [stdout]    |           ^^^^^^^
[INFO] [stdout] 14 |     // Authentication  Key
[INFO] [stdout] 15 |     const SIGNATURE: &'static str = "signature"; // Authentication signature generated
[INFO] [stdout]    |           ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 18 |     const PUB: &'static str = "pub";
[INFO] [stdout]    |           ^^^
[INFO] [stdout] ...
[INFO] [stdout] 22 |     const TAKE: &'static str = "take";
[INFO] [stdout]    |           ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     const REMOVE: &'static str = "remove";
[INFO] [stdout]    |           ^^^^^^
[INFO] [stdout] 29 |     //Remove MQ/Channel
[INFO] [stdout] 30 |     const QUERY: &'static str = "query";
[INFO] [stdout]    |           ^^^^^
[INFO] [stdout] 31 |     //Query MQ/Channel
[INFO] [stdout] 32 |     const PING: &'static str = "ping";     //Heartbeat ping
[INFO] [stdout]    |           ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |     const FILTER: &'static str = "filter";
[INFO] [stdout]    |           ^^^^^^
[INFO] [stdout] 37 |     //Filter on message's tag
[INFO] [stdout] 38 |     const TAG: &'static str = "tag";
[INFO] [stdout]    |           ^^^
[INFO] [stdout] 39 |     //Tag of message, if filter applied
[INFO] [stdout] 40 |     const OFFSET: &'static str = "offset";
[INFO] [stdout]    |           ^^^^^^
[INFO] [stdout] 41 |     const CHECKSUM: &'static str = "checksum";
[INFO] [stdout]    |           ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 49 |     const CHANNEL_MASK: &'static str = "channelMask";
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 50 |     const WINDOW: &'static str = "window";
[INFO] [stdout]    |           ^^^^^^
[INFO] [stdout] 51 |     const ACK: &'static str = "ack";
[INFO] [stdout]    |           ^^^
[INFO] [stdout] ...
[INFO] [stdout] 55 |     const MASK_EXCLUSIVE: i32 = 1 << 1;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^
[INFO] [stdout] 56 |     const MASK_TAKEOVER: i32 = 1 << 2;   //NOT support yet
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `url` is never read
[INFO] [stdout]   --> src/wsocket/component.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct WsClient {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] 17 |     tx: Sender<Instruct>,
[INFO] [stdout] 18 |     url: &'static str,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/rpc/io.rs:54:13
[INFO] [stdout]    |
[INFO] [stdout] 54 |             tx.send(Instruct::Delivery(reply(builder, headers, 400, "url required"), None));
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 54 |             let _ = tx.send(Instruct::Delivery(reply(builder, headers, 400, "url required"), None));
[INFO] [stdout]    |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/rpc/io.rs:61:17
[INFO] [stdout]    |
[INFO] [stdout] 61 |                 tx.send(Instruct::Delivery(reply(builder, headers, 404, format!("URL={} Not Found", url)), None));
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 61 |                 let _ = tx.send(Instruct::Delivery(reply(builder, headers, 404, format!("URL={} Not Found", url)), None));
[INFO] [stdout]    |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/rpc/io.rs:77:21
[INFO] [stdout]    |
[INFO] [stdout] 77 |                     tx.send(Instruct::Delivery(response, None));
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 77 |                     let _ = tx.send(Instruct::Delivery(response, None));
[INFO] [stdout]    |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/rpc/io.rs:119:9
[INFO] [stdout]     |
[INFO] [stdout] 119 |         tx.send((req, sender.clone()));
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 119 |         let _ = tx.send((req, sender.clone()));
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `cookieList` should have a snake case name
[INFO] [stdout]    --> src/message/mod.rs:156:17
[INFO] [stdout]     |
[INFO] [stdout] 156 |         let mut cookieList = Vec::new();
[INFO] [stdout]     |                 ^^^^^^^^^^ help: convert the identifier to snake case: `cookie_list`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `cookieString` should have a snake case name
[INFO] [stdout]    --> src/message/mod.rs:160:13
[INFO] [stdout]     |
[INFO] [stdout] 160 |         let cookieString = cookieList.iter().map(|cookie| String::from(cookie) + "; ").collect();
[INFO] [stdout]     |             ^^^^^^^^^^^^ help: convert the identifier to snake case: `cookie_string`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `cookieList` should have a snake case name
[INFO] [stdout]    --> src/message/mod.rs:197:13
[INFO] [stdout]     |
[INFO] [stdout] 197 |     let mut cookieList = Vec::new();
[INFO] [stdout]     |             ^^^^^^^^^^ help: convert the identifier to snake case: `cookie_list`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `cookieString` should have a snake case name
[INFO] [stdout]    --> src/message/mod.rs:203:9
[INFO] [stdout]     |
[INFO] [stdout] 203 |     let cookieString: String = cookieList.iter().map(|cookie| String::from(cookie) + "; ").collect();
[INFO] [stdout]     |         ^^^^^^^^^^^^ help: convert the identifier to snake case: `cookie_string`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `mqType` should have a snake case name
[INFO] [stdout]   --> src/service/component.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 |     mqType: String,
[INFO] [stdout]    |     ^^^^^^ help: convert the identifier to snake case: `mq_type`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `mqMask` should have a snake case name
[INFO] [stdout]   --> src/service/component.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 |     mqMask: i32,
[INFO] [stdout]    |     ^^^^^^ help: convert the identifier to snake case: `mq_mask`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `subMessage` should have a snake case name
[INFO] [stdout]   --> src/service/component.rs:47:13
[INFO] [stdout]    |
[INFO] [stdout] 47 |         let subMessage = Request::builder().headers(headers).id("0002f6eca3fc42c6812d23dd73cbed1").method("").url("").build();
[INFO] [stdout]    |             ^^^^^^^^^^ help: convert the identifier to snake case: `sub_message`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/service/component.rs:48:9
[INFO] [stdout]    |
[INFO] [stdout] 48 | /         self.handler().deliver(subMessage).map(|resp| {
[INFO] [stdout] 49 | |             error!("{:?}", serde_json::to_string(&resp));
[INFO] [stdout] 50 | |         });
[INFO] [stdout]    | |__________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 48 |         let _ = self.handler().deliver(subMessage).map(|resp| {
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/wsocket/component.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 26 |         tx.send(Instruct::Connect);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 26 |         let _ = tx.send(Instruct::Connect);
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/wsocket/component.rs:35:13
[INFO] [stdout]    |
[INFO] [stdout] 35 |             self.tx.send(Instruct::Connect);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 35 |             let _ = self.tx.send(Instruct::Connect);
[INFO] [stdout]    |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/wsocket/component.rs:44:9
[INFO] [stdout]    |
[INFO] [stdout] 44 |         self.tx.send(Instruct::IsClose(Some(tx)));
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 44 |         let _ = self.tx.send(Instruct::IsClose(Some(tx)));
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/wsocket/component.rs:63:9
[INFO] [stdout]    |
[INFO] [stdout] 63 |         self.tx.send(Instruct::Close(None));
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 63 |         let _ = self.tx.send(Instruct::Close(None));
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/wsocket/component.rs:64:9
[INFO] [stdout]    |
[INFO] [stdout] 64 |         self.tx.send(Instruct::Exit);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 64 |         let _ = self.tx.send(Instruct::Exit);
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/wsocket/component.rs:91:41
[INFO] [stdout]    |
[INFO] [stdout] 91 | ...                   tx.send(Instruct::Closed);
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 91 |                                         let _ = tx.send(Instruct::Closed);
[INFO] [stdout]    |                                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/wsocket/component.rs:153:29
[INFO] [stdout]     |
[INFO] [stdout] 153 | ...                   cmd.close(CloseCode::Normal);
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 153 |                             let _ = cmd.close(CloseCode::Normal);
[INFO] [stdout]     |                             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/wsocket/component.rs:154:29
[INFO] [stdout]     |
[INFO] [stdout] 154 | ...                   tx.send(Instruct::Closed);//关闭成功失败都认为关闭成功
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 154 |                             let _ = tx.send(Instruct::Closed);//关闭成功失败都认为关闭成功
[INFO] [stdout]     |                             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/wsocket/component.rs:165:37
[INFO] [stdout]     |
[INFO] [stdout] 165 | ...                   tx.send(Instruct::Closed);
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 165 |                                     let _ = tx.send(Instruct::Closed);
[INFO] [stdout]     |                                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/wsocket/component.rs:180:17
[INFO] [stdout]     |
[INFO] [stdout] 180 |                 tx.send(Instruct::IsClose(None));
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 180 |                 let _ = tx.send(Instruct::IsClose(None));
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/wsocket/component.rs:182:21
[INFO] [stdout]     |
[INFO] [stdout] 182 | /                     timeout.elapsed().map(|elapsed| if elapsed.as_secs() > 30 {
[INFO] [stdout] 183 | |                         tx.send(Instruct::Response(id.into(), None));
[INFO] [stdout] 184 | |                     });
[INFO] [stdout]     | |______________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 182 |                     let _ = timeout.elapsed().map(|elapsed| if elapsed.as_secs() > 30 {
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/wsocket/component.rs:183:25
[INFO] [stdout]     |
[INFO] [stdout] 183 |                         tx.send(Instruct::Response(id.into(), None));
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 183 |                         let _ = tx.send(Instruct::Response(id.into(), None));
[INFO] [stdout]     |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/wsocket/component.rs:205:9
[INFO] [stdout]     |
[INFO] [stdout] 205 |         self.sender.send(self.ws_client.clone());
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 205 |         let _ = self.sender.send(self.ws_client.clone());
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/wsocket/component.rs:218:86
[INFO] [stdout]     |
[INFO] [stdout] 218 |         msg.map_or_else(|e| debug!(" recv message err is {} [{}]", e, json), |msg| { self.tx.send(Instruct::Receive(msg)); });
[INFO] [stdout]     |                                                                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 218 |         msg.map_or_else(|e| debug!(" recv message err is {} [{}]", e, json), |msg| { let _ = self.tx.send(Instruct::Receive(msg)); });
[INFO] [stdout]     |                                                                                      +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/wsocket/component.rs:224:9
[INFO] [stdout]     |
[INFO] [stdout] 224 |         self.tx.send(Instruct::Closed);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 224 |         let _ = self.tx.send(Instruct::Closed);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 1 warning emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 67 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "cf1355ea94a4728fe582ebae8454a4a1775c62f7896a0a1fff1c19dc275be0dc", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "cf1355ea94a4728fe582ebae8454a4a1775c62f7896a0a1fff1c19dc275be0dc", kill_on_drop: false }`
[INFO] [stdout] cf1355ea94a4728fe582ebae8454a4a1775c62f7896a0a1fff1c19dc275be0dc
