[INFO] cloning repository https://github.com/BestNathan/cc-yes
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/BestNathan/cc-yes" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FBestNathan%2Fcc-yes", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FBestNathan%2Fcc-yes'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 91c987431f790ce2412fcacff66e4ff844576ca4
[INFO] testing BestNathan/cc-yes against 1.98.0-beta.1 for beta-1.98-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FBestNathan%2Fcc-yes" "/workspace/builds/worker-0-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/BestNathan/cc-yes
[INFO] finished tweaking git repo https://github.com/BestNathan/cc-yes
[INFO] tweaked toml for git repo https://github.com/BestNathan/cc-yes written to /workspace/builds/worker-0-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/BestNathan/cc-yes on toolchain 1.98.0-beta.1
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.98.0-beta.1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/BestNathan/cc-yes 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" "+1.98.0-beta.1" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3d5ced03c013a94a2f102a4510f48a6e9184255caf5fd8244f58017bde7f5210" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] f03894b3165fa6932e59d7aa8a19bc3918369db43d9e0da5f3339a11c67f7bc8
[INFO] running `Command { std: "docker" "start" "f03894b3165fa6932e59d7aa8a19bc3918369db43d9e0da5f3339a11c67f7bc8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "f03894b3165fa6932e59d7aa8a19bc3918369db43d9e0da5f3339a11c67f7bc8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "f03894b3165fa6932e59d7aa8a19bc3918369db43d9e0da5f3339a11c67f7bc8" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "f03894b3165fa6932e59d7aa8a19bc3918369db43d9e0da5f3339a11c67f7bc8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "f03894b3165fa6932e59d7aa8a19bc3918369db43d9e0da5f3339a11c67f7bc8" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling log v0.4.32
[INFO] [stderr]    Compiling bitflags v2.12.1
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling crypto-common v0.1.7
[INFO] [stderr]    Compiling yoke v0.8.3
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling anyhow v1.0.102
[INFO] [stderr]    Compiling itertools v0.14.0
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling data-encoding v2.11.0
[INFO] [stderr]    Compiling memchr v2.8.1
[INFO] [stderr]    Compiling clap_derive v4.6.1
[INFO] [stderr]    Compiling openssl v0.10.80
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling zerovec v0.11.6
[INFO] [stderr]    Compiling zerotrie v0.2.4
[INFO] [stderr]    Compiling tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling sha1 v0.10.6
[INFO] [stderr]    Compiling tokio v1.52.3
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling chrono v0.4.45
[INFO] [stderr]    Compiling serde_json v1.0.150
[INFO] [stderr]    Compiling tinystr v0.8.3
[INFO] [stderr]    Compiling potential_utf v0.1.5
[INFO] [stderr]    Compiling icu_collections v2.2.0
[INFO] [stderr]    Compiling icu_locale_core v2.2.0
[INFO] [stderr]    Compiling clap v4.6.1
[INFO] [stderr]    Compiling prost-derive v0.13.5
[INFO] [stderr]    Compiling icu_provider v2.2.0
[INFO] [stderr]    Compiling icu_normalizer v2.2.0
[INFO] [stderr]    Compiling icu_properties v2.2.0
[INFO] [stderr]    Compiling prost v0.13.5
[INFO] [stderr]    Compiling idna_adapter v1.2.2
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling native-tls v0.2.18
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling tungstenite v0.24.0
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling tokio-native-tls v0.3.1
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling tokio-tungstenite v0.24.0
[INFO] [stderr]    Compiling h2 v0.4.14
[INFO] [stderr]    Compiling tower-http v0.6.11
[INFO] [stderr]    Compiling hyper v1.10.1
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling hyper-tls v0.6.0
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling cc-yes v0.1.1 (/opt/rustwide/workdir)
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/ws/proto/heartbeat.rs:33:23
[INFO] [stdout]    |
[INFO] [stdout] 33 |     let (interval_tx, mut interval_rx) = watch::channel(initial_interval);
[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: field `sum` is never read
[INFO] [stdout]  --> src/ws/proto/reassembly.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | struct Pending {
[INFO] [stdout]   |        ------- field in this struct
[INFO] [stdout] 6 |     sum: i32,
[INFO] [stdout]   |     ^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `business::handler::MessageHandler`
[INFO] [stdout]  --> src/ws/mod.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub use business::handler::MessageHandler;
[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: `business::types::IncomingMessage`
[INFO] [stdout]  --> src/ws/mod.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub use business::types::IncomingMessage;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `EventHeader`
[INFO] [stdout]  --> src/ws/mod.rs:9:40
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub use business::event_types::{Event, EventHeader};
[INFO] [stdout]   |                                        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CardActionHandler`, `CardAction`, `CardContext`, `CardResponse`, `Operator`, and `Toast`
[INFO] [stdout]   --> src/ws/mod.rs:12:21
[INFO] [stdout]    |
[INFO] [stdout] 12 |     CardActionBody, Operator, CardAction, CardContext, ActionValue,
[INFO] [stdout]    |                     ^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 13 |     CardActionHandler, CardResponse, Toast,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `proto::headers::MessageType`
[INFO] [stdout]   --> src/ws/mod.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub use proto::headers::MessageType;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]   --> src/main.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use std::sync::Arc;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/ws/proto/heartbeat.rs:33:23
[INFO] [stdout]    |
[INFO] [stdout] 33 |     let (interval_tx, mut interval_rx) = watch::channel(initial_interval);
[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: constant `HEADER_TIMESTAMP` is never used
[INFO] [stdout]  --> src/ws/proto/headers.rs:4:11
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub const HEADER_TIMESTAMP: &str = "timestamp";
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_TRACE_ID` is never used
[INFO] [stdout]  --> src/ws/proto/headers.rs:9:11
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub const HEADER_TRACE_ID: &str = "trace_id";
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_INSTANCE_ID` is never used
[INFO] [stdout]   --> src/ws/proto/headers.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub const HEADER_INSTANCE_ID: &str = "instance_id";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_HANDSHAKE_STATUS` is never used
[INFO] [stdout]   --> src/ws/proto/headers.rs:12:11
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub const HEADER_HANDSHAKE_STATUS: &str = "Handshake-Status";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_HANDSHAKE_MSG` is never used
[INFO] [stdout]   --> src/ws/proto/headers.rs:13:11
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub const HEADER_HANDSHAKE_MSG: &str = "Handshake-Msg";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_HANDSHAKE_AUTH_ERR_CODE` is never used
[INFO] [stdout]   --> src/ws/proto/headers.rs:14:11
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub const HEADER_HANDSHAKE_AUTH_ERR_CODE: &str = "Handshake-Autherrcode";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `as_str` is never used
[INFO] [stdout]   --> src/ws/proto/headers.rs:32:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | impl MessageType {
[INFO] [stdout]    | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 32 |     pub fn as_str(&self) -> &'static str {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FRAME_TYPE_DATA` is never used
[INFO] [stdout]   --> src/ws/proto/headers.rs:42:11
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub const FRAME_TYPE_DATA: i32 = 1;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ERR_FORBIDDEN` is never used
[INFO] [stdout]   --> src/ws/proto/headers.rs:47:11
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub const ERR_FORBIDDEN: i32 = 403;
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ERR_AUTH_FAILED` is never used
[INFO] [stdout]   --> src/ws/proto/headers.rs:48:11
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub const ERR_AUTH_FAILED: i32 = 514;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ERR_EXCEED_CONN_LIMIT` is never used
[INFO] [stdout]   --> src/ws/proto/headers.rs:49:11
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub const ERR_EXCEED_CONN_LIMIT: i32 = 1000040350;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Headers` is never constructed
[INFO] [stdout]   --> src/ws/proto/headers.rs:53:12
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub struct Headers<'a>(pub &'a [Header]);
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get`, `get_int`, and `msg_type` are never used
[INFO] [stdout]   --> src/ws/proto/headers.rs:56:12
[INFO] [stdout]    |
[INFO] [stdout] 55 | impl<'a> Headers<'a> {
[INFO] [stdout]    | -------------------- methods in this implementation
[INFO] [stdout] 56 |     pub fn get(&self, key: &str) -> Option<&str> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 60 |     pub fn get_int(&self, key: &str) -> i32 {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 64 |     pub fn msg_type(&self) -> Option<MessageType> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HeaderBuilder` is never constructed
[INFO] [stdout]   --> src/ws/proto/headers.rs:70:12
[INFO] [stdout]    |
[INFO] [stdout] 70 | pub struct HeaderBuilder {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `add`, `msg_type`, and `build` are never used
[INFO] [stdout]   --> src/ws/proto/headers.rs:75:12
[INFO] [stdout]    |
[INFO] [stdout] 74 | impl HeaderBuilder {
[INFO] [stdout]    | ------------------ associated items in this implementation
[INFO] [stdout] 75 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 79 |     pub fn add(mut self, key: &str, value: &str) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 84 |     pub fn msg_type(self, mt: MessageType) -> Self {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 88 |     pub fn build(self) -> Vec<Header> {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `sum` is never read
[INFO] [stdout]  --> src/ws/proto/reassembly.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | struct Pending {
[INFO] [stdout]   |        ------- field in this struct
[INFO] [stdout] 6 |     sum: i32,
[INFO] [stdout]   |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Handshake`, `ReassemblyTimeout`, `NoHandler`, and `ChannelClosed` are never constructed
[INFO] [stdout]   --> src/ws/proto/error.rs:8:5
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub enum WsError {
[INFO] [stdout]    |          ------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout]  8 |     Handshake { status: u16, msg: String },
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 14 |     ReassemblyTimeout,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 15 |     /// No handler registered for this message type (degraded, return 200)
[INFO] [stdout] 16 |     NoHandler(String),
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 17 |     /// Handler task channel closed — task panicked or exited
[INFO] [stdout] 18 |     ChannelClosed,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `WsError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ClientError` is never constructed
[INFO] [stdout]   --> src/ws/proto/error.rs:71:12
[INFO] [stdout]    |
[INFO] [stdout] 71 | pub struct ClientError {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/ws/proto/error.rs:77:12
[INFO] [stdout]    |
[INFO] [stdout] 76 | impl ClientError {
[INFO] [stdout]    | ---------------- associated function in this implementation
[INFO] [stdout] 77 |     pub fn new(code: i32, message: impl Into<String>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `headers` is never read
[INFO] [stdout]  --> src/ws/business/types.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct IncomingMessage {
[INFO] [stdout]   |            --------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 9 |     pub headers: Vec<crate::ws::proto::frame::Header>,
[INFO] [stdout]   |         ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `IncomingMessage` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `header` is never used
[INFO] [stdout]   --> src/ws/business/types.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl IncomingMessage {
[INFO] [stdout]    | -------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub fn header(&self, key: &str) -> &str {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `operator`, `token`, `host`, and `delivery_type` are never read
[INFO] [stdout]   --> src/ws/business/handlers/card.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct CardActionBody {
[INFO] [stdout]    |            -------------- fields in this struct
[INFO] [stdout] 14 |     pub operator: Operator,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 15 |     pub token: String,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 18 |     pub host: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 19 |     #[serde(default)]
[INFO] [stdout] 20 |     pub delivery_type: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CardActionBody` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `open_id`, `union_id`, `user_id`, and `tenant_key` are never read
[INFO] [stdout]   --> src/ws/business/handlers/card.rs:27:9
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub struct Operator {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] 27 |     pub open_id: String,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 28 |     #[serde(default)]
[INFO] [stdout] 29 |     pub union_id: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 30 |     #[serde(default)]
[INFO] [stdout] 31 |     pub user_id: Option<String>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 32 |     #[serde(default)]
[INFO] [stdout] 33 |     pub tenant_key: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Operator` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> src/ws/business/handlers/card.rs:50:9
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub struct CardAction {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] 50 |     pub tag: Option<String>,
[INFO] [stdout]    |         ^^^
[INFO] [stdout] ...
[INFO] [stdout] 53 |     pub option: Option<String>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 54 |     pub name: Option<String>,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 55 |     pub timezone: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 56 |     #[serde(default)]
[INFO] [stdout] 57 |     pub form_value: Option<serde_json::Map<String, serde_json::Value>>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 58 |     pub input_value: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 59 |     #[serde(default)]
[INFO] [stdout] 60 |     pub options: Option<Vec<String>>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 61 |     pub checked: Option<bool>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CardAction` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `url`, `preview_token`, and `open_chat_id` are never read
[INFO] [stdout]   --> src/ws/business/handlers/card.rs:79:9
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub struct CardContext {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout] 78 |     #[serde(default)]
[INFO] [stdout] 79 |     pub url: Option<String>,
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 80 |     #[serde(default)]
[INFO] [stdout] 81 |     pub preview_token: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 85 |     pub open_chat_id: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CardContext` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Toast` is never constructed
[INFO] [stdout]   --> src/ws/business/handlers/card.rs:99:12
[INFO] [stdout]    |
[INFO] [stdout] 99 | pub struct Toast {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CardResponse` is never constructed
[INFO] [stdout]    --> src/ws/business/handlers/card.rs:106:12
[INFO] [stdout]     |
[INFO] [stdout] 106 | pub struct CardResponse {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `toast` and `empty` are never used
[INFO] [stdout]    --> src/ws/business/handlers/card.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 111 | impl CardResponse {
[INFO] [stdout]     | ----------------- associated functions in this implementation
[INFO] [stdout] 112 |     pub fn toast(content: impl Into<String>) -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 118 |     pub fn empty() -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `CardCallback` is never used
[INFO] [stdout]    --> src/ws/business/handlers/card.rs:125:6
[INFO] [stdout]     |
[INFO] [stdout] 125 | type CardCallback = Box<dyn Fn(CardActionBody) -> CardResponse + Send + Sync + 'static>;
[INFO] [stdout]     |      ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CardActionHandler` is never constructed
[INFO] [stdout]    --> src/ws/business/handlers/card.rs:133:12
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub struct CardActionHandler {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/ws/business/handlers/card.rs:138:12
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl CardActionHandler {
[INFO] [stdout]     | ---------------------- associated function in this implementation
[INFO] [stdout] 138 |     pub fn new<F>(callback: F) -> Self
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `schema` and `header` are never read
[INFO] [stdout]   --> src/ws/business/event_types.rs:23:9
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub struct Event {
[INFO] [stdout]    |            ----- fields in this struct
[INFO] [stdout] 23 |     pub schema: String,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 24 |     pub header: EventHeader,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Event` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `app_id`, `event_type`, `event_id`, `tenant_key`, `token`, and `create_time` are never read
[INFO] [stdout]   --> src/ws/business/event_types.rs:31:9
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub struct EventHeader {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout] 31 |     pub app_id: Option<String>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 32 |     pub event_type: String,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 33 |     #[serde(default)]
[INFO] [stdout] 34 |     pub event_id: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 35 |     #[serde(default)]
[INFO] [stdout] 36 |     pub tenant_key: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 37 |     #[serde(default)]
[INFO] [stdout] 38 |     pub token: Option<String>,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 39 |     #[serde(default)]
[INFO] [stdout] 40 |     pub create_time: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `EventHeader` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_type` is never used
[INFO] [stdout]   --> src/ws/business/event_types.rs:45:12
[INFO] [stdout]    |
[INFO] [stdout] 43 | impl Event {
[INFO] [stdout]    | ---------- method in this implementation
[INFO] [stdout] 44 |     /// Returns true if the event type matches the given string.
[INFO] [stdout] 45 |     pub fn is_type(&self, t: &str) -> bool {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 42.61s
[INFO] running `Command { std: "docker" "inspect" "f03894b3165fa6932e59d7aa8a19bc3918369db43d9e0da5f3339a11c67f7bc8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "f03894b3165fa6932e59d7aa8a19bc3918369db43d9e0da5f3339a11c67f7bc8" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/ws/proto/heartbeat.rs:33:23
[INFO] [stdout]    |
[INFO] [stdout] 33 |     let (interval_tx, mut interval_rx) = watch::channel(initial_interval);
[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: field `sum` is never read
[INFO] [stdout]  --> src/ws/proto/reassembly.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | struct Pending {
[INFO] [stdout]   |        ------- field in this struct
[INFO] [stdout] 6 |     sum: i32,
[INFO] [stdout]   |     ^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `business::handler::MessageHandler`
[INFO] [stdout]  --> src/ws/mod.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub use business::handler::MessageHandler;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling cc-yes v0.1.1 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `business::types::IncomingMessage`
[INFO] [stdout]  --> src/ws/mod.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub use business::types::IncomingMessage;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `EventHeader`
[INFO] [stdout]  --> src/ws/mod.rs:9:40
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub use business::event_types::{Event, EventHeader};
[INFO] [stdout]   |                                        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CardActionHandler`, `CardAction`, `CardContext`, `CardResponse`, `Operator`, and `Toast`
[INFO] [stdout]   --> src/ws/mod.rs:12:21
[INFO] [stdout]    |
[INFO] [stdout] 12 |     CardActionBody, Operator, CardAction, CardContext, ActionValue,
[INFO] [stdout]    |                     ^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 13 |     CardActionHandler, CardResponse, Toast,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `proto::headers::MessageType`
[INFO] [stdout]   --> src/ws/mod.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub use proto::headers::MessageType;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]   --> src/main.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use std::sync::Arc;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/ws/proto/heartbeat.rs:33:23
[INFO] [stdout]    |
[INFO] [stdout] 33 |     let (interval_tx, mut interval_rx) = watch::channel(initial_interval);
[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: constant `HEADER_TIMESTAMP` is never used
[INFO] [stdout]  --> src/ws/proto/headers.rs:4:11
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub const HEADER_TIMESTAMP: &str = "timestamp";
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_TRACE_ID` is never used
[INFO] [stdout]  --> src/ws/proto/headers.rs:9:11
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub const HEADER_TRACE_ID: &str = "trace_id";
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_INSTANCE_ID` is never used
[INFO] [stdout]   --> src/ws/proto/headers.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub const HEADER_INSTANCE_ID: &str = "instance_id";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_HANDSHAKE_STATUS` is never used
[INFO] [stdout]   --> src/ws/proto/headers.rs:12:11
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub const HEADER_HANDSHAKE_STATUS: &str = "Handshake-Status";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_HANDSHAKE_MSG` is never used
[INFO] [stdout]   --> src/ws/proto/headers.rs:13:11
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub const HEADER_HANDSHAKE_MSG: &str = "Handshake-Msg";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_HANDSHAKE_AUTH_ERR_CODE` is never used
[INFO] [stdout]   --> src/ws/proto/headers.rs:14:11
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub const HEADER_HANDSHAKE_AUTH_ERR_CODE: &str = "Handshake-Autherrcode";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `as_str` is never used
[INFO] [stdout]   --> src/ws/proto/headers.rs:32:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | impl MessageType {
[INFO] [stdout]    | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 32 |     pub fn as_str(&self) -> &'static str {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FRAME_TYPE_DATA` is never used
[INFO] [stdout]   --> src/ws/proto/headers.rs:42:11
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub const FRAME_TYPE_DATA: i32 = 1;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ERR_FORBIDDEN` is never used
[INFO] [stdout]   --> src/ws/proto/headers.rs:47:11
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub const ERR_FORBIDDEN: i32 = 403;
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ERR_AUTH_FAILED` is never used
[INFO] [stdout]   --> src/ws/proto/headers.rs:48:11
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub const ERR_AUTH_FAILED: i32 = 514;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ERR_EXCEED_CONN_LIMIT` is never used
[INFO] [stdout]   --> src/ws/proto/headers.rs:49:11
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub const ERR_EXCEED_CONN_LIMIT: i32 = 1000040350;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Headers` is never constructed
[INFO] [stdout]   --> src/ws/proto/headers.rs:53:12
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub struct Headers<'a>(pub &'a [Header]);
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get`, `get_int`, and `msg_type` are never used
[INFO] [stdout]   --> src/ws/proto/headers.rs:56:12
[INFO] [stdout]    |
[INFO] [stdout] 55 | impl<'a> Headers<'a> {
[INFO] [stdout]    | -------------------- methods in this implementation
[INFO] [stdout] 56 |     pub fn get(&self, key: &str) -> Option<&str> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 60 |     pub fn get_int(&self, key: &str) -> i32 {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 64 |     pub fn msg_type(&self) -> Option<MessageType> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HeaderBuilder` is never constructed
[INFO] [stdout]   --> src/ws/proto/headers.rs:70:12
[INFO] [stdout]    |
[INFO] [stdout] 70 | pub struct HeaderBuilder {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `add`, `msg_type`, and `build` are never used
[INFO] [stdout]   --> src/ws/proto/headers.rs:75:12
[INFO] [stdout]    |
[INFO] [stdout] 74 | impl HeaderBuilder {
[INFO] [stdout]    | ------------------ associated items in this implementation
[INFO] [stdout] 75 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 79 |     pub fn add(mut self, key: &str, value: &str) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 84 |     pub fn msg_type(self, mt: MessageType) -> Self {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 88 |     pub fn build(self) -> Vec<Header> {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `sum` is never read
[INFO] [stdout]  --> src/ws/proto/reassembly.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | struct Pending {
[INFO] [stdout]   |        ------- field in this struct
[INFO] [stdout] 6 |     sum: i32,
[INFO] [stdout]   |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Handshake`, `ReassemblyTimeout`, `NoHandler`, and `ChannelClosed` are never constructed
[INFO] [stdout]   --> src/ws/proto/error.rs:8:5
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub enum WsError {
[INFO] [stdout]    |          ------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout]  8 |     Handshake { status: u16, msg: String },
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 14 |     ReassemblyTimeout,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 15 |     /// No handler registered for this message type (degraded, return 200)
[INFO] [stdout] 16 |     NoHandler(String),
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 17 |     /// Handler task channel closed — task panicked or exited
[INFO] [stdout] 18 |     ChannelClosed,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `WsError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ClientError` is never constructed
[INFO] [stdout]   --> src/ws/proto/error.rs:71:12
[INFO] [stdout]    |
[INFO] [stdout] 71 | pub struct ClientError {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/ws/proto/error.rs:77:12
[INFO] [stdout]    |
[INFO] [stdout] 76 | impl ClientError {
[INFO] [stdout]    | ---------------- associated function in this implementation
[INFO] [stdout] 77 |     pub fn new(code: i32, message: impl Into<String>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `headers` is never read
[INFO] [stdout]  --> src/ws/business/types.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct IncomingMessage {
[INFO] [stdout]   |            --------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 9 |     pub headers: Vec<crate::ws::proto::frame::Header>,
[INFO] [stdout]   |         ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `IncomingMessage` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `header` is never used
[INFO] [stdout]   --> src/ws/business/types.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl IncomingMessage {
[INFO] [stdout]    | -------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub fn header(&self, key: &str) -> &str {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `operator`, `token`, `host`, and `delivery_type` are never read
[INFO] [stdout]   --> src/ws/business/handlers/card.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct CardActionBody {
[INFO] [stdout]    |            -------------- fields in this struct
[INFO] [stdout] 14 |     pub operator: Operator,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 15 |     pub token: String,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 18 |     pub host: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 19 |     #[serde(default)]
[INFO] [stdout] 20 |     pub delivery_type: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CardActionBody` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `open_id`, `union_id`, `user_id`, and `tenant_key` are never read
[INFO] [stdout]   --> src/ws/business/handlers/card.rs:27:9
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub struct Operator {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] 27 |     pub open_id: String,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 28 |     #[serde(default)]
[INFO] [stdout] 29 |     pub union_id: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 30 |     #[serde(default)]
[INFO] [stdout] 31 |     pub user_id: Option<String>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 32 |     #[serde(default)]
[INFO] [stdout] 33 |     pub tenant_key: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Operator` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> src/ws/business/handlers/card.rs:50:9
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub struct CardAction {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] 50 |     pub tag: Option<String>,
[INFO] [stdout]    |         ^^^
[INFO] [stdout] ...
[INFO] [stdout] 53 |     pub option: Option<String>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 54 |     pub name: Option<String>,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 55 |     pub timezone: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 56 |     #[serde(default)]
[INFO] [stdout] 57 |     pub form_value: Option<serde_json::Map<String, serde_json::Value>>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 58 |     pub input_value: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 59 |     #[serde(default)]
[INFO] [stdout] 60 |     pub options: Option<Vec<String>>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 61 |     pub checked: Option<bool>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CardAction` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `url`, `preview_token`, and `open_chat_id` are never read
[INFO] [stdout]   --> src/ws/business/handlers/card.rs:79:9
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub struct CardContext {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout] 78 |     #[serde(default)]
[INFO] [stdout] 79 |     pub url: Option<String>,
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 80 |     #[serde(default)]
[INFO] [stdout] 81 |     pub preview_token: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 85 |     pub open_chat_id: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CardContext` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Toast` is never constructed
[INFO] [stdout]   --> src/ws/business/handlers/card.rs:99:12
[INFO] [stdout]    |
[INFO] [stdout] 99 | pub struct Toast {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CardResponse` is never constructed
[INFO] [stdout]    --> src/ws/business/handlers/card.rs:106:12
[INFO] [stdout]     |
[INFO] [stdout] 106 | pub struct CardResponse {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `toast` and `empty` are never used
[INFO] [stdout]    --> src/ws/business/handlers/card.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 111 | impl CardResponse {
[INFO] [stdout]     | ----------------- associated functions in this implementation
[INFO] [stdout] 112 |     pub fn toast(content: impl Into<String>) -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 118 |     pub fn empty() -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `CardCallback` is never used
[INFO] [stdout]    --> src/ws/business/handlers/card.rs:125:6
[INFO] [stdout]     |
[INFO] [stdout] 125 | type CardCallback = Box<dyn Fn(CardActionBody) -> CardResponse + Send + Sync + 'static>;
[INFO] [stdout]     |      ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CardActionHandler` is never constructed
[INFO] [stdout]    --> src/ws/business/handlers/card.rs:133:12
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub struct CardActionHandler {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/ws/business/handlers/card.rs:138:12
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl CardActionHandler {
[INFO] [stdout]     | ---------------------- associated function in this implementation
[INFO] [stdout] 138 |     pub fn new<F>(callback: F) -> Self
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `schema` and `header` are never read
[INFO] [stdout]   --> src/ws/business/event_types.rs:23:9
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub struct Event {
[INFO] [stdout]    |            ----- fields in this struct
[INFO] [stdout] 23 |     pub schema: String,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 24 |     pub header: EventHeader,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Event` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `app_id`, `event_type`, `event_id`, `tenant_key`, `token`, and `create_time` are never read
[INFO] [stdout]   --> src/ws/business/event_types.rs:31:9
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub struct EventHeader {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout] 31 |     pub app_id: Option<String>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 32 |     pub event_type: String,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 33 |     #[serde(default)]
[INFO] [stdout] 34 |     pub event_id: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 35 |     #[serde(default)]
[INFO] [stdout] 36 |     pub tenant_key: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 37 |     #[serde(default)]
[INFO] [stdout] 38 |     pub token: Option<String>,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 39 |     #[serde(default)]
[INFO] [stdout] 40 |     pub create_time: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `EventHeader` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_type` is never used
[INFO] [stdout]   --> src/ws/business/event_types.rs:45:12
[INFO] [stdout]    |
[INFO] [stdout] 43 | impl Event {
[INFO] [stdout]    | ---------- method in this implementation
[INFO] [stdout] 44 |     /// Returns true if the event type matches the given string.
[INFO] [stdout] 45 |     pub fn is_type(&self, t: &str) -> bool {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `business::handler::MessageHandler`
[INFO] [stdout]  --> src/ws/mod.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub use business::handler::MessageHandler;
[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: `business::types::IncomingMessage`
[INFO] [stdout]  --> src/ws/mod.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub use business::types::IncomingMessage;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `EventHeader`
[INFO] [stdout]  --> src/ws/mod.rs:9:40
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub use business::event_types::{Event, EventHeader};
[INFO] [stdout]   |                                        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CardActionHandler`, `CardAction`, `CardContext`, `CardResponse`, `Operator`, and `Toast`
[INFO] [stdout]   --> src/ws/mod.rs:12:21
[INFO] [stdout]    |
[INFO] [stdout] 12 |     CardActionBody, Operator, CardAction, CardContext, ActionValue,
[INFO] [stdout]    |                     ^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 13 |     CardActionHandler, CardResponse, Toast,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `proto::headers::MessageType`
[INFO] [stdout]   --> src/ws/mod.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub use proto::headers::MessageType;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]   --> src/main.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use std::sync::Arc;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/ws/proto/heartbeat.rs:33:23
[INFO] [stdout]    |
[INFO] [stdout] 33 |     let (interval_tx, mut interval_rx) = watch::channel(initial_interval);
[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: field `sum` is never read
[INFO] [stdout]  --> src/ws/proto/reassembly.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | struct Pending {
[INFO] [stdout]   |        ------- field in this struct
[INFO] [stdout] 6 |     sum: i32,
[INFO] [stdout]   |     ^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/ws/proto/heartbeat.rs:33:23
[INFO] [stdout]    |
[INFO] [stdout] 33 |     let (interval_tx, mut interval_rx) = watch::channel(initial_interval);
[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: constant `HEADER_TIMESTAMP` is never used
[INFO] [stdout]  --> src/ws/proto/headers.rs:4:11
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub const HEADER_TIMESTAMP: &str = "timestamp";
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_TRACE_ID` is never used
[INFO] [stdout]  --> src/ws/proto/headers.rs:9:11
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub const HEADER_TRACE_ID: &str = "trace_id";
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_INSTANCE_ID` is never used
[INFO] [stdout]   --> src/ws/proto/headers.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub const HEADER_INSTANCE_ID: &str = "instance_id";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_HANDSHAKE_STATUS` is never used
[INFO] [stdout]   --> src/ws/proto/headers.rs:12:11
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub const HEADER_HANDSHAKE_STATUS: &str = "Handshake-Status";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_HANDSHAKE_MSG` is never used
[INFO] [stdout]   --> src/ws/proto/headers.rs:13:11
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub const HEADER_HANDSHAKE_MSG: &str = "Handshake-Msg";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_HANDSHAKE_AUTH_ERR_CODE` is never used
[INFO] [stdout]   --> src/ws/proto/headers.rs:14:11
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub const HEADER_HANDSHAKE_AUTH_ERR_CODE: &str = "Handshake-Autherrcode";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `as_str` is never used
[INFO] [stdout]   --> src/ws/proto/headers.rs:32:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | impl MessageType {
[INFO] [stdout]    | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 32 |     pub fn as_str(&self) -> &'static str {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FRAME_TYPE_DATA` is never used
[INFO] [stdout]   --> src/ws/proto/headers.rs:42:11
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub const FRAME_TYPE_DATA: i32 = 1;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ERR_FORBIDDEN` is never used
[INFO] [stdout]   --> src/ws/proto/headers.rs:47:11
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub const ERR_FORBIDDEN: i32 = 403;
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ERR_AUTH_FAILED` is never used
[INFO] [stdout]   --> src/ws/proto/headers.rs:48:11
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub const ERR_AUTH_FAILED: i32 = 514;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ERR_EXCEED_CONN_LIMIT` is never used
[INFO] [stdout]   --> src/ws/proto/headers.rs:49:11
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub const ERR_EXCEED_CONN_LIMIT: i32 = 1000040350;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Headers` is never constructed
[INFO] [stdout]   --> src/ws/proto/headers.rs:53:12
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub struct Headers<'a>(pub &'a [Header]);
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get`, `get_int`, and `msg_type` are never used
[INFO] [stdout]   --> src/ws/proto/headers.rs:56:12
[INFO] [stdout]    |
[INFO] [stdout] 55 | impl<'a> Headers<'a> {
[INFO] [stdout]    | -------------------- methods in this implementation
[INFO] [stdout] 56 |     pub fn get(&self, key: &str) -> Option<&str> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 60 |     pub fn get_int(&self, key: &str) -> i32 {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 64 |     pub fn msg_type(&self) -> Option<MessageType> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HeaderBuilder` is never constructed
[INFO] [stdout]   --> src/ws/proto/headers.rs:70:12
[INFO] [stdout]    |
[INFO] [stdout] 70 | pub struct HeaderBuilder {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `add`, `msg_type`, and `build` are never used
[INFO] [stdout]   --> src/ws/proto/headers.rs:75:12
[INFO] [stdout]    |
[INFO] [stdout] 74 | impl HeaderBuilder {
[INFO] [stdout]    | ------------------ associated items in this implementation
[INFO] [stdout] 75 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 79 |     pub fn add(mut self, key: &str, value: &str) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 84 |     pub fn msg_type(self, mt: MessageType) -> Self {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 88 |     pub fn build(self) -> Vec<Header> {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `sum` is never read
[INFO] [stdout]  --> src/ws/proto/reassembly.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | struct Pending {
[INFO] [stdout]   |        ------- field in this struct
[INFO] [stdout] 6 |     sum: i32,
[INFO] [stdout]   |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Handshake`, `ReassemblyTimeout`, `NoHandler`, and `ChannelClosed` are never constructed
[INFO] [stdout]   --> src/ws/proto/error.rs:8:5
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub enum WsError {
[INFO] [stdout]    |          ------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout]  8 |     Handshake { status: u16, msg: String },
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 14 |     ReassemblyTimeout,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 15 |     /// No handler registered for this message type (degraded, return 200)
[INFO] [stdout] 16 |     NoHandler(String),
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 17 |     /// Handler task channel closed — task panicked or exited
[INFO] [stdout] 18 |     ChannelClosed,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `WsError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ClientError` is never constructed
[INFO] [stdout]   --> src/ws/proto/error.rs:71:12
[INFO] [stdout]    |
[INFO] [stdout] 71 | pub struct ClientError {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/ws/proto/error.rs:77:12
[INFO] [stdout]    |
[INFO] [stdout] 76 | impl ClientError {
[INFO] [stdout]    | ---------------- associated function in this implementation
[INFO] [stdout] 77 |     pub fn new(code: i32, message: impl Into<String>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `headers` is never read
[INFO] [stdout]  --> src/ws/business/types.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct IncomingMessage {
[INFO] [stdout]   |            --------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 9 |     pub headers: Vec<crate::ws::proto::frame::Header>,
[INFO] [stdout]   |         ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `IncomingMessage` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `header` is never used
[INFO] [stdout]   --> src/ws/business/types.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl IncomingMessage {
[INFO] [stdout]    | -------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub fn header(&self, key: &str) -> &str {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `operator`, `token`, `host`, and `delivery_type` are never read
[INFO] [stdout]   --> src/ws/business/handlers/card.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct CardActionBody {
[INFO] [stdout]    |            -------------- fields in this struct
[INFO] [stdout] 14 |     pub operator: Operator,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 15 |     pub token: String,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 18 |     pub host: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 19 |     #[serde(default)]
[INFO] [stdout] 20 |     pub delivery_type: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CardActionBody` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `open_id`, `union_id`, `user_id`, and `tenant_key` are never read
[INFO] [stdout]   --> src/ws/business/handlers/card.rs:27:9
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub struct Operator {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] 27 |     pub open_id: String,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 28 |     #[serde(default)]
[INFO] [stdout] 29 |     pub union_id: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 30 |     #[serde(default)]
[INFO] [stdout] 31 |     pub user_id: Option<String>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 32 |     #[serde(default)]
[INFO] [stdout] 33 |     pub tenant_key: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Operator` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> src/ws/business/handlers/card.rs:50:9
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub struct CardAction {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] 50 |     pub tag: Option<String>,
[INFO] [stdout]    |         ^^^
[INFO] [stdout] ...
[INFO] [stdout] 53 |     pub option: Option<String>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 54 |     pub name: Option<String>,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 55 |     pub timezone: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 56 |     #[serde(default)]
[INFO] [stdout] 57 |     pub form_value: Option<serde_json::Map<String, serde_json::Value>>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 58 |     pub input_value: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 59 |     #[serde(default)]
[INFO] [stdout] 60 |     pub options: Option<Vec<String>>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 61 |     pub checked: Option<bool>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CardAction` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `url`, `preview_token`, and `open_chat_id` are never read
[INFO] [stdout]   --> src/ws/business/handlers/card.rs:79:9
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub struct CardContext {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout] 78 |     #[serde(default)]
[INFO] [stdout] 79 |     pub url: Option<String>,
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 80 |     #[serde(default)]
[INFO] [stdout] 81 |     pub preview_token: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 85 |     pub open_chat_id: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CardContext` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Toast` is never constructed
[INFO] [stdout]   --> src/ws/business/handlers/card.rs:99:12
[INFO] [stdout]    |
[INFO] [stdout] 99 | pub struct Toast {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CardResponse` is never constructed
[INFO] [stdout]    --> src/ws/business/handlers/card.rs:106:12
[INFO] [stdout]     |
[INFO] [stdout] 106 | pub struct CardResponse {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `toast` and `empty` are never used
[INFO] [stdout]    --> src/ws/business/handlers/card.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 111 | impl CardResponse {
[INFO] [stdout]     | ----------------- associated functions in this implementation
[INFO] [stdout] 112 |     pub fn toast(content: impl Into<String>) -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 118 |     pub fn empty() -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `CardCallback` is never used
[INFO] [stdout]    --> src/ws/business/handlers/card.rs:125:6
[INFO] [stdout]     |
[INFO] [stdout] 125 | type CardCallback = Box<dyn Fn(CardActionBody) -> CardResponse + Send + Sync + 'static>;
[INFO] [stdout]     |      ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CardActionHandler` is never constructed
[INFO] [stdout]    --> src/ws/business/handlers/card.rs:133:12
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub struct CardActionHandler {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/ws/business/handlers/card.rs:138:12
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl CardActionHandler {
[INFO] [stdout]     | ---------------------- associated function in this implementation
[INFO] [stdout] 138 |     pub fn new<F>(callback: F) -> Self
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `schema` is never read
[INFO] [stdout]   --> src/ws/business/event_types.rs:23:9
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub struct Event {
[INFO] [stdout]    |            ----- field in this struct
[INFO] [stdout] 23 |     pub schema: String,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Event` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `event_id`, `tenant_key`, `token`, and `create_time` are never read
[INFO] [stdout]   --> src/ws/business/event_types.rs:34:9
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub struct EventHeader {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 34 |     pub event_id: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 35 |     #[serde(default)]
[INFO] [stdout] 36 |     pub tenant_key: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 37 |     #[serde(default)]
[INFO] [stdout] 38 |     pub token: Option<String>,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 39 |     #[serde(default)]
[INFO] [stdout] 40 |     pub create_time: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `EventHeader` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 6.29s
[INFO] running `Command { std: "docker" "inspect" "f03894b3165fa6932e59d7aa8a19bc3918369db43d9e0da5f3339a11c67f7bc8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "f03894b3165fa6932e59d7aa8a19bc3918369db43d9e0da5f3339a11c67f7bc8" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/ws/proto/heartbeat.rs:33:23
[INFO] [stderr]    |
[INFO] [stderr] 33 |     let (interval_tx, mut interval_rx) = watch::channel(initial_interval);
[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: field `sum` is never read
[INFO] [stderr]  --> src/ws/proto/reassembly.rs:6:5
[INFO] [stderr]   |
[INFO] [stderr] 5 | struct Pending {
[INFO] [stderr]   |        ------- field in this struct
[INFO] [stderr] 6 |     sum: i32,
[INFO] [stderr]   |     ^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `cc-yes` (lib) generated 2 warnings (run `cargo fix --lib -p cc-yes` to apply 1 suggestion)
[INFO] [stderr] warning: `cc-yes` (lib test) generated 2 warnings (2 duplicates)
[INFO] [stderr] warning: unused import: `business::handler::MessageHandler`
[INFO] [stderr]  --> src/ws/mod.rs:7:9
[INFO] [stderr]   |
[INFO] [stderr] 7 | pub use business::handler::MessageHandler;
[INFO] [stderr]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `business::types::IncomingMessage`
[INFO] [stderr]  --> src/ws/mod.rs:8:9
[INFO] [stderr]   |
[INFO] [stderr] 8 | pub use business::types::IncomingMessage;
[INFO] [stderr]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `EventHeader`
[INFO] [stderr]  --> src/ws/mod.rs:9:40
[INFO] [stderr]   |
[INFO] [stderr] 9 | pub use business::event_types::{Event, EventHeader};
[INFO] [stderr]   |                                        ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `CardActionHandler`, `CardAction`, `CardContext`, `CardResponse`, `Operator`, and `Toast`
[INFO] [stderr]   --> src/ws/mod.rs:12:21
[INFO] [stderr]    |
[INFO] [stderr] 12 |     CardActionBody, Operator, CardAction, CardContext, ActionValue,
[INFO] [stderr]    |                     ^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stderr] 13 |     CardActionHandler, CardResponse, Toast,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^  ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `proto::headers::MessageType`
[INFO] [stderr]   --> src/ws/mod.rs:15:9
[INFO] [stderr]    |
[INFO] [stderr] 15 | pub use proto::headers::MessageType;
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::sync::Arc`
[INFO] [stderr]   --> src/main.rs:14:5
[INFO] [stderr]    |
[INFO] [stderr] 14 | use std::sync::Arc;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `HEADER_TIMESTAMP` is never used
[INFO] [stderr]  --> src/ws/proto/headers.rs:4:11
[INFO] [stderr]   |
[INFO] [stderr] 4 | pub const HEADER_TIMESTAMP: &str = "timestamp";
[INFO] [stderr]   |           ^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: constant `HEADER_TRACE_ID` is never used
[INFO] [stderr]  --> src/ws/proto/headers.rs:9:11
[INFO] [stderr]   |
[INFO] [stderr] 9 | pub const HEADER_TRACE_ID: &str = "trace_id";
[INFO] [stderr]   |           ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `HEADER_INSTANCE_ID` is never used
[INFO] [stderr]   --> src/ws/proto/headers.rs:10:11
[INFO] [stderr]    |
[INFO] [stderr] 10 | pub const HEADER_INSTANCE_ID: &str = "instance_id";
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `HEADER_HANDSHAKE_STATUS` is never used
[INFO] [stderr]   --> src/ws/proto/headers.rs:12:11
[INFO] [stderr]    |
[INFO] [stderr] 12 | pub const HEADER_HANDSHAKE_STATUS: &str = "Handshake-Status";
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `HEADER_HANDSHAKE_MSG` is never used
[INFO] [stderr]   --> src/ws/proto/headers.rs:13:11
[INFO] [stderr]    |
[INFO] [stderr] 13 | pub const HEADER_HANDSHAKE_MSG: &str = "Handshake-Msg";
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `HEADER_HANDSHAKE_AUTH_ERR_CODE` is never used
[INFO] [stderr]   --> src/ws/proto/headers.rs:14:11
[INFO] [stderr]    |
[INFO] [stderr] 14 | pub const HEADER_HANDSHAKE_AUTH_ERR_CODE: &str = "Handshake-Autherrcode";
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `as_str` is never used
[INFO] [stderr]   --> src/ws/proto/headers.rs:32:12
[INFO] [stderr]    |
[INFO] [stderr] 23 | impl MessageType {
[INFO] [stderr]    | ---------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 32 |     pub fn as_str(&self) -> &'static str {
[INFO] [stderr]    |            ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `FRAME_TYPE_DATA` is never used
[INFO] [stderr]   --> src/ws/proto/headers.rs:42:11
[INFO] [stderr]    |
[INFO] [stderr] 42 | pub const FRAME_TYPE_DATA: i32 = 1;
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `ERR_FORBIDDEN` is never used
[INFO] [stderr]   --> src/ws/proto/headers.rs:47:11
[INFO] [stderr]    |
[INFO] [stderr] 47 | pub const ERR_FORBIDDEN: i32 = 403;
[INFO] [stderr]    |           ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `ERR_AUTH_FAILED` is never used
[INFO] [stderr]   --> src/ws/proto/headers.rs:48:11
[INFO] [stderr]    |
[INFO] [stderr] 48 | pub const ERR_AUTH_FAILED: i32 = 514;
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `ERR_EXCEED_CONN_LIMIT` is never used
[INFO] [stderr]   --> src/ws/proto/headers.rs:49:11
[INFO] [stderr]    |
[INFO] [stderr] 49 | pub const ERR_EXCEED_CONN_LIMIT: i32 = 1000040350;
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Headers` is never constructed
[INFO] [stderr]   --> src/ws/proto/headers.rs:53:12
[INFO] [stderr]    |
[INFO] [stderr] 53 | pub struct Headers<'a>(pub &'a [Header]);
[INFO] [stderr]    |            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `get`, `get_int`, and `msg_type` are never used
[INFO] [stderr]   --> src/ws/proto/headers.rs:56:12
[INFO] [stderr]    |
[INFO] [stderr] 55 | impl<'a> Headers<'a> {
[INFO] [stderr]    | -------------------- methods in this implementation
[INFO] [stderr] 56 |     pub fn get(&self, key: &str) -> Option<&str> {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 60 |     pub fn get_int(&self, key: &str) -> i32 {
[INFO] [stderr]    |            ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 64 |     pub fn msg_type(&self) -> Option<MessageType> {
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `HeaderBuilder` is never constructed
[INFO] [stderr]   --> src/ws/proto/headers.rs:70:12
[INFO] [stderr]    |
[INFO] [stderr] 70 | pub struct HeaderBuilder {
[INFO] [stderr]    |            ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new`, `add`, `msg_type`, and `build` are never used
[INFO] [stderr]   --> src/ws/proto/headers.rs:75:12
[INFO] [stderr]    |
[INFO] [stderr] 74 | impl HeaderBuilder {
[INFO] [stderr]    | ------------------ associated items in this implementation
[INFO] [stderr] 75 |     pub fn new() -> Self {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 79 |     pub fn add(mut self, key: &str, value: &str) -> Self {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 84 |     pub fn msg_type(self, mt: MessageType) -> Self {
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 88 |     pub fn build(self) -> Vec<Header> {
[INFO] [stderr]    |            ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `sum` is never read
[INFO] [stderr]  --> src/ws/proto/reassembly.rs:6:5
[INFO] [stderr]   |
[INFO] [stderr] 5 | struct Pending {
[INFO] [stderr]   |        ------- field in this struct
[INFO] [stderr] 6 |     sum: i32,
[INFO] [stderr]   |     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variants `Handshake`, `ReassemblyTimeout`, `NoHandler`, and `ChannelClosed` are never constructed
[INFO] [stderr]   --> src/ws/proto/error.rs:8:5
[INFO] [stderr]    |
[INFO] [stderr]  4 | pub enum WsError {
[INFO] [stderr]    |          ------- variants in this enum
[INFO] [stderr] ...
[INFO] [stderr]  8 |     Handshake { status: u16, msg: String },
[INFO] [stderr]    |     ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 14 |     ReassemblyTimeout,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 15 |     /// No handler registered for this message type (degraded, return 200)
[INFO] [stderr] 16 |     NoHandler(String),
[INFO] [stderr]    |     ^^^^^^^^^
[INFO] [stderr] 17 |     /// Handler task channel closed — task panicked or exited
[INFO] [stderr] 18 |     ChannelClosed,
[INFO] [stderr]    |     ^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `WsError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: struct `ClientError` is never constructed
[INFO] [stderr]   --> src/ws/proto/error.rs:71:12
[INFO] [stderr]    |
[INFO] [stderr] 71 | pub struct ClientError {
[INFO] [stderr]    |            ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]   --> src/ws/proto/error.rs:77:12
[INFO] [stderr]    |
[INFO] [stderr] 76 | impl ClientError {
[INFO] [stderr]    | ---------------- associated function in this implementation
[INFO] [stderr] 77 |     pub fn new(code: i32, message: impl Into<String>) -> Self {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `headers` is never read
[INFO] [stderr]  --> src/ws/business/types.rs:9:9
[INFO] [stderr]   |
[INFO] [stderr] 5 | pub struct IncomingMessage {
[INFO] [stderr]   |            --------------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 9 |     pub headers: Vec<crate::ws::proto::frame::Header>,
[INFO] [stderr]   |         ^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `IncomingMessage` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: method `header` is never used
[INFO] [stderr]   --> src/ws/business/types.rs:24:12
[INFO] [stderr]    |
[INFO] [stderr] 14 | impl IncomingMessage {
[INFO] [stderr]    | -------------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 24 |     pub fn header(&self, key: &str) -> &str {
[INFO] [stderr]    |            ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `operator`, `token`, `host`, and `delivery_type` are never read
[INFO] [stderr]   --> src/ws/business/handlers/card.rs:14:9
[INFO] [stderr]    |
[INFO] [stderr] 13 | pub struct CardActionBody {
[INFO] [stderr]    |            -------------- fields in this struct
[INFO] [stderr] 14 |     pub operator: Operator,
[INFO] [stderr]    |         ^^^^^^^^
[INFO] [stderr] 15 |     pub token: String,
[INFO] [stderr]    |         ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 18 |     pub host: String,
[INFO] [stderr]    |         ^^^^
[INFO] [stderr] 19 |     #[serde(default)]
[INFO] [stderr] 20 |     pub delivery_type: Option<String>,
[INFO] [stderr]    |         ^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `CardActionBody` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `open_id`, `union_id`, `user_id`, and `tenant_key` are never read
[INFO] [stderr]   --> src/ws/business/handlers/card.rs:27:9
[INFO] [stderr]    |
[INFO] [stderr] 26 | pub struct Operator {
[INFO] [stderr]    |            -------- fields in this struct
[INFO] [stderr] 27 |     pub open_id: String,
[INFO] [stderr]    |         ^^^^^^^
[INFO] [stderr] 28 |     #[serde(default)]
[INFO] [stderr] 29 |     pub union_id: Option<String>,
[INFO] [stderr]    |         ^^^^^^^^
[INFO] [stderr] 30 |     #[serde(default)]
[INFO] [stderr] 31 |     pub user_id: Option<String>,
[INFO] [stderr]    |         ^^^^^^^
[INFO] [stderr] 32 |     #[serde(default)]
[INFO] [stderr] 33 |     pub tenant_key: Option<String>,
[INFO] [stderr]    |         ^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Operator` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: multiple fields are never read
[INFO] [stderr]   --> src/ws/business/handlers/card.rs:50:9
[INFO] [stderr]    |
[INFO] [stderr] 49 | pub struct CardAction {
[INFO] [stderr]    |            ---------- fields in this struct
[INFO] [stderr] 50 |     pub tag: Option<String>,
[INFO] [stderr]    |         ^^^
[INFO] [stderr] ...
[INFO] [stderr] 53 |     pub option: Option<String>,
[INFO] [stderr]    |         ^^^^^^
[INFO] [stderr] 54 |     pub name: Option<String>,
[INFO] [stderr]    |         ^^^^
[INFO] [stderr] 55 |     pub timezone: Option<String>,
[INFO] [stderr]    |         ^^^^^^^^
[INFO] [stderr] 56 |     #[serde(default)]
[INFO] [stderr] 57 |     pub form_value: Option<serde_json::Map<String, serde_json::Value>>,
[INFO] [stderr]    |         ^^^^^^^^^^
[INFO] [stderr] 58 |     pub input_value: Option<String>,
[INFO] [stderr]    |         ^^^^^^^^^^^
[INFO] [stderr] 59 |     #[serde(default)]
[INFO] [stderr] 60 |     pub options: Option<Vec<String>>,
[INFO] [stderr]    |         ^^^^^^^
[INFO] [stderr] 61 |     pub checked: Option<bool>,
[INFO] [stderr]    |         ^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `CardAction` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `url`, `preview_token`, and `open_chat_id` are never read
[INFO] [stderr]   --> src/ws/business/handlers/card.rs:79:9
[INFO] [stderr]    |
[INFO] [stderr] 77 | pub struct CardContext {
[INFO] [stderr]    |            ----------- fields in this struct
[INFO] [stderr] 78 |     #[serde(default)]
[INFO] [stderr] 79 |     pub url: Option<String>,
[INFO] [stderr]    |         ^^^
[INFO] [stderr] 80 |     #[serde(default)]
[INFO] [stderr] 81 |     pub preview_token: Option<String>,
[INFO] [stderr]    |         ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 85 |     pub open_chat_id: Option<String>,
[INFO] [stderr]    |         ^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `CardContext` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Toast` is never constructed
[INFO] [stderr]   --> src/ws/business/handlers/card.rs:99:12
[INFO] [stderr]    |
[INFO] [stderr] 99 | pub struct Toast {
[INFO] [stderr]    |            ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `CardResponse` is never constructed
[INFO] [stderr]    --> src/ws/business/handlers/card.rs:106:12
[INFO] [stderr]     |
[INFO] [stderr] 106 | pub struct CardResponse {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated functions `toast` and `empty` are never used
[INFO] [stderr]    --> src/ws/business/handlers/card.rs:112:12
[INFO] [stderr]     |
[INFO] [stderr] 111 | impl CardResponse {
[INFO] [stderr]     | ----------------- associated functions in this implementation
[INFO] [stderr] 112 |     pub fn toast(content: impl Into<String>) -> Self {
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 118 |     pub fn empty() -> Self {
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: type alias `CardCallback` is never used
[INFO] [stderr]    --> src/ws/business/handlers/card.rs:125:6
[INFO] [stderr]     |
[INFO] [stderr] 125 | type CardCallback = Box<dyn Fn(CardActionBody) -> CardResponse + Send + Sync + 'static>;
[INFO] [stderr]     |      ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `CardActionHandler` is never constructed
[INFO] [stderr]    --> src/ws/business/handlers/card.rs:133:12
[INFO] [stderr]     |
[INFO] [stderr] 133 | pub struct CardActionHandler {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]    --> src/ws/business/handlers/card.rs:138:12
[INFO] [stderr]     |
[INFO] [stderr] 137 | impl CardActionHandler {
[INFO] [stderr]     | ---------------------- associated function in this implementation
[INFO] [stderr] 138 |     pub fn new<F>(callback: F) -> Self
[INFO] [stderr]     |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `schema` is never read
[INFO] [stderr]   --> src/ws/business/event_types.rs:23:9
[INFO] [stderr]    |
[INFO] [stderr] 22 | pub struct Event {
[INFO] [stderr]    |            ----- field in this struct
[INFO] [stderr] 23 |     pub schema: String,
[INFO] [stderr]    |         ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Event` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `event_id`, `tenant_key`, `token`, and `create_time` are never read
[INFO] [stderr]   --> src/ws/business/event_types.rs:34:9
[INFO] [stderr]    |
[INFO] [stderr] 30 | pub struct EventHeader {
[INFO] [stderr]    |            ----------- fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 34 |     pub event_id: Option<String>,
[INFO] [stderr]    |         ^^^^^^^^
[INFO] [stderr] 35 |     #[serde(default)]
[INFO] [stderr] 36 |     pub tenant_key: Option<String>,
[INFO] [stderr]    |         ^^^^^^^^^^
[INFO] [stderr] 37 |     #[serde(default)]
[INFO] [stderr] 38 |     pub token: Option<String>,
[INFO] [stderr]    |         ^^^^^
[INFO] [stderr] 39 |     #[serde(default)]
[INFO] [stderr] 40 |     pub create_time: Option<String>,
[INFO] [stderr]    |         ^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `EventHeader` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `schema` and `header` are never read
[INFO] [stderr]   --> src/ws/business/event_types.rs:23:9
[INFO] [stderr]    |
[INFO] [stderr] 22 | pub struct Event {
[INFO] [stderr]    |            ----- fields in this struct
[INFO] [stderr] 23 |     pub schema: String,
[INFO] [stderr]    |         ^^^^^^
[INFO] [stderr] 24 |     pub header: EventHeader,
[INFO] [stderr]    |         ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Event` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `app_id`, `event_type`, `event_id`, `tenant_key`, `token`, and `create_time` are never read
[INFO] [stderr]   --> src/ws/business/event_types.rs:31:9
[INFO] [stderr]    |
[INFO] [stderr] 30 | pub struct EventHeader {
[INFO] [stderr]    |            ----------- fields in this struct
[INFO] [stderr] 31 |     pub app_id: Option<String>,
[INFO] [stderr]    |         ^^^^^^
[INFO] [stderr] 32 |     pub event_type: String,
[INFO] [stderr]    |         ^^^^^^^^^^
[INFO] [stderr] 33 |     #[serde(default)]
[INFO] [stderr] 34 |     pub event_id: Option<String>,
[INFO] [stderr]    |         ^^^^^^^^
[INFO] [stderr] 35 |     #[serde(default)]
[INFO] [stderr] 36 |     pub tenant_key: Option<String>,
[INFO] [stderr]    |         ^^^^^^^^^^
[INFO] [stderr] 37 |     #[serde(default)]
[INFO] [stderr] 38 |     pub token: Option<String>,
[INFO] [stderr]    |         ^^^^^
[INFO] [stderr] 39 |     #[serde(default)]
[INFO] [stderr] 40 |     pub create_time: Option<String>,
[INFO] [stderr]    |         ^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `EventHeader` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: method `is_type` is never used
[INFO] [stderr]   --> src/ws/business/event_types.rs:45:12
[INFO] [stderr]    |
[INFO] [stderr] 43 | impl Event {
[INFO] [stderr]    | ---------- method in this implementation
[INFO] [stderr] 44 |     /// Returns true if the event type matches the given string.
[INFO] [stderr] 45 |     pub fn is_type(&self, t: &str) -> bool {
[INFO] [stderr]    |            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `cc-yes` (bin "cc-yes" test) generated 40 warnings (1 duplicate) (run `cargo fix --bin "cc-yes" -p cc-yes --tests` to apply 6 suggestions)
[INFO] [stderr] warning: `cc-yes` (bin "cc-yes") generated 41 warnings (38 duplicates)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.24s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/cc_yes-07cb65c74fc7fcd6)
[INFO] [stdout] 
[INFO] [stdout] running 13 tests
[INFO] [stdout] test ws::business::event_types::tests::non_card_event ... ok
[INFO] [stdout] test ws::business::event_types::tests::parse_event_envelope ... ok
[INFO] [stdout] test ws::business::handlers::card::tests::parse_card_action_value ... ok
[INFO] [stdout] test ws::business::registry::tests::no_handler_returns_error ... ok
[INFO] [stdout] test ws::proto::codec::tests::decode_encode_roundtrip ... ok
[INFO] [stdout] test ws::business::registry::tests::register_and_dispatch ... ok
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/cc_yes-a99e05fb5183a754)
[INFO] [stdout] test ws::business::registry::tests::reregister_replaces_old ... ok
[INFO] [stdout] test ws::proto::frame::tests::data_frame_method_one ... ok
[INFO] [stdout] test ws::proto::frame::tests::control_frame_method_zero ... ok
[INFO] [stdout] test ws::proto::frame::tests::frame_encode_decode_roundtrip ... ok
[INFO] [stdout] test ws::proto::reassembly::tests::multipart_out_of_order ... ok
[INFO] [stdout] test ws::proto::reassembly::tests::multipart_in_order ... ok
[INFO] [stdout] test ws::proto::reassembly::tests::single_packet_no_reassembly ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 13 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 34 tests
[INFO] [stdout] test matcher::tests::test_env_exact ... ok
[INFO] [stdout] test matcher::tests::test_empty_extraction_delegates ... ok
[INFO] [stdout] test matcher::tests::test_file_glob ... ok
[INFO] [stdout] test matcher::tests::test_exact_match ... ok
[INFO] [stdout] test matcher::tests::test_glob_match ... ok
[INFO] [stdout] test matcher::tests::test_full_match_all ... ok
[INFO] [stdout] test matcher::tests::test_mismatch_causes_delegate ... ok
[INFO] [stdout] test matcher::tests::test_prefix_match ... ok
[INFO] [stdout] test matcher::tests::test_url_glob ... ok
[INFO] [stdout] test parser::tests::test_bash_c_flag_not_treated_as_script ... ok
[INFO] [stdout] test parser::tests::test_parse_compound_command ... ok
[INFO] [stdout] test parser::tests::test_parse_python_script ... ok
[INFO] [stdout] test parser::tests::test_parse_simple_git ... ok
[INFO] [stdout] test parser::tests::test_parse_with_env ... ok
[INFO] [stdout] test parser::tests::test_python_c_flag_not_treated_as_script ... ok
[INFO] [stdout] test parser::tests::test_parse_with_url ... ok
[INFO] [stdout] test ws::business::event_types::tests::non_card_event ... ok
[INFO] [stdout] test ws::proto::reassembly::tests::multipart_out_of_order ... ok
[INFO] [stdout] test settings::tests::test_autoyes_not_set_returns_none ... ok
[INFO] [stdout] test ws::business::event_types::tests::parse_event_envelope ... ok
[INFO] [stdout] test ws::proto::reassembly::tests::multipart_in_order ... ok
[INFO] [stdout] test settings::tests::test_autoyes_global_override ... ok
[INFO] [stdout] test ws::business::registry::tests::no_handler_returns_error ... ok
[INFO] [stdout] test ws::business::handlers::card::tests::parse_card_action_value ... ok
[INFO] [stdout] test ws::business::registry::tests::register_and_dispatch ... ok
[INFO] [stdout] test settings::tests::test_autoyes_local_override ... ok
[INFO] [stdout] test settings::tests::test_three_layer_merge ... ok
[INFO] [stdout] test ws::business::registry::tests::reregister_replaces_old ... ok
[INFO] [stdout] test ws::proto::frame::tests::control_frame_method_zero ... ok
[INFO] [stdout] test ws::proto::frame::tests::data_frame_method_one ... ok
[INFO] [stdout] test ws::proto::frame::tests::frame_encode_decode_roundtrip ... ok
[INFO] [stdout] test ws::proto::codec::tests::decode_encode_roundtrip ... ok
[INFO] [stdout] test ws::proto::reassembly::tests::single_packet_no_reassembly ... ok
[INFO] [stdout] test settings::tests::test_empty_config ... FAILED
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- settings::tests::test_empty_config stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'settings::tests::test_empty_config' (1058) panicked at src/settings.rs:184:9:
[INFO] [stdout] assertion failed: merged.is_empty()
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x63b2ac197e41 - std[73adb7dc35730857]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x63b2ac197e41 - std[73adb7dc35730857]::backtrace_rs::backtrace::trace_unsynchronized::<std[73adb7dc35730857]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x63b2ac197e41 - std[73adb7dc35730857]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x63b2ac197e41 - <<std[73adb7dc35730857]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[6883ba1bc0fe4ed1]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x63b2ac1ace2a - <core[6883ba1bc0fe4ed1]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x63b2ac1ace2a - core[6883ba1bc0fe4ed1]::fmt::write
[INFO] [stdout]    6:     0x63b2ac19c71c - std[73adb7dc35730857]::io::default_write_fmt::<alloc[55a36b64bcbf2c0d]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/io/mod.rs:626:11
[INFO] [stdout]    7:     0x63b2ac19c71c - <alloc[55a36b64bcbf2c0d]::vec::Vec<u8> as std[73adb7dc35730857]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/io/mod.rs:1730:13
[INFO] [stdout]    8:     0x63b2ac174726 - <std[73adb7dc35730857]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x63b2ac174726 - std[73adb7dc35730857]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x63b2ac18f289 - std[73adb7dc35730857]::panicking::default_hook
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x63b2ac05deb0 - <alloc[55a36b64bcbf2c0d]::boxed::Box<dyn for<'a, 'b> core[6883ba1bc0fe4ed1]::ops::function::Fn<(&'a std[73adb7dc35730857]::panic::PanicHookInfo<'b>,), Output = ()> + core[6883ba1bc0fe4ed1]::marker::Send + core[6883ba1bc0fe4ed1]::marker::Sync> as core[6883ba1bc0fe4ed1]::ops::function::Fn<(&std[73adb7dc35730857]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/alloc/src/boxed.rs:2333:9
[INFO] [stdout]   12:     0x63b2ac05deb0 - test[980ffaebd391d06d]::test_main_inner::<test[980ffaebd391d06d]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:155:21
[INFO] [stdout]   13:     0x63b2ac18f5b2 - <alloc[55a36b64bcbf2c0d]::boxed::Box<dyn for<'a, 'b> core[6883ba1bc0fe4ed1]::ops::function::Fn<(&'a std[73adb7dc35730857]::panic::PanicHookInfo<'b>,), Output = ()> + core[6883ba1bc0fe4ed1]::marker::Send + core[6883ba1bc0fe4ed1]::marker::Sync> as core[6883ba1bc0fe4ed1]::ops::function::Fn<(&std[73adb7dc35730857]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/alloc/src/boxed.rs:2333:9
[INFO] [stdout]   14:     0x63b2ac18f5b2 - std[73adb7dc35730857]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:823:13
[INFO] [stdout]   15:     0x63b2ac174804 - std[73adb7dc35730857]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:681:13
[INFO] [stdout]   16:     0x63b2ac16bcf9 - std[73adb7dc35730857]::sys::backtrace::__rust_end_short_backtrace::<std[73adb7dc35730857]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x63b2ac17546d - __rustc[a7b7b02e776dd976]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:679:5
[INFO] [stdout]   18:     0x63b2ac1ad62c - core[6883ba1bc0fe4ed1]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x63b2ac1ad5f2 - core[6883ba1bc0fe4ed1]::panicking::panic
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/panicking.rs:150:5
[INFO] [stdout]   20:     0x63b2ac0071a1 - cc_yes[25b152be2fe690f5]::settings::tests::test_empty_config
[INFO] [stdout]                                at /opt/rustwide/workdir/src/settings.rs:184:9
[INFO] [stdout]   21:     0x63b2ac001497 - cc_yes[25b152be2fe690f5]::settings::tests::test_empty_config::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/src/settings.rs:177:27
[INFO] [stdout]   22:     0x63b2ac014806 - <cc_yes[25b152be2fe690f5]::settings::tests::test_empty_config::{closure#0} as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x63b2ac0511eb - <fn() -> core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String> as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x63b2ac0511eb - test[980ffaebd391d06d]::__rust_begin_short_backtrace::<core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String>, fn() -> core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:724:18
[INFO] [stdout]   25:     0x63b2ac05e835 - test[980ffaebd391d06d]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:747:74
[INFO] [stdout]   26:     0x63b2ac05e835 - <core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<test[980ffaebd391d06d]::run_test_in_process::{closure#0}> as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   27:     0x63b2ac05e835 - std[73adb7dc35730857]::panicking::catch_unwind::do_call::<core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<test[980ffaebd391d06d]::run_test_in_process::{closure#0}>, core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:576:43
[INFO] [stdout]   28:     0x63b2ac05e835 - std[73adb7dc35730857]::panicking::catch_unwind::<core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String>, core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<test[980ffaebd391d06d]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:544:19
[INFO] [stdout]   29:     0x63b2ac05e835 - std[73adb7dc35730857]::panic::catch_unwind::<core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<test[980ffaebd391d06d]::run_test_in_process::{closure#0}>, core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panic.rs:359:14
[INFO] [stdout]   30:     0x63b2ac05e835 - test[980ffaebd391d06d]::run_test_in_process
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:747:27
[INFO] [stdout]   31:     0x63b2ac05e835 - test[980ffaebd391d06d]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:668:43
[INFO] [stdout]   32:     0x63b2ac0592e4 - test[980ffaebd391d06d]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:698:41
[INFO] [stdout]   33:     0x63b2ac0592e4 - std[73adb7dc35730857]::sys::backtrace::__rust_begin_short_backtrace::<test[980ffaebd391d06d]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   34:     0x63b2ac061982 - std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked::<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   35:     0x63b2ac061982 - <core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   36:     0x63b2ac061982 - std[73adb7dc35730857]::panicking::catch_unwind::do_call::<core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:576:43
[INFO] [stdout]   37:     0x63b2ac061982 - std[73adb7dc35730857]::panicking::catch_unwind::<(), core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:544:19
[INFO] [stdout]   38:     0x63b2ac061982 - std[73adb7dc35730857]::panic::catch_unwind::<core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panic.rs:359:14
[INFO] [stdout]   39:     0x63b2ac061982 - std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked::<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   40:     0x63b2ac061982 - <std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1} as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   41:     0x63b2ac19734f - <alloc[55a36b64bcbf2c0d]::boxed::Box<dyn core[6883ba1bc0fe4ed1]::ops::function::FnOnce<(), Output = ()> + core[6883ba1bc0fe4ed1]::marker::Send> as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/alloc/src/boxed.rs:2319:9
[INFO] [stdout]   42:     0x63b2ac19734f - <std[73adb7dc35730857]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/thread/unix.rs:123:17
[INFO] [stdout]   43:     0x786696a4baa4 - <unknown>
[INFO] [stdout]   44:     0x786696ad8a64 - clone
[INFO] [stdout]   45:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     settings::tests::test_empty_config
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 33 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `--bin cc-yes`
[INFO] running `Command { std: "docker" "inspect" "f03894b3165fa6932e59d7aa8a19bc3918369db43d9e0da5f3339a11c67f7bc8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f03894b3165fa6932e59d7aa8a19bc3918369db43d9e0da5f3339a11c67f7bc8", kill_on_drop: false }`
[INFO] [stdout] f03894b3165fa6932e59d7aa8a19bc3918369db43d9e0da5f3339a11c67f7bc8
