[INFO] cloning repository https://github.com/b-illy-d/newsboy
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/b-illy-d/newsboy" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fb-illy-d%2Fnewsboy", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fb-illy-d%2Fnewsboy'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] ac6e2b81e9103c15421ab429f0a11abfbad46a85
[INFO] checking b-illy-d/newsboy against a5689b034ad287112f709693384a37f1377eb9cc for pr-129249-3
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fb-illy-d%2Fnewsboy" "/workspace/builds/worker-0-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/b-illy-d/newsboy
[INFO] finished tweaking git repo https://github.com/b-illy-d/newsboy
[INFO] tweaked toml for git repo https://github.com/b-illy-d/newsboy written to /workspace/builds/worker-0-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/b-illy-d/newsboy on toolchain a5689b034ad287112f709693384a37f1377eb9cc
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+a5689b034ad287112f709693384a37f1377eb9cc" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/b-illy-d/newsboy 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" "+a5689b034ad287112f709693384a37f1377eb9cc" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] fe17440608318f670a76a56bc9773efaeabd675d36b7e42b2f12c03dbd0410fb
[INFO] running `Command { std: "docker" "start" "fe17440608318f670a76a56bc9773efaeabd675d36b7e42b2f12c03dbd0410fb", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "fe17440608318f670a76a56bc9773efaeabd675d36b7e42b2f12c03dbd0410fb", 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" "fe17440608318f670a76a56bc9773efaeabd675d36b7e42b2f12c03dbd0410fb" "/opt/rustwide/cargo-home/bin/cargo" "+a5689b034ad287112f709693384a37f1377eb9cc" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "fe17440608318f670a76a56bc9773efaeabd675d36b7e42b2f12c03dbd0410fb", 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" "fe17440608318f670a76a56bc9773efaeabd675d36b7e42b2f12c03dbd0410fb" "/opt/rustwide/cargo-home/bin/cargo" "+a5689b034ad287112f709693384a37f1377eb9cc" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.95
[INFO] [stderr]    Compiling unicode-ident v1.0.18
[INFO] [stderr]    Compiling libc v0.2.172
[INFO] [stderr]    Compiling autocfg v1.4.0
[INFO] [stderr]     Checking cfg-if v1.0.0
[INFO] [stderr]     Checking log v0.4.27
[INFO] [stderr]     Checking smallvec v1.15.0
[INFO] [stderr]    Compiling cc v1.2.23
[INFO] [stderr]    Compiling parking_lot_core v0.9.10
[INFO] [stderr]     Checking bytes v1.10.1
[INFO] [stderr]     Checking memchr v2.7.4
[INFO] [stderr]     Checking futures-core v0.3.31
[INFO] [stderr]    Compiling rustversion v1.0.20
[INFO] [stderr]     Checking futures-sink v0.3.31
[INFO] [stderr]     Checking futures-channel v0.3.31
[INFO] [stderr]    Compiling lock_api v0.4.12
[INFO] [stderr]    Compiling slab v0.4.9
[INFO] [stderr]     Checking futures-task v0.3.31
[INFO] [stderr]     Checking futures-io v0.3.31
[INFO] [stderr]     Checking stable_deref_trait v1.2.0
[INFO] [stderr]     Checking hashbrown v0.15.3
[INFO] [stderr]     Checking tracing-core v0.1.33
[INFO] [stderr]    Compiling zerocopy v0.8.25
[INFO] [stderr]    Compiling quote v1.0.40
[INFO] [stderr]     Checking http v0.2.12
[INFO] [stderr]    Compiling syn v2.0.101
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling serde v1.0.219
[INFO] [stderr]     Checking signal-hook-registry v1.4.5
[INFO] [stderr]     Checking mio v1.0.3
[INFO] [stderr]     Checking parking_lot v0.12.3
[INFO] [stderr]     Checking socket2 v0.5.9
[INFO] [stderr]     Checking getrandom v0.2.16
[INFO] [stderr]     Checking indexmap v2.9.0
[INFO] [stderr]    Compiling anyhow v1.0.98
[INFO] [stderr]    Compiling pkg-config v0.3.32
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]     Checking http-body v0.4.6
[INFO] [stderr]     Checking percent-encoding v2.3.1
[INFO] [stderr]    Compiling ring v0.16.20
[INFO] [stderr]    Compiling openssl-sys v0.9.108
[INFO] [stderr]    Compiling indexmap v1.9.3
[INFO] [stderr]     Checking writeable v0.6.1
[INFO] [stderr]     Checking litemap v0.8.0
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]     Checking bitflags v2.9.1
[INFO] [stderr]    Compiling axum-core v0.3.4
[INFO] [stderr]    Compiling itertools v0.10.5
[INFO] [stderr]    Compiling rustls v0.21.12
[INFO] [stderr]     Checking hashbrown v0.12.3
[INFO] [stderr]    Compiling icu_properties_data v2.0.1
[INFO] [stderr]     Checking spin v0.5.2
[INFO] [stderr]    Compiling icu_normalizer_data v2.0.0
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling axum v0.6.20
[INFO] [stderr]     Checking adler2 v2.0.0
[INFO] [stderr]    Compiling openssl v0.10.72
[INFO] [stderr]     Checking foreign-types-shared v0.1.1
[INFO] [stderr]     Checking sync_wrapper v0.1.2
[INFO] [stderr]     Checking base64 v0.21.7
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking foreign-types v0.3.2
[INFO] [stderr]     Checking miniz_oxide v0.8.8
[INFO] [stderr]     Checking rustls-pemfile v1.0.4
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking aho-corasick v1.1.3
[INFO] [stderr]     Checking crc32fast v1.4.2
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]     Checking regex-syntax v0.8.5
[INFO] [stderr]    Compiling native-tls v0.2.14
[INFO] [stderr]     Checking matchit v0.7.3
[INFO] [stderr]     Checking flate2 v1.1.1
[INFO] [stderr]     Checking signal-hook v0.3.18
[INFO] [stderr]     Checking mio v0.8.11
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]     Checking openssl-probe v0.1.6
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]     Checking anstyle-parse v0.2.6
[INFO] [stderr]     Checking signal-hook-mio v0.2.4
[INFO] [stderr]     Checking form_urlencoded v1.2.1
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling darling_core v0.20.11
[INFO] [stderr]     Checking rustls-webpki v0.100.3
[INFO] [stderr]     Checking colorchoice v1.0.3
[INFO] [stderr]    Compiling serde_json v1.0.140
[INFO] [stderr]     Checking is_terminal_polyfill v1.70.1
[INFO] [stderr]     Checking webpki-roots v0.23.1
[INFO] [stderr]     Checking anstyle v1.0.10
[INFO] [stderr]     Checking anstyle-query v1.1.2
[INFO] [stderr]     Checking sct v0.7.1
[INFO] [stderr]     Checking rustls-webpki v0.101.7
[INFO] [stderr]    Compiling google-cloud-googleapis v0.10.0
[INFO] [stderr]     Checking anstream v0.6.18
[INFO] [stderr]     Checking regex-automata v0.4.9
[INFO] [stderr]     Checking concurrent-queue v2.5.0
[INFO] [stderr]     Checking itertools v0.13.0
[INFO] [stderr]    Compiling prost-derive v0.11.9
[INFO] [stderr]     Checking castaway v0.2.3
[INFO] [stderr]     Checking event-listener v2.5.3
[INFO] [stderr]     Checking predicates-core v1.0.9
[INFO] [stderr]     Checking clap_lex v0.7.4
[INFO] [stderr]    Compiling indoc v2.0.6
[INFO] [stderr]     Checking unicode-segmentation v1.12.0
[INFO] [stderr]     Checking compact_str v0.8.1
[INFO] [stderr]    Compiling tokio-macros v2.5.0
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]     Checking tokio v1.45.0
[INFO] [stderr]    Compiling yoke-derive v0.8.0
[INFO] [stderr]    Compiling tracing-attributes v0.1.28
[INFO] [stderr]    Compiling zerovec-derive v0.11.1
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]     Checking futures-util v0.3.31
[INFO] [stderr]    Compiling serde_derive v1.0.219
[INFO] [stderr]    Compiling pin-project-internal v1.1.10
[INFO] [stderr]     Checking zerofrom v0.1.6
[INFO] [stderr]    Compiling async-trait v0.1.88
[INFO] [stderr]     Checking yoke v0.8.0
[INFO] [stderr]     Checking zerotrie v0.2.2
[INFO] [stderr]     Checking zerovec v0.11.2
[INFO] [stderr]     Checking tracing v0.1.41
[INFO] [stderr]     Checking prost v0.11.9
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]    Compiling async-stream-impl v0.3.6
[INFO] [stderr]    Compiling darling_macro v0.20.11
[INFO] [stderr]     Checking pin-project v1.1.10
[INFO] [stderr]     Checking async-stream v0.3.6
[INFO] [stderr]     Checking regex v1.11.1
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling darling v0.20.11
[INFO] [stderr]     Checking prost-types v0.11.9
[INFO] [stderr]     Checking google-cloud-token v0.1.2
[INFO] [stderr]    Compiling strum_macros v0.26.4
[INFO] [stderr]     Checking tinystr v0.8.1
[INFO] [stderr]     Checking icu_locale_core v2.0.0
[INFO] [stderr]     Checking potential_utf v0.1.2
[INFO] [stderr]     Checking icu_collections v2.0.0
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]    Compiling instability v0.3.7
[INFO] [stderr]     Checking icu_provider v2.0.0
[INFO] [stderr]     Checking unicode-truncate v1.1.0
[INFO] [stderr]    Compiling clap_derive v4.5.32
[INFO] [stderr]     Checking clap_builder v4.5.38
[INFO] [stderr]     Checking icu_normalizer v2.0.0
[INFO] [stderr]     Checking icu_properties v2.0.1
[INFO] [stderr]     Checking strum v0.26.3
[INFO] [stderr]     Checking futures-executor v0.3.31
[INFO] [stderr]     Checking async-channel v1.9.0
[INFO] [stderr]     Checking crossterm v0.28.1
[INFO] [stderr]     Checking tokio-util v0.7.15
[INFO] [stderr]     Checking tokio-io-timeout v1.2.0
[INFO] [stderr]     Checking tokio-rustls v0.24.1
[INFO] [stderr]     Checking tokio-stream v0.1.17
[INFO] [stderr]     Checking idna_adapter v1.2.1
[INFO] [stderr]     Checking idna v1.0.3
[INFO] [stderr]     Checking tokio-native-tls v0.3.1
[INFO] [stderr]     Checking tokio-retry v0.3.0
[INFO] [stderr]     Checking h2 v0.3.26
[INFO] [stderr]     Checking tower v0.4.13
[INFO] [stderr]     Checking url v2.5.4
[INFO] [stderr]     Checking float-cmp v0.9.0
[INFO] [stderr]     Checking lru v0.12.5
[INFO] [stderr]     Checking atty v0.2.14
[INFO] [stderr]     Checking dirs-sys v0.3.7
[INFO] [stderr]     Checking encoding_rs v0.8.35
[INFO] [stderr]     Checking humantime v2.2.0
[INFO] [stderr]     Checking ipnet v2.11.0
[INFO] [stderr]     Checking ratatui v0.29.0
[INFO] [stderr]     Checking predicates-tree v1.0.12
[INFO] [stderr]     Checking env_logger v0.9.3
[INFO] [stderr]    Compiling mockall_derive v0.11.4
[INFO] [stderr]     Checking dirs v4.0.0
[INFO] [stderr]     Checking clap v4.5.38
[INFO] [stderr]     Checking futures v0.3.31
[INFO] [stderr]    Compiling strum_macros v0.27.1
[INFO] [stderr]     Checking crossterm v0.25.0
[INFO] [stderr]     Checking predicates v2.1.5
[INFO] [stderr]     Checking strum v0.27.1
[INFO] [stderr]     Checking downcast v0.11.0
[INFO] [stderr]     Checking fragile v2.0.1
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking mockall v0.11.4
[INFO] [stderr]     Checking hyper v0.14.32
[INFO] [stderr]     Checking hyper-timeout v0.4.1
[INFO] [stderr]     Checking hyper-tls v0.5.0
[INFO] [stderr]     Checking reqwest v0.11.27
[INFO] [stderr]     Checking tonic v0.9.2
[INFO] [stderr]     Checking google-cloud-gax v0.15.0
[INFO] [stderr]     Checking google-cloud-pubsub v0.16.0
[INFO] [stderr]     Checking pubsub-cli v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `IntoHandled`
[INFO] [stdout]   --> src/component/debug.rs:12:43
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crate::input::{handled, InputHandled, IntoHandled};
[INFO] [stdout]    |                                           ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `debug_logs_clear`
[INFO] [stdout]  --> src/input.rs:3:24
[INFO] [stdout]   |
[INFO] [stdout] 3 |     debug::{debug_log, debug_logs_clear, toggle_debug_logs},
[INFO] [stdout]   |                        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated module `std::usize`: all constants in this module replaced by associated constants on the type
[INFO] [stdout]  --> src/component/reusable/text_field.rs:1:10
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::usize;
[INFO] [stdout]   |          ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `IntoHandled`
[INFO] [stdout]   --> src/component/debug.rs:12:43
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crate::input::{handled, InputHandled, IntoHandled};
[INFO] [stdout]    |                                           ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `debug_logs_clear`
[INFO] [stdout]  --> src/input.rs:3:24
[INFO] [stdout]   |
[INFO] [stdout] 3 |     debug::{debug_log, debug_logs_clear, toggle_debug_logs},
[INFO] [stdout]   |                        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated module `std::usize`: all constants in this module replaced by associated constants on the type
[INFO] [stdout]  --> src/component/reusable/text_field.rs:1:10
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::usize;
[INFO] [stdout]   |          ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `debug_logs_clear` is never used
[INFO] [stdout]   --> src/component/debug.rs:27:8
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub fn debug_logs_clear() {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `name`, `label`, `as_text`, and `as_choices` are never used
[INFO] [stdout]    --> src/component/pubsub.rs:102:8
[INFO] [stdout]     |
[INFO] [stdout]  98 | trait ConfigField {
[INFO] [stdout]     |       ----------- methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 102 |     fn name(&self) -> &String;
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 103 |     fn label(&self) -> &String;
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 104 |     fn as_text(&self) -> Option<&String> {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 107 |     fn as_choices(&self) -> Option<&[Choice]> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_text_field` and `get_choices_field` are never used
[INFO] [stdout]    --> src/component/pubsub.rs:268:8
[INFO] [stdout]     |
[INFO] [stdout] 253 | impl PubsubConfig {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 268 |     fn get_text_field(&self, name: &str) -> &TextField {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 275 |     fn get_choices_field(&self, name: &str) -> &Choices {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `TopicsEvent` is never used
[INFO] [stdout]   --> src/component/topics.rs:37:10
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub enum TopicsEvent {
[INFO] [stdout]    |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `&str`
[INFO] [stdout]    --> src/component/pubsub.rs:210:40
[INFO] [stdout]     |
[INFO] [stdout] 210 |             Field::Text(TextField::new("project_id".into(), "Project ID".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] 210 -             Field::Text(TextField::new("project_id".into(), "Project ID".into())),
[INFO] [stdout] 210 +             Field::Text(TextField::new("project_id", "Project ID".into())),
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 210 -             Field::Text(TextField::new("project_id".into(), "Project ID".into())),
[INFO] [stdout] 210 +             Field::Text(TextField::new(<&str as Into<_>>::into("project_id"), "Project ID".into())),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `&str`
[INFO] [stdout]    --> src/component/pubsub.rs:210:61
[INFO] [stdout]     |
[INFO] [stdout] 210 |             Field::Text(TextField::new("project_id".into(), "Project ID".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] 210 -             Field::Text(TextField::new("project_id".into(), "Project ID".into())),
[INFO] [stdout] 210 +             Field::Text(TextField::new("project_id".into(), "Project ID")),
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 210 -             Field::Text(TextField::new("project_id".into(), "Project ID".into())),
[INFO] [stdout] 210 +             Field::Text(TextField::new("project_id".into(), <&str as Into<_>>::into("Project ID"))),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `&str`
[INFO] [stdout]    --> src/component/pubsub.rs:214:40
[INFO] [stdout]     |
[INFO] [stdout] 214 |             Field::Text(TextField::new("host".into(), "Host".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] 214 -             Field::Text(TextField::new("host".into(), "Host".into())),
[INFO] [stdout] 214 +             Field::Text(TextField::new("host", "Host".into())),
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 214 -             Field::Text(TextField::new("host".into(), "Host".into())),
[INFO] [stdout] 214 +             Field::Text(TextField::new(<&str as Into<_>>::into("host"), "Host".into())),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `&str`
[INFO] [stdout]    --> src/component/pubsub.rs:214:55
[INFO] [stdout]     |
[INFO] [stdout] 214 |             Field::Text(TextField::new("host".into(), "Host".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] 214 -             Field::Text(TextField::new("host".into(), "Host".into())),
[INFO] [stdout] 214 +             Field::Text(TextField::new("host".into(), "Host")),
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 214 -             Field::Text(TextField::new("host".into(), "Host".into())),
[INFO] [stdout] 214 +             Field::Text(TextField::new("host".into(), <&str as Into<_>>::into("Host"))),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `&str`
[INFO] [stdout]    --> src/component/pubsub.rs:218:40
[INFO] [stdout]     |
[INFO] [stdout] 218 |             Field::Text(TextField::new("port".into(), "Port".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] 218 -             Field::Text(TextField::new("port".into(), "Port".into())),
[INFO] [stdout] 218 +             Field::Text(TextField::new("port", "Port".into())),
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 218 -             Field::Text(TextField::new("port".into(), "Port".into())),
[INFO] [stdout] 218 +             Field::Text(TextField::new(<&str as Into<_>>::into("port"), "Port".into())),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `&str`
[INFO] [stdout]    --> src/component/pubsub.rs:218:55
[INFO] [stdout]     |
[INFO] [stdout] 218 |             Field::Text(TextField::new("port".into(), "Port".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] 218 -             Field::Text(TextField::new("port".into(), "Port".into())),
[INFO] [stdout] 218 +             Field::Text(TextField::new("port".into(), "Port")),
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 218 -             Field::Text(TextField::new("port".into(), "Port".into())),
[INFO] [stdout] 218 +             Field::Text(TextField::new("port".into(), <&str as Into<_>>::into("Port"))),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `&str`
[INFO] [stdout]    --> src/component/pubsub.rs:223:17
[INFO] [stdout]     |
[INFO] [stdout] 223 |                 "emulator".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] 223 -                 "emulator".into(),
[INFO] [stdout] 223 +                 "emulator",
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 223 -                 "emulator".into(),
[INFO] [stdout] 223 +                 <&str as Into<_>>::into("emulator"),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `&str`
[INFO] [stdout]    --> src/component/pubsub.rs:224:17
[INFO] [stdout]     |
[INFO] [stdout] 224 |                 "Emulator".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] 224 -                 "Emulator".into(),
[INFO] [stdout] 224 +                 "Emulator",
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 224 -                 "Emulator".into(),
[INFO] [stdout] 224 +                 <&str as Into<_>>::into("Emulator"),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `ConfigEvent`
[INFO] [stdout]    --> src/component/pubsub.rs:531:24
[INFO] [stdout]     |
[INFO] [stdout] 531 |         return handled(focus(field_names[0]).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] 531 -         return handled(focus(field_names[0]).into());
[INFO] [stdout] 531 +         return handled(focus(field_names[0]));
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 531 -         return handled(focus(field_names[0]).into());
[INFO] [stdout] 531 +         return handled(<ConfigEvent as Into<_>>::into(focus(field_names[0])));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `ChoicesEvent`
[INFO] [stdout]    --> src/component/reusable/choices.rs:158:37
[INFO] [stdout]     |
[INFO] [stdout] 158 |             KeyCode::Esc => handled(done_choosing(state.name.clone(), false).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] 158 -             KeyCode::Esc => handled(done_choosing(state.name.clone(), false).into()),
[INFO] [stdout] 158 +             KeyCode::Esc => handled(done_choosing(state.name.clone(), false)),
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 158 -             KeyCode::Esc => handled(done_choosing(state.name.clone(), false).into()),
[INFO] [stdout] 158 +             KeyCode::Esc => handled(<ChoicesEvent as Into<_>>::into(done_choosing(state.name.clone(), false))),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `ChoicesEvent`
[INFO] [stdout]    --> src/component/reusable/choices.rs:183:39
[INFO] [stdout]     |
[INFO] [stdout] 183 |             KeyCode::Enter => handled(done_choosing(state.name.clone(), true).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] 183 -             KeyCode::Enter => handled(done_choosing(state.name.clone(), true).into()),
[INFO] [stdout] 183 +             KeyCode::Enter => handled(done_choosing(state.name.clone(), true)),
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 183 -             KeyCode::Enter => handled(done_choosing(state.name.clone(), true).into()),
[INFO] [stdout] 183 +             KeyCode::Enter => handled(<ChoicesEvent as Into<_>>::into(done_choosing(state.name.clone(), true))),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `ChoicesEvent`
[INFO] [stdout]    --> src/component/reusable/choices.rs:187:43
[INFO] [stdout]     |
[INFO] [stdout] 187 |             KeyCode::Char(' ') => handled(start_choosing(&state.name).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] 187 -             KeyCode::Char(' ') => handled(start_choosing(&state.name).into()),
[INFO] [stdout] 187 +             KeyCode::Char(' ') => handled(start_choosing(&state.name)),
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 187 -             KeyCode::Char(' ') => handled(start_choosing(&state.name).into()),
[INFO] [stdout] 187 +             KeyCode::Char(' ') => handled(<ChoicesEvent as Into<_>>::into(start_choosing(&state.name))),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `TextFieldEvent`
[INFO] [stdout]    --> src/component/reusable/text_field.rs:285:39
[INFO] [stdout]     |
[INFO] [stdout] 285 |             KeyCode::Enter => handled(done_editing(&state.name, true).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] 285 -             KeyCode::Enter => handled(done_editing(&state.name, true).into()),
[INFO] [stdout] 285 +             KeyCode::Enter => handled(done_editing(&state.name, true)),
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 285 -             KeyCode::Enter => handled(done_editing(&state.name, true).into()),
[INFO] [stdout] 285 +             KeyCode::Enter => handled(<TextFieldEvent as Into<_>>::into(done_editing(&state.name, true))),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `TextFieldEvent`
[INFO] [stdout]    --> src/component/reusable/text_field.rs:287:25
[INFO] [stdout]     |
[INFO] [stdout] 287 |                 handled(enter_char(&state.name, k).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] 287 -                 handled(enter_char(&state.name, k).into())
[INFO] [stdout] 287 +                 handled(enter_char(&state.name, k))
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 287 -                 handled(enter_char(&state.name, k).into())
[INFO] [stdout] 287 +                 handled(<TextFieldEvent as Into<_>>::into(enter_char(&state.name, k)))
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `TextFieldEvent`
[INFO] [stdout]    --> src/component/reusable/text_field.rs:289:43
[INFO] [stdout]     |
[INFO] [stdout] 289 |             KeyCode::Backspace => handled(delete_left(&state.name, 1).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] 289 -             KeyCode::Backspace => handled(delete_left(&state.name, 1).into()),
[INFO] [stdout] 289 +             KeyCode::Backspace => handled(delete_left(&state.name, 1)),
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 289 -             KeyCode::Backspace => handled(delete_left(&state.name, 1).into()),
[INFO] [stdout] 289 +             KeyCode::Backspace => handled(<TextFieldEvent as Into<_>>::into(delete_left(&state.name, 1))),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `TextFieldEvent`
[INFO] [stdout]    --> src/component/reusable/text_field.rs:292:29
[INFO] [stdout]     |
[INFO] [stdout] 292 |                     handled(delete_right(&state.name, 1).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] 292 -                     handled(delete_right(&state.name, 1).into())
[INFO] [stdout] 292 +                     handled(delete_right(&state.name, 1))
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 292 -                     handled(delete_right(&state.name, 1).into())
[INFO] [stdout] 292 +                     handled(<TextFieldEvent as Into<_>>::into(delete_right(&state.name, 1)))
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `TextFieldEvent`
[INFO] [stdout]    --> src/component/reusable/text_field.rs:297:38
[INFO] [stdout]     |
[INFO] [stdout] 297 |             KeyCode::Left => handled(move_cursor_left(&state.name, 1).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] 297 -             KeyCode::Left => handled(move_cursor_left(&state.name, 1).into()),
[INFO] [stdout] 297 +             KeyCode::Left => handled(move_cursor_left(&state.name, 1)),
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 297 -             KeyCode::Left => handled(move_cursor_left(&state.name, 1).into()),
[INFO] [stdout] 297 +             KeyCode::Left => handled(<TextFieldEvent as Into<_>>::into(move_cursor_left(&state.name, 1))),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `TextFieldEvent`
[INFO] [stdout]    --> src/component/reusable/text_field.rs:298:39
[INFO] [stdout]     |
[INFO] [stdout] 298 |             KeyCode::Right => handled(move_cursor_right(&state.name, 1).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] 298 -             KeyCode::Right => handled(move_cursor_right(&state.name, 1).into()),
[INFO] [stdout] 298 +             KeyCode::Right => handled(move_cursor_right(&state.name, 1)),
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 298 -             KeyCode::Right => handled(move_cursor_right(&state.name, 1).into()),
[INFO] [stdout] 298 +             KeyCode::Right => handled(<TextFieldEvent as Into<_>>::into(move_cursor_right(&state.name, 1))),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `TextFieldEvent`
[INFO] [stdout]    --> src/component/reusable/text_field.rs:302:25
[INFO] [stdout]     |
[INFO] [stdout] 302 |                 handled(move_cursor_right_by_word(state).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] 302 -                 handled(move_cursor_right_by_word(state).into())
[INFO] [stdout] 302 +                 handled(move_cursor_right_by_word(state))
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 302 -                 handled(move_cursor_right_by_word(state).into())
[INFO] [stdout] 302 +                 handled(<TextFieldEvent as Into<_>>::into(move_cursor_right_by_word(state)))
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `TextFieldEvent`
[INFO] [stdout]    --> src/component/reusable/text_field.rs:305:25
[INFO] [stdout]     |
[INFO] [stdout] 305 |                 handled(move_cursor_left_by_word(state).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] 305 -                 handled(move_cursor_left_by_word(state).into())
[INFO] [stdout] 305 +                 handled(move_cursor_left_by_word(state))
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 305 -                 handled(move_cursor_left_by_word(state).into())
[INFO] [stdout] 305 +                 handled(<TextFieldEvent as Into<_>>::into(move_cursor_left_by_word(state)))
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `TextFieldEvent`
[INFO] [stdout]    --> src/component/reusable/text_field.rs:308:25
[INFO] [stdout]     |
[INFO] [stdout] 308 |                 handled(delete_right_by_word(state).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] 308 -                 handled(delete_right_by_word(state).into())
[INFO] [stdout] 308 +                 handled(delete_right_by_word(state))
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 308 -                 handled(delete_right_by_word(state).into())
[INFO] [stdout] 308 +                 handled(<TextFieldEvent as Into<_>>::into(delete_right_by_word(state)))
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `TextFieldEvent`
[INFO] [stdout]    --> src/component/reusable/text_field.rs:311:25
[INFO] [stdout]     |
[INFO] [stdout] 311 |                 handled(delete_left_by_word(state).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] 311 -                 handled(delete_left_by_word(state).into())
[INFO] [stdout] 311 +                 handled(delete_left_by_word(state))
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 311 -                 handled(delete_left_by_word(state).into())
[INFO] [stdout] 311 +                 handled(<TextFieldEvent as Into<_>>::into(delete_left_by_word(state)))
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `TextFieldEvent`
[INFO] [stdout]    --> src/component/reusable/text_field.rs:314:25
[INFO] [stdout]     |
[INFO] [stdout] 314 |                 handled(delete_left_by_word(state).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] 314 -                 handled(delete_left_by_word(state).into())
[INFO] [stdout] 314 +                 handled(delete_left_by_word(state))
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 314 -                 handled(delete_left_by_word(state).into())
[INFO] [stdout] 314 +                 handled(<TextFieldEvent as Into<_>>::into(delete_left_by_word(state)))
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `TextFieldEvent`
[INFO] [stdout]    --> src/component/reusable/text_field.rs:316:38
[INFO] [stdout]     |
[INFO] [stdout] 316 |             KeyCode::Home => handled(move_cursor_left(&state.name, byte_index(state)).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] 316 -             KeyCode::Home => handled(move_cursor_left(&state.name, byte_index(state)).into()),
[INFO] [stdout] 316 +             KeyCode::Home => handled(move_cursor_left(&state.name, byte_index(state))),
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 316 -             KeyCode::Home => handled(move_cursor_left(&state.name, byte_index(state)).into()),
[INFO] [stdout] 316 +             KeyCode::Home => handled(<TextFieldEvent as Into<_>>::into(move_cursor_left(&state.name, byte_index(state)))),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `TextFieldEvent`
[INFO] [stdout]    --> src/component/reusable/text_field.rs:318:25
[INFO] [stdout]     |
[INFO] [stdout] 318 |                 handled(move_cursor_right(&state.name, state.input.char_indices().count()).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] 318 -                 handled(move_cursor_right(&state.name, state.input.char_indices().count()).into())
[INFO] [stdout] 318 +                 handled(move_cursor_right(&state.name, state.input.char_indices().count()))
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 318 -                 handled(move_cursor_right(&state.name, state.input.char_indices().count()).into())
[INFO] [stdout] 318 +                 handled(<TextFieldEvent as Into<_>>::into(move_cursor_right(&state.name, state.input.char_indices().count())))
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `TextFieldEvent`
[INFO] [stdout]    --> src/component/reusable/text_field.rs:320:37
[INFO] [stdout]     |
[INFO] [stdout] 320 |             KeyCode::Esc => handled(done_editing(&state.name, false).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] 320 -             KeyCode::Esc => handled(done_editing(&state.name, false).into()),
[INFO] [stdout] 320 +             KeyCode::Esc => handled(done_editing(&state.name, false)),
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 320 -             KeyCode::Esc => handled(done_editing(&state.name, false).into()),
[INFO] [stdout] 320 +             KeyCode::Esc => handled(<TextFieldEvent as Into<_>>::into(done_editing(&state.name, false))),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `TextFieldEvent`
[INFO] [stdout]    --> src/component/reusable/text_field.rs:324:43
[INFO] [stdout]     |
[INFO] [stdout] 324 |             KeyCode::Char(' ') => handled(start_editing(&state.name).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] 324 -             KeyCode::Char(' ') => handled(start_editing(&state.name).into()),
[INFO] [stdout] 324 +             KeyCode::Char(' ') => handled(start_editing(&state.name)),
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 324 -             KeyCode::Char(' ') => handled(start_editing(&state.name).into()),
[INFO] [stdout] 324 +             KeyCode::Char(' ') => handled(<TextFieldEvent as Into<_>>::into(start_editing(&state.name))),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `pubsub-cli` (bin "pubsub-cli") due to 27 previous errors; 7 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: function `debug_logs_clear` is never used
[INFO] [stdout]   --> src/component/debug.rs:27:8
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub fn debug_logs_clear() {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `name`, `label`, `as_text`, and `as_choices` are never used
[INFO] [stdout]    --> src/component/pubsub.rs:102:8
[INFO] [stdout]     |
[INFO] [stdout]  98 | trait ConfigField {
[INFO] [stdout]     |       ----------- methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 102 |     fn name(&self) -> &String;
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 103 |     fn label(&self) -> &String;
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 104 |     fn as_text(&self) -> Option<&String> {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 107 |     fn as_choices(&self) -> Option<&[Choice]> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_text_field` and `get_choices_field` are never used
[INFO] [stdout]    --> src/component/pubsub.rs:268:8
[INFO] [stdout]     |
[INFO] [stdout] 253 | impl PubsubConfig {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 268 |     fn get_text_field(&self, name: &str) -> &TextField {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 275 |     fn get_choices_field(&self, name: &str) -> &Choices {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `TopicsEvent` is never used
[INFO] [stdout]   --> src/component/topics.rs:37:10
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub enum TopicsEvent {
[INFO] [stdout]    |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `&str`
[INFO] [stdout]    --> src/component/pubsub.rs:210:40
[INFO] [stdout]     |
[INFO] [stdout] 210 |             Field::Text(TextField::new("project_id".into(), "Project ID".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] 210 -             Field::Text(TextField::new("project_id".into(), "Project ID".into())),
[INFO] [stdout] 210 +             Field::Text(TextField::new("project_id", "Project ID".into())),
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 210 -             Field::Text(TextField::new("project_id".into(), "Project ID".into())),
[INFO] [stdout] 210 +             Field::Text(TextField::new(<&str as Into<_>>::into("project_id"), "Project ID".into())),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `&str`
[INFO] [stdout]    --> src/component/pubsub.rs:210:61
[INFO] [stdout]     |
[INFO] [stdout] 210 |             Field::Text(TextField::new("project_id".into(), "Project ID".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] 210 -             Field::Text(TextField::new("project_id".into(), "Project ID".into())),
[INFO] [stdout] 210 +             Field::Text(TextField::new("project_id".into(), "Project ID")),
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 210 -             Field::Text(TextField::new("project_id".into(), "Project ID".into())),
[INFO] [stdout] 210 +             Field::Text(TextField::new("project_id".into(), <&str as Into<_>>::into("Project ID"))),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `&str`
[INFO] [stdout]    --> src/component/pubsub.rs:214:40
[INFO] [stdout]     |
[INFO] [stdout] 214 |             Field::Text(TextField::new("host".into(), "Host".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] 214 -             Field::Text(TextField::new("host".into(), "Host".into())),
[INFO] [stdout] 214 +             Field::Text(TextField::new("host", "Host".into())),
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 214 -             Field::Text(TextField::new("host".into(), "Host".into())),
[INFO] [stdout] 214 +             Field::Text(TextField::new(<&str as Into<_>>::into("host"), "Host".into())),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `&str`
[INFO] [stdout]    --> src/component/pubsub.rs:214:55
[INFO] [stdout]     |
[INFO] [stdout] 214 |             Field::Text(TextField::new("host".into(), "Host".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] 214 -             Field::Text(TextField::new("host".into(), "Host".into())),
[INFO] [stdout] 214 +             Field::Text(TextField::new("host".into(), "Host")),
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 214 -             Field::Text(TextField::new("host".into(), "Host".into())),
[INFO] [stdout] 214 +             Field::Text(TextField::new("host".into(), <&str as Into<_>>::into("Host"))),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `&str`
[INFO] [stdout]    --> src/component/pubsub.rs:218:40
[INFO] [stdout]     |
[INFO] [stdout] 218 |             Field::Text(TextField::new("port".into(), "Port".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] 218 -             Field::Text(TextField::new("port".into(), "Port".into())),
[INFO] [stdout] 218 +             Field::Text(TextField::new("port", "Port".into())),
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 218 -             Field::Text(TextField::new("port".into(), "Port".into())),
[INFO] [stdout] 218 +             Field::Text(TextField::new(<&str as Into<_>>::into("port"), "Port".into())),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `&str`
[INFO] [stdout]    --> src/component/pubsub.rs:218:55
[INFO] [stdout]     |
[INFO] [stdout] 218 |             Field::Text(TextField::new("port".into(), "Port".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] 218 -             Field::Text(TextField::new("port".into(), "Port".into())),
[INFO] [stdout] 218 +             Field::Text(TextField::new("port".into(), "Port")),
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 218 -             Field::Text(TextField::new("port".into(), "Port".into())),
[INFO] [stdout] 218 +             Field::Text(TextField::new("port".into(), <&str as Into<_>>::into("Port"))),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `&str`
[INFO] [stdout]    --> src/component/pubsub.rs:223:17
[INFO] [stdout]     |
[INFO] [stdout] 223 |                 "emulator".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] 223 -                 "emulator".into(),
[INFO] [stdout] 223 +                 "emulator",
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 223 -                 "emulator".into(),
[INFO] [stdout] 223 +                 <&str as Into<_>>::into("emulator"),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `&str`
[INFO] [stdout]    --> src/component/pubsub.rs:224:17
[INFO] [stdout]     |
[INFO] [stdout] 224 |                 "Emulator".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] 224 -                 "Emulator".into(),
[INFO] [stdout] 224 +                 "Emulator",
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 224 -                 "Emulator".into(),
[INFO] [stdout] 224 +                 <&str as Into<_>>::into("Emulator"),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `ConfigEvent`
[INFO] [stdout]    --> src/component/pubsub.rs:531:24
[INFO] [stdout]     |
[INFO] [stdout] 531 |         return handled(focus(field_names[0]).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] 531 -         return handled(focus(field_names[0]).into());
[INFO] [stdout] 531 +         return handled(focus(field_names[0]));
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 531 -         return handled(focus(field_names[0]).into());
[INFO] [stdout] 531 +         return handled(<ConfigEvent as Into<_>>::into(focus(field_names[0])));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `ChoicesEvent`
[INFO] [stdout]    --> src/component/reusable/choices.rs:158:37
[INFO] [stdout]     |
[INFO] [stdout] 158 |             KeyCode::Esc => handled(done_choosing(state.name.clone(), false).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] 158 -             KeyCode::Esc => handled(done_choosing(state.name.clone(), false).into()),
[INFO] [stdout] 158 +             KeyCode::Esc => handled(done_choosing(state.name.clone(), false)),
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 158 -             KeyCode::Esc => handled(done_choosing(state.name.clone(), false).into()),
[INFO] [stdout] 158 +             KeyCode::Esc => handled(<ChoicesEvent as Into<_>>::into(done_choosing(state.name.clone(), false))),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `ChoicesEvent`
[INFO] [stdout]    --> src/component/reusable/choices.rs:183:39
[INFO] [stdout]     |
[INFO] [stdout] 183 |             KeyCode::Enter => handled(done_choosing(state.name.clone(), true).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] 183 -             KeyCode::Enter => handled(done_choosing(state.name.clone(), true).into()),
[INFO] [stdout] 183 +             KeyCode::Enter => handled(done_choosing(state.name.clone(), true)),
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 183 -             KeyCode::Enter => handled(done_choosing(state.name.clone(), true).into()),
[INFO] [stdout] 183 +             KeyCode::Enter => handled(<ChoicesEvent as Into<_>>::into(done_choosing(state.name.clone(), true))),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `ChoicesEvent`
[INFO] [stdout]    --> src/component/reusable/choices.rs:187:43
[INFO] [stdout]     |
[INFO] [stdout] 187 |             KeyCode::Char(' ') => handled(start_choosing(&state.name).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] 187 -             KeyCode::Char(' ') => handled(start_choosing(&state.name).into()),
[INFO] [stdout] 187 +             KeyCode::Char(' ') => handled(start_choosing(&state.name)),
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 187 -             KeyCode::Char(' ') => handled(start_choosing(&state.name).into()),
[INFO] [stdout] 187 +             KeyCode::Char(' ') => handled(<ChoicesEvent as Into<_>>::into(start_choosing(&state.name))),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `TextFieldEvent`
[INFO] [stdout]    --> src/component/reusable/text_field.rs:285:39
[INFO] [stdout]     |
[INFO] [stdout] 285 |             KeyCode::Enter => handled(done_editing(&state.name, true).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] 285 -             KeyCode::Enter => handled(done_editing(&state.name, true).into()),
[INFO] [stdout] 285 +             KeyCode::Enter => handled(done_editing(&state.name, true)),
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 285 -             KeyCode::Enter => handled(done_editing(&state.name, true).into()),
[INFO] [stdout] 285 +             KeyCode::Enter => handled(<TextFieldEvent as Into<_>>::into(done_editing(&state.name, true))),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `TextFieldEvent`
[INFO] [stdout]    --> src/component/reusable/text_field.rs:287:25
[INFO] [stdout]     |
[INFO] [stdout] 287 |                 handled(enter_char(&state.name, k).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] 287 -                 handled(enter_char(&state.name, k).into())
[INFO] [stdout] 287 +                 handled(enter_char(&state.name, k))
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 287 -                 handled(enter_char(&state.name, k).into())
[INFO] [stdout] 287 +                 handled(<TextFieldEvent as Into<_>>::into(enter_char(&state.name, k)))
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `TextFieldEvent`
[INFO] [stdout]    --> src/component/reusable/text_field.rs:289:43
[INFO] [stdout]     |
[INFO] [stdout] 289 |             KeyCode::Backspace => handled(delete_left(&state.name, 1).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] 289 -             KeyCode::Backspace => handled(delete_left(&state.name, 1).into()),
[INFO] [stdout] 289 +             KeyCode::Backspace => handled(delete_left(&state.name, 1)),
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 289 -             KeyCode::Backspace => handled(delete_left(&state.name, 1).into()),
[INFO] [stdout] 289 +             KeyCode::Backspace => handled(<TextFieldEvent as Into<_>>::into(delete_left(&state.name, 1))),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `TextFieldEvent`
[INFO] [stdout]    --> src/component/reusable/text_field.rs:292:29
[INFO] [stdout]     |
[INFO] [stdout] 292 |                     handled(delete_right(&state.name, 1).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] 292 -                     handled(delete_right(&state.name, 1).into())
[INFO] [stdout] 292 +                     handled(delete_right(&state.name, 1))
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 292 -                     handled(delete_right(&state.name, 1).into())
[INFO] [stdout] 292 +                     handled(<TextFieldEvent as Into<_>>::into(delete_right(&state.name, 1)))
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `TextFieldEvent`
[INFO] [stdout]    --> src/component/reusable/text_field.rs:297:38
[INFO] [stdout]     |
[INFO] [stdout] 297 |             KeyCode::Left => handled(move_cursor_left(&state.name, 1).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] 297 -             KeyCode::Left => handled(move_cursor_left(&state.name, 1).into()),
[INFO] [stdout] 297 +             KeyCode::Left => handled(move_cursor_left(&state.name, 1)),
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 297 -             KeyCode::Left => handled(move_cursor_left(&state.name, 1).into()),
[INFO] [stdout] 297 +             KeyCode::Left => handled(<TextFieldEvent as Into<_>>::into(move_cursor_left(&state.name, 1))),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `TextFieldEvent`
[INFO] [stdout]    --> src/component/reusable/text_field.rs:298:39
[INFO] [stdout]     |
[INFO] [stdout] 298 |             KeyCode::Right => handled(move_cursor_right(&state.name, 1).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] 298 -             KeyCode::Right => handled(move_cursor_right(&state.name, 1).into()),
[INFO] [stdout] 298 +             KeyCode::Right => handled(move_cursor_right(&state.name, 1)),
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 298 -             KeyCode::Right => handled(move_cursor_right(&state.name, 1).into()),
[INFO] [stdout] 298 +             KeyCode::Right => handled(<TextFieldEvent as Into<_>>::into(move_cursor_right(&state.name, 1))),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `TextFieldEvent`
[INFO] [stdout]    --> src/component/reusable/text_field.rs:302:25
[INFO] [stdout]     |
[INFO] [stdout] 302 |                 handled(move_cursor_right_by_word(state).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] 302 -                 handled(move_cursor_right_by_word(state).into())
[INFO] [stdout] 302 +                 handled(move_cursor_right_by_word(state))
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 302 -                 handled(move_cursor_right_by_word(state).into())
[INFO] [stdout] 302 +                 handled(<TextFieldEvent as Into<_>>::into(move_cursor_right_by_word(state)))
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `TextFieldEvent`
[INFO] [stdout]    --> src/component/reusable/text_field.rs:305:25
[INFO] [stdout]     |
[INFO] [stdout] 305 |                 handled(move_cursor_left_by_word(state).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] 305 -                 handled(move_cursor_left_by_word(state).into())
[INFO] [stdout] 305 +                 handled(move_cursor_left_by_word(state))
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 305 -                 handled(move_cursor_left_by_word(state).into())
[INFO] [stdout] 305 +                 handled(<TextFieldEvent as Into<_>>::into(move_cursor_left_by_word(state)))
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `TextFieldEvent`
[INFO] [stdout]    --> src/component/reusable/text_field.rs:308:25
[INFO] [stdout]     |
[INFO] [stdout] 308 |                 handled(delete_right_by_word(state).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] 308 -                 handled(delete_right_by_word(state).into())
[INFO] [stdout] 308 +                 handled(delete_right_by_word(state))
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 308 -                 handled(delete_right_by_word(state).into())
[INFO] [stdout] 308 +                 handled(<TextFieldEvent as Into<_>>::into(delete_right_by_word(state)))
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `TextFieldEvent`
[INFO] [stdout]    --> src/component/reusable/text_field.rs:311:25
[INFO] [stdout]     |
[INFO] [stdout] 311 |                 handled(delete_left_by_word(state).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] 311 -                 handled(delete_left_by_word(state).into())
[INFO] [stdout] 311 +                 handled(delete_left_by_word(state))
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 311 -                 handled(delete_left_by_word(state).into())
[INFO] [stdout] 311 +                 handled(<TextFieldEvent as Into<_>>::into(delete_left_by_word(state)))
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `TextFieldEvent`
[INFO] [stdout]    --> src/component/reusable/text_field.rs:314:25
[INFO] [stdout]     |
[INFO] [stdout] 314 |                 handled(delete_left_by_word(state).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] 314 -                 handled(delete_left_by_word(state).into())
[INFO] [stdout] 314 +                 handled(delete_left_by_word(state))
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 314 -                 handled(delete_left_by_word(state).into())
[INFO] [stdout] 314 +                 handled(<TextFieldEvent as Into<_>>::into(delete_left_by_word(state)))
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `TextFieldEvent`
[INFO] [stdout]    --> src/component/reusable/text_field.rs:316:38
[INFO] [stdout]     |
[INFO] [stdout] 316 |             KeyCode::Home => handled(move_cursor_left(&state.name, byte_index(state)).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] 316 -             KeyCode::Home => handled(move_cursor_left(&state.name, byte_index(state)).into()),
[INFO] [stdout] 316 +             KeyCode::Home => handled(move_cursor_left(&state.name, byte_index(state))),
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 316 -             KeyCode::Home => handled(move_cursor_left(&state.name, byte_index(state)).into()),
[INFO] [stdout] 316 +             KeyCode::Home => handled(<TextFieldEvent as Into<_>>::into(move_cursor_left(&state.name, byte_index(state)))),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `TextFieldEvent`
[INFO] [stdout]    --> src/component/reusable/text_field.rs:318:25
[INFO] [stdout]     |
[INFO] [stdout] 318 |                 handled(move_cursor_right(&state.name, state.input.char_indices().count()).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] 318 -                 handled(move_cursor_right(&state.name, state.input.char_indices().count()).into())
[INFO] [stdout] 318 +                 handled(move_cursor_right(&state.name, state.input.char_indices().count()))
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 318 -                 handled(move_cursor_right(&state.name, state.input.char_indices().count()).into())
[INFO] [stdout] 318 +                 handled(<TextFieldEvent as Into<_>>::into(move_cursor_right(&state.name, state.input.char_indices().count())))
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `TextFieldEvent`
[INFO] [stdout]    --> src/component/reusable/text_field.rs:320:37
[INFO] [stdout]     |
[INFO] [stdout] 320 |             KeyCode::Esc => handled(done_editing(&state.name, false).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] 320 -             KeyCode::Esc => handled(done_editing(&state.name, false).into()),
[INFO] [stdout] 320 +             KeyCode::Esc => handled(done_editing(&state.name, false)),
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 320 -             KeyCode::Esc => handled(done_editing(&state.name, false).into()),
[INFO] [stdout] 320 +             KeyCode::Esc => handled(<TextFieldEvent as Into<_>>::into(done_editing(&state.name, false))),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `TextFieldEvent`
[INFO] [stdout]    --> src/component/reusable/text_field.rs:324:43
[INFO] [stdout]     |
[INFO] [stdout] 324 |             KeyCode::Char(' ') => handled(start_editing(&state.name).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] 324 -             KeyCode::Char(' ') => handled(start_editing(&state.name).into()),
[INFO] [stdout] 324 +             KeyCode::Char(' ') => handled(start_editing(&state.name)),
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 324 -             KeyCode::Char(' ') => handled(start_editing(&state.name).into()),
[INFO] [stdout] 324 +             KeyCode::Char(' ') => handled(<TextFieldEvent as Into<_>>::into(start_editing(&state.name))),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `pubsub-cli` (bin "pubsub-cli" test) due to 27 previous errors; 7 warnings emitted
[INFO] [stderr] warning: unused dependency `clap`
[INFO] [stderr]   --> Cargo.toml:16:15
[INFO] [stderr]    |
[INFO] [stderr] 16 | [dependencies.clap]
[INFO] [stderr]    |               ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `clap`
[INFO] [stderr] warning: unused dependency `crossterm`
[INFO] [stderr]  --> Cargo.toml:3:1
[INFO] [stderr]   |
[INFO] [stderr] 3 | crossterm = "0.25"
[INFO] [stderr]   | ^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr] help: consider removing the dependency on `crossterm`
[INFO] [stderr] warning: unused dependency `dirs`
[INFO] [stderr]  --> Cargo.toml:4:1
[INFO] [stderr]   |
[INFO] [stderr] 4 | dirs = "4.0"
[INFO] [stderr]   | ^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr] help: consider removing the dependency on `dirs`
[INFO] [stderr] warning: unused dependency `env_logger`
[INFO] [stderr]  --> Cargo.toml:5:1
[INFO] [stderr]   |
[INFO] [stderr] 5 | env_logger = "0.9"
[INFO] [stderr]   | ^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr] help: consider removing the dependency on `env_logger`
[INFO] [stderr] warning: unused dependency `futures`
[INFO] [stderr]  --> Cargo.toml:6:1
[INFO] [stderr]   |
[INFO] [stderr] 6 | futures = "0.3"
[INFO] [stderr]   | ^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr] help: consider removing the dependency on `futures`
[INFO] [stderr] warning: unused dependency `reqwest`
[INFO] [stderr]   --> Cargo.toml:20:15
[INFO] [stderr]    |
[INFO] [stderr] 20 | [dependencies.reqwest]
[INFO] [stderr]    |               ^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: consider removing the dependency on `reqwest`
[INFO] [stderr] warning: `pubsub-cli` (manifest) generated 6 warnings
[INFO] running `Command { std: "docker" "inspect" "fe17440608318f670a76a56bc9773efaeabd675d36b7e42b2f12c03dbd0410fb", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "fe17440608318f670a76a56bc9773efaeabd675d36b7e42b2f12c03dbd0410fb", kill_on_drop: false }`
[INFO] [stdout] fe17440608318f670a76a56bc9773efaeabd675d36b7e42b2f12c03dbd0410fb
