[INFO] cloning repository https://github.com/Vincent-1124/stream-live-translate
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Vincent-1124/stream-live-translate" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FVincent-1124%2Fstream-live-translate", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FVincent-1124%2Fstream-live-translate'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 5842376c238a57a17ac9a054dcba5adc097a08d8
[INFO] checking Vincent-1124/stream-live-translate against 52995a223f2919dd3e2e427231db90a257350ded for pr-129249-4
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FVincent-1124%2Fstream-live-translate" "/workspace/builds/worker-3-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc2/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-3-tc2/source/.cargo/config.toml
[INFO] started tweaking git repo https://github.com/Vincent-1124/stream-live-translate
[INFO] finished tweaking git repo https://github.com/Vincent-1124/stream-live-translate
[INFO] tweaked toml for git repo https://github.com/Vincent-1124/stream-live-translate written to /workspace/builds/worker-3-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Vincent-1124/stream-live-translate on toolchain 52995a223f2919dd3e2e427231db90a257350ded
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+52995a223f2919dd3e2e427231db90a257350ded" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Vincent-1124/stream-live-translate 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" "+52995a223f2919dd3e2e427231db90a257350ded" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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] f4a4c068d0343c4f607e20a79959f80ad24bff1c19ceba42496156d48c4ac913
[INFO] running `Command { std: "docker" "start" "f4a4c068d0343c4f607e20a79959f80ad24bff1c19ceba42496156d48c4ac913", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "f4a4c068d0343c4f607e20a79959f80ad24bff1c19ceba42496156d48c4ac913", 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" "f4a4c068d0343c4f607e20a79959f80ad24bff1c19ceba42496156d48c4ac913" "/opt/rustwide/cargo-home/bin/cargo" "+52995a223f2919dd3e2e427231db90a257350ded" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "f4a4c068d0343c4f607e20a79959f80ad24bff1c19ceba42496156d48c4ac913", 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" "f4a4c068d0343c4f607e20a79959f80ad24bff1c19ceba42496156d48c4ac913" "/opt/rustwide/cargo-home/bin/cargo" "+52995a223f2919dd3e2e427231db90a257350ded" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling pkg-config v0.3.34
[INFO] [stderr]     Checking log v0.4.34
[INFO] [stderr]     Checking futures-sink v0.3.34
[INFO] [stderr]    Compiling syn v3.0.3
[INFO] [stderr]    Compiling syn v2.0.119
[INFO] [stderr]     Checking errno v0.3.14
[INFO] [stderr]    Compiling zerocopy v0.8.56
[INFO] [stderr]     Checking futures-io v0.3.34
[INFO] [stderr]     Checking signal-hook-registry v1.4.8
[INFO] [stderr]     Checking futures-channel v0.3.34
[INFO] [stderr]     Checking tracing-core v0.1.36
[INFO] [stderr]     Checking getrandom v0.2.17
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]    Compiling openssl v0.10.81
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking sha1 v0.10.7
[INFO] [stderr]    Compiling native-tls v0.2.18
[INFO] [stderr]    Compiling unicase v2.9.0
[INFO] [stderr]     Checking sync_wrapper v1.0.2
[INFO] [stderr]     Checking regex-syntax v0.8.11
[INFO] [stderr]    Compiling mime_guess v2.0.5
[INFO] [stderr]    Compiling cpal v0.15.3
[INFO] [stderr]    Compiling openssl-sys v0.9.117
[INFO] [stderr]    Compiling alsa-sys v0.3.1
[INFO] [stderr]     Checking winnow v0.7.15
[INFO] [stderr]     Checking toml_write v0.1.2
[INFO] [stderr]     Checking alsa v0.9.1
[INFO] [stderr]     Checking clap_builder v4.6.6
[INFO] [stderr]     Checking regex-automata v0.4.18
[INFO] [stderr]     Checking dirs-sys v0.4.1
[INFO] [stderr]     Checking sharded-slab v0.1.7
[INFO] [stderr]     Checking getrandom v0.4.3
[INFO] [stderr]     Checking tracing-log v0.2.0
[INFO] [stderr]    Compiling include_dir_macros v0.7.4
[INFO] [stderr]     Checking thread_local v1.1.10
[INFO] [stderr]     Checking http-range-header v0.4.2
[INFO] [stderr]    Compiling stream-live-translate v0.0.29 (/opt/rustwide/workdir)
[INFO] [stderr]     Checking dasp_sample v0.11.0
[INFO] [stderr]     Checking nu-ansi-term v0.50.3
[INFO] [stderr]     Checking include_dir v0.7.4
[INFO] [stderr]     Checking uuid v1.25.0
[INFO] [stderr]     Checking dirs v5.0.1
[INFO] [stderr]     Checking sha2 v0.10.9
[INFO] [stderr]     Checking sys-locale v0.3.2
[INFO] [stderr]     Checking matchers v0.2.0
[INFO] [stderr]    Compiling tokio-macros v2.7.2
[INFO] [stderr]    Compiling futures-macro v0.3.34
[INFO] [stderr]    Compiling serde_derive v1.0.229
[INFO] [stderr]    Compiling async-trait v0.1.92
[INFO] [stderr]    Compiling clap_derive v4.6.4
[INFO] [stderr]     Checking tokio v1.53.1
[INFO] [stderr]     Checking futures-util v0.3.34
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]    Compiling axum-macros v0.4.2
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking rand v0.8.7
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking clap v4.6.6
[INFO] [stderr]     Checking tracing v0.1.44
[INFO] [stderr]     Checking tower v0.4.13
[INFO] [stderr]     Checking tracing-subscriber v0.3.23
[INFO] [stderr]     Checking tungstenite v0.24.0
[INFO] [stderr]     Checking serde v1.0.229
[INFO] [stderr]     Checking serde_spanned v0.6.9
[INFO] [stderr]     Checking toml_datetime v0.6.11
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking chrono v0.4.45
[INFO] [stderr]     Checking toml_edit v0.22.27
[INFO] [stderr]     Checking futures-executor v0.3.34
[INFO] [stderr]     Checking axum-core v0.4.5
[INFO] [stderr]     Checking futures v0.3.34
[INFO] [stderr]     Checking tungstenite v0.23.0
[INFO] [stderr]     Checking hyper v1.11.0
[INFO] [stderr]     Checking tokio-util v0.7.19
[INFO] [stderr]     Checking tokio-native-tls v0.3.1
[INFO] [stderr]     Checking tower v0.5.3
[INFO] [stderr]     Checking tokio-tungstenite v0.24.0
[INFO] [stderr]     Checking toml v0.8.23
[INFO] [stderr]     Checking tokio-tungstenite v0.23.1
[INFO] [stderr]     Checking tower-http v0.5.2
[INFO] [stderr]     Checking hyper-util v0.1.20
[INFO] [stderr]     Checking axum v0.7.9
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/config.rs:1033:13
[INFO] [stdout]      |
[INFO] [stdout] 1033 |         let mut too_long = |name: &str, value: &str, max: usize, errors: &mut Vec<String>| {
[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: value assigned to `current_len` is never read
[INFO] [stdout]    --> src/hotwords.rs:150:17
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 current_len = current.chars().count();
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] 151 |                 all.push(std::mem::take(&mut current));
[INFO] [stdout] 152 |                 current_len = 0;
[INFO] [stdout]     |                 --------------- `current_len` 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: variable `other` is assigned to, but never used
[INFO] [stdout]   --> src/lang.rs:28:9
[INFO] [stdout]    |
[INFO] [stdout] 28 |     let mut other = 0u32;
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using `_other` instead
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `other` is never read
[INFO] [stdout]   --> src/lang.rs:42:18
[INFO] [stdout]    |
[INFO] [stdout] 42 |             _ => other += 1,
[INFO] [stdout]    |                  ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `tail_ms` is never read
[INFO] [stdout]    --> src/llm.rs:576:33
[INFO] [stdout]     |
[INFO] [stdout] 576 | ...                       tail_ms = 0;
[INFO] [stdout]     |                           ^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 579 | ...                   tail_ms = 0;
[INFO] [stdout]     |                       ----------- `tail_ms` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `current_generation` is never used
[INFO] [stdout]    --> src/ingest.rs:108:4
[INFO] [stdout]     |
[INFO] [stdout] 108 | fn current_generation() -> u64 {
[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 `DRAIN_TIMEOUT_TEST_OVERRIDE` is never used
[INFO] [stdout]    --> src/llm.rs:386:22
[INFO] [stdout]     |
[INFO] [stdout] 386 |     pub(crate) const DRAIN_TIMEOUT_TEST_OVERRIDE: std::time::Duration =
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `session` is never read
[INFO] [stdout]    --> src/llm.rs:691:26
[INFO] [stdout]     |
[INFO] [stdout] 691 |         SessionCreated { session: serde_json::Value },
[INFO] [stdout]     |         --------------   ^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `QwenEvent` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `session` is never read
[INFO] [stdout]    --> src/llm.rs:693:26
[INFO] [stdout]     |
[INFO] [stdout] 693 |         SessionUpdated { session: serde_json::Value },
[INFO] [stdout]     |         --------------   ^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `QwenEvent` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DRAIN_TIMEOUT_TEST_OVERRIDE` is never used
[INFO] [stdout]    --> src/llm.rs:878:22
[INFO] [stdout]     |
[INFO] [stdout] 878 |     pub(crate) const DRAIN_TIMEOUT_TEST_OVERRIDE: std::time::Duration =
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DRAIN_TIMEOUT_TEST_OVERRIDE` is never used
[INFO] [stdout]     --> src/llm.rs:1666:22
[INFO] [stdout]      |
[INFO] [stdout] 1666 |     pub(crate) const DRAIN_TIMEOUT_TEST_OVERRIDE: std::time::Duration =
[INFO] [stdout]      |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `cfg` is never read
[INFO] [stdout]     --> src/llm.rs:1674:9
[INFO] [stdout]      |
[INFO] [stdout] 1673 |     pub struct FunAsr {
[INFO] [stdout]      |                ------ field in this struct
[INFO] [stdout] 1674 |         cfg: LlmConfig,
[INFO] [stdout]      |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `cfg` and `task` are never read
[INFO] [stdout]    --> src/obs.rs:110:5
[INFO] [stdout]     |
[INFO] [stdout] 109 | pub struct ObsClient {
[INFO] [stdout]     |            --------- fields in this struct
[INFO] [stdout] 110 |     cfg: ObsConfig,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] ...
[INFO] [stdout] 117 |     task: Option<tokio::task::JoinHandle<()>>,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `password` is never read
[INFO] [stdout]    --> src/server.rs:572:5
[INFO] [stdout]     |
[INFO] [stdout] 566 | struct ObsView {
[INFO] [stdout]     |        ------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 572 |     password: (),
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WsQuery` is never constructed
[INFO] [stdout]     --> src/server.rs:1535:8
[INFO] [stdout]      |
[INFO] [stdout] 1535 | struct WsQuery {
[INFO] [stdout]      |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/config.rs:1033:13
[INFO] [stdout]      |
[INFO] [stdout] 1033 |         let mut too_long = |name: &str, value: &str, max: usize, errors: &mut Vec<String>| {
[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] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/llm.rs:496:37
[INFO] [stdout]     |
[INFO] [stdout] 496 |                 .send(Message::Text(session.to_string().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] 496 -                 .send(Message::Text(session.to_string().into()))
[INFO] [stdout] 496 +                 .send(Message::Text(session.to_string()))
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 496 -                 .send(Message::Text(session.to_string().into()))
[INFO] [stdout] 496 +                 .send(Message::Text(<std::string::String as Into<_>>::into(session.to_string())))
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/llm.rs:599:45
[INFO] [stdout]     |
[INFO] [stdout] 599 |                         .send(Message::Text(msg.to_string().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] 599 -                         .send(Message::Text(msg.to_string().into()))
[INFO] [stdout] 599 +                         .send(Message::Text(msg.to_string()))
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 599 -                         .send(Message::Text(msg.to_string().into()))
[INFO] [stdout] 599 +                         .send(Message::Text(<std::string::String as Into<_>>::into(msg.to_string())))
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/llm.rs:613:49
[INFO] [stdout]     |
[INFO] [stdout] 613 | ...                   .send(Message::Text(cm.to_string().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] 613 -                             .send(Message::Text(cm.to_string().into()))
[INFO] [stdout] 613 +                             .send(Message::Text(cm.to_string()))
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 613 -                             .send(Message::Text(cm.to_string().into()))
[INFO] [stdout] 613 +                             .send(Message::Text(<std::string::String as Into<_>>::into(cm.to_string())))
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/llm.rs:622:53
[INFO] [stdout]     |
[INFO] [stdout] 622 | ...                   .send(Message::Text(rc.to_string().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] 622 -                                 .send(Message::Text(rc.to_string().into()))
[INFO] [stdout] 622 +                                 .send(Message::Text(rc.to_string()))
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 622 -                                 .send(Message::Text(rc.to_string().into()))
[INFO] [stdout] 622 +                                 .send(Message::Text(<std::string::String as Into<_>>::into(rc.to_string())))
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/llm.rs:635:49
[INFO] [stdout]     |
[INFO] [stdout] 635 | ...                   .send(Message::Text(cm.to_string().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] 635 -                             .send(Message::Text(cm.to_string().into()))
[INFO] [stdout] 635 +                             .send(Message::Text(cm.to_string()))
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 635 -                             .send(Message::Text(cm.to_string().into()))
[INFO] [stdout] 635 +                             .send(Message::Text(<std::string::String as Into<_>>::into(cm.to_string())))
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/llm.rs:644:53
[INFO] [stdout]     |
[INFO] [stdout] 644 | ...                   .send(Message::Text(rc.to_string().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] 644 -                                 .send(Message::Text(rc.to_string().into()))
[INFO] [stdout] 644 +                                 .send(Message::Text(rc.to_string()))
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 644 -                                 .send(Message::Text(rc.to_string().into()))
[INFO] [stdout] 644 +                                 .send(Message::Text(<std::string::String as Into<_>>::into(rc.to_string())))
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/llm.rs:659:59
[INFO] [stdout]     |
[INFO] [stdout] 659 |                     let _ = write_half.send(Message::Text(cm.to_string().into())).await;
[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] 659 -                     let _ = write_half.send(Message::Text(cm.to_string().into())).await;
[INFO] [stdout] 659 +                     let _ = write_half.send(Message::Text(cm.to_string())).await;
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 659 -                     let _ = write_half.send(Message::Text(cm.to_string().into())).await;
[INFO] [stdout] 659 +                     let _ = write_half.send(Message::Text(<std::string::String as Into<_>>::into(cm.to_string()))).await;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/llm.rs:662:63
[INFO] [stdout]     |
[INFO] [stdout] 662 |                         let _ = write_half.send(Message::Text(rc.to_string().into())).await;
[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] 662 -                         let _ = write_half.send(Message::Text(rc.to_string().into())).await;
[INFO] [stdout] 662 +                         let _ = write_half.send(Message::Text(rc.to_string())).await;
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 662 -                         let _ = write_half.send(Message::Text(rc.to_string().into())).await;
[INFO] [stdout] 662 +                         let _ = write_half.send(Message::Text(<std::string::String as Into<_>>::into(rc.to_string()))).await;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/llm.rs:668:25
[INFO] [stdout]     |
[INFO] [stdout] 668 | /                         serde_json::json!({"type": "session.finish"})
[INFO] [stdout] 669 | |                             .to_string()
[INFO] [stdout] 670 | |                             .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] 669 -                             .to_string()
[INFO] [stdout] 670 -                             .into(),
[INFO] [stdout] 669 +                             .to_string(),
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 668 ~                         <std::string::String as Into<_>>::into(serde_json::json!({"type": "session.finish"})
[INFO] [stdout] 669 ~                             .to_string()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/llm.rs:924:17
[INFO] [stdout]     |
[INFO] [stdout] 924 | /                 serde_json::json!({ "type": "response.create" })
[INFO] [stdout] 925 | |                     .to_string()
[INFO] [stdout] 926 | |                     .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] 925 -                     .to_string()
[INFO] [stdout] 926 -                     .into(),
[INFO] [stdout] 925 +                     .to_string(),
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 924 ~                 <std::string::String as Into<_>>::into(serde_json::json!({ "type": "response.create" })
[INFO] [stdout] 925 ~                     .to_string()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/llm.rs:1012:21
[INFO] [stdout]      |
[INFO] [stdout] 1012 | /                     serde_json::json!({ "type": "session.update", "session": session_cfg })
[INFO] [stdout] 1013 | |                         .to_string()
[INFO] [stdout] 1014 | |                         .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] 1013 -                         .to_string()
[INFO] [stdout] 1014 -                         .into(),
[INFO] [stdout] 1013 +                         .to_string(),
[INFO] [stdout]      |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]      |
[INFO] [stdout] 1012 ~                     <std::string::String as Into<_>>::into(serde_json::json!({ "type": "session.update", "session": session_cfg })
[INFO] [stdout] 1013 ~                         .to_string()),
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/llm.rs:1115:45
[INFO] [stdout]      |
[INFO] [stdout] 1115 |                         .send(Message::Text(msg.to_string().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] 1115 -                         .send(Message::Text(msg.to_string().into()))
[INFO] [stdout] 1115 +                         .send(Message::Text(msg.to_string()))
[INFO] [stdout]      |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]      |
[INFO] [stdout] 1115 -                         .send(Message::Text(msg.to_string().into()))
[INFO] [stdout] 1115 +                         .send(Message::Text(<std::string::String as Into<_>>::into(msg.to_string())))
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/llm.rs:1142:59
[INFO] [stdout]      |
[INFO] [stdout] 1142 |                     let _ = write_half.send(Message::Text(c.to_string().into())).await;
[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] 1142 -                     let _ = write_half.send(Message::Text(c.to_string().into())).await;
[INFO] [stdout] 1142 +                     let _ = write_half.send(Message::Text(c.to_string())).await;
[INFO] [stdout]      |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]      |
[INFO] [stdout] 1142 -                     let _ = write_half.send(Message::Text(c.to_string().into())).await;
[INFO] [stdout] 1142 +                     let _ = write_half.send(Message::Text(<std::string::String as Into<_>>::into(c.to_string()))).await;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/llm.rs:1722:37
[INFO] [stdout]      |
[INFO] [stdout] 1722 |                 .send(Message::Text(start.to_string().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] 1722 -                 .send(Message::Text(start.to_string().into()))
[INFO] [stdout] 1722 +                 .send(Message::Text(start.to_string()))
[INFO] [stdout]      |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]      |
[INFO] [stdout] 1722 -                 .send(Message::Text(start.to_string().into()))
[INFO] [stdout] 1722 +                 .send(Message::Text(<std::string::String as Into<_>>::into(start.to_string())))
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `Vec<u8>`
[INFO] [stdout]     --> src/llm.rs:1832:47
[INFO] [stdout]      |
[INFO] [stdout] 1832 |                         .send(Message::Binary(bytes.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] 1832 -                         .send(Message::Binary(bytes.into()))
[INFO] [stdout] 1832 +                         .send(Message::Binary(bytes))
[INFO] [stdout]      |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]      |
[INFO] [stdout] 1832 -                         .send(Message::Binary(bytes.into()))
[INFO] [stdout] 1832 +                         .send(Message::Binary(<Vec<u8> as Into<_>>::into(bytes)))
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/llm.rs:1842:59
[INFO] [stdout]      |
[INFO] [stdout] 1842 |                     let _ = write_half.send(Message::Text(m.to_string().into())).await;
[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] 1842 -                     let _ = write_half.send(Message::Text(m.to_string().into())).await;
[INFO] [stdout] 1842 +                     let _ = write_half.send(Message::Text(m.to_string())).await;
[INFO] [stdout]      |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]      |
[INFO] [stdout] 1842 -                     let _ = write_half.send(Message::Text(m.to_string().into())).await;
[INFO] [stdout] 1842 +                     let _ = write_half.send(Message::Text(<std::string::String as Into<_>>::into(m.to_string()))).await;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/llm.rs:2157:33
[INFO] [stdout]      |
[INFO] [stdout] 2157 |             .send(Message::Text(start.to_string().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] 2157 -             .send(Message::Text(start.to_string().into()))
[INFO] [stdout] 2157 +             .send(Message::Text(start.to_string()))
[INFO] [stdout]      |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]      |
[INFO] [stdout] 2157 -             .send(Message::Text(start.to_string().into()))
[INFO] [stdout] 2157 +             .send(Message::Text(<std::string::String as Into<_>>::into(start.to_string())))
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/llm.rs:2180:33
[INFO] [stdout]      |
[INFO] [stdout] 2180 |             .send(Message::Text(finish.to_string().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] 2180 -             .send(Message::Text(finish.to_string().into()))
[INFO] [stdout] 2180 +             .send(Message::Text(finish.to_string()))
[INFO] [stdout]      |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]      |
[INFO] [stdout] 2180 -             .send(Message::Text(finish.to_string().into()))
[INFO] [stdout] 2180 +             .send(Message::Text(<std::string::String as Into<_>>::into(finish.to_string())))
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/llm.rs:2274:37
[INFO] [stdout]      |
[INFO] [stdout] 2274 |                 .send(Message::Text(start.to_string().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] 2274 -                 .send(Message::Text(start.to_string().into()))
[INFO] [stdout] 2274 +                 .send(Message::Text(start.to_string()))
[INFO] [stdout]      |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]      |
[INFO] [stdout] 2274 -                 .send(Message::Text(start.to_string().into()))
[INFO] [stdout] 2274 +                 .send(Message::Text(<std::string::String as Into<_>>::into(start.to_string())))
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `Vec<u8>`
[INFO] [stdout]     --> src/llm.rs:2340:56
[INFO] [stdout]      |
[INFO] [stdout] 2340 | ...                   write.send(Message::Binary(bytes.into())).await.context("发送百炼音频")?;
[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] 2340 -                             write.send(Message::Binary(bytes.into())).await.context("发送百炼音频")?;
[INFO] [stdout] 2340 +                             write.send(Message::Binary(bytes)).await.context("发送百炼音频")?;
[INFO] [stdout]      |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]      |
[INFO] [stdout] 2340 -                             write.send(Message::Binary(bytes.into())).await.context("发送百炼音频")?;
[INFO] [stdout] 2340 +                             write.send(Message::Binary(<Vec<u8> as Into<_>>::into(bytes))).await.context("发送百炼音频")?;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/llm.rs:2359:54
[INFO] [stdout]      |
[INFO] [stdout] 2359 | ...                   write.send(Message::Text(update.to_string().into())).await.context("下发百炼热词上下文")?;
[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] 2359 -                             write.send(Message::Text(update.to_string().into())).await.context("下发百炼热词上下文")?;
[INFO] [stdout] 2359 +                             write.send(Message::Text(update.to_string())).await.context("下发百炼热词上下文")?;
[INFO] [stdout]      |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]      |
[INFO] [stdout] 2359 -                             write.send(Message::Text(update.to_string().into())).await.context("下发百炼热词上下文")?;
[INFO] [stdout] 2359 +                             write.send(Message::Text(<std::string::String as Into<_>>::into(update.to_string()))).await.context("下发百炼热词上下文")?;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/llm.rs:2366:50
[INFO] [stdout]      |
[INFO] [stdout] 2366 |                 let _ = write.send(Message::Text(finish.to_string().into())).await;
[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] 2366 -                 let _ = write.send(Message::Text(finish.to_string().into())).await;
[INFO] [stdout] 2366 +                 let _ = write.send(Message::Text(finish.to_string())).await;
[INFO] [stdout]      |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]      |
[INFO] [stdout] 2366 -                 let _ = write.send(Message::Text(finish.to_string().into())).await;
[INFO] [stdout] 2366 +                 let _ = write.send(Message::Text(<std::string::String as Into<_>>::into(finish.to_string()))).await;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/obs.rs:485:9
[INFO] [stdout]     |
[INFO] [stdout] 485 | /         serde_json::json!({"op": 1, "d": identify_d})
[INFO] [stdout] 486 | |             .to_string()
[INFO] [stdout] 487 | |             .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] 486 -             .to_string()
[INFO] [stdout] 487 -             .into(),
[INFO] [stdout] 486 +             .to_string(),
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 485 ~         <std::string::String as Into<_>>::into(serde_json::json!({"op": 1, "d": identify_d})
[INFO] [stdout] 486 ~             .to_string()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/obs.rs:584:45
[INFO] [stdout]     |
[INFO] [stdout] 584 |                         .send(Message::Text(req.to_string().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] 584 -                         .send(Message::Text(req.to_string().into()))
[INFO] [stdout] 584 +                         .send(Message::Text(req.to_string()))
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 584 -                         .send(Message::Text(req.to_string().into()))
[INFO] [stdout] 584 +                         .send(Message::Text(<std::string::String as Into<_>>::into(req.to_string())))
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/obs.rs:675:33
[INFO] [stdout]     |
[INFO] [stdout] 675 |             .send(Message::Text(create.to_string().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] 675 -             .send(Message::Text(create.to_string().into()))
[INFO] [stdout] 675 +             .send(Message::Text(create.to_string()))
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 675 -             .send(Message::Text(create.to_string().into()))
[INFO] [stdout] 675 +             .send(Message::Text(<std::string::String as Into<_>>::into(create.to_string())))
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/obs.rs:691:29
[INFO] [stdout]     |
[INFO] [stdout] 691 |         .send(Message::Text(update.to_string().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] 691 -         .send(Message::Text(update.to_string().into()))
[INFO] [stdout] 691 +         .send(Message::Text(update.to_string()))
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 691 -         .send(Message::Text(update.to_string().into()))
[INFO] [stdout] 691 +         .send(Message::Text(<std::string::String as Into<_>>::into(update.to_string())))
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/obs.rs:722:29
[INFO] [stdout]     |
[INFO] [stdout] 722 |         .send(Message::Text(create.to_string().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] 722 -         .send(Message::Text(create.to_string().into()))
[INFO] [stdout] 722 +         .send(Message::Text(create.to_string()))
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 722 -         .send(Message::Text(create.to_string().into()))
[INFO] [stdout] 722 +         .send(Message::Text(<std::string::String as Into<_>>::into(create.to_string())))
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/obs.rs:744:29
[INFO] [stdout]     |
[INFO] [stdout] 744 |         .send(Message::Text(update.to_string().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] 744 -         .send(Message::Text(update.to_string().into()))
[INFO] [stdout] 744 +         .send(Message::Text(update.to_string()))
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 744 -         .send(Message::Text(update.to_string().into()))
[INFO] [stdout] 744 +         .send(Message::Text(<std::string::String as Into<_>>::into(update.to_string())))
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/obs.rs:762:29
[INFO] [stdout]     |
[INFO] [stdout] 762 |         .send(Message::Text(req.to_string().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] 762 -         .send(Message::Text(req.to_string().into()))
[INFO] [stdout] 762 +         .send(Message::Text(req.to_string()))
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 762 -         .send(Message::Text(req.to_string().into()))
[INFO] [stdout] 762 +         .send(Message::Text(<std::string::String as Into<_>>::into(req.to_string())))
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/server.rs:1554:29
[INFO] [stdout]      |
[INFO] [stdout] 1554 |         .send(Message::Text(payload.to_string().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] 1554 -         .send(Message::Text(payload.to_string().into()))
[INFO] [stdout] 1554 +         .send(Message::Text(payload.to_string()))
[INFO] [stdout]      |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]      |
[INFO] [stdout] 1554 -         .send(Message::Text(payload.to_string().into()))
[INFO] [stdout] 1554 +         .send(Message::Text(<std::string::String as Into<_>>::into(payload.to_string())))
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/server.rs:1574:33
[INFO] [stdout]      |
[INFO] [stdout] 1574 |             .send(Message::Text(payload.to_string().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] 1574 -             .send(Message::Text(payload.to_string().into()))
[INFO] [stdout] 1574 +             .send(Message::Text(payload.to_string()))
[INFO] [stdout]      |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]      |
[INFO] [stdout] 1574 -             .send(Message::Text(payload.to_string().into()))
[INFO] [stdout] 1574 +             .send(Message::Text(<std::string::String as Into<_>>::into(payload.to_string())))
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/server.rs:1595:41
[INFO] [stdout]      |
[INFO] [stdout] 1595 |                     .send(Message::Text(payload.to_string().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] 1595 -                     .send(Message::Text(payload.to_string().into()))
[INFO] [stdout] 1595 +                     .send(Message::Text(payload.to_string()))
[INFO] [stdout]      |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]      |
[INFO] [stdout] 1595 -                     .send(Message::Text(payload.to_string().into()))
[INFO] [stdout] 1595 +                     .send(Message::Text(<std::string::String as Into<_>>::into(payload.to_string())))
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/llm.rs:1063:58
[INFO] [stdout]      |
[INFO] [stdout] 1060 |                 macro_rules! do_commit {
[INFO] [stdout] ...
[INFO] [stdout] 1063 |                         if write_half.send(Message::Text(c.to_string().into())).await.is_err() {
[INFO] [stdout]      |                                                          ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1126 |                         do_commit!();
[INFO] [stdout]      |                         ------------ in this macro invocation
[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: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/llm.rs:1063:58
[INFO] [stdout]      |
[INFO] [stdout] 1060 |                 macro_rules! do_commit {
[INFO] [stdout] ...
[INFO] [stdout] 1063 |                         if write_half.send(Message::Text(c.to_string().into())).await.is_err() {
[INFO] [stdout]      |                                                          ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1131 |                         do_commit!();
[INFO] [stdout]      |                         ------------ in this macro invocation
[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: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/llm.rs:1794:49
[INFO] [stdout]      |
[INFO] [stdout] 1790 |                 macro_rules! seg_flag {
[INFO] [stdout] ...
[INFO] [stdout] 1794 |                             .send(Message::Text(m.to_string().into()))
[INFO] [stdout]      |                                                 ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1819 |                             seg_flag!(true);
[INFO] [stdout]      |                             --------------- in this macro invocation
[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: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/llm.rs:1794:49
[INFO] [stdout]      |
[INFO] [stdout] 1790 |                 macro_rules! seg_flag {
[INFO] [stdout] ...
[INFO] [stdout] 1794 |                             .send(Message::Text(m.to_string().into()))
[INFO] [stdout]      |                                                 ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1826 |                             seg_flag!(false);
[INFO] [stdout]      |                             ---------------- in this macro invocation
[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: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `current_len` is never read
[INFO] [stdout]    --> src/hotwords.rs:150:17
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 current_len = current.chars().count();
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] 151 |                 all.push(std::mem::take(&mut current));
[INFO] [stdout] 152 |                 current_len = 0;
[INFO] [stdout]     |                 --------------- `current_len` 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: variable `other` is assigned to, but never used
[INFO] [stdout]   --> src/lang.rs:28:9
[INFO] [stdout]    |
[INFO] [stdout] 28 |     let mut other = 0u32;
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using `_other` instead
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `other` is never read
[INFO] [stdout]   --> src/lang.rs:42:18
[INFO] [stdout]    |
[INFO] [stdout] 42 |             _ => other += 1,
[INFO] [stdout]    |                  ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `stream-live-translate` (bin "stream-live-translate") due to 36 previous errors; 15 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: value assigned to `tail_ms` is never read
[INFO] [stdout]    --> src/llm.rs:576:33
[INFO] [stdout]     |
[INFO] [stdout] 576 | ...                       tail_ms = 0;
[INFO] [stdout]     |                           ^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 579 | ...                   tail_ms = 0;
[INFO] [stdout]     |                       ----------- `tail_ms` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `current_generation` is never used
[INFO] [stdout]    --> src/ingest.rs:108:4
[INFO] [stdout]     |
[INFO] [stdout] 108 | fn current_generation() -> u64 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `session` is never read
[INFO] [stdout]    --> src/llm.rs:691:26
[INFO] [stdout]     |
[INFO] [stdout] 691 |         SessionCreated { session: serde_json::Value },
[INFO] [stdout]     |         --------------   ^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `QwenEvent` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `session` is never read
[INFO] [stdout]    --> src/llm.rs:693:26
[INFO] [stdout]     |
[INFO] [stdout] 693 |         SessionUpdated { session: serde_json::Value },
[INFO] [stdout]     |         --------------   ^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `QwenEvent` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `cfg` is never read
[INFO] [stdout]     --> src/llm.rs:1674:9
[INFO] [stdout]      |
[INFO] [stdout] 1673 |     pub struct FunAsr {
[INFO] [stdout]      |                ------ field in this struct
[INFO] [stdout] 1674 |         cfg: LlmConfig,
[INFO] [stdout]      |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `cfg` and `task` are never read
[INFO] [stdout]    --> src/obs.rs:110:5
[INFO] [stdout]     |
[INFO] [stdout] 109 | pub struct ObsClient {
[INFO] [stdout]     |            --------- fields in this struct
[INFO] [stdout] 110 |     cfg: ObsConfig,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] ...
[INFO] [stdout] 117 |     task: Option<tokio::task::JoinHandle<()>>,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `password` is never read
[INFO] [stdout]    --> src/server.rs:572:5
[INFO] [stdout]     |
[INFO] [stdout] 566 | struct ObsView {
[INFO] [stdout]     |        ------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 572 |     password: (),
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WsQuery` is never constructed
[INFO] [stdout]     --> src/server.rs:1535:8
[INFO] [stdout]      |
[INFO] [stdout] 1535 | struct WsQuery {
[INFO] [stdout]      |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `a_config_patch_carries_speech_noise_threshold` is never used
[INFO] [stdout]     --> src/server.rs:1700:8
[INFO] [stdout]      |
[INFO] [stdout] 1700 |     fn a_config_patch_carries_speech_noise_threshold() {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `out_of_range_patches_are_clamped_the_same_way_as_the_save_path` is never used
[INFO] [stdout]     --> src/server.rs:1715:8
[INFO] [stdout]      |
[INFO] [stdout] 1715 |     fn out_of_range_patches_are_clamped_the_same_way_as_the_save_path() {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/llm.rs:496:37
[INFO] [stdout]     |
[INFO] [stdout] 496 |                 .send(Message::Text(session.to_string().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] 496 -                 .send(Message::Text(session.to_string().into()))
[INFO] [stdout] 496 +                 .send(Message::Text(session.to_string()))
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 496 -                 .send(Message::Text(session.to_string().into()))
[INFO] [stdout] 496 +                 .send(Message::Text(<std::string::String as Into<_>>::into(session.to_string())))
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/llm.rs:599:45
[INFO] [stdout]     |
[INFO] [stdout] 599 |                         .send(Message::Text(msg.to_string().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] 599 -                         .send(Message::Text(msg.to_string().into()))
[INFO] [stdout] 599 +                         .send(Message::Text(msg.to_string()))
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 599 -                         .send(Message::Text(msg.to_string().into()))
[INFO] [stdout] 599 +                         .send(Message::Text(<std::string::String as Into<_>>::into(msg.to_string())))
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/llm.rs:613:49
[INFO] [stdout]     |
[INFO] [stdout] 613 | ...                   .send(Message::Text(cm.to_string().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] 613 -                             .send(Message::Text(cm.to_string().into()))
[INFO] [stdout] 613 +                             .send(Message::Text(cm.to_string()))
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 613 -                             .send(Message::Text(cm.to_string().into()))
[INFO] [stdout] 613 +                             .send(Message::Text(<std::string::String as Into<_>>::into(cm.to_string())))
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/llm.rs:622:53
[INFO] [stdout]     |
[INFO] [stdout] 622 | ...                   .send(Message::Text(rc.to_string().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] 622 -                                 .send(Message::Text(rc.to_string().into()))
[INFO] [stdout] 622 +                                 .send(Message::Text(rc.to_string()))
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 622 -                                 .send(Message::Text(rc.to_string().into()))
[INFO] [stdout] 622 +                                 .send(Message::Text(<std::string::String as Into<_>>::into(rc.to_string())))
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/llm.rs:635:49
[INFO] [stdout]     |
[INFO] [stdout] 635 | ...                   .send(Message::Text(cm.to_string().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] 635 -                             .send(Message::Text(cm.to_string().into()))
[INFO] [stdout] 635 +                             .send(Message::Text(cm.to_string()))
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 635 -                             .send(Message::Text(cm.to_string().into()))
[INFO] [stdout] 635 +                             .send(Message::Text(<std::string::String as Into<_>>::into(cm.to_string())))
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/llm.rs:644:53
[INFO] [stdout]     |
[INFO] [stdout] 644 | ...                   .send(Message::Text(rc.to_string().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] 644 -                                 .send(Message::Text(rc.to_string().into()))
[INFO] [stdout] 644 +                                 .send(Message::Text(rc.to_string()))
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 644 -                                 .send(Message::Text(rc.to_string().into()))
[INFO] [stdout] 644 +                                 .send(Message::Text(<std::string::String as Into<_>>::into(rc.to_string())))
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/llm.rs:659:59
[INFO] [stdout]     |
[INFO] [stdout] 659 |                     let _ = write_half.send(Message::Text(cm.to_string().into())).await;
[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] 659 -                     let _ = write_half.send(Message::Text(cm.to_string().into())).await;
[INFO] [stdout] 659 +                     let _ = write_half.send(Message::Text(cm.to_string())).await;
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 659 -                     let _ = write_half.send(Message::Text(cm.to_string().into())).await;
[INFO] [stdout] 659 +                     let _ = write_half.send(Message::Text(<std::string::String as Into<_>>::into(cm.to_string()))).await;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/llm.rs:662:63
[INFO] [stdout]     |
[INFO] [stdout] 662 |                         let _ = write_half.send(Message::Text(rc.to_string().into())).await;
[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] 662 -                         let _ = write_half.send(Message::Text(rc.to_string().into())).await;
[INFO] [stdout] 662 +                         let _ = write_half.send(Message::Text(rc.to_string())).await;
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 662 -                         let _ = write_half.send(Message::Text(rc.to_string().into())).await;
[INFO] [stdout] 662 +                         let _ = write_half.send(Message::Text(<std::string::String as Into<_>>::into(rc.to_string()))).await;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/llm.rs:668:25
[INFO] [stdout]     |
[INFO] [stdout] 668 | /                         serde_json::json!({"type": "session.finish"})
[INFO] [stdout] 669 | |                             .to_string()
[INFO] [stdout] 670 | |                             .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] 669 -                             .to_string()
[INFO] [stdout] 670 -                             .into(),
[INFO] [stdout] 669 +                             .to_string(),
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 668 ~                         <std::string::String as Into<_>>::into(serde_json::json!({"type": "session.finish"})
[INFO] [stdout] 669 ~                             .to_string()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/llm.rs:924:17
[INFO] [stdout]     |
[INFO] [stdout] 924 | /                 serde_json::json!({ "type": "response.create" })
[INFO] [stdout] 925 | |                     .to_string()
[INFO] [stdout] 926 | |                     .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] 925 -                     .to_string()
[INFO] [stdout] 926 -                     .into(),
[INFO] [stdout] 925 +                     .to_string(),
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 924 ~                 <std::string::String as Into<_>>::into(serde_json::json!({ "type": "response.create" })
[INFO] [stdout] 925 ~                     .to_string()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/llm.rs:1012:21
[INFO] [stdout]      |
[INFO] [stdout] 1012 | /                     serde_json::json!({ "type": "session.update", "session": session_cfg })
[INFO] [stdout] 1013 | |                         .to_string()
[INFO] [stdout] 1014 | |                         .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] 1013 -                         .to_string()
[INFO] [stdout] 1014 -                         .into(),
[INFO] [stdout] 1013 +                         .to_string(),
[INFO] [stdout]      |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]      |
[INFO] [stdout] 1012 ~                     <std::string::String as Into<_>>::into(serde_json::json!({ "type": "session.update", "session": session_cfg })
[INFO] [stdout] 1013 ~                         .to_string()),
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/llm.rs:1115:45
[INFO] [stdout]      |
[INFO] [stdout] 1115 |                         .send(Message::Text(msg.to_string().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] 1115 -                         .send(Message::Text(msg.to_string().into()))
[INFO] [stdout] 1115 +                         .send(Message::Text(msg.to_string()))
[INFO] [stdout]      |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]      |
[INFO] [stdout] 1115 -                         .send(Message::Text(msg.to_string().into()))
[INFO] [stdout] 1115 +                         .send(Message::Text(<std::string::String as Into<_>>::into(msg.to_string())))
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/llm.rs:1142:59
[INFO] [stdout]      |
[INFO] [stdout] 1142 |                     let _ = write_half.send(Message::Text(c.to_string().into())).await;
[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] 1142 -                     let _ = write_half.send(Message::Text(c.to_string().into())).await;
[INFO] [stdout] 1142 +                     let _ = write_half.send(Message::Text(c.to_string())).await;
[INFO] [stdout]      |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]      |
[INFO] [stdout] 1142 -                     let _ = write_half.send(Message::Text(c.to_string().into())).await;
[INFO] [stdout] 1142 +                     let _ = write_half.send(Message::Text(<std::string::String as Into<_>>::into(c.to_string()))).await;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/llm.rs:1722:37
[INFO] [stdout]      |
[INFO] [stdout] 1722 |                 .send(Message::Text(start.to_string().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] 1722 -                 .send(Message::Text(start.to_string().into()))
[INFO] [stdout] 1722 +                 .send(Message::Text(start.to_string()))
[INFO] [stdout]      |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]      |
[INFO] [stdout] 1722 -                 .send(Message::Text(start.to_string().into()))
[INFO] [stdout] 1722 +                 .send(Message::Text(<std::string::String as Into<_>>::into(start.to_string())))
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `Vec<u8>`
[INFO] [stdout]     --> src/llm.rs:1832:47
[INFO] [stdout]      |
[INFO] [stdout] 1832 |                         .send(Message::Binary(bytes.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] 1832 -                         .send(Message::Binary(bytes.into()))
[INFO] [stdout] 1832 +                         .send(Message::Binary(bytes))
[INFO] [stdout]      |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]      |
[INFO] [stdout] 1832 -                         .send(Message::Binary(bytes.into()))
[INFO] [stdout] 1832 +                         .send(Message::Binary(<Vec<u8> as Into<_>>::into(bytes)))
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/llm.rs:1842:59
[INFO] [stdout]      |
[INFO] [stdout] 1842 |                     let _ = write_half.send(Message::Text(m.to_string().into())).await;
[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] 1842 -                     let _ = write_half.send(Message::Text(m.to_string().into())).await;
[INFO] [stdout] 1842 +                     let _ = write_half.send(Message::Text(m.to_string())).await;
[INFO] [stdout]      |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]      |
[INFO] [stdout] 1842 -                     let _ = write_half.send(Message::Text(m.to_string().into())).await;
[INFO] [stdout] 1842 +                     let _ = write_half.send(Message::Text(<std::string::String as Into<_>>::into(m.to_string()))).await;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/llm.rs:2157:33
[INFO] [stdout]      |
[INFO] [stdout] 2157 |             .send(Message::Text(start.to_string().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] 2157 -             .send(Message::Text(start.to_string().into()))
[INFO] [stdout] 2157 +             .send(Message::Text(start.to_string()))
[INFO] [stdout]      |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]      |
[INFO] [stdout] 2157 -             .send(Message::Text(start.to_string().into()))
[INFO] [stdout] 2157 +             .send(Message::Text(<std::string::String as Into<_>>::into(start.to_string())))
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/llm.rs:2180:33
[INFO] [stdout]      |
[INFO] [stdout] 2180 |             .send(Message::Text(finish.to_string().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] 2180 -             .send(Message::Text(finish.to_string().into()))
[INFO] [stdout] 2180 +             .send(Message::Text(finish.to_string()))
[INFO] [stdout]      |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]      |
[INFO] [stdout] 2180 -             .send(Message::Text(finish.to_string().into()))
[INFO] [stdout] 2180 +             .send(Message::Text(<std::string::String as Into<_>>::into(finish.to_string())))
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/llm.rs:2274:37
[INFO] [stdout]      |
[INFO] [stdout] 2274 |                 .send(Message::Text(start.to_string().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] 2274 -                 .send(Message::Text(start.to_string().into()))
[INFO] [stdout] 2274 +                 .send(Message::Text(start.to_string()))
[INFO] [stdout]      |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]      |
[INFO] [stdout] 2274 -                 .send(Message::Text(start.to_string().into()))
[INFO] [stdout] 2274 +                 .send(Message::Text(<std::string::String as Into<_>>::into(start.to_string())))
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `Vec<u8>`
[INFO] [stdout]     --> src/llm.rs:2340:56
[INFO] [stdout]      |
[INFO] [stdout] 2340 | ...                   write.send(Message::Binary(bytes.into())).await.context("发送百炼音频")?;
[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] 2340 -                             write.send(Message::Binary(bytes.into())).await.context("发送百炼音频")?;
[INFO] [stdout] 2340 +                             write.send(Message::Binary(bytes)).await.context("发送百炼音频")?;
[INFO] [stdout]      |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]      |
[INFO] [stdout] 2340 -                             write.send(Message::Binary(bytes.into())).await.context("发送百炼音频")?;
[INFO] [stdout] 2340 +                             write.send(Message::Binary(<Vec<u8> as Into<_>>::into(bytes))).await.context("发送百炼音频")?;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/llm.rs:2359:54
[INFO] [stdout]      |
[INFO] [stdout] 2359 | ...                   write.send(Message::Text(update.to_string().into())).await.context("下发百炼热词上下文")?;
[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] 2359 -                             write.send(Message::Text(update.to_string().into())).await.context("下发百炼热词上下文")?;
[INFO] [stdout] 2359 +                             write.send(Message::Text(update.to_string())).await.context("下发百炼热词上下文")?;
[INFO] [stdout]      |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]      |
[INFO] [stdout] 2359 -                             write.send(Message::Text(update.to_string().into())).await.context("下发百炼热词上下文")?;
[INFO] [stdout] 2359 +                             write.send(Message::Text(<std::string::String as Into<_>>::into(update.to_string()))).await.context("下发百炼热词上下文")?;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/llm.rs:2366:50
[INFO] [stdout]      |
[INFO] [stdout] 2366 |                 let _ = write.send(Message::Text(finish.to_string().into())).await;
[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] 2366 -                 let _ = write.send(Message::Text(finish.to_string().into())).await;
[INFO] [stdout] 2366 +                 let _ = write.send(Message::Text(finish.to_string())).await;
[INFO] [stdout]      |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]      |
[INFO] [stdout] 2366 -                 let _ = write.send(Message::Text(finish.to_string().into())).await;
[INFO] [stdout] 2366 +                 let _ = write.send(Message::Text(<std::string::String as Into<_>>::into(finish.to_string()))).await;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/llm.rs:3147:43
[INFO] [stdout]      |
[INFO] [stdout] 3147 |             let _ = ws.send(Message::Text(final_event.to_string().into())).await;
[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] 3147 -             let _ = ws.send(Message::Text(final_event.to_string().into())).await;
[INFO] [stdout] 3147 +             let _ = ws.send(Message::Text(final_event.to_string())).await;
[INFO] [stdout]      |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]      |
[INFO] [stdout] 3147 -             let _ = ws.send(Message::Text(final_event.to_string().into())).await;
[INFO] [stdout] 3147 +             let _ = ws.send(Message::Text(<std::string::String as Into<_>>::into(final_event.to_string()))).await;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/llm.rs:3250:43
[INFO] [stdout]      |
[INFO] [stdout] 3250 |             let _ = ws.send(Message::Text(final_event.to_string().into())).await;
[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] 3250 -             let _ = ws.send(Message::Text(final_event.to_string().into())).await;
[INFO] [stdout] 3250 +             let _ = ws.send(Message::Text(final_event.to_string())).await;
[INFO] [stdout]      |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]      |
[INFO] [stdout] 3250 -             let _ = ws.send(Message::Text(final_event.to_string().into())).await;
[INFO] [stdout] 3250 +             let _ = ws.send(Message::Text(<std::string::String as Into<_>>::into(final_event.to_string()))).await;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/obs.rs:485:9
[INFO] [stdout]     |
[INFO] [stdout] 485 | /         serde_json::json!({"op": 1, "d": identify_d})
[INFO] [stdout] 486 | |             .to_string()
[INFO] [stdout] 487 | |             .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] 486 -             .to_string()
[INFO] [stdout] 487 -             .into(),
[INFO] [stdout] 486 +             .to_string(),
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 485 ~         <std::string::String as Into<_>>::into(serde_json::json!({"op": 1, "d": identify_d})
[INFO] [stdout] 486 ~             .to_string()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/obs.rs:584:45
[INFO] [stdout]     |
[INFO] [stdout] 584 |                         .send(Message::Text(req.to_string().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] 584 -                         .send(Message::Text(req.to_string().into()))
[INFO] [stdout] 584 +                         .send(Message::Text(req.to_string()))
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 584 -                         .send(Message::Text(req.to_string().into()))
[INFO] [stdout] 584 +                         .send(Message::Text(<std::string::String as Into<_>>::into(req.to_string())))
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/obs.rs:675:33
[INFO] [stdout]     |
[INFO] [stdout] 675 |             .send(Message::Text(create.to_string().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] 675 -             .send(Message::Text(create.to_string().into()))
[INFO] [stdout] 675 +             .send(Message::Text(create.to_string()))
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 675 -             .send(Message::Text(create.to_string().into()))
[INFO] [stdout] 675 +             .send(Message::Text(<std::string::String as Into<_>>::into(create.to_string())))
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/obs.rs:691:29
[INFO] [stdout]     |
[INFO] [stdout] 691 |         .send(Message::Text(update.to_string().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] 691 -         .send(Message::Text(update.to_string().into()))
[INFO] [stdout] 691 +         .send(Message::Text(update.to_string()))
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 691 -         .send(Message::Text(update.to_string().into()))
[INFO] [stdout] 691 +         .send(Message::Text(<std::string::String as Into<_>>::into(update.to_string())))
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/obs.rs:722:29
[INFO] [stdout]     |
[INFO] [stdout] 722 |         .send(Message::Text(create.to_string().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] 722 -         .send(Message::Text(create.to_string().into()))
[INFO] [stdout] 722 +         .send(Message::Text(create.to_string()))
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 722 -         .send(Message::Text(create.to_string().into()))
[INFO] [stdout] 722 +         .send(Message::Text(<std::string::String as Into<_>>::into(create.to_string())))
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/obs.rs:744:29
[INFO] [stdout]     |
[INFO] [stdout] 744 |         .send(Message::Text(update.to_string().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] 744 -         .send(Message::Text(update.to_string().into()))
[INFO] [stdout] 744 +         .send(Message::Text(update.to_string()))
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 744 -         .send(Message::Text(update.to_string().into()))
[INFO] [stdout] 744 +         .send(Message::Text(<std::string::String as Into<_>>::into(update.to_string())))
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/obs.rs:762:29
[INFO] [stdout]     |
[INFO] [stdout] 762 |         .send(Message::Text(req.to_string().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] 762 -         .send(Message::Text(req.to_string().into()))
[INFO] [stdout] 762 +         .send(Message::Text(req.to_string()))
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 762 -         .send(Message::Text(req.to_string().into()))
[INFO] [stdout] 762 +         .send(Message::Text(<std::string::String as Into<_>>::into(req.to_string())))
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/obs.rs:881:13
[INFO] [stdout]     |
[INFO] [stdout] 881 | /             serde_json::json!({"op": 0, "d": {"rpcVersion": 1}})
[INFO] [stdout] 882 | |                 .to_string()
[INFO] [stdout] 883 | |                 .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] 882 -                 .to_string()
[INFO] [stdout] 883 -                 .into(),
[INFO] [stdout] 882 +                 .to_string(),
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 881 ~             <std::string::String as Into<_>>::into(serde_json::json!({"op": 0, "d": {"rpcVersion": 1}})
[INFO] [stdout] 882 ~                 .to_string()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]    --> src/obs.rs:895:13
[INFO] [stdout]     |
[INFO] [stdout] 895 | /             serde_json::json!({"op": 2, "d": {"negotiatedRpcVersion": 1}})
[INFO] [stdout] 896 | |                 .to_string()
[INFO] [stdout] 897 | |                 .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] 896 -                 .to_string()
[INFO] [stdout] 897 -                 .into(),
[INFO] [stdout] 896 +                 .to_string(),
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 895 ~             <std::string::String as Into<_>>::into(serde_json::json!({"op": 2, "d": {"negotiatedRpcVersion": 1}})
[INFO] [stdout] 896 ~                 .to_string()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/server.rs:1554:29
[INFO] [stdout]      |
[INFO] [stdout] 1554 |         .send(Message::Text(payload.to_string().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] 1554 -         .send(Message::Text(payload.to_string().into()))
[INFO] [stdout] 1554 +         .send(Message::Text(payload.to_string()))
[INFO] [stdout]      |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]      |
[INFO] [stdout] 1554 -         .send(Message::Text(payload.to_string().into()))
[INFO] [stdout] 1554 +         .send(Message::Text(<std::string::String as Into<_>>::into(payload.to_string())))
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/server.rs:1574:33
[INFO] [stdout]      |
[INFO] [stdout] 1574 |             .send(Message::Text(payload.to_string().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] 1574 -             .send(Message::Text(payload.to_string().into()))
[INFO] [stdout] 1574 +             .send(Message::Text(payload.to_string()))
[INFO] [stdout]      |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]      |
[INFO] [stdout] 1574 -             .send(Message::Text(payload.to_string().into()))
[INFO] [stdout] 1574 +             .send(Message::Text(<std::string::String as Into<_>>::into(payload.to_string())))
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/server.rs:1595:41
[INFO] [stdout]      |
[INFO] [stdout] 1595 |                     .send(Message::Text(payload.to_string().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] 1595 -                     .send(Message::Text(payload.to_string().into()))
[INFO] [stdout] 1595 +                     .send(Message::Text(payload.to_string()))
[INFO] [stdout]      |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]      |
[INFO] [stdout] 1595 -                     .send(Message::Text(payload.to_string().into()))
[INFO] [stdout] 1595 +                     .send(Message::Text(<std::string::String as Into<_>>::into(payload.to_string())))
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/llm.rs:1063:58
[INFO] [stdout]      |
[INFO] [stdout] 1060 |                 macro_rules! do_commit {
[INFO] [stdout] ...
[INFO] [stdout] 1063 |                         if write_half.send(Message::Text(c.to_string().into())).await.is_err() {
[INFO] [stdout]      |                                                          ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1126 |                         do_commit!();
[INFO] [stdout]      |                         ------------ in this macro invocation
[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: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/llm.rs:1063:58
[INFO] [stdout]      |
[INFO] [stdout] 1060 |                 macro_rules! do_commit {
[INFO] [stdout] ...
[INFO] [stdout] 1063 |                         if write_half.send(Message::Text(c.to_string().into())).await.is_err() {
[INFO] [stdout]      |                                                          ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1131 |                         do_commit!();
[INFO] [stdout]      |                         ------------ in this macro invocation
[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: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/llm.rs:1794:49
[INFO] [stdout]      |
[INFO] [stdout] 1790 |                 macro_rules! seg_flag {
[INFO] [stdout] ...
[INFO] [stdout] 1794 |                             .send(Message::Text(m.to_string().into()))
[INFO] [stdout]      |                                                 ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1819 |                             seg_flag!(true);
[INFO] [stdout]      |                             --------------- in this macro invocation
[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: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `std::string::String`
[INFO] [stdout]     --> src/llm.rs:1794:49
[INFO] [stdout]      |
[INFO] [stdout] 1790 |                 macro_rules! seg_flag {
[INFO] [stdout] ...
[INFO] [stdout] 1794 |                             .send(Message::Text(m.to_string().into()))
[INFO] [stdout]      |                                                 ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1826 |                             seg_flag!(false);
[INFO] [stdout]      |                             ---------------- in this macro invocation
[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: you can instead use the fully-qualified path `<std::string::String as Into<std::string::String>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `stream-live-translate` (bin "stream-live-translate" test) due to 40 previous errors; 14 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "f4a4c068d0343c4f607e20a79959f80ad24bff1c19ceba42496156d48c4ac913", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f4a4c068d0343c4f607e20a79959f80ad24bff1c19ceba42496156d48c4ac913", kill_on_drop: false }`
[INFO] [stdout] f4a4c068d0343c4f607e20a79959f80ad24bff1c19ceba42496156d48c4ac913
