[INFO] cloning repository https://github.com/Arkhanhel/Secretly
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Arkhanhel/Secretly" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FArkhanhel%2FSecretly", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FArkhanhel%2FSecretly'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 3f196eb788da675364e533dd40b533c97c1663e7
[INFO] checking Arkhanhel/Secretly against c60b92c03ca8a3b101eb9d57f51e2232690638c7 for pr-164148-crater-rollup
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FArkhanhel%2FSecretly" "/workspace/builds/worker-2-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc2/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-2-tc2/source/rust-toolchain.toml
[INFO] started tweaking git repo https://github.com/Arkhanhel/Secretly
[INFO] finished tweaking git repo https://github.com/Arkhanhel/Secretly
[INFO] tweaked toml for git repo https://github.com/Arkhanhel/Secretly written to /workspace/builds/worker-2-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Arkhanhel/Secretly on toolchain c60b92c03ca8a3b101eb9d57f51e2232690638c7
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c60b92c03ca8a3b101eb9d57f51e2232690638c7" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Arkhanhel/Secretly 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" "+c60b92c03ca8a3b101eb9d57f51e2232690638c7" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] f0d96ff31d337c8e8da3ddc71e3fabfc19c8cd0cf202db2b3fbefcd8c7277bc6
[INFO] running `Command { std: "docker" "start" "f0d96ff31d337c8e8da3ddc71e3fabfc19c8cd0cf202db2b3fbefcd8c7277bc6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "f0d96ff31d337c8e8da3ddc71e3fabfc19c8cd0cf202db2b3fbefcd8c7277bc6", 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" "f0d96ff31d337c8e8da3ddc71e3fabfc19c8cd0cf202db2b3fbefcd8c7277bc6" "/opt/rustwide/cargo-home/bin/cargo" "+c60b92c03ca8a3b101eb9d57f51e2232690638c7" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "f0d96ff31d337c8e8da3ddc71e3fabfc19c8cd0cf202db2b3fbefcd8c7277bc6", 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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "f0d96ff31d337c8e8da3ddc71e3fabfc19c8cd0cf202db2b3fbefcd8c7277bc6" "/opt/rustwide/cargo-home/bin/cargo" "+c60b92c03ca8a3b101eb9d57f51e2232690638c7" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling quote v1.0.44
[INFO] [stderr]    Compiling libc v0.2.182
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]     Checking log v0.4.29
[INFO] [stderr]    Compiling cc v1.2.56
[INFO] [stderr]     Checking base64ct v1.8.3
[INFO] [stderr]    Compiling zerocopy v0.8.39
[INFO] [stderr]     Checking http v1.4.0
[INFO] [stderr]    Compiling libm v0.2.16
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling syn v2.0.116
[INFO] [stderr]     Checking tracing-core v0.1.36
[INFO] [stderr]     Checking pem-rfc7468 v0.7.0
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]     Checking memchr v2.8.0
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling time-macros v0.2.27
[INFO] [stderr]     Checking http-body v1.0.1
[INFO] [stderr]     Checking litemap v0.8.1
[INFO] [stderr]     Checking writeable v0.6.2
[INFO] [stderr]     Checking getrandom v0.2.17
[INFO] [stderr]     Checking errno v0.3.14
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking signal-hook-registry v1.4.8
[INFO] [stderr]     Checking mio v1.1.1
[INFO] [stderr]     Checking socket2 v0.6.2
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]     Checking ff v0.13.1
[INFO] [stderr]     Checking spin v0.9.9
[INFO] [stderr]    Compiling icu_properties_data v2.1.2
[INFO] [stderr]     Checking time v0.3.47
[INFO] [stderr]     Checking base16ct v0.2.0
[INFO] [stderr]     Checking hashbrown v0.16.1
[INFO] [stderr]    Compiling icu_normalizer_data v2.1.1
[INFO] [stderr]     Checking lazy_static v1.5.0
[INFO] [stderr]     Checking num-integer v0.1.46
[INFO] [stderr]     Checking group v0.13.0
[INFO] [stderr]     Checking data-encoding v2.10.0
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling rustc_version v0.4.1
[INFO] [stderr]     Checking rand_core v0.9.5
[INFO] [stderr]     Checking indexmap v2.13.0
[INFO] [stderr]     Checking futures-channel v0.3.32
[INFO] [stderr]    Compiling pkg-config v0.3.32
[INFO] [stderr]    Compiling rustls v0.23.36
[INFO] [stderr]     Checking utf-8 v0.7.6
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]    Compiling curve25519-dalek v4.1.3
[INFO] [stderr]    Compiling libsqlite3-sys v0.35.0
[INFO] [stderr]     Checking num-bigint v0.4.6
[INFO] [stderr]    Compiling num-bigint-dig v0.8.6
[INFO] [stderr]     Checking foldhash v0.1.5
[INFO] [stderr]     Checking ipnet v2.11.0
[INFO] [stderr]    Compiling getrandom v0.4.1
[INFO] [stderr]     Checking nom v7.1.3
[INFO] [stderr]     Checking hashbrown v0.15.5
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]     Checking num-iter v0.1.46
[INFO] [stderr]     Checking http-body-util v0.1.3
[INFO] [stderr]     Checking regex-syntax v0.8.9
[INFO] [stderr]     Checking hashlink v0.10.0
[INFO] [stderr]     Checking pem v3.0.6
[INFO] [stderr]     Checking iri-string v0.7.10
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]     Checking crossbeam-channel v0.5.15
[INFO] [stderr]     Checking rusticata-macros v4.1.0
[INFO] [stderr]     Checking serde_path_to_error v0.1.20
[INFO] [stderr]     Checking sharded-slab v0.1.7
[INFO] [stderr]     Checking regex-automata v0.4.14
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]     Checking tracing-log v0.2.0
[INFO] [stderr]     Checking thread_local v1.1.9
[INFO] [stderr]    Compiling zeroize_derive v1.5.0
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling yoke-derive v0.8.1
[INFO] [stderr]    Compiling tokio-macros v2.6.0
[INFO] [stderr]     Checking zeroize v1.8.2
[INFO] [stderr]     Checking tokio v1.49.0
[INFO] [stderr]     Checking der v0.7.10
[INFO] [stderr]    Compiling zerovec-derive v0.11.2
[INFO] [stderr]     Checking crypto-common v0.1.7
[INFO] [stderr]     Checking block-buffer v0.10.4
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]     Checking zerofrom v0.1.6
[INFO] [stderr]     Checking yoke v0.8.1
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]     Checking hmac v0.12.1
[INFO] [stderr]     Checking zerotrie v0.2.3
[INFO] [stderr]     Checking signature v2.2.0
[INFO] [stderr]     Checking zerovec v0.11.5
[INFO] [stderr]     Checking spki v0.7.3
[INFO] [stderr]     Checking rustls-pki-types v1.14.0
[INFO] [stderr]     Checking pkcs8 v0.10.2
[INFO] [stderr]     Checking futures-util v0.3.32
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]     Checking sec1 v0.7.3
[INFO] [stderr]     Checking hkdf v0.12.4
[INFO] [stderr]     Checking crypto-bigint v0.5.5
[INFO] [stderr]     Checking tracing v0.1.44
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking tinystr v0.8.2
[INFO] [stderr]     Checking potential_utf v0.1.4
[INFO] [stderr]     Checking icu_locale_core v2.1.1
[INFO] [stderr]     Checking icu_collections v2.1.1
[INFO] [stderr]     Checking rand v0.8.6
[INFO] [stderr]     Checking sha1 v0.10.6
[INFO] [stderr]     Checking rustls-webpki v0.103.15
[INFO] [stderr]     Checking rfc6979 v0.4.0
[INFO] [stderr]     Checking icu_provider v2.1.1
[INFO] [stderr]     Checking sha2 v0.10.9
[INFO] [stderr]     Checking rand_chacha v0.9.0
[INFO] [stderr]     Checking rand v0.9.3
[INFO] [stderr]     Checking icu_normalizer v2.1.1
[INFO] [stderr]     Checking elliptic-curve v0.13.8
[INFO] [stderr]     Checking icu_properties v2.1.2
[INFO] [stderr]     Checking primeorder v0.13.6
[INFO] [stderr]     Checking ecdsa v0.16.9
[INFO] [stderr]    Compiling curve25519-dalek-derive v0.1.1
[INFO] [stderr]     Checking tungstenite v0.28.0
[INFO] [stderr]     Checking serde v1.0.228
[INFO] [stderr]     Checking idna_adapter v1.2.1
[INFO] [stderr]     Checking idna v1.1.0
[INFO] [stderr]     Checking webpki-roots v1.0.6
[INFO] [stderr]     Checking pkcs1 v0.7.5
[INFO] [stderr]     Checking ed25519 v2.2.3
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling asn1-rs-impl v0.2.0
[INFO] [stderr]    Compiling asn1-rs-derive v0.6.0
[INFO] [stderr]     Checking tracing-serde v0.2.0
[INFO] [stderr]     Checking url v2.5.8
[INFO] [stderr]     Checking p384 v0.13.1
[INFO] [stderr]     Checking asn1-rs v0.7.2
[INFO] [stderr]     Checking p256 v0.13.2
[INFO] [stderr]     Checking ed25519-dalek v2.2.0
[INFO] [stderr]     Checking axum-core v0.5.6
[INFO] [stderr]     Checking rsa v0.9.10
[INFO] [stderr]     Checking simple_asn1 v0.6.4
[INFO] [stderr]     Checking matchers v0.2.0
[INFO] [stderr]     Checking inout v0.1.4
[INFO] [stderr]    Compiling oid-registry v0.8.1
[INFO] [stderr]     Checking nu-ansi-term v0.50.3
[INFO] [stderr]    Compiling rustix v1.1.3
[INFO] [stderr]     Checking jsonwebtoken v10.4.0
[INFO] [stderr]     Checking tracing-subscriber v0.3.22
[INFO] [stderr]     Checking cipher v0.4.4
[INFO] [stderr]     Checking dashmap v6.1.0
[INFO] [stderr]     Checking universal-hash v0.5.1
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]     Checking uuid v1.21.0
[INFO] [stderr]     Checking linux-raw-sys v0.11.0
[INFO] [stderr]     Checking opaque-debug v0.3.1
[INFO] [stderr]     Checking poly1305 v0.8.0
[INFO] [stderr]     Checking rusqlite v0.37.0
[INFO] [stderr]     Checking tokio-util v0.7.18
[INFO] [stderr]     Checking tower v0.5.3
[INFO] [stderr]     Checking tokio-rustls v0.26.4
[INFO] [stderr]     Checking tokio-tungstenite v0.28.0
[INFO] [stderr]     Checking der-parser v10.0.0
[INFO] [stderr]     Checking chacha20 v0.9.1
[INFO] [stderr]     Checking h2 v0.4.19
[INFO] [stderr]     Checking aead v0.5.2
[INFO] [stderr]     Checking fastrand v2.3.0
[INFO] [stderr]     Checking tower-http v0.6.8
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking byteorder v1.5.0
[INFO] [stderr]     Checking chacha20poly1305 v0.10.1
[INFO] [stderr]     Checking yasna v0.5.2
[INFO] [stderr]     Checking base32ct v0.2.2
[INFO] [stderr]     Checking secretly_core v0.1.0 (/opt/rustwide/workdir/core/rust/secretly_core)
[INFO] [stderr]     Checking tokio-rusqlite v0.6.1
[INFO] [stderr]     Checking x509-parser v0.17.0
[INFO] [stderr]     Checking tungstenite v0.24.0
[INFO] [stderr]     Checking tokio-tungstenite v0.24.0
[INFO] [stderr]     Checking rcgen v0.13.2
[INFO] [stderr]     Checking tempfile v3.25.0
[INFO] [stderr]     Checking hyper v1.8.1
[INFO] [stderr]     Checking hyper-util v0.1.20
[INFO] [stderr]     Checking hyper-rustls v0.27.7
[INFO] [stderr]     Checking axum v0.8.8
[INFO] [stderr]     Checking reqwest v0.12.28
[INFO] [stderr]     Checking secretly_keys v0.1.0 (/opt/rustwide/workdir/server/keys)
[INFO] [stderr]     Checking secretly_relay v0.1.0 (/opt/rustwide/workdir/server/relay)
[INFO] [stdout] warning: value assigned to `hello_client_build` is never read
[INFO] [stdout]     --> server/relay/src/main.rs:5679:50
[INFO] [stdout]      |
[INFO] [stdout] 5679 |     let mut hello_client_build: Option<String> = None;
[INFO] [stdout]      |                                                  ^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 5689 |                 hello_client_build = client_build;
[INFO] [stdout]      |                 ------------------ `hello_client_build` is overwritten here before the previous value is read
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `action`, `session_id`, and `signal_id` are never read
[INFO] [stdout]     --> server/relay/src/main.rs:1145:5
[INFO] [stdout]      |
[INFO] [stdout] 1144 | struct RoomCallMediaSignalTransportRecord {
[INFO] [stdout]      |        ---------------------------------- fields in this struct
[INFO] [stdout] 1145 |     action: String,
[INFO] [stdout]      |     ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1148 |     session_id: String,
[INFO] [stdout]      |     ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1151 |     signal_id: String,
[INFO] [stdout]      |     ^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `RoomCallMediaSignalTransportRecord` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]      = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `device_id` is never read
[INFO] [stdout]    --> server/relay/src/store.rs:216:9
[INFO] [stdout]     |
[INFO] [stdout] 213 | pub struct SupportTicketRow {
[INFO] [stdout]     |            ---------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 216 |     pub device_id: String,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `SupportTicketRow` 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: field `device_id` is never read
[INFO] [stdout]    --> server/relay/src/store.rs:235:9
[INFO] [stdout]     |
[INFO] [stdout] 234 | pub struct PushTokenRow {
[INFO] [stdout]     |            ------------ field in this struct
[INFO] [stdout] 235 |     pub device_id: String,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PushTokenRow` 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: field `last_push_attempted_at_ms` is never read
[INFO] [stdout]    --> server/relay/src/store.rs:252:9
[INFO] [stdout]     |
[INFO] [stdout] 248 | pub struct DeviceActivityRow {
[INFO] [stdout]     |            ----------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 252 |     pub last_push_attempted_at_ms: i64,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `DeviceActivityRow` 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: methods `client_build_distribution`, `device_activity_client_build`, `get_push_token`, `get_push_token_for_platform`, and `enqueue` are never used
[INFO] [stdout]     --> server/relay/src/store.rs:2237:18
[INFO] [stdout]      |
[INFO] [stdout]  814 | impl RelayStore {
[INFO] [stdout]      | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 2237 |     pub async fn client_build_distribution(
[INFO] [stdout]      |                  ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2261 |     pub async fn device_activity_client_build(
[INFO] [stdout]      |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2469 |     pub async fn get_push_token(&self, device_id: &str) -> Result<Option<PushTokenRow>, String> {
[INFO] [stdout]      |                  ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2495 |     pub async fn get_push_token_for_platform(
[INFO] [stdout]      |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 6020 |     pub async fn enqueue(
[INFO] [stdout]      |                  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `hello_client_build` is never read
[INFO] [stdout]     --> server/relay/src/main.rs:5679:50
[INFO] [stdout]      |
[INFO] [stdout] 5679 |     let mut hello_client_build: Option<String> = None;
[INFO] [stdout]      |                                                  ^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 5689 |                 hello_client_build = client_build;
[INFO] [stdout]      |                 ------------------ `hello_client_build` is overwritten here before the previous value is read
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `device_id` is never read
[INFO] [stdout]    --> server/relay/src/store.rs:216:9
[INFO] [stdout]     |
[INFO] [stdout] 213 | pub struct SupportTicketRow {
[INFO] [stdout]     |            ---------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 216 |     pub device_id: String,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `SupportTicketRow` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `last_push_attempted_at_ms` is never read
[INFO] [stdout]    --> server/relay/src/store.rs:252:9
[INFO] [stdout]     |
[INFO] [stdout] 248 | pub struct DeviceActivityRow {
[INFO] [stdout]     |            ----------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 252 |     pub last_push_attempted_at_ms: i64,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `DeviceActivityRow` 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 `client_build_distribution` is never used
[INFO] [stdout]     --> server/relay/src/store.rs:2237:18
[INFO] [stdout]      |
[INFO] [stdout]  814 | impl RelayStore {
[INFO] [stdout]      | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 2237 |     pub async fn client_build_distribution(
[INFO] [stdout]      |                  ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String` secretly_relay
[INFO] [stdout]      --> server/relay/src/main.rs:17717:17
[INFO] [stdout]       |
[INFO] [stdout] 17717 | /                 signed_ws_hello_text_with_build(device_id, &signing_key, "ws-build-1", "544")
[INFO] [stdout] 17718 | |                     .into(),
[INFO] [stdout]       | |___________________________^
[INFO] [stdout]       |
[INFO] [stdout]       = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]       = note: `#[deny(self_type_conversion)]` on by default
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]       |
[INFO] [stdout] 17717 -                 signed_ws_hello_text_with_build(device_id, &signing_key, "ws-build-1", "544")
[INFO] [stdout] 17718 -                     .into(),
[INFO] [stdout] 17717 +                 signed_ws_hello_text_with_build(device_id, &signing_key, "ws-build-1", "544"),
[INFO] [stdout]       |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]       |
[INFO] [stdout] 17717 -                 signed_ws_hello_text_with_build(device_id, &signing_key, "ws-build-1", "544")
[INFO] [stdout] 17718 -                     .into(),
[INFO] [stdout] 17717 +                 <std::string::String as Into<_>>::into(signed_ws_hello_text_with_build(device_id, &signing_key, "ws-build-1", "544")),
[INFO] [stdout]       |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String` secretly_relay
[INFO] [stdout]      --> server/relay/src/main.rs:17763:17
[INFO] [stdout]       |
[INFO] [stdout] 17763 |                 signed_ws_hello_text(device_id, &signing_key, "ws-hello-ok").into(),
[INFO] [stdout]       |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]       |
[INFO] [stdout]       = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]       |
[INFO] [stdout] 17763 -                 signed_ws_hello_text(device_id, &signing_key, "ws-hello-ok").into(),
[INFO] [stdout] 17763 +                 signed_ws_hello_text(device_id, &signing_key, "ws-hello-ok"),
[INFO] [stdout]       |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]       |
[INFO] [stdout] 17763 -                 signed_ws_hello_text(device_id, &signing_key, "ws-hello-ok").into(),
[INFO] [stdout] 17763 +                 <std::string::String as Into<_>>::into(signed_ws_hello_text(device_id, &signing_key, "ws-hello-ok")),
[INFO] [stdout]       |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String` secretly_relay
[INFO] [stdout]      --> server/relay/src/main.rs:17803:41
[INFO] [stdout]       |
[INFO] [stdout] 17803 |             .send(ClientWsMessage::Text(hello.into()))
[INFO] [stdout]       |                                         ^^^^^^^^^^^^
[INFO] [stdout]       |
[INFO] [stdout]       = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]       |
[INFO] [stdout] 17803 -             .send(ClientWsMessage::Text(hello.into()))
[INFO] [stdout] 17803 +             .send(ClientWsMessage::Text(hello))
[INFO] [stdout]       |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]       |
[INFO] [stdout] 17803 -             .send(ClientWsMessage::Text(hello.into()))
[INFO] [stdout] 17803 +             .send(ClientWsMessage::Text(<std::string::String as Into<_>>::into(hello)))
[INFO] [stdout]       |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String` secretly_relay
[INFO] [stdout]      --> server/relay/src/main.rs:17832:41
[INFO] [stdout]       |
[INFO] [stdout] 17832 |             .send(ClientWsMessage::Text(hello_auth.clone().into()))
[INFO] [stdout]       |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]       |
[INFO] [stdout]       = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]       |
[INFO] [stdout] 17832 -             .send(ClientWsMessage::Text(hello_auth.clone().into()))
[INFO] [stdout] 17832 +             .send(ClientWsMessage::Text(hello_auth.clone()))
[INFO] [stdout]       |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]       |
[INFO] [stdout] 17832 -             .send(ClientWsMessage::Text(hello_auth.clone().into()))
[INFO] [stdout] 17832 +             .send(ClientWsMessage::Text(<std::string::String as Into<_>>::into(hello_auth.clone())))
[INFO] [stdout]       |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String` secretly_relay
[INFO] [stdout]      --> server/relay/src/main.rs:17839:41
[INFO] [stdout]       |
[INFO] [stdout] 17839 |             .send(ClientWsMessage::Text(hello_auth.into()))
[INFO] [stdout]       |                                         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]       |
[INFO] [stdout]       = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]       |
[INFO] [stdout] 17839 -             .send(ClientWsMessage::Text(hello_auth.into()))
[INFO] [stdout] 17839 +             .send(ClientWsMessage::Text(hello_auth))
[INFO] [stdout]       |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]       |
[INFO] [stdout] 17839 -             .send(ClientWsMessage::Text(hello_auth.into()))
[INFO] [stdout] 17839 +             .send(ClientWsMessage::Text(<std::string::String as Into<_>>::into(hello_auth)))
[INFO] [stdout]       |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String` secretly_relay
[INFO] [stdout]      --> server/relay/src/main.rs:17879:17
[INFO] [stdout]       |
[INFO] [stdout] 17879 |                 signed_ws_hello_text(sender_device_id, &signing_key, "ws-send-blocked").into(),
[INFO] [stdout]       |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]       |
[INFO] [stdout]       = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]       |
[INFO] [stdout] 17879 -                 signed_ws_hello_text(sender_device_id, &signing_key, "ws-send-blocked").into(),
[INFO] [stdout] 17879 +                 signed_ws_hello_text(sender_device_id, &signing_key, "ws-send-blocked"),
[INFO] [stdout]       |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]       |
[INFO] [stdout] 17879 -                 signed_ws_hello_text(sender_device_id, &signing_key, "ws-send-blocked").into(),
[INFO] [stdout] 17879 +                 <std::string::String as Into<_>>::into(signed_ws_hello_text(sender_device_id, &signing_key, "ws-send-blocked")),
[INFO] [stdout]       |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String` secretly_relay
[INFO] [stdout]      --> server/relay/src/main.rs:17897:41
[INFO] [stdout]       |
[INFO] [stdout] 17897 |             .send(ClientWsMessage::Text(send.into()))
[INFO] [stdout]       |                                         ^^^^^^^^^^^
[INFO] [stdout]       |
[INFO] [stdout]       = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]       |
[INFO] [stdout] 17897 -             .send(ClientWsMessage::Text(send.into()))
[INFO] [stdout] 17897 +             .send(ClientWsMessage::Text(send))
[INFO] [stdout]       |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]       |
[INFO] [stdout] 17897 -             .send(ClientWsMessage::Text(send.into()))
[INFO] [stdout] 17897 +             .send(ClientWsMessage::Text(<std::string::String as Into<_>>::into(send)))
[INFO] [stdout]       |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String` secretly_relay
[INFO] [stdout]      --> server/relay/src/main.rs:17925:17
[INFO] [stdout]       |
[INFO] [stdout] 17925 |                 signed_ws_hello_text(device_id, &signing_key, "ws-ping").into(),
[INFO] [stdout]       |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]       |
[INFO] [stdout]       = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]       |
[INFO] [stdout] 17925 -                 signed_ws_hello_text(device_id, &signing_key, "ws-ping").into(),
[INFO] [stdout] 17925 +                 signed_ws_hello_text(device_id, &signing_key, "ws-ping"),
[INFO] [stdout]       |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]       |
[INFO] [stdout] 17925 -                 signed_ws_hello_text(device_id, &signing_key, "ws-ping").into(),
[INFO] [stdout] 17925 +                 <std::string::String as Into<_>>::into(signed_ws_hello_text(device_id, &signing_key, "ws-ping")),
[INFO] [stdout]       |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String` secretly_relay
[INFO] [stdout]      --> server/relay/src/main.rs:17933:41
[INFO] [stdout]       |
[INFO] [stdout] 17933 |             .send(ClientWsMessage::Text(ping.into()))
[INFO] [stdout]       |                                         ^^^^^^^^^^^
[INFO] [stdout]       |
[INFO] [stdout]       = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]       |
[INFO] [stdout] 17933 -             .send(ClientWsMessage::Text(ping.into()))
[INFO] [stdout] 17933 +             .send(ClientWsMessage::Text(ping))
[INFO] [stdout]       |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]       |
[INFO] [stdout] 17933 -             .send(ClientWsMessage::Text(ping.into()))
[INFO] [stdout] 17933 +             .send(ClientWsMessage::Text(<std::string::String as Into<_>>::into(ping)))
[INFO] [stdout]       |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String` secretly_relay
[INFO] [stdout]      --> server/relay/src/main.rs:17964:17
[INFO] [stdout]       |
[INFO] [stdout] 17964 |                 signed_ws_hello_text(device_id, &signing_key, "ws-ack-ok").into(),
[INFO] [stdout]       |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]       |
[INFO] [stdout]       = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]       |
[INFO] [stdout] 17964 -                 signed_ws_hello_text(device_id, &signing_key, "ws-ack-ok").into(),
[INFO] [stdout] 17964 +                 signed_ws_hello_text(device_id, &signing_key, "ws-ack-ok"),
[INFO] [stdout]       |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]       |
[INFO] [stdout] 17964 -                 signed_ws_hello_text(device_id, &signing_key, "ws-ack-ok").into(),
[INFO] [stdout] 17964 +                 <std::string::String as Into<_>>::into(signed_ws_hello_text(device_id, &signing_key, "ws-ack-ok")),
[INFO] [stdout]       |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String` secretly_relay
[INFO] [stdout]      --> server/relay/src/main.rs:17992:41
[INFO] [stdout]       |
[INFO] [stdout] 17992 |             .send(ClientWsMessage::Text(ack.into()))
[INFO] [stdout]       |                                         ^^^^^^^^^^
[INFO] [stdout]       |
[INFO] [stdout]       = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]       |
[INFO] [stdout] 17992 -             .send(ClientWsMessage::Text(ack.into()))
[INFO] [stdout] 17992 +             .send(ClientWsMessage::Text(ack))
[INFO] [stdout]       |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]       |
[INFO] [stdout] 17992 -             .send(ClientWsMessage::Text(ack.into()))
[INFO] [stdout] 17992 +             .send(ClientWsMessage::Text(<std::string::String as Into<_>>::into(ack)))
[INFO] [stdout]       |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String` secretly_relay
[INFO] [stdout]      --> server/relay/src/main.rs:18014:17
[INFO] [stdout]       |
[INFO] [stdout] 18014 |                 signed_ws_hello_text(device_id, &signing_key, "ws-ack-mismatch").into(),
[INFO] [stdout]       |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]       |
[INFO] [stdout]       = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]       |
[INFO] [stdout] 18014 -                 signed_ws_hello_text(device_id, &signing_key, "ws-ack-mismatch").into(),
[INFO] [stdout] 18014 +                 signed_ws_hello_text(device_id, &signing_key, "ws-ack-mismatch"),
[INFO] [stdout]       |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]       |
[INFO] [stdout] 18014 -                 signed_ws_hello_text(device_id, &signing_key, "ws-ack-mismatch").into(),
[INFO] [stdout] 18014 +                 <std::string::String as Into<_>>::into(signed_ws_hello_text(device_id, &signing_key, "ws-ack-mismatch")),
[INFO] [stdout]       |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String` secretly_relay
[INFO] [stdout]      --> server/relay/src/main.rs:18027:41
[INFO] [stdout]       |
[INFO] [stdout] 18027 |             .send(ClientWsMessage::Text(ack.into()))
[INFO] [stdout]       |                                         ^^^^^^^^^^
[INFO] [stdout]       |
[INFO] [stdout]       = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]       |
[INFO] [stdout] 18027 -             .send(ClientWsMessage::Text(ack.into()))
[INFO] [stdout] 18027 +             .send(ClientWsMessage::Text(ack))
[INFO] [stdout]       |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]       |
[INFO] [stdout] 18027 -             .send(ClientWsMessage::Text(ack.into()))
[INFO] [stdout] 18027 +             .send(ClientWsMessage::Text(<std::string::String as Into<_>>::into(ack)))
[INFO] [stdout]       |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String` secretly_relay
[INFO] [stdout]      --> server/relay/src/main.rs:18056:17
[INFO] [stdout]       |
[INFO] [stdout] 18056 |                 signed_ws_hello_text(device_id, &signing_key, "ws-fetch-ok").into(),
[INFO] [stdout]       |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]       |
[INFO] [stdout]       = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]       |
[INFO] [stdout] 18056 -                 signed_ws_hello_text(device_id, &signing_key, "ws-fetch-ok").into(),
[INFO] [stdout] 18056 +                 signed_ws_hello_text(device_id, &signing_key, "ws-fetch-ok"),
[INFO] [stdout]       |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]       |
[INFO] [stdout] 18056 -                 signed_ws_hello_text(device_id, &signing_key, "ws-fetch-ok").into(),
[INFO] [stdout] 18056 +                 <std::string::String as Into<_>>::into(signed_ws_hello_text(device_id, &signing_key, "ws-fetch-ok")),
[INFO] [stdout]       |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String` secretly_relay
[INFO] [stdout]      --> server/relay/src/main.rs:18074:41
[INFO] [stdout]       |
[INFO] [stdout] 18074 |             .send(ClientWsMessage::Text(fetch_pending.into()))
[INFO] [stdout]       |                                         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]       |
[INFO] [stdout]       = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]       |
[INFO] [stdout] 18074 -             .send(ClientWsMessage::Text(fetch_pending.into()))
[INFO] [stdout] 18074 +             .send(ClientWsMessage::Text(fetch_pending))
[INFO] [stdout]       |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]       |
[INFO] [stdout] 18074 -             .send(ClientWsMessage::Text(fetch_pending.into()))
[INFO] [stdout] 18074 +             .send(ClientWsMessage::Text(<std::string::String as Into<_>>::into(fetch_pending)))
[INFO] [stdout]       |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String` secretly_relay
[INFO] [stdout]      --> server/relay/src/main.rs:18117:17
[INFO] [stdout]       |
[INFO] [stdout] 18117 |                 signed_ws_hello_text(device_id, &signing_key, "ws-fetch-mismatch").into(),
[INFO] [stdout]       |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]       |
[INFO] [stdout]       = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]       |
[INFO] [stdout] 18117 -                 signed_ws_hello_text(device_id, &signing_key, "ws-fetch-mismatch").into(),
[INFO] [stdout] 18117 +                 signed_ws_hello_text(device_id, &signing_key, "ws-fetch-mismatch"),
[INFO] [stdout]       |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]       |
[INFO] [stdout] 18117 -                 signed_ws_hello_text(device_id, &signing_key, "ws-fetch-mismatch").into(),
[INFO] [stdout] 18117 +                 <std::string::String as Into<_>>::into(signed_ws_hello_text(device_id, &signing_key, "ws-fetch-mismatch")),
[INFO] [stdout]       |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String` secretly_relay
[INFO] [stdout]      --> server/relay/src/main.rs:18129:41
[INFO] [stdout]       |
[INFO] [stdout] 18129 |             .send(ClientWsMessage::Text(fetch_pending.into()))
[INFO] [stdout]       |                                         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]       |
[INFO] [stdout]       = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]       |
[INFO] [stdout] 18129 -             .send(ClientWsMessage::Text(fetch_pending.into()))
[INFO] [stdout] 18129 +             .send(ClientWsMessage::Text(fetch_pending))
[INFO] [stdout]       |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]       |
[INFO] [stdout] 18129 -             .send(ClientWsMessage::Text(fetch_pending.into()))
[INFO] [stdout] 18129 +             .send(ClientWsMessage::Text(<std::string::String as Into<_>>::into(fetch_pending)))
[INFO] [stdout]       |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String` secretly_relay
[INFO] [stdout]      --> server/relay/src/main.rs:18153:41
[INFO] [stdout]       |
[INFO] [stdout] 18153 |             .send(ClientWsMessage::Text(ping.into()))
[INFO] [stdout]       |                                         ^^^^^^^^^^^
[INFO] [stdout]       |
[INFO] [stdout]       = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]       |
[INFO] [stdout] 18153 -             .send(ClientWsMessage::Text(ping.into()))
[INFO] [stdout] 18153 +             .send(ClientWsMessage::Text(ping))
[INFO] [stdout]       |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]       |
[INFO] [stdout] 18153 -             .send(ClientWsMessage::Text(ping.into()))
[INFO] [stdout] 18153 +             .send(ClientWsMessage::Text(<std::string::String as Into<_>>::into(ping)))
[INFO] [stdout]       |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String` secretly_relay
[INFO] [stdout]      --> server/relay/src/main.rs:19040:17
[INFO] [stdout]       |
[INFO] [stdout] 19040 |                 signed_ws_hello_text("dev_oo_ws_a", &key, "ws-online-only").into(),
[INFO] [stdout]       |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]       |
[INFO] [stdout]       = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]       |
[INFO] [stdout] 19040 -                 signed_ws_hello_text("dev_oo_ws_a", &key, "ws-online-only").into(),
[INFO] [stdout] 19040 +                 signed_ws_hello_text("dev_oo_ws_a", &key, "ws-online-only"),
[INFO] [stdout]       |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]       |
[INFO] [stdout] 19040 -                 signed_ws_hello_text("dev_oo_ws_a", &key, "ws-online-only").into(),
[INFO] [stdout] 19040 +                 <std::string::String as Into<_>>::into(signed_ws_hello_text("dev_oo_ws_a", &key, "ws-online-only")),
[INFO] [stdout]       |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String` secretly_relay
[INFO] [stdout]      --> server/relay/src/main.rs:19056:43
[INFO] [stdout]       |
[INFO] [stdout] 19056 |         socket.send(ClientWsMessage::Text(send.into())).await.unwrap();
[INFO] [stdout]       |                                           ^^^^^^^^^^^
[INFO] [stdout]       |
[INFO] [stdout]       = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]       |
[INFO] [stdout] 19056 -         socket.send(ClientWsMessage::Text(send.into())).await.unwrap();
[INFO] [stdout] 19056 +         socket.send(ClientWsMessage::Text(send)).await.unwrap();
[INFO] [stdout]       |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]       |
[INFO] [stdout] 19056 -         socket.send(ClientWsMessage::Text(send.into())).await.unwrap();
[INFO] [stdout] 19056 +         socket.send(ClientWsMessage::Text(<std::string::String as Into<_>>::into(send))).await.unwrap();
[INFO] [stdout]       |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `secretly_relay` (bin "secretly_relay" test) due to 20 previous errors; 4 warnings emitted
[INFO] [stderr] warning: unused dependency `uuid`
[INFO] [stderr]   --> server/keys/Cargo.toml:28:1
[INFO] [stderr]    |
[INFO] [stderr] 28 | uuid = { version = "1", features = ["v7", "serde"] }
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `uuid`
[INFO] [stderr] warning: `secretly_keys` (manifest) generated 1 warning
[INFO] running `Command { std: "docker" "inspect" "f0d96ff31d337c8e8da3ddc71e3fabfc19c8cd0cf202db2b3fbefcd8c7277bc6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f0d96ff31d337c8e8da3ddc71e3fabfc19c8cd0cf202db2b3fbefcd8c7277bc6", kill_on_drop: false }`
[INFO] [stdout] f0d96ff31d337c8e8da3ddc71e3fabfc19c8cd0cf202db2b3fbefcd8c7277bc6
