[INFO] fetching crate pi_mqtt 0.5.7...
[INFO] testing pi_mqtt-0.5.7 against master#c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38 for pr-146098-8
[INFO] extracting crate pi_mqtt 0.5.7 into /workspace/builds/worker-3-tc1/source
[INFO] started tweaking crates.io crate pi_mqtt 0.5.7
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate pi_mqtt 0.5.7
[INFO] tweaked toml for crates.io crate pi_mqtt 0.5.7 written to /workspace/builds/worker-3-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate pi_mqtt 0.5.7 on toolchain c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate pi_mqtt 0.5.7 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" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded pi_slot_wheel v0.3.1
[INFO] [stderr]   Downloaded pi_async_buffer v0.8.0
[INFO] [stderr]   Downloaded pi_tcp v0.5.10
[INFO] [stderr]   Downloaded spin_sleep v1.3.3
[INFO] [stderr]   Downloaded spin_sleep_util v0.1.1
[INFO] [stderr]   Downloaded pi_rand v0.3.0
[INFO] [stderr]   Downloaded pi_cancel_timer v0.3.3
[INFO] [stderr]   Downloaded jsonwebtoken v7.2.0
[INFO] [stderr]   Downloaded pi_atom v0.6.1
[INFO] [stderr]   Downloaded pi_blocking_udp v0.3.0
[INFO] [stderr]   Downloaded pem v0.8.3
[INFO] [stderr]   Downloaded mqtt311 v0.2.0
[INFO] [stderr]   Downloaded pem-rfc7468 v0.3.1
[INFO] [stderr]   Downloaded derive_more v0.13.0
[INFO] [stderr]   Downloaded pi_quic v0.7.2
[INFO] [stderr]   Downloaded pkcs1 v0.3.3
[INFO] [stderr]   Downloaded pi_hash_value v0.1.0
[INFO] [stderr]   Downloaded quinn-proto v0.8.4
[INFO] [stderr]   Downloaded pi-async-rt v0.2.11
[INFO] [stderr]   Downloaded rsa v0.6.1
[INFO] [stderr]   Downloaded pi_crypto v0.1.1
[INFO] [stderr]   Downloaded pi_ws v0.6.2
[INFO] [stderr]   Downloaded crypto-bigint v0.3.2
[INFO] [stderr]   Downloaded rustls-pemfile v0.2.1
[INFO] [stderr]   Downloaded pi_bon v0.3.4
[INFO] [stderr]   Downloaded simple_asn1 v0.4.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 32376e555a82c4f63ede6324dd7336a21f03dae05ecb4670a60c076a434cfc2b
[INFO] running `Command { std: "docker" "start" "-a" "32376e555a82c4f63ede6324dd7336a21f03dae05ecb4670a60c076a434cfc2b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "32376e555a82c4f63ede6324dd7336a21f03dae05ecb4670a60c076a434cfc2b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "32376e555a82c4f63ede6324dd7336a21f03dae05ecb4670a60c076a434cfc2b", kill_on_drop: false }`
[INFO] [stdout] 32376e555a82c4f63ede6324dd7336a21f03dae05ecb4670a60c076a434cfc2b
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 0ae2e2aae4287c2db96d387bccce9439448e6888d2b5234d993538b41c15fe6b
[INFO] running `Command { std: "docker" "start" "-a" "0ae2e2aae4287c2db96d387bccce9439448e6888d2b5234d993538b41c15fe6b", kill_on_drop: false }`
[INFO] [stderr]    Compiling serde_core v1.0.226
[INFO] [stderr]    Compiling getrandom v0.2.16
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]    Compiling syn v2.0.106
[INFO] [stderr]    Compiling subtle v2.6.1
[INFO] [stderr]    Compiling serde v1.0.226
[INFO] [stderr]    Compiling pi_null v0.1.12
[INFO] [stderr]    Compiling spin v0.9.8
[INFO] [stderr]    Compiling crossbeam-channel v0.5.15
[INFO] [stderr]    Compiling pi_share v0.5.2
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling pi_slotmap v0.2.1
[INFO] [stderr]    Compiling ring v0.16.20
[INFO] [stderr]    Compiling parking_lot_core v0.9.11
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling getrandom v0.3.3
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling digest v0.9.0
[INFO] [stderr]    Compiling crossbeam v0.8.4
[INFO] [stderr]    Compiling pi_key_alloter v0.6.4
[INFO] [stderr]    Compiling futures-channel v0.3.31
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling backtrace v0.3.75
[INFO] [stderr]    Compiling rand_core v0.9.3
[INFO] [stderr]    Compiling lazy_static v1.5.0
[INFO] [stderr]    Compiling base64ct v1.8.0
[INFO] [stderr]    Compiling pi_ext_heap v0.1.1
[INFO] [stderr]    Compiling bitflags v2.9.4
[INFO] [stderr]    Compiling pem-rfc7468 v0.3.1
[INFO] [stderr]    Compiling twox-hash v1.6.3
[INFO] [stderr]    Compiling raw-cpuid v11.6.0
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling pi_hash v0.1.1
[INFO] [stderr]    Compiling libsecp256k1-core v0.2.2
[INFO] [stderr]    Compiling crypto-common v0.1.6
[INFO] [stderr]    Compiling crypto-bigint v0.3.2
[INFO] [stderr]    Compiling nanorand v0.7.0
[INFO] [stderr]    Compiling const-oid v0.7.1
[INFO] [stderr]    Compiling base64 v0.13.1
[INFO] [stderr]    Compiling pi_wheel v0.1.0
[INFO] [stderr]    Compiling der v0.5.1
[INFO] [stderr]    Compiling pi_timer v0.1.1
[INFO] [stderr]    Compiling flume v0.11.1
[INFO] [stderr]    Compiling quanta v0.12.6
[INFO] [stderr]    Compiling rand v0.9.2
[INFO] [stderr]    Compiling getrandom v0.1.16
[INFO] [stderr]    Compiling block-padding v0.3.3
[INFO] [stderr]    Compiling parking_lot v0.12.4
[INFO] [stderr]    Compiling st3 v0.4.1
[INFO] [stderr]    Compiling num_cpus v1.17.0
[INFO] [stderr]    Compiling num-bigint v0.2.6
[INFO] [stderr]    Compiling rustls v0.20.9
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling proc-macro2 v0.4.30
[INFO] [stderr]    Compiling regex-syntax v0.8.6
[INFO] [stderr]    Compiling pi_wrr v0.1.1
[INFO] [stderr]    Compiling dashmap v6.1.0
[INFO] [stderr]    Compiling spki v0.5.4
[INFO] [stderr]    Compiling rand_core v0.5.1
[INFO] [stderr]    Compiling inout v0.1.4
[INFO] [stderr]    Compiling libsecp256k1-gen-genmult v0.2.1
[INFO] [stderr]    Compiling libsecp256k1-gen-ecmult v0.2.1
[INFO] [stderr]    Compiling crypto-mac v0.8.0
[INFO] [stderr]    Compiling gcc v0.3.55
[INFO] [stderr]    Compiling num-bigint-dig v0.8.4
[INFO] [stderr]    Compiling libsecp256k1 v0.6.0
[INFO] [stderr]    Compiling hmac v0.8.1
[INFO] [stderr]    Compiling cipher v0.4.4
[INFO] [stderr]    Compiling chrono v0.4.42
[INFO] [stderr]    Compiling rand_chacha v0.2.2
[INFO] [stderr]    Compiling sct v0.7.1
[INFO] [stderr]    Compiling webpki v0.22.4
[INFO] [stderr]    Compiling rust-crypto v0.2.36
[INFO] [stderr]    Compiling pkcs8 v0.8.0
[INFO] [stderr]    Compiling block-buffer v0.9.0
[INFO] [stderr]    Compiling serde_derive v1.0.226
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling async-stream-impl v0.3.6
[INFO] [stderr]    Compiling regex-automata v0.4.10
[INFO] [stderr]    Compiling async-stream v0.3.6
[INFO] [stderr]    Compiling num-iter v0.1.45
[INFO] [stderr]    Compiling futures-util v0.3.31
[INFO] [stderr]    Compiling rand v0.4.6
[INFO] [stderr]    Compiling failure_derive v0.1.8
[INFO] [stderr]    Compiling rustc-serialize v0.3.25
[INFO] [stderr]    Compiling base64 v0.12.3
[INFO] [stderr]    Compiling opaque-debug v0.3.1
[INFO] [stderr]    Compiling syn v0.15.44
[INFO] [stderr]    Compiling synstructure v0.12.6
[INFO] [stderr]    Compiling sha2 v0.9.9
[INFO] [stderr]    Compiling serde_json v1.0.145
[INFO] [stderr]    Compiling rand v0.3.23
[INFO] [stderr]    Compiling simple_asn1 v0.4.1
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling tracing-attributes v0.1.30
[INFO] [stderr]    Compiling pkcs1 v0.3.3
[INFO] [stderr]    Compiling futures-executor v0.3.31
[INFO] [stderr]    Compiling regex v1.11.2
[INFO] [stderr]    Compiling futures v0.3.31
[INFO] [stderr]    Compiling quote v0.6.13
[INFO] [stderr]    Compiling rand v0.7.3
[INFO] [stderr]    Compiling pem v0.8.3
[INFO] [stderr]    Compiling hmac-drbg v0.3.0
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling num-bigint v0.4.6
[INFO] [stderr]    Compiling time v0.1.45
[INFO] [stderr]    Compiling httparse v1.8.0
[INFO] [stderr]    Compiling pi_slot_deque v0.3.1
[INFO] [stderr]    Compiling pi_slot_wheel v0.3.1
[INFO] [stderr]    Compiling spin_sleep v1.3.3
[INFO] [stderr]    Compiling pi_cancel_timer v0.3.3
[INFO] [stderr]    Compiling spin_sleep_util v0.1.1
[INFO] [stderr]    Compiling pi-async-rt v0.2.11
[INFO] [stderr]    Compiling tracing v0.1.41
[INFO] [stderr]    Compiling rsa v0.6.1
[INFO] [stderr]    Compiling async-channel v2.5.0
[INFO] [stderr]    Compiling jsonwebtoken v7.2.0
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling pi_hash_value v0.1.0
[INFO] [stderr]    Compiling cbc v0.1.2
[INFO] [stderr]    Compiling pi_bon v0.3.4
[INFO] [stderr]    Compiling aes v0.8.4
[INFO] [stderr]    Compiling pi_async_buffer v0.8.0
[INFO] [stderr]    Compiling rustls-pemfile v0.2.1
[INFO] [stderr]    Compiling mio v0.8.11
[INFO] [stderr]    Compiling socket2 v0.5.10
[INFO] [stderr]    Compiling siphasher v0.3.11
[INFO] [stderr]    Compiling pi_atom v0.6.1
[INFO] [stderr]    Compiling pi_tcp v0.5.10
[INFO] [stderr]    Compiling pi_blocking_udp v0.3.0
[INFO] [stderr]    Compiling quinn-proto v0.8.4
[INFO] [stderr]    Compiling failure v0.1.8
[INFO] [stderr]    Compiling http v0.2.12
[INFO] [stderr]    Compiling pi_rand v0.3.0
[INFO] [stderr]    Compiling derive_more v0.13.0
[INFO] [stderr]    Compiling mqtt311 v0.2.0
[INFO] [stderr]    Compiling pi_crypto v0.1.1
[INFO] [stderr]    Compiling pi_ws v0.6.2
[INFO] [stderr]    Compiling pi_quic v0.7.2
[INFO] [stderr]    Compiling pi_mqtt v0.5.7 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/server.rs:23:1
[INFO] [stdout]    |
[INFO] [stdout] 23 | / ///
[INFO] [stdout] 24 | | /// Mqtt代理表和代理映射表
[INFO] [stdout] 25 | | ///
[INFO] [stdout]    | |_--^
[INFO] [stdout]    |   |
[INFO] [stdout]    |   rustdoc does not generate documentation for macro invocations
[INFO] [stdout]    |
[INFO] [stdout]    = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout]    = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/server.rs:31:1
[INFO] [stdout]    |
[INFO] [stdout] 31 | / ///
[INFO] [stdout] 32 | | /// Mqtt的Quic代理表和代理映射表
[INFO] [stdout] 33 | | ///
[INFO] [stdout]    | |_--^
[INFO] [stdout]    |   |
[INFO] [stdout]    |   rustdoc does not generate documentation for macro invocations
[INFO] [stdout]    |
[INFO] [stdout]    = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `mapref::entry::Entry`
[INFO] [stdout]  --> src/server.rs:6:15
[INFO] [stdout]   |
[INFO] [stdout] 6 |               mapref::entry::Entry};
[INFO] [stdout]   |               ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Socket`
[INFO] [stdout]  --> src/server.rs:8:11
[INFO] [stdout]   |
[INFO] [stdout] 8 | use tcp::{Socket,
[INFO] [stdout]   |           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::marker::PhantomData`
[INFO] [stdout]  --> src/v311.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::marker::PhantomData;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/v311.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `mio::Token`
[INFO] [stdout]  --> src/v311.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use mio::Token;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `fnv::FnvBuildHasher`
[INFO] [stdout]  --> src/v311.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use fnv::FnvBuildHasher;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `PacketIdentifier`, `Protocol`, and `SubscribeTopic`
[INFO] [stdout]   --> src/v311.rs:10:36
[INFO] [stdout]    |
[INFO] [stdout] 10 | use mqtt311::{MqttWrite, MqttRead, Protocol, ConnectReturnCode, Packet, Connect,
[INFO] [stdout]    |                                    ^^^^^^^^
[INFO] [stdout] 11 |               Connack, QoS, Publish, PacketIdentifier, SubscribeTopic, SubscribeReturnCodes,
[INFO] [stdout]    |                                      ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `pi_atom::Atom`
[INFO] [stdout]   --> src/v311.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use pi_atom::Atom;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::marker::PhantomData`
[INFO] [stdout]  --> src/tls_v311.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::marker::PhantomData;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/tls_v311.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `mio::Token`
[INFO] [stdout]  --> src/tls_v311.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use mio::Token;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `fnv::FnvBuildHasher`
[INFO] [stdout]  --> src/tls_v311.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use fnv::FnvBuildHasher;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `PacketIdentifier`, `Protocol`, and `SubscribeTopic`
[INFO] [stdout]   --> src/tls_v311.rs:10:36
[INFO] [stdout]    |
[INFO] [stdout] 10 | use mqtt311::{MqttWrite, MqttRead, Protocol, ConnectReturnCode, Packet, Connect,
[INFO] [stdout]    |                                    ^^^^^^^^
[INFO] [stdout] 11 |               Connack, QoS, Publish, PacketIdentifier, SubscribeTopic, SubscribeReturnCodes,
[INFO] [stdout]    |                                      ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `pi_atom::Atom`
[INFO] [stdout]   --> src/tls_v311.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use pi_atom::Atom;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/broker.rs:22:1
[INFO] [stdout]    |
[INFO] [stdout] 22 | / ///
[INFO] [stdout] 23 | | /// Mqtt连接回应的系统主题
[INFO] [stdout] 24 | | ///
[INFO] [stdout]    | |_--^
[INFO] [stdout]    |   |
[INFO] [stdout]    |   rustdoc does not generate documentation for macro invocations
[INFO] [stdout]    |
[INFO] [stdout]    = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `connect::QuicSocket`
[INFO] [stdout]   --> src/quic_v311.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 13 |            connect::QuicSocket,
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/quic_broker.rs:19:1
[INFO] [stdout]    |
[INFO] [stdout] 19 | / ///
[INFO] [stdout] 20 | | /// Mqtt连接回应的系统主题
[INFO] [stdout] 21 | | ///
[INFO] [stdout]    | |_--^
[INFO] [stdout]    |   |
[INFO] [stdout]    |   rustdoc does not generate documentation for macro invocations
[INFO] [stdout]    |
[INFO] [stdout]    = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/tls_v311.rs:449:9
[INFO] [stdout]     |
[INFO] [stdout] 449 |     let mut is_public = true; //是否为公共主题
[INFO] [stdout]     |         ----^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/broker.rs:454:17
[INFO] [stdout]     |
[INFO] [stdout] 405 | /                 match len {
[INFO] [stdout] 406 | |                     0 => {
[INFO] [stdout] 407 | |                         //没有任何订阅当前主题的会话，则忽略
[INFO] [stdout] 408 | |                         let retain_copy = retain.clone();
[INFO] [stdout] ...   |
[INFO] [stdout] 450 | |                     },
[INFO] [stdout] 451 | |                 }
[INFO] [stdout]     | |_________________- any code following this `match` expression is unreachable, as all arms diverge
[INFO] [stdout] ...
[INFO] [stdout] 454 |                   self.subscribed(is_public, topic, qos, retain)
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable expression
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/quic_broker.rs:451:17
[INFO] [stdout]     |
[INFO] [stdout] 402 | /                 match len {
[INFO] [stdout] 403 | |                     0 => {
[INFO] [stdout] 404 | |                         //没有任何订阅当前主题的会话，则忽略
[INFO] [stdout] 405 | |                         let retain_copy = retain.clone();
[INFO] [stdout] ...   |
[INFO] [stdout] 447 | |                     },
[INFO] [stdout] 448 | |                 }
[INFO] [stdout]     | |_________________- any code following this `match` expression is unreachable, as all arms diverge
[INFO] [stdout] ...
[INFO] [stdout] 451 |                   self.subscribed(is_public, topic, qos, retain)
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Socket`
[INFO] [stdout]   --> src/v311.rs:17:11
[INFO] [stdout]    |
[INFO] [stdout] 17 | use tcp::{Socket, SocketEvent, SocketHandle,
[INFO] [stdout]    |           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Socket`
[INFO] [stdout]   --> src/tls_v311.rs:17:11
[INFO] [stdout]    |
[INFO] [stdout] 17 | use tcp::{Socket, SocketEvent, SocketHandle,
[INFO] [stdout]    |           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `futures::AsyncWriteExt`
[INFO] [stdout]   --> src/broker.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use futures::AsyncWriteExt;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/v311.rs:322:20
[INFO] [stdout]     |
[INFO] [stdout] 322 |         if let Err(e) = listener
[INFO] [stdout]     |                    ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `context`
[INFO] [stdout]    --> src/v311.rs:175:25
[INFO] [stdout]     |
[INFO] [stdout] 175 |                         context: &mut WsSession,
[INFO] [stdout]     |                         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/tls_v311.rs:316:20
[INFO] [stdout]     |
[INFO] [stdout] 316 |         if let Err(e) = listener
[INFO] [stdout]     |                    ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `context`
[INFO] [stdout]    --> src/tls_v311.rs:172:25
[INFO] [stdout]     |
[INFO] [stdout] 172 |                         context: &mut WsSession,
[INFO] [stdout]     |                         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `count` is never read
[INFO] [stdout]    --> src/broker.rs:292:33
[INFO] [stdout]     |
[INFO] [stdout] 292 |                 let mut count = 0;
[INFO] [stdout]     |                                 ^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `ready_len` is never read
[INFO] [stdout]   --> src/quic_v311.rs:80:37
[INFO] [stdout]    |
[INFO] [stdout] 80 |                 let mut ready_len = 0;
[INFO] [stdout]    |                                     ^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stream_id`
[INFO] [stdout]    --> src/quic_v311.rs:184:22
[INFO] [stdout]     |
[INFO] [stdout] 184 |                      stream_id: Option<StreamId>,
[INFO] [stdout]     |                      ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_stream_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `code`
[INFO] [stdout]    --> src/quic_v311.rs:185:22
[INFO] [stdout]     |
[INFO] [stdout] 185 |                      code: u32,
[INFO] [stdout]     |                      ^^^^ help: if this is intentional, prefix it with an underscore: `_code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `count` is never read
[INFO] [stdout]    --> src/quic_broker.rs:289:33
[INFO] [stdout]     |
[INFO] [stdout] 289 |                 let mut count = 0;
[INFO] [stdout]     |                                 ^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `topic` and `level` are never read
[INFO] [stdout]   --> src/utils.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | struct PathNode<V: ValueEq + Ord + Debug + Clone> {
[INFO] [stdout]    |        -------- fields in this struct
[INFO] [stdout] 23 |     topic:      Topic,                          //节点主题名
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 24 |     level:      usize,                          //节点级别
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PathNode` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/v311.rs:554:17
[INFO] [stdout]     |
[INFO] [stdout] 554 |                 send_packet(&connect, &Packet::Publish(p));
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 554 |                 let _ = send_packet(&connect, &Packet::Publish(p));
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/v311.rs:558:21
[INFO] [stdout]     |
[INFO] [stdout] 558 |                     send_packet(&connect, &Packet::Publish(p));
[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] 558 |                     let _ = send_packet(&connect, &Packet::Publish(p));
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tls_v311.rs:556:17
[INFO] [stdout]     |
[INFO] [stdout] 556 |                 send_packet(&connect, &Packet::Publish(p));
[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] 556 |                 let _ = send_packet(&connect, &Packet::Publish(p));
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tls_v311.rs:560:21
[INFO] [stdout]     |
[INFO] [stdout] 560 |                     send_packet(&connect, &Packet::Publish(p));
[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] 560 |                     let _ = send_packet(&connect, &Packet::Publish(p));
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/broker.rs:487:13
[INFO] [stdout]     |
[INFO] [stdout] 487 |             self.patterns.write().insert(path, session);
[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] 487 |             let _ = self.patterns.write().insert(path, session);
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/broker.rs:588:13
[INFO] [stdout]     |
[INFO] [stdout] 588 |             self.patterns.write().remove(path, session.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] 588 |             let _ = self.patterns.write().remove(path, session.clone());
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/quic_v311.rs:118:29
[INFO] [stdout]     |
[INFO] [stdout] 118 | ...                   handle.close(1000, Err(Error::new(ErrorKind::InvalidInput, format!("{:?}", e))));
[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] 118 |                             let _ = handle.close(1000, Err(Error::new(ErrorKind::InvalidInput, format!("{:?}", e))));
[INFO] [stdout]     |                             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: calls to `std::mem::drop` with a reference instead of an owned value does nothing
[INFO] [stdout]    --> src/quic_v311.rs:123:29
[INFO] [stdout]     |
[INFO] [stdout] 123 | ...                   drop(bin);
[INFO] [stdout]     |                       ^^^^^---^
[INFO] [stdout]     |                            |
[INFO] [stdout]     |                            argument has type `&[u8]`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dropping_references)]` on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the expression or result
[INFO] [stdout]     |
[INFO] [stdout] 123 -                             drop(bin);
[INFO] [stdout] 123 +                             let _ = bin;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/quic_v311.rs:166:21
[INFO] [stdout]     |
[INFO] [stdout] 166 |                     handle.close(1000, Err(Error::new(ErrorKind::InvalidData, format!("{:?}", e))));
[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] 166 |                     let _ = handle.close(1000, Err(Error::new(ErrorKind::InvalidData, format!("{:?}", e))));
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 09s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: num-bigint-dig v0.8.4
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 2`
[INFO] running `Command { std: "docker" "inspect" "0ae2e2aae4287c2db96d387bccce9439448e6888d2b5234d993538b41c15fe6b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "0ae2e2aae4287c2db96d387bccce9439448e6888d2b5234d993538b41c15fe6b", kill_on_drop: false }`
[INFO] [stdout] 0ae2e2aae4287c2db96d387bccce9439448e6888d2b5234d993538b41c15fe6b
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] b270ac633dfe11a000287085e0c86a65adb1f6d2dfea8f1f61c86ed1425c7fd1
[INFO] running `Command { std: "docker" "start" "-a" "b270ac633dfe11a000287085e0c86a65adb1f6d2dfea8f1f61c86ed1425c7fd1", kill_on_drop: false }`
[INFO] [stderr]    Compiling anstream v0.6.20
[INFO] [stderr]    Compiling env_filter v0.1.3
[INFO] [stderr]    Compiling jiff v0.2.15
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/server.rs:23:1
[INFO] [stdout]    |
[INFO] [stdout] 23 | / ///
[INFO] [stdout] 24 | | /// Mqtt代理表和代理映射表
[INFO] [stdout] 25 | | ///
[INFO] [stdout]    | |_--^
[INFO] [stdout]    |   |
[INFO] [stdout]    |   rustdoc does not generate documentation for macro invocations
[INFO] [stdout]    |
[INFO] [stdout]    = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout]    = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/server.rs:31:1
[INFO] [stdout]    |
[INFO] [stdout] 31 | / ///
[INFO] [stdout] 32 | | /// Mqtt的Quic代理表和代理映射表
[INFO] [stdout] 33 | | ///
[INFO] [stdout]    | |_--^
[INFO] [stdout]    |   |
[INFO] [stdout]    |   rustdoc does not generate documentation for macro invocations
[INFO] [stdout]    |
[INFO] [stdout]    = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `mapref::entry::Entry`
[INFO] [stdout]  --> src/server.rs:6:15
[INFO] [stdout]   |
[INFO] [stdout] 6 |               mapref::entry::Entry};
[INFO] [stdout]   |               ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Socket`
[INFO] [stdout]  --> src/server.rs:8:11
[INFO] [stdout]   |
[INFO] [stdout] 8 | use tcp::{Socket,
[INFO] [stdout]   |           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::marker::PhantomData`
[INFO] [stdout]  --> src/v311.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::marker::PhantomData;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/v311.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `mio::Token`
[INFO] [stdout]  --> src/v311.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use mio::Token;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `fnv::FnvBuildHasher`
[INFO] [stdout]  --> src/v311.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use fnv::FnvBuildHasher;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `PacketIdentifier`, `Protocol`, and `SubscribeTopic`
[INFO] [stdout]   --> src/v311.rs:10:36
[INFO] [stdout]    |
[INFO] [stdout] 10 | use mqtt311::{MqttWrite, MqttRead, Protocol, ConnectReturnCode, Packet, Connect,
[INFO] [stdout]    |                                    ^^^^^^^^
[INFO] [stdout] 11 |               Connack, QoS, Publish, PacketIdentifier, SubscribeTopic, SubscribeReturnCodes,
[INFO] [stdout]    |                                      ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `pi_atom::Atom`
[INFO] [stdout]   --> src/v311.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use pi_atom::Atom;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::marker::PhantomData`
[INFO] [stdout]  --> src/tls_v311.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::marker::PhantomData;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/tls_v311.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `mio::Token`
[INFO] [stdout]  --> src/tls_v311.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use mio::Token;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `fnv::FnvBuildHasher`
[INFO] [stdout]  --> src/tls_v311.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use fnv::FnvBuildHasher;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `PacketIdentifier`, `Protocol`, and `SubscribeTopic`
[INFO] [stdout]   --> src/tls_v311.rs:10:36
[INFO] [stdout]    |
[INFO] [stdout] 10 | use mqtt311::{MqttWrite, MqttRead, Protocol, ConnectReturnCode, Packet, Connect,
[INFO] [stdout]    |                                    ^^^^^^^^
[INFO] [stdout] 11 |               Connack, QoS, Publish, PacketIdentifier, SubscribeTopic, SubscribeReturnCodes,
[INFO] [stdout]    |                                      ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `pi_atom::Atom`
[INFO] [stdout]   --> src/tls_v311.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use pi_atom::Atom;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/broker.rs:22:1
[INFO] [stdout]    |
[INFO] [stdout] 22 | / ///
[INFO] [stdout] 23 | | /// Mqtt连接回应的系统主题
[INFO] [stdout] 24 | | ///
[INFO] [stdout]    | |_--^
[INFO] [stdout]    |   |
[INFO] [stdout]    |   rustdoc does not generate documentation for macro invocations
[INFO] [stdout]    |
[INFO] [stdout]    = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `connect::QuicSocket`
[INFO] [stdout]   --> src/quic_v311.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 13 |            connect::QuicSocket,
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/quic_broker.rs:19:1
[INFO] [stdout]    |
[INFO] [stdout] 19 | / ///
[INFO] [stdout] 20 | | /// Mqtt连接回应的系统主题
[INFO] [stdout] 21 | | ///
[INFO] [stdout]    | |_--^
[INFO] [stdout]    |   |
[INFO] [stdout]    |   rustdoc does not generate documentation for macro invocations
[INFO] [stdout]    |
[INFO] [stdout]    = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/tls_v311.rs:449:9
[INFO] [stdout]     |
[INFO] [stdout] 449 |     let mut is_public = true; //是否为公共主题
[INFO] [stdout]     |         ----^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/broker.rs:454:17
[INFO] [stdout]     |
[INFO] [stdout] 405 | /                 match len {
[INFO] [stdout] 406 | |                     0 => {
[INFO] [stdout] 407 | |                         //没有任何订阅当前主题的会话，则忽略
[INFO] [stdout] 408 | |                         let retain_copy = retain.clone();
[INFO] [stdout] ...   |
[INFO] [stdout] 450 | |                     },
[INFO] [stdout] 451 | |                 }
[INFO] [stdout]     | |_________________- any code following this `match` expression is unreachable, as all arms diverge
[INFO] [stdout] ...
[INFO] [stdout] 454 |                   self.subscribed(is_public, topic, qos, retain)
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable expression
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/quic_broker.rs:451:17
[INFO] [stdout]     |
[INFO] [stdout] 402 | /                 match len {
[INFO] [stdout] 403 | |                     0 => {
[INFO] [stdout] 404 | |                         //没有任何订阅当前主题的会话，则忽略
[INFO] [stdout] 405 | |                         let retain_copy = retain.clone();
[INFO] [stdout] ...   |
[INFO] [stdout] 447 | |                     },
[INFO] [stdout] 448 | |                 }
[INFO] [stdout]     | |_________________- any code following this `match` expression is unreachable, as all arms diverge
[INFO] [stdout] ...
[INFO] [stdout] 451 |                   self.subscribed(is_public, topic, qos, retain)
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Socket`
[INFO] [stdout]   --> src/v311.rs:17:11
[INFO] [stdout]    |
[INFO] [stdout] 17 | use tcp::{Socket, SocketEvent, SocketHandle,
[INFO] [stdout]    |           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Socket`
[INFO] [stdout]   --> src/tls_v311.rs:17:11
[INFO] [stdout]    |
[INFO] [stdout] 17 | use tcp::{Socket, SocketEvent, SocketHandle,
[INFO] [stdout]    |           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `futures::AsyncWriteExt`
[INFO] [stdout]   --> src/broker.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use futures::AsyncWriteExt;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/v311.rs:322:20
[INFO] [stdout]     |
[INFO] [stdout] 322 |         if let Err(e) = listener
[INFO] [stdout]     |                    ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `context`
[INFO] [stdout]    --> src/v311.rs:175:25
[INFO] [stdout]     |
[INFO] [stdout] 175 |                         context: &mut WsSession,
[INFO] [stdout]     |                         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/tls_v311.rs:316:20
[INFO] [stdout]     |
[INFO] [stdout] 316 |         if let Err(e) = listener
[INFO] [stdout]     |                    ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `context`
[INFO] [stdout]    --> src/tls_v311.rs:172:25
[INFO] [stdout]     |
[INFO] [stdout] 172 |                         context: &mut WsSession,
[INFO] [stdout]     |                         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `count` is never read
[INFO] [stdout]    --> src/broker.rs:292:33
[INFO] [stdout]     |
[INFO] [stdout] 292 |                 let mut count = 0;
[INFO] [stdout]     |                                 ^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `ready_len` is never read
[INFO] [stdout]   --> src/quic_v311.rs:80:37
[INFO] [stdout]    |
[INFO] [stdout] 80 |                 let mut ready_len = 0;
[INFO] [stdout]    |                                     ^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stream_id`
[INFO] [stdout]    --> src/quic_v311.rs:184:22
[INFO] [stdout]     |
[INFO] [stdout] 184 |                      stream_id: Option<StreamId>,
[INFO] [stdout]     |                      ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_stream_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `code`
[INFO] [stdout]    --> src/quic_v311.rs:185:22
[INFO] [stdout]     |
[INFO] [stdout] 185 |                      code: u32,
[INFO] [stdout]     |                      ^^^^ help: if this is intentional, prefix it with an underscore: `_code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `count` is never read
[INFO] [stdout]    --> src/quic_broker.rs:289:33
[INFO] [stdout]     |
[INFO] [stdout] 289 |                 let mut count = 0;
[INFO] [stdout]     |                                 ^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `topic` and `level` are never read
[INFO] [stdout]   --> src/utils.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | struct PathNode<V: ValueEq + Ord + Debug + Clone> {
[INFO] [stdout]    |        -------- fields in this struct
[INFO] [stdout] 23 |     topic:      Topic,                          //节点主题名
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 24 |     level:      usize,                          //节点级别
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PathNode` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/v311.rs:554:17
[INFO] [stdout]     |
[INFO] [stdout] 554 |                 send_packet(&connect, &Packet::Publish(p));
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 554 |                 let _ = send_packet(&connect, &Packet::Publish(p));
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/v311.rs:558:21
[INFO] [stdout]     |
[INFO] [stdout] 558 |                     send_packet(&connect, &Packet::Publish(p));
[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] 558 |                     let _ = send_packet(&connect, &Packet::Publish(p));
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tls_v311.rs:556:17
[INFO] [stdout]     |
[INFO] [stdout] 556 |                 send_packet(&connect, &Packet::Publish(p));
[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] 556 |                 let _ = send_packet(&connect, &Packet::Publish(p));
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tls_v311.rs:560:21
[INFO] [stdout]     |
[INFO] [stdout] 560 |                     send_packet(&connect, &Packet::Publish(p));
[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] 560 |                     let _ = send_packet(&connect, &Packet::Publish(p));
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/broker.rs:487:13
[INFO] [stdout]     |
[INFO] [stdout] 487 |             self.patterns.write().insert(path, session);
[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] 487 |             let _ = self.patterns.write().insert(path, session);
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/broker.rs:588:13
[INFO] [stdout]     |
[INFO] [stdout] 588 |             self.patterns.write().remove(path, session.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] 588 |             let _ = self.patterns.write().remove(path, session.clone());
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/quic_v311.rs:118:29
[INFO] [stdout]     |
[INFO] [stdout] 118 | ...                   handle.close(1000, Err(Error::new(ErrorKind::InvalidInput, format!("{:?}", e))));
[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] 118 |                             let _ = handle.close(1000, Err(Error::new(ErrorKind::InvalidInput, format!("{:?}", e))));
[INFO] [stdout]     |                             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: calls to `std::mem::drop` with a reference instead of an owned value does nothing
[INFO] [stdout]    --> src/quic_v311.rs:123:29
[INFO] [stdout]     |
[INFO] [stdout] 123 | ...                   drop(bin);
[INFO] [stdout]     |                       ^^^^^---^
[INFO] [stdout]     |                            |
[INFO] [stdout]     |                            argument has type `&[u8]`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dropping_references)]` on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the expression or result
[INFO] [stdout]     |
[INFO] [stdout] 123 -                             drop(bin);
[INFO] [stdout] 123 +                             let _ = bin;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/quic_v311.rs:166:21
[INFO] [stdout]     |
[INFO] [stdout] 166 |                     handle.close(1000, Err(Error::new(ErrorKind::InvalidData, format!("{:?}", e))));
[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] 166 |                     let _ = handle.close(1000, Err(Error::new(ErrorKind::InvalidData, format!("{:?}", e))));
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling env_logger v0.11.8
[INFO] [stderr]    Compiling pi_mqtt v0.5.7 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `ErrorKind` and `Error`
[INFO] [stdout]  --> tests/test.rs:6:15
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::io::{ErrorKind, Result, Error};
[INFO] [stdout]   |               ^^^^^^^^^          ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Topic`
[INFO] [stdout]  --> tests/test.rs:9:26
[INFO] [stdout]   |
[INFO] [stdout] 9 | use mqtt311::{TopicPath, Topic};
[INFO] [stdout]   |                          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AsyncValue`
[INFO] [stdout]   --> tests/test.rs:13:52
[INFO] [stdout]    |
[INFO] [stdout] 13 | use pi_async_rt::rt::{serial::AsyncRuntimeBuilder, AsyncValue, startup_global_time_loop};
[INFO] [stdout]    |                                                    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AsyncService`, `SocketEvent`, `SocketHandle`, and `SocketStatus`
[INFO] [stdout]   --> tests/test.rs:15:11
[INFO] [stdout]    |
[INFO] [stdout] 15 | use tcp::{AsyncService, Socket, SocketHandle, SocketConfig, SocketStatus, SocketEvent,
[INFO] [stdout]    |           ^^^^^^^^^^^^          ^^^^^^^^^^^^                ^^^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ChildProtocol`, `WsSession`, `connect::WsSocket`, and `frame::WsHead`
[INFO] [stdout]   --> tests/test.rs:21:10
[INFO] [stdout]    |
[INFO] [stdout] 21 |          connect::WsSocket,
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 22 |          frame::WsHead,
[INFO] [stdout]    |          ^^^^^^^^^^^^^
[INFO] [stdout] 23 |          utils::{ChildProtocol, WsSession}};
[INFO] [stdout]    |                  ^^^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/server.rs:23:1
[INFO] [stdout]    |
[INFO] [stdout] 23 | / ///
[INFO] [stdout] 24 | | /// Mqtt代理表和代理映射表
[INFO] [stdout] 25 | | ///
[INFO] [stdout]    | |_--^
[INFO] [stdout]    |   |
[INFO] [stdout]    |   rustdoc does not generate documentation for macro invocations
[INFO] [stdout]    |
[INFO] [stdout]    = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout]    = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/server.rs:31:1
[INFO] [stdout]    |
[INFO] [stdout] 31 | / ///
[INFO] [stdout] 32 | | /// Mqtt的Quic代理表和代理映射表
[INFO] [stdout] 33 | | ///
[INFO] [stdout]    | |_--^
[INFO] [stdout]    |   |
[INFO] [stdout]    |   rustdoc does not generate documentation for macro invocations
[INFO] [stdout]    |
[INFO] [stdout]    = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `mapref::entry::Entry`
[INFO] [stdout]  --> src/server.rs:6:15
[INFO] [stdout]   |
[INFO] [stdout] 6 |               mapref::entry::Entry};
[INFO] [stdout]   |               ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Socket`
[INFO] [stdout]  --> src/server.rs:8:11
[INFO] [stdout]   |
[INFO] [stdout] 8 | use tcp::{Socket,
[INFO] [stdout]   |           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::marker::PhantomData`
[INFO] [stdout]  --> src/v311.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::marker::PhantomData;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/v311.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `mio::Token`
[INFO] [stdout]  --> src/v311.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use mio::Token;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `fnv::FnvBuildHasher`
[INFO] [stdout]  --> src/v311.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use fnv::FnvBuildHasher;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `PacketIdentifier`, `Protocol`, and `SubscribeTopic`
[INFO] [stdout]   --> src/v311.rs:10:36
[INFO] [stdout]    |
[INFO] [stdout] 10 | use mqtt311::{MqttWrite, MqttRead, Protocol, ConnectReturnCode, Packet, Connect,
[INFO] [stdout]    |                                    ^^^^^^^^
[INFO] [stdout] 11 |               Connack, QoS, Publish, PacketIdentifier, SubscribeTopic, SubscribeReturnCodes,
[INFO] [stdout]    |                                      ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `pi_atom::Atom`
[INFO] [stdout]   --> src/v311.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use pi_atom::Atom;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::marker::PhantomData`
[INFO] [stdout]  --> src/tls_v311.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::marker::PhantomData;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/tls_v311.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `mio::Token`
[INFO] [stdout]  --> src/tls_v311.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use mio::Token;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `fnv::FnvBuildHasher`
[INFO] [stdout]  --> src/tls_v311.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use fnv::FnvBuildHasher;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `PacketIdentifier`, `Protocol`, and `SubscribeTopic`
[INFO] [stdout]   --> src/tls_v311.rs:10:36
[INFO] [stdout]    |
[INFO] [stdout] 10 | use mqtt311::{MqttWrite, MqttRead, Protocol, ConnectReturnCode, Packet, Connect,
[INFO] [stdout]    |                                    ^^^^^^^^
[INFO] [stdout] 11 |               Connack, QoS, Publish, PacketIdentifier, SubscribeTopic, SubscribeReturnCodes,
[INFO] [stdout]    |                                      ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `pi_atom::Atom`
[INFO] [stdout]   --> src/tls_v311.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use pi_atom::Atom;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/broker.rs:22:1
[INFO] [stdout]    |
[INFO] [stdout] 22 | / ///
[INFO] [stdout] 23 | | /// Mqtt连接回应的系统主题
[INFO] [stdout] 24 | | ///
[INFO] [stdout]    | |_--^
[INFO] [stdout]    |   |
[INFO] [stdout]    |   rustdoc does not generate documentation for macro invocations
[INFO] [stdout]    |
[INFO] [stdout]    = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `connect::QuicSocket`
[INFO] [stdout]   --> src/quic_v311.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 13 |            connect::QuicSocket,
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/quic_broker.rs:19:1
[INFO] [stdout]    |
[INFO] [stdout] 19 | / ///
[INFO] [stdout] 20 | | /// Mqtt连接回应的系统主题
[INFO] [stdout] 21 | | ///
[INFO] [stdout]    | |_--^
[INFO] [stdout]    |   |
[INFO] [stdout]    |   rustdoc does not generate documentation for macro invocations
[INFO] [stdout]    |
[INFO] [stdout]    = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `protocol`
[INFO] [stdout]   --> tests/test.rs:74:18
[INFO] [stdout]    |
[INFO] [stdout] 74 |                  protocol: MqttBrokerProtocol,
[INFO] [stdout]    |                  ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_protocol`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `protocol`
[INFO] [stdout]    --> tests/test.rs:102:15
[INFO] [stdout]     |
[INFO] [stdout] 102 |               protocol: MqttBrokerProtocol,
[INFO] [stdout]     |               ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_protocol`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `context`
[INFO] [stdout]    --> tests/test.rs:104:15
[INFO] [stdout]     |
[INFO] [stdout] 104 |               context: BrokerSession,
[INFO] [stdout]     |               ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `protocol`
[INFO] [stdout]    --> tests/test.rs:119:18
[INFO] [stdout]     |
[INFO] [stdout] 119 |                  protocol: MqttBrokerProtocol,
[INFO] [stdout]     |                  ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_protocol`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `topics`
[INFO] [stdout]    --> tests/test.rs:121:18
[INFO] [stdout]     |
[INFO] [stdout] 121 |                  topics: Vec<(String, u8)>) -> LocalBoxFuture<'static, Result<()>> {
[INFO] [stdout]     |                  ^^^^^^ help: if this is intentional, prefix it with an underscore: `_topics`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `protocol`
[INFO] [stdout]    --> tests/test.rs:149:20
[INFO] [stdout]     |
[INFO] [stdout] 149 |                    protocol: MqttBrokerProtocol,
[INFO] [stdout]     |                    ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_protocol`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `topics`
[INFO] [stdout]    --> tests/test.rs:151:20
[INFO] [stdout]     |
[INFO] [stdout] 151 |                    topics: Vec<String>) -> LocalBoxFuture<'static, Result<()>> {
[INFO] [stdout]     |                    ^^^^^^ help: if this is intentional, prefix it with an underscore: `_topics`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `protocol`
[INFO] [stdout]    --> tests/test.rs:160:16
[INFO] [stdout]     |
[INFO] [stdout] 160 |                protocol: MqttBrokerProtocol,
[INFO] [stdout]     |                ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_protocol`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `driver`
[INFO] [stdout]    --> tests/test.rs:211:12
[INFO] [stdout]     |
[INFO] [stdout] 211 |         Ok(driver) => {
[INFO] [stdout]     |            ^^^^^^ help: if this is intentional, prefix it with an underscore: `_driver`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `driver`
[INFO] [stdout]    --> tests/test.rs:266:12
[INFO] [stdout]     |
[INFO] [stdout] 266 |         Ok(driver) => {
[INFO] [stdout]     |            ^^^^^^ help: if this is intentional, prefix it with an underscore: `_driver`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `protocol`
[INFO] [stdout]    --> tests/test.rs:278:18
[INFO] [stdout]     |
[INFO] [stdout] 278 |                  protocol: MqttBrokerProtocol,
[INFO] [stdout]     |                  ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_protocol`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `protocol`
[INFO] [stdout]    --> tests/test.rs:306:15
[INFO] [stdout]     |
[INFO] [stdout] 306 |               protocol: MqttBrokerProtocol,
[INFO] [stdout]     |               ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_protocol`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `context`
[INFO] [stdout]    --> tests/test.rs:308:15
[INFO] [stdout]     |
[INFO] [stdout] 308 |               context: QuicBrokerSession,
[INFO] [stdout]     |               ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `protocol`
[INFO] [stdout]    --> tests/test.rs:323:18
[INFO] [stdout]     |
[INFO] [stdout] 323 |                  protocol: MqttBrokerProtocol,
[INFO] [stdout]     |                  ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_protocol`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `topics`
[INFO] [stdout]    --> tests/test.rs:325:18
[INFO] [stdout]     |
[INFO] [stdout] 325 |                  topics: Vec<(String, u8)>) -> LocalBoxFuture<'static, Result<()>> {
[INFO] [stdout]     |                  ^^^^^^ help: if this is intentional, prefix it with an underscore: `_topics`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `protocol`
[INFO] [stdout]    --> tests/test.rs:353:20
[INFO] [stdout]     |
[INFO] [stdout] 353 |                    protocol: MqttBrokerProtocol,
[INFO] [stdout]     |                    ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_protocol`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `topics`
[INFO] [stdout]    --> tests/test.rs:355:20
[INFO] [stdout]     |
[INFO] [stdout] 355 |                    topics: Vec<String>) -> LocalBoxFuture<'static, Result<()>> {
[INFO] [stdout]     |                    ^^^^^^ help: if this is intentional, prefix it with an underscore: `_topics`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `protocol`
[INFO] [stdout]    --> tests/test.rs:364:16
[INFO] [stdout]     |
[INFO] [stdout] 364 |                protocol: MqttBrokerProtocol,
[INFO] [stdout]     |                ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_protocol`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `driver`
[INFO] [stdout]    --> tests/test.rs:419:12
[INFO] [stdout]     |
[INFO] [stdout] 419 |         Ok(driver) => {
[INFO] [stdout]     |            ^^^^^^ help: if this is intentional, prefix it with an underscore: `_driver`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `protocol`
[INFO] [stdout]    --> tests/test.rs:431:18
[INFO] [stdout]     |
[INFO] [stdout] 431 |                  protocol: MqttBrokerProtocol,
[INFO] [stdout]     |                  ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_protocol`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `protocol`
[INFO] [stdout]    --> tests/test.rs:443:15
[INFO] [stdout]     |
[INFO] [stdout] 443 |               protocol: MqttBrokerProtocol,
[INFO] [stdout]     |               ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_protocol`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `context`
[INFO] [stdout]    --> tests/test.rs:445:15
[INFO] [stdout]     |
[INFO] [stdout] 445 |               context: BrokerSession,
[INFO] [stdout]     |               ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `protocol`
[INFO] [stdout]    --> tests/test.rs:460:18
[INFO] [stdout]     |
[INFO] [stdout] 460 |                  protocol: MqttBrokerProtocol,
[INFO] [stdout]     |                  ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_protocol`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `protocol`
[INFO] [stdout]    --> tests/test.rs:471:20
[INFO] [stdout]     |
[INFO] [stdout] 471 |                    protocol: MqttBrokerProtocol,
[INFO] [stdout]     |                    ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_protocol`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `topics`
[INFO] [stdout]    --> tests/test.rs:473:20
[INFO] [stdout]     |
[INFO] [stdout] 473 |                    topics: Vec<String>) -> LocalBoxFuture<'static, Result<()>> {
[INFO] [stdout]     |                    ^^^^^^ help: if this is intentional, prefix it with an underscore: `_topics`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `protocol`
[INFO] [stdout]    --> tests/test.rs:482:16
[INFO] [stdout]     |
[INFO] [stdout] 482 |                protocol: MqttBrokerProtocol,
[INFO] [stdout]     |                ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_protocol`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `driver`
[INFO] [stdout]    --> tests/test.rs:537:12
[INFO] [stdout]     |
[INFO] [stdout] 537 |         Ok(driver) => {
[INFO] [stdout]     |            ^^^^^^ help: if this is intentional, prefix it with an underscore: `_driver`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `driver`
[INFO] [stdout]    --> tests/test.rs:591:12
[INFO] [stdout]     |
[INFO] [stdout] 591 |         Ok(driver) => {
[INFO] [stdout]     |            ^^^^^^ help: if this is intentional, prefix it with an underscore: `_driver`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> tests/test.rs:41:5
[INFO] [stdout]    |
[INFO] [stdout] 41 |     tree.insert(TopicPath::from(r"sport/tennis/#"), 100);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 41 |     let _ = tree.insert(TopicPath::from(r"sport/tennis/#"), 100);
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> tests/test.rs:42:5
[INFO] [stdout]    |
[INFO] [stdout] 42 |     tree.insert(TopicPath::from(r"sport/tennis/+"), 300);
[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] 42 |     let _ = tree.insert(TopicPath::from(r"sport/tennis/+"), 300);
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> tests/test.rs:43:5
[INFO] [stdout]    |
[INFO] [stdout] 43 |     tree.insert(TopicPath::from(r"sport/tennis/player1/+/abc/+/+/abc/+/#"), 1000);
[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] 43 |     let _ = tree.insert(TopicPath::from(r"sport/tennis/player1/+/abc/+/+/abc/+/#"), 1000);
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> tests/test.rs:44:5
[INFO] [stdout]    |
[INFO] [stdout] 44 |     tree.insert(TopicPath::from(r"sport/tennis/+/+/abc/+/+/abc/+/+/+"), 3000);
[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 _ = tree.insert(TopicPath::from(r"sport/tennis/+/+/abc/+/+/abc/+/+/+"), 3000);
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> tests/test.rs:52:5
[INFO] [stdout]    |
[INFO] [stdout] 52 |     tree.remove(TopicPath::from(r"sport/tennis/#"), 100);
[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] 52 |     let _ = tree.remove(TopicPath::from(r"sport/tennis/#"), 100);
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> tests/test.rs:53:5
[INFO] [stdout]    |
[INFO] [stdout] 53 |     tree.remove(TopicPath::from(r"sport/tennis/+"), 300);
[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] 53 |     let _ = tree.remove(TopicPath::from(r"sport/tennis/+"), 300);
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> tests/test.rs:62:5
[INFO] [stdout]    |
[INFO] [stdout] 62 |     tree.remove(TopicPath::from(r"sport/tennis/player1/+/abc/+/+/abc/+/#"), 1000);
[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] 62 |     let _ = tree.remove(TopicPath::from(r"sport/tennis/player1/+/abc/+/+/abc/+/#"), 1000);
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> tests/test.rs:63:5
[INFO] [stdout]    |
[INFO] [stdout] 63 |     tree.remove(TopicPath::from(r"sport/tennis/+/+/abc/+/+/abc/+/+/+"), 3000);
[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 _ = tree.remove(TopicPath::from(r"sport/tennis/+/+/abc/+/+/abc/+/+/+"), 3000);
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> tests/test.rs:489:17
[INFO] [stdout]     |
[INFO] [stdout] 489 |                 connect.send(&topic, payload);
[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] 489 |                 let _ = connect.send(&topic, payload);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/tls_v311.rs:449:9
[INFO] [stdout]     |
[INFO] [stdout] 449 |     let mut is_public = true; //是否为公共主题
[INFO] [stdout]     |         ----^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/broker.rs:454:17
[INFO] [stdout]     |
[INFO] [stdout] 405 | /                 match len {
[INFO] [stdout] 406 | |                     0 => {
[INFO] [stdout] 407 | |                         //没有任何订阅当前主题的会话，则忽略
[INFO] [stdout] 408 | |                         let retain_copy = retain.clone();
[INFO] [stdout] ...   |
[INFO] [stdout] 450 | |                     },
[INFO] [stdout] 451 | |                 }
[INFO] [stdout]     | |_________________- any code following this `match` expression is unreachable, as all arms diverge
[INFO] [stdout] ...
[INFO] [stdout] 454 |                   self.subscribed(is_public, topic, qos, retain)
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable expression
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/quic_broker.rs:451:17
[INFO] [stdout]     |
[INFO] [stdout] 402 | /                 match len {
[INFO] [stdout] 403 | |                     0 => {
[INFO] [stdout] 404 | |                         //没有任何订阅当前主题的会话，则忽略
[INFO] [stdout] 405 | |                         let retain_copy = retain.clone();
[INFO] [stdout] ...   |
[INFO] [stdout] 447 | |                     },
[INFO] [stdout] 448 | |                 }
[INFO] [stdout]     | |_________________- any code following this `match` expression is unreachable, as all arms diverge
[INFO] [stdout] ...
[INFO] [stdout] 451 |                   self.subscribed(is_public, topic, qos, retain)
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Socket`
[INFO] [stdout]   --> src/v311.rs:17:11
[INFO] [stdout]    |
[INFO] [stdout] 17 | use tcp::{Socket, SocketEvent, SocketHandle,
[INFO] [stdout]    |           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Socket`
[INFO] [stdout]   --> src/tls_v311.rs:17:11
[INFO] [stdout]    |
[INFO] [stdout] 17 | use tcp::{Socket, SocketEvent, SocketHandle,
[INFO] [stdout]    |           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `futures::AsyncWriteExt`
[INFO] [stdout]   --> src/broker.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use futures::AsyncWriteExt;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/v311.rs:322:20
[INFO] [stdout]     |
[INFO] [stdout] 322 |         if let Err(e) = listener
[INFO] [stdout]     |                    ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `context`
[INFO] [stdout]    --> src/v311.rs:175:25
[INFO] [stdout]     |
[INFO] [stdout] 175 |                         context: &mut WsSession,
[INFO] [stdout]     |                         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/tls_v311.rs:316:20
[INFO] [stdout]     |
[INFO] [stdout] 316 |         if let Err(e) = listener
[INFO] [stdout]     |                    ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `context`
[INFO] [stdout]    --> src/tls_v311.rs:172:25
[INFO] [stdout]     |
[INFO] [stdout] 172 |                         context: &mut WsSession,
[INFO] [stdout]     |                         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `count` is never read
[INFO] [stdout]    --> src/broker.rs:292:33
[INFO] [stdout]     |
[INFO] [stdout] 292 |                 let mut count = 0;
[INFO] [stdout]     |                                 ^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `ready_len` is never read
[INFO] [stdout]   --> src/quic_v311.rs:80:37
[INFO] [stdout]    |
[INFO] [stdout] 80 |                 let mut ready_len = 0;
[INFO] [stdout]    |                                     ^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stream_id`
[INFO] [stdout]    --> src/quic_v311.rs:184:22
[INFO] [stdout]     |
[INFO] [stdout] 184 |                      stream_id: Option<StreamId>,
[INFO] [stdout]     |                      ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_stream_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `code`
[INFO] [stdout]    --> src/quic_v311.rs:185:22
[INFO] [stdout]     |
[INFO] [stdout] 185 |                      code: u32,
[INFO] [stdout]     |                      ^^^^ help: if this is intentional, prefix it with an underscore: `_code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `count` is never read
[INFO] [stdout]    --> src/quic_broker.rs:289:33
[INFO] [stdout]     |
[INFO] [stdout] 289 |                 let mut count = 0;
[INFO] [stdout]     |                                 ^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `topic` and `level` are never read
[INFO] [stdout]   --> src/utils.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | struct PathNode<V: ValueEq + Ord + Debug + Clone> {
[INFO] [stdout]    |        -------- fields in this struct
[INFO] [stdout] 23 |     topic:      Topic,                          //节点主题名
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 24 |     level:      usize,                          //节点级别
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PathNode` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/v311.rs:554:17
[INFO] [stdout]     |
[INFO] [stdout] 554 |                 send_packet(&connect, &Packet::Publish(p));
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 554 |                 let _ = send_packet(&connect, &Packet::Publish(p));
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/v311.rs:558:21
[INFO] [stdout]     |
[INFO] [stdout] 558 |                     send_packet(&connect, &Packet::Publish(p));
[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] 558 |                     let _ = send_packet(&connect, &Packet::Publish(p));
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tls_v311.rs:556:17
[INFO] [stdout]     |
[INFO] [stdout] 556 |                 send_packet(&connect, &Packet::Publish(p));
[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] 556 |                 let _ = send_packet(&connect, &Packet::Publish(p));
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/tls_v311.rs:560:21
[INFO] [stdout]     |
[INFO] [stdout] 560 |                     send_packet(&connect, &Packet::Publish(p));
[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] 560 |                     let _ = send_packet(&connect, &Packet::Publish(p));
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/broker.rs:487:13
[INFO] [stdout]     |
[INFO] [stdout] 487 |             self.patterns.write().insert(path, session);
[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] 487 |             let _ = self.patterns.write().insert(path, session);
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/broker.rs:588:13
[INFO] [stdout]     |
[INFO] [stdout] 588 |             self.patterns.write().remove(path, session.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] 588 |             let _ = self.patterns.write().remove(path, session.clone());
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/quic_v311.rs:118:29
[INFO] [stdout]     |
[INFO] [stdout] 118 | ...                   handle.close(1000, Err(Error::new(ErrorKind::InvalidInput, format!("{:?}", e))));
[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] 118 |                             let _ = handle.close(1000, Err(Error::new(ErrorKind::InvalidInput, format!("{:?}", e))));
[INFO] [stdout]     |                             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: calls to `std::mem::drop` with a reference instead of an owned value does nothing
[INFO] [stdout]    --> src/quic_v311.rs:123:29
[INFO] [stdout]     |
[INFO] [stdout] 123 | ...                   drop(bin);
[INFO] [stdout]     |                       ^^^^^---^
[INFO] [stdout]     |                            |
[INFO] [stdout]     |                            argument has type `&[u8]`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dropping_references)]` on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the expression or result
[INFO] [stdout]     |
[INFO] [stdout] 123 -                             drop(bin);
[INFO] [stdout] 123 +                             let _ = bin;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/quic_v311.rs:166:21
[INFO] [stdout]     |
[INFO] [stdout] 166 |                     handle.close(1000, Err(Error::new(ErrorKind::InvalidData, format!("{:?}", e))));
[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] 166 |                     let _ = handle.close(1000, Err(Error::new(ErrorKind::InvalidData, format!("{:?}", e))));
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 14.14s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: num-bigint-dig v0.8.4
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 2`
[INFO] running `Command { std: "docker" "inspect" "b270ac633dfe11a000287085e0c86a65adb1f6d2dfea8f1f61c86ed1425c7fd1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b270ac633dfe11a000287085e0c86a65adb1f6d2dfea8f1f61c86ed1425c7fd1", kill_on_drop: false }`
[INFO] [stdout] b270ac633dfe11a000287085e0c86a65adb1f6d2dfea8f1f61c86ed1425c7fd1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 33e8d2a0aaa2c5f8188a5afe09ce002e6b345d17f00fd0995171daf6261aeb9f
[INFO] running `Command { std: "docker" "start" "-a" "33e8d2a0aaa2c5f8188a5afe09ce002e6b345d17f00fd0995171daf6261aeb9f", kill_on_drop: false }`
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]   --> src/server.rs:23:1
[INFO] [stderr]    |
[INFO] [stderr] 23 | / ///
[INFO] [stderr] 24 | | /// Mqtt代理表和代理映射表
[INFO] [stderr] 25 | | ///
[INFO] [stderr]    | |_--^
[INFO] [stderr]    |   |
[INFO] [stderr]    |   rustdoc does not generate documentation for macro invocations
[INFO] [stderr]    |
[INFO] [stderr]    = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stderr]    = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]   --> src/server.rs:31:1
[INFO] [stderr]    |
[INFO] [stderr] 31 | / ///
[INFO] [stderr] 32 | | /// Mqtt的Quic代理表和代理映射表
[INFO] [stderr] 33 | | ///
[INFO] [stderr]    | |_--^
[INFO] [stderr]    |   |
[INFO] [stderr]    |   rustdoc does not generate documentation for macro invocations
[INFO] [stderr]    |
[INFO] [stderr]    = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `mapref::entry::Entry`
[INFO] [stderr]  --> src/server.rs:6:15
[INFO] [stderr]   |
[INFO] [stderr] 6 |               mapref::entry::Entry};
[INFO] [stderr]   |               ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Socket`
[INFO] [stderr]  --> src/server.rs:8:11
[INFO] [stderr]   |
[INFO] [stderr] 8 | use tcp::{Socket,
[INFO] [stderr]   |           ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::marker::PhantomData`
[INFO] [stderr]  --> src/v311.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use std::marker::PhantomData;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::collections::HashMap`
[INFO] [stderr]  --> src/v311.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | use std::collections::HashMap;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `mio::Token`
[INFO] [stderr]  --> src/v311.rs:7:5
[INFO] [stderr]   |
[INFO] [stderr] 7 | use mio::Token;
[INFO] [stderr]   |     ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `fnv::FnvBuildHasher`
[INFO] [stderr]  --> src/v311.rs:8:5
[INFO] [stderr]   |
[INFO] [stderr] 8 | use fnv::FnvBuildHasher;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `PacketIdentifier`, `Protocol`, and `SubscribeTopic`
[INFO] [stderr]   --> src/v311.rs:10:36
[INFO] [stderr]    |
[INFO] [stderr] 10 | use mqtt311::{MqttWrite, MqttRead, Protocol, ConnectReturnCode, Packet, Connect,
[INFO] [stderr]    |                                    ^^^^^^^^
[INFO] [stderr] 11 |               Connack, QoS, Publish, PacketIdentifier, SubscribeTopic, SubscribeReturnCodes,
[INFO] [stderr]    |                                      ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `pi_atom::Atom`
[INFO] [stderr]   --> src/v311.rs:15:5
[INFO] [stderr]    |
[INFO] [stderr] 15 | use pi_atom::Atom;
[INFO] [stderr]    |     ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::marker::PhantomData`
[INFO] [stderr]  --> src/tls_v311.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use std::marker::PhantomData;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::collections::HashMap`
[INFO] [stderr]  --> src/tls_v311.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | use std::collections::HashMap;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `mio::Token`
[INFO] [stderr]  --> src/tls_v311.rs:7:5
[INFO] [stderr]   |
[INFO] [stderr] 7 | use mio::Token;
[INFO] [stderr]   |     ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `fnv::FnvBuildHasher`
[INFO] [stderr]  --> src/tls_v311.rs:8:5
[INFO] [stderr]   |
[INFO] [stderr] 8 | use fnv::FnvBuildHasher;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `PacketIdentifier`, `Protocol`, and `SubscribeTopic`
[INFO] [stderr]   --> src/tls_v311.rs:10:36
[INFO] [stderr]    |
[INFO] [stderr] 10 | use mqtt311::{MqttWrite, MqttRead, Protocol, ConnectReturnCode, Packet, Connect,
[INFO] [stderr]    |                                    ^^^^^^^^
[INFO] [stderr] 11 |               Connack, QoS, Publish, PacketIdentifier, SubscribeTopic, SubscribeReturnCodes,
[INFO] [stderr]    |                                      ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `pi_atom::Atom`
[INFO] [stderr]   --> src/tls_v311.rs:15:5
[INFO] [stderr]    |
[INFO] [stderr] 15 | use pi_atom::Atom;
[INFO] [stderr]    |     ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]   --> src/broker.rs:22:1
[INFO] [stderr]    |
[INFO] [stderr] 22 | / ///
[INFO] [stderr] 23 | | /// Mqtt连接回应的系统主题
[INFO] [stderr] 24 | | ///
[INFO] [stderr]    | |_--^
[INFO] [stderr]    |   |
[INFO] [stderr]    |   rustdoc does not generate documentation for macro invocations
[INFO] [stderr]    |
[INFO] [stderr]    = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `connect::QuicSocket`
[INFO] [stderr]   --> src/quic_v311.rs:13:12
[INFO] [stderr]    |
[INFO] [stderr] 13 |            connect::QuicSocket,
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused doc comment
[INFO] [stderr]   --> src/quic_broker.rs:19:1
[INFO] [stderr]    |
[INFO] [stderr] 19 | / ///
[INFO] [stderr] 20 | | /// Mqtt连接回应的系统主题
[INFO] [stderr] 21 | | ///
[INFO] [stderr]    | |_--^
[INFO] [stderr]    |   |
[INFO] [stderr]    |   rustdoc does not generate documentation for macro invocations
[INFO] [stderr]    |
[INFO] [stderr]    = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/tls_v311.rs:449:9
[INFO] [stderr]     |
[INFO] [stderr] 449 |     let mut is_public = true; //是否为公共主题
[INFO] [stderr]     |         ----^^^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable expression
[INFO] [stderr]    --> src/broker.rs:454:17
[INFO] [stderr]     |
[INFO] [stderr] 405 | /                 match len {
[INFO] [stderr] 406 | |                     0 => {
[INFO] [stderr] 407 | |                         //没有任何订阅当前主题的会话，则忽略
[INFO] [stderr] 408 | |                         let retain_copy = retain.clone();
[INFO] [stderr] ...   |
[INFO] [stderr] 450 | |                     },
[INFO] [stderr] 451 | |                 }
[INFO] [stderr]     | |_________________- any code following this `match` expression is unreachable, as all arms diverge
[INFO] [stderr] ...
[INFO] [stderr] 454 |                   self.subscribed(is_public, topic, qos, retain)
[INFO] [stderr]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable expression
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable expression
[INFO] [stderr]    --> src/quic_broker.rs:451:17
[INFO] [stderr]     |
[INFO] [stderr] 402 | /                 match len {
[INFO] [stderr] 403 | |                     0 => {
[INFO] [stderr] 404 | |                         //没有任何订阅当前主题的会话，则忽略
[INFO] [stderr] 405 | |                         let retain_copy = retain.clone();
[INFO] [stderr] ...   |
[INFO] [stderr] 447 | |                     },
[INFO] [stderr] 448 | |                 }
[INFO] [stderr]     | |_________________- any code following this `match` expression is unreachable, as all arms diverge
[INFO] [stderr] ...
[INFO] [stderr] 451 |                   self.subscribed(is_public, topic, qos, retain)
[INFO] [stderr]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable expression
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Socket`
[INFO] [stderr]   --> src/v311.rs:17:11
[INFO] [stderr]    |
[INFO] [stderr] 17 | use tcp::{Socket, SocketEvent, SocketHandle,
[INFO] [stderr]    |           ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Socket`
[INFO] [stderr]   --> src/tls_v311.rs:17:11
[INFO] [stderr]    |
[INFO] [stderr] 17 | use tcp::{Socket, SocketEvent, SocketHandle,
[INFO] [stderr]    |           ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `futures::AsyncWriteExt`
[INFO] [stderr]   --> src/broker.rs:13:5
[INFO] [stderr]    |
[INFO] [stderr] 13 | use futures::AsyncWriteExt;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `e`
[INFO] [stderr]    --> src/v311.rs:322:20
[INFO] [stderr]     |
[INFO] [stderr] 322 |         if let Err(e) = listener
[INFO] [stderr]     |                    ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `context`
[INFO] [stderr]    --> src/v311.rs:175:25
[INFO] [stderr]     |
[INFO] [stderr] 175 |                         context: &mut WsSession,
[INFO] [stderr]     |                         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `e`
[INFO] [stderr]    --> src/tls_v311.rs:316:20
[INFO] [stderr]     |
[INFO] [stderr] 316 |         if let Err(e) = listener
[INFO] [stderr]     |                    ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `context`
[INFO] [stderr]    --> src/tls_v311.rs:172:25
[INFO] [stderr]     |
[INFO] [stderr] 172 |                         context: &mut WsSession,
[INFO] [stderr]     |                         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context`
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `count` is never read
[INFO] [stderr]    --> src/broker.rs:292:33
[INFO] [stderr]     |
[INFO] [stderr] 292 |                 let mut count = 0;
[INFO] [stderr]     |                                 ^
[INFO] [stderr]     |
[INFO] [stderr]     = help: maybe it is overwritten before being read?
[INFO] [stderr]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `ready_len` is never read
[INFO] [stderr]   --> src/quic_v311.rs:80:37
[INFO] [stderr]    |
[INFO] [stderr] 80 |                 let mut ready_len = 0;
[INFO] [stderr]    |                                     ^
[INFO] [stderr]    |
[INFO] [stderr]    = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `stream_id`
[INFO] [stderr]    --> src/quic_v311.rs:184:22
[INFO] [stderr]     |
[INFO] [stderr] 184 |                      stream_id: Option<StreamId>,
[INFO] [stderr]     |                      ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_stream_id`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `code`
[INFO] [stderr]    --> src/quic_v311.rs:185:22
[INFO] [stderr]     |
[INFO] [stderr] 185 |                      code: u32,
[INFO] [stderr]     |                      ^^^^ help: if this is intentional, prefix it with an underscore: `_code`
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `count` is never read
[INFO] [stderr]    --> src/quic_broker.rs:289:33
[INFO] [stderr]     |
[INFO] [stderr] 289 |                 let mut count = 0;
[INFO] [stderr]     |                                 ^
[INFO] [stderr]     |
[INFO] [stderr]     = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: fields `topic` and `level` are never read
[INFO] [stderr]   --> src/utils.rs:23:5
[INFO] [stderr]    |
[INFO] [stderr] 22 | struct PathNode<V: ValueEq + Ord + Debug + Clone> {
[INFO] [stderr]    |        -------- fields in this struct
[INFO] [stderr] 23 |     topic:      Topic,                          //节点主题名
[INFO] [stderr]    |     ^^^^^
[INFO] [stderr] 24 |     level:      usize,                          //节点级别
[INFO] [stderr]    |     ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `PathNode` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> src/v311.rs:554:17
[INFO] [stderr]     |
[INFO] [stderr] 554 |                 send_packet(&connect, &Packet::Publish(p));
[INFO] [stderr]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 554 |                 let _ = send_packet(&connect, &Packet::Publish(p));
[INFO] [stderr]     |                 +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> src/v311.rs:558:21
[INFO] [stderr]     |
[INFO] [stderr] 558 |                     send_packet(&connect, &Packet::Publish(p));
[INFO] [stderr]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 558 |                     let _ = send_packet(&connect, &Packet::Publish(p));
[INFO] [stderr]     |                     +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> src/tls_v311.rs:556:17
[INFO] [stderr]     |
[INFO] [stderr] 556 |                 send_packet(&connect, &Packet::Publish(p));
[INFO] [stderr]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 556 |                 let _ = send_packet(&connect, &Packet::Publish(p));
[INFO] [stderr]     |                 +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> src/tls_v311.rs:560:21
[INFO] [stderr]     |
[INFO] [stderr] 560 |                     send_packet(&connect, &Packet::Publish(p));
[INFO] [stderr]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 560 |                     let _ = send_packet(&connect, &Packet::Publish(p));
[INFO] [stderr]     |                     +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> src/broker.rs:487:13
[INFO] [stderr]     |
[INFO] [stderr] 487 |             self.patterns.write().insert(path, session);
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 487 |             let _ = self.patterns.write().insert(path, session);
[INFO] [stderr]     |             +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> src/broker.rs:588:13
[INFO] [stderr]     |
[INFO] [stderr] 588 |             self.patterns.write().remove(path, session.clone());
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 588 |             let _ = self.patterns.write().remove(path, session.clone());
[INFO] [stderr]     |             +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> src/quic_v311.rs:118:29
[INFO] [stderr]     |
[INFO] [stderr] 118 | ...                   handle.close(1000, Err(Error::new(ErrorKind::InvalidInput, format!("{:?}", e))));
[INFO] [stderr]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 118 |                             let _ = handle.close(1000, Err(Error::new(ErrorKind::InvalidInput, format!("{:?}", e))));
[INFO] [stderr]     |                             +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: calls to `std::mem::drop` with a reference instead of an owned value does nothing
[INFO] [stderr]    --> src/quic_v311.rs:123:29
[INFO] [stderr]     |
[INFO] [stderr] 123 | ...                   drop(bin);
[INFO] [stderr]     |                       ^^^^^---^
[INFO] [stderr]     |                            |
[INFO] [stderr]     |                            argument has type `&[u8]`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(dropping_references)]` on by default
[INFO] [stderr] help: use `let _ = ...` to ignore the expression or result
[INFO] [stderr]     |
[INFO] [stderr] 123 -                             drop(bin);
[INFO] [stderr] 123 +                             let _ = bin;
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> src/quic_v311.rs:166:21
[INFO] [stderr]     |
[INFO] [stderr] 166 |                     handle.close(1000, Err(Error::new(ErrorKind::InvalidData, format!("{:?}", e))));
[INFO] [stderr]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 166 |                     let _ = handle.close(1000, Err(Error::new(ErrorKind::InvalidData, format!("{:?}", e))));
[INFO] [stderr]     |                     +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: `pi_mqtt` (lib) generated 44 warnings (run `cargo fix --lib -p pi_mqtt` to apply 22 suggestions)
[INFO] [stderr] warning: unused imports: `ErrorKind` and `Error`
[INFO] [stderr]  --> tests/test.rs:6:15
[INFO] [stderr]   |
[INFO] [stderr] 6 | use std::io::{ErrorKind, Result, Error};
[INFO] [stderr]   |               ^^^^^^^^^          ^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Topic`
[INFO] [stderr]  --> tests/test.rs:9:26
[INFO] [stderr]   |
[INFO] [stderr] 9 | use mqtt311::{TopicPath, Topic};
[INFO] [stderr]   |                          ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `AsyncValue`
[INFO] [stderr]   --> tests/test.rs:13:52
[INFO] [stderr]    |
[INFO] [stderr] 13 | use pi_async_rt::rt::{serial::AsyncRuntimeBuilder, AsyncValue, startup_global_time_loop};
[INFO] [stderr]    |                                                    ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `AsyncService`, `SocketEvent`, `SocketHandle`, and `SocketStatus`
[INFO] [stderr]   --> tests/test.rs:15:11
[INFO] [stderr]    |
[INFO] [stderr] 15 | use tcp::{AsyncService, Socket, SocketHandle, SocketConfig, SocketStatus, SocketEvent,
[INFO] [stderr]    |           ^^^^^^^^^^^^          ^^^^^^^^^^^^                ^^^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `ChildProtocol`, `WsSession`, `connect::WsSocket`, and `frame::WsHead`
[INFO] [stderr]   --> tests/test.rs:21:10
[INFO] [stderr]    |
[INFO] [stderr] 21 |          connect::WsSocket,
[INFO] [stderr]    |          ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 22 |          frame::WsHead,
[INFO] [stderr]    |          ^^^^^^^^^^^^^
[INFO] [stderr] 23 |          utils::{ChildProtocol, WsSession}};
[INFO] [stderr]    |                  ^^^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `protocol`
[INFO] [stderr]   --> tests/test.rs:74:18
[INFO] [stderr]    |
[INFO] [stderr] 74 |                  protocol: MqttBrokerProtocol,
[INFO] [stderr]    |                  ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_protocol`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `protocol`
[INFO] [stderr]    --> tests/test.rs:102:15
[INFO] [stderr]     |
[INFO] [stderr] 102 |               protocol: MqttBrokerProtocol,
[INFO] [stderr]     |               ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_protocol`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `context`
[INFO] [stderr]    --> tests/test.rs:104:15
[INFO] [stderr]     |
[INFO] [stderr] 104 |               context: BrokerSession,
[INFO] [stderr]     |               ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `protocol`
[INFO] [stderr]    --> tests/test.rs:119:18
[INFO] [stderr]     |
[INFO] [stderr] 119 |                  protocol: MqttBrokerProtocol,
[INFO] [stderr]     |                  ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_protocol`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `topics`
[INFO] [stderr]    --> tests/test.rs:121:18
[INFO] [stderr]     |
[INFO] [stderr] 121 |                  topics: Vec<(String, u8)>) -> LocalBoxFuture<'static, Result<()>> {
[INFO] [stderr]     |                  ^^^^^^ help: if this is intentional, prefix it with an underscore: `_topics`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `protocol`
[INFO] [stderr]    --> tests/test.rs:149:20
[INFO] [stderr]     |
[INFO] [stderr] 149 |                    protocol: MqttBrokerProtocol,
[INFO] [stderr]     |                    ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_protocol`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `topics`
[INFO] [stderr]    --> tests/test.rs:151:20
[INFO] [stderr]     |
[INFO] [stderr] 151 |                    topics: Vec<String>) -> LocalBoxFuture<'static, Result<()>> {
[INFO] [stderr]     |                    ^^^^^^ help: if this is intentional, prefix it with an underscore: `_topics`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `protocol`
[INFO] [stderr]    --> tests/test.rs:160:16
[INFO] [stderr]     |
[INFO] [stderr] 160 |                protocol: MqttBrokerProtocol,
[INFO] [stderr]     |                ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_protocol`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `driver`
[INFO] [stderr]    --> tests/test.rs:211:12
[INFO] [stderr]     |
[INFO] [stderr] 211 |         Ok(driver) => {
[INFO] [stderr]     |            ^^^^^^ help: if this is intentional, prefix it with an underscore: `_driver`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `driver`
[INFO] [stderr]    --> tests/test.rs:266:12
[INFO] [stderr]     |
[INFO] [stderr] 266 |         Ok(driver) => {
[INFO] [stderr]     |            ^^^^^^ help: if this is intentional, prefix it with an underscore: `_driver`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `protocol`
[INFO] [stderr]    --> tests/test.rs:278:18
[INFO] [stderr]     |
[INFO] [stderr] 278 |                  protocol: MqttBrokerProtocol,
[INFO] [stderr]     |                  ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_protocol`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `protocol`
[INFO] [stderr]    --> tests/test.rs:306:15
[INFO] [stderr]     |
[INFO] [stderr] 306 |               protocol: MqttBrokerProtocol,
[INFO] [stderr]     |               ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_protocol`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `context`
[INFO] [stderr]    --> tests/test.rs:308:15
[INFO] [stderr]     |
[INFO] [stderr] 308 |               context: QuicBrokerSession,
[INFO] [stderr]     |               ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `protocol`
[INFO] [stderr]    --> tests/test.rs:323:18
[INFO] [stderr]     |
[INFO] [stderr] 323 |                  protocol: MqttBrokerProtocol,
[INFO] [stderr]     |                  ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_protocol`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `topics`
[INFO] [stderr]    --> tests/test.rs:325:18
[INFO] [stderr]     |
[INFO] [stderr] 325 |                  topics: Vec<(String, u8)>) -> LocalBoxFuture<'static, Result<()>> {
[INFO] [stderr]     |                  ^^^^^^ help: if this is intentional, prefix it with an underscore: `_topics`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `protocol`
[INFO] [stderr]    --> tests/test.rs:353:20
[INFO] [stderr]     |
[INFO] [stderr] 353 |                    protocol: MqttBrokerProtocol,
[INFO] [stderr]     |                    ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_protocol`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `topics`
[INFO] [stderr]    --> tests/test.rs:355:20
[INFO] [stderr]     |
[INFO] [stderr] 355 |                    topics: Vec<String>) -> LocalBoxFuture<'static, Result<()>> {
[INFO] [stderr]     |                    ^^^^^^ help: if this is intentional, prefix it with an underscore: `_topics`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `protocol`
[INFO] [stderr]    --> tests/test.rs:364:16
[INFO] [stderr]     |
[INFO] [stderr] 364 |                protocol: MqttBrokerProtocol,
[INFO] [stderr]     |                ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_protocol`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `driver`
[INFO] [stderr]    --> tests/test.rs:419:12
[INFO] [stderr]     |
[INFO] [stderr] 419 |         Ok(driver) => {
[INFO] [stderr]     |            ^^^^^^ help: if this is intentional, prefix it with an underscore: `_driver`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `protocol`
[INFO] [stderr]    --> tests/test.rs:431:18
[INFO] [stderr]     |
[INFO] [stderr] 431 |                  protocol: MqttBrokerProtocol,
[INFO] [stderr]     |                  ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_protocol`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `protocol`
[INFO] [stderr]    --> tests/test.rs:443:15
[INFO] [stderr]     |
[INFO] [stderr] 443 |               protocol: MqttBrokerProtocol,
[INFO] [stderr]     |               ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_protocol`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `context`
[INFO] [stderr]    --> tests/test.rs:445:15
[INFO] [stderr]     |
[INFO] [stderr] 445 |               context: BrokerSession,
[INFO] [stderr]     |               ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_context`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `protocol`
[INFO] [stderr]    --> tests/test.rs:460:18
[INFO] [stderr]     |
[INFO] [stderr] 460 |                  protocol: MqttBrokerProtocol,
[INFO] [stderr]     |                  ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_protocol`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `protocol`
[INFO] [stderr]    --> tests/test.rs:471:20
[INFO] [stderr]     |
[INFO] [stderr] 471 |                    protocol: MqttBrokerProtocol,
[INFO] [stderr]     |                    ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_protocol`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `topics`
[INFO] [stderr]    --> tests/test.rs:473:20
[INFO] [stderr]     |
[INFO] [stderr] 473 |                    topics: Vec<String>) -> LocalBoxFuture<'static, Result<()>> {
[INFO] [stderr]     |                    ^^^^^^ help: if this is intentional, prefix it with an underscore: `_topics`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `protocol`
[INFO] [stderr]    --> tests/test.rs:482:16
[INFO] [stderr]     |
[INFO] [stderr] 482 |                protocol: MqttBrokerProtocol,
[INFO] [stderr]     |                ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_protocol`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `driver`
[INFO] [stderr]    --> tests/test.rs:537:12
[INFO] [stderr]     |
[INFO] [stderr] 537 |         Ok(driver) => {
[INFO] [stderr]     |            ^^^^^^ help: if this is intentional, prefix it with an underscore: `_driver`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `driver`
[INFO] [stderr]    --> tests/test.rs:591:12
[INFO] [stderr]     |
[INFO] [stderr] 591 |         Ok(driver) => {
[INFO] [stderr]     |            ^^^^^^ help: if this is intentional, prefix it with an underscore: `_driver`
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]   --> tests/test.rs:41:5
[INFO] [stderr]    |
[INFO] [stderr] 41 |     tree.insert(TopicPath::from(r"sport/tennis/#"), 100);
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]    |
[INFO] [stderr] 41 |     let _ = tree.insert(TopicPath::from(r"sport/tennis/#"), 100);
[INFO] [stderr]    |     +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]   --> tests/test.rs:42:5
[INFO] [stderr]    |
[INFO] [stderr] 42 |     tree.insert(TopicPath::from(r"sport/tennis/+"), 300);
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]    |
[INFO] [stderr] 42 |     let _ = tree.insert(TopicPath::from(r"sport/tennis/+"), 300);
[INFO] [stderr]    |     +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]   --> tests/test.rs:43:5
[INFO] [stderr]    |
[INFO] [stderr] 43 |     tree.insert(TopicPath::from(r"sport/tennis/player1/+/abc/+/+/abc/+/#"), 1000);
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]    |
[INFO] [stderr] 43 |     let _ = tree.insert(TopicPath::from(r"sport/tennis/player1/+/abc/+/+/abc/+/#"), 1000);
[INFO] [stderr]    |     +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]   --> tests/test.rs:44:5
[INFO] [stderr]    |
[INFO] [stderr] 44 |     tree.insert(TopicPath::from(r"sport/tennis/+/+/abc/+/+/abc/+/+/+"), 3000);
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]    |
[INFO] [stderr] 44 |     let _ = tree.insert(TopicPath::from(r"sport/tennis/+/+/abc/+/+/abc/+/+/+"), 3000);
[INFO] [stderr]    |     +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]   --> tests/test.rs:52:5
[INFO] [stderr]    |
[INFO] [stderr] 52 |     tree.remove(TopicPath::from(r"sport/tennis/#"), 100);
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]    |
[INFO] [stderr] 52 |     let _ = tree.remove(TopicPath::from(r"sport/tennis/#"), 100);
[INFO] [stderr]    |     +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]   --> tests/test.rs:53:5
[INFO] [stderr]    |
[INFO] [stderr] 53 |     tree.remove(TopicPath::from(r"sport/tennis/+"), 300);
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]    |
[INFO] [stderr] 53 |     let _ = tree.remove(TopicPath::from(r"sport/tennis/+"), 300);
[INFO] [stderr]    |     +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]   --> tests/test.rs:62:5
[INFO] [stderr]    |
[INFO] [stderr] 62 |     tree.remove(TopicPath::from(r"sport/tennis/player1/+/abc/+/+/abc/+/#"), 1000);
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]    |
[INFO] [stderr] 62 |     let _ = tree.remove(TopicPath::from(r"sport/tennis/player1/+/abc/+/+/abc/+/#"), 1000);
[INFO] [stderr]    |     +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]   --> tests/test.rs:63:5
[INFO] [stderr]    |
[INFO] [stderr] 63 |     tree.remove(TopicPath::from(r"sport/tennis/+/+/abc/+/+/abc/+/+/+"), 3000);
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]    |
[INFO] [stderr] 63 |     let _ = tree.remove(TopicPath::from(r"sport/tennis/+/+/abc/+/+/abc/+/+/+"), 3000);
[INFO] [stderr]    |     +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> tests/test.rs:489:17
[INFO] [stderr]     |
[INFO] [stderr] 489 |                 connect.send(&topic, payload);
[INFO] [stderr]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 489 |                 let _ = connect.send(&topic, payload);
[INFO] [stderr]     |                 +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: `pi_mqtt` (test "test") generated 42 warnings (run `cargo fix --test "test" -p pi_mqtt` to apply 33 suggestions)
[INFO] [stderr] warning: `pi_mqtt` (lib test) generated 44 warnings (44 duplicates)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.34s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: num-bigint-dig v0.8.4
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 2`
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/pi_mqtt-28b737a13df857a0)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/test.rs (/opt/rustwide/target/debug/deps/test-f0b7c8338643b845)
[INFO] [stdout] 
[INFO] [stdout] running 6 tests
[INFO] [stdout] test test_tls_mqtt_311_passive ... FAILED
[INFO] [stdout] test test_topic_tree ... FAILED
[INFO] [stdout] test test_quic_mqtt_311 ... FAILED
[INFO] [stdout] test test_tls_mqtt_311 ... FAILED
[INFO] [stdout] test test_mqtt_311_passive ... FAILED
[INFO] [stdout] test test_mqtt_311 has been running for over 60 seconds
[ERROR] error running command: no output for 300 seconds
[INFO] running `Command { std: "docker" "inspect" "33e8d2a0aaa2c5f8188a5afe09ce002e6b345d17f00fd0995171daf6261aeb9f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "33e8d2a0aaa2c5f8188a5afe09ce002e6b345d17f00fd0995171daf6261aeb9f", kill_on_drop: false }`
[INFO] [stdout] 33e8d2a0aaa2c5f8188a5afe09ce002e6b345d17f00fd0995171daf6261aeb9f
