[INFO] cloning repository https://github.com/g0orx/rustyHPSDR
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/g0orx/rustyHPSDR" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fg0orx%2FrustyHPSDR", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fg0orx%2FrustyHPSDR'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] c00257d10fd809b3f870abcf2ec71c001de9b8d2
[INFO] checking g0orx/rustyHPSDR against try#1779a8680dcd39c56ed600627cf6742ef07ed78c for pr-149045
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fg0orx%2FrustyHPSDR" "/workspace/builds/worker-5-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/g0orx/rustyHPSDR
[INFO] finished tweaking git repo https://github.com/g0orx/rustyHPSDR
[INFO] tweaked toml for git repo https://github.com/g0orx/rustyHPSDR written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/g0orx/rustyHPSDR on toolchain 1779a8680dcd39c56ed600627cf6742ef07ed78c
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1779a8680dcd39c56ed600627cf6742ef07ed78c" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/g0orx/rustyHPSDR 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" "+1779a8680dcd39c56ed600627cf6742ef07ed78c" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1779a8680dcd39c56ed600627cf6742ef07ed78c" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 355f28a83da71c1c44b86d40b222a9d2784e2f9a93a86340b7469b7a42251edc
[INFO] running `Command { std: "docker" "start" "-a" "355f28a83da71c1c44b86d40b222a9d2784e2f9a93a86340b7469b7a42251edc", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "355f28a83da71c1c44b86d40b222a9d2784e2f9a93a86340b7469b7a42251edc", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "355f28a83da71c1c44b86d40b222a9d2784e2f9a93a86340b7469b7a42251edc", kill_on_drop: false }`
[INFO] [stdout] 355f28a83da71c1c44b86d40b222a9d2784e2f9a93a86340b7469b7a42251edc
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1779a8680dcd39c56ed600627cf6742ef07ed78c" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 77cc54f42281737d877abdd0d44593db90fbe4c5d0c1757cda22dd59e64392a3
[INFO] running `Command { std: "docker" "start" "-a" "77cc54f42281737d877abdd0d44593db90fbe4c5d0c1757cda22dd59e64392a3", kill_on_drop: false }`
[INFO] [stderr]    Compiling serde v1.0.219
[INFO] [stderr]    Compiling winnow v0.7.10
[INFO] [stderr]    Compiling target-lexicon v0.12.16
[INFO] [stderr]    Compiling smallvec v1.15.0
[INFO] [stderr]    Compiling version-compare v0.2.0
[INFO] [stderr]    Compiling indexmap v2.9.0
[INFO] [stderr]    Compiling quote v1.0.45
[INFO] [stderr]     Checking futures-channel v0.3.31
[INFO] [stderr]     Checking litemap v0.8.2
[INFO] [stderr]     Checking writeable v0.6.3
[INFO] [stderr]    Compiling icu_normalizer_data v2.2.0
[INFO] [stderr]    Compiling icu_properties_data v2.2.0
[INFO] [stderr]    Compiling gio v0.20.9
[INFO] [stderr]    Compiling semver v1.0.26
[INFO] [stderr]    Compiling cc v1.2.21
[INFO] [stderr]    Compiling alsa-sys v0.3.1
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]     Checking percent-encoding v2.3.2
[INFO] [stderr]     Checking num-integer v0.1.46
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]    Compiling syn v2.0.101
[INFO] [stderr]     Checking sha1 v0.10.6
[INFO] [stderr]     Checking form_urlencoded v1.2.2
[INFO] [stderr]     Checking http v1.4.0
[INFO] [stderr]     Checking parking_lot_core v0.9.10
[INFO] [stderr]    Compiling rustfft v6.3.0
[INFO] [stderr]    Compiling rustc_version v0.4.1
[INFO] [stderr]     Checking mio v1.0.3
[INFO] [stderr]    Compiling cpal v0.16.0
[INFO] [stderr]    Compiling serde_json v1.0.143
[INFO] [stderr]     Checking strength_reduce v0.2.4
[INFO] [stderr]     Checking primal-check v0.3.4
[INFO] [stderr]     Checking parking_lot v0.12.3
[INFO] [stderr]     Checking dirs-sys v0.5.0
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking num-complex v0.4.6
[INFO] [stderr]     Checking transpose v0.2.3
[INFO] [stderr]    Compiling field-offset v0.3.6
[INFO] [stderr]     Checking unicode-ident v1.0.18
[INFO] [stderr]     Checking dirs v6.0.0
[INFO] [stderr]    Compiling cfg-expr v0.17.2
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]    Compiling network-interface v2.0.1
[INFO] [stderr]    Compiling rustyHPSDR v0.1.2 (/opt/rustwide/workdir)
[INFO] [stderr]     Checking ringbuf v0.4.8
[INFO] [stderr]    Compiling toml_datetime v0.6.9
[INFO] [stderr]    Compiling serde_spanned v0.6.8
[INFO] [stderr]    Compiling toml_edit v0.22.26
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling serde_derive v1.0.219
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling zerovec-derive v0.11.3
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling tokio-macros v2.5.0
[INFO] [stderr]    Compiling zerofrom-derive v0.1.7
[INFO] [stderr]    Compiling yoke-derive v0.8.2
[INFO] [stderr]    Compiling toml v0.8.22
[INFO] [stderr]    Compiling proc-macro-crate v3.3.0
[INFO] [stderr]     Checking tokio v1.45.0
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking futures-util v0.3.31
[INFO] [stderr]    Compiling system-deps v7.0.3
[INFO] [stderr]     Checking zerofrom v0.1.7
[INFO] [stderr]    Compiling glib-macros v0.20.7
[INFO] [stderr]    Compiling gtk4-macros v0.9.5
[INFO] [stderr]     Checking yoke v0.8.2
[INFO] [stderr]     Checking zerovec v0.11.6
[INFO] [stderr]     Checking zerotrie v0.2.4
[INFO] [stderr]    Compiling glib-sys v0.20.9
[INFO] [stderr]    Compiling gobject-sys v0.20.9
[INFO] [stderr]    Compiling gio-sys v0.20.9
[INFO] [stderr]    Compiling pango-sys v0.20.9
[INFO] [stderr]    Compiling cairo-sys-rs v0.20.7
[INFO] [stderr]    Compiling gdk-pixbuf-sys v0.20.7
[INFO] [stderr]    Compiling graphene-sys v0.20.7
[INFO] [stderr]    Compiling gdk4-sys v0.9.6
[INFO] [stderr]    Compiling gsk4-sys v0.9.6
[INFO] [stderr]    Compiling gtk4-sys v0.9.6
[INFO] [stderr]    Compiling pangocairo-sys v0.20.10
[INFO] [stderr]     Checking tinystr v0.8.3
[INFO] [stderr]     Checking potential_utf v0.1.5
[INFO] [stderr]     Checking icu_collections v2.2.0
[INFO] [stderr]     Checking icu_locale_core v2.2.0
[INFO] [stderr]     Checking icu_provider v2.2.0
[INFO] [stderr]     Checking icu_properties v2.2.0
[INFO] [stderr]     Checking icu_normalizer v2.2.0
[INFO] [stderr]     Checking futures-executor v0.3.31
[INFO] [stderr]     Checking futures v0.3.31
[INFO] [stderr]     Checking idna_adapter v1.2.1
[INFO] [stderr]     Checking bitflags v2.9.0
[INFO] [stderr]     Checking idna v1.1.0
[INFO] [stderr]     Checking glib v0.20.9
[INFO] [stderr]     Checking alsa v0.9.1
[INFO] [stderr]     Checking ron v0.10.1
[INFO] [stderr]     Checking url v2.5.8
[INFO] [stderr]     Checking tungstenite v0.21.0
[INFO] [stderr]     Checking midir v0.10.3
[INFO] [stderr]     Checking tokio-tungstenite v0.21.0
[INFO] [stderr]     Checking cairo-rs v0.20.7
[INFO] [stderr]     Checking graphene-rs v0.20.9
[INFO] [stderr]     Checking pango v0.20.9
[INFO] [stderr]     Checking gdk-pixbuf v0.20.9
[INFO] [stderr]     Checking gdk4 v0.9.6
[INFO] [stderr]     Checking pangocairo v0.20.10
[INFO] [stderr]     Checking gsk4 v0.9.6
[INFO] [stderr]     Checking gtk4 v0.9.6
[INFO] [stderr] warning: rustyHPSDR@0.1.2: libspecbleach/src/shared/post_estimation/noise_floor_manager.c: In function 'noise_floor_manager_initialize':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: libspecbleach/src/shared/post_estimation/noise_floor_manager.c:34:66: warning: unused parameter 'sample_rate' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    34 |                                                   const uint32_t sample_rate,
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                                   ~~~~~~~~~~~~~~~^~~~~~~~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: libspecbleach/src/shared/post_estimation/noise_floor_manager.c:35:66: warning: unused parameter 'hop' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    35 |                                                   const uint32_t hop) {
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                                   ~~~~~~~~~~~~~~~^~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/emnr.c: In function 'readZetaHat':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/emnr.c:226:84: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   226 |                 if (e == 0 && fread(zetaHat,   sizeof(double), nvals, pzetaBinary) != nvals) e = 1;
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                                                                    ^~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/emnr.c:227:88: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   227 |                 if (e == 0 && fread(zetaValid, sizeof(int),        nvals, pzetaBinary) != nvals) e = 1;
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                                                                        ^~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/emnr.c: In function 'calc_emnr':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/emnr.c:307:16: warning: unused variable 'Hvals' [-Wunused-variable]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   307 |         double Hvals[18] = { 0.000, 0.150, 0.480, 0.780, 0.980, 1.550, 2.000, 2.300, 2.520,
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                ^~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/emnr.c:377:17: warning: ignoring return value of 'fread' declared with attribute 'warn_unused_result' [-Wunused-result]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   377 |                 fread(a->g.GG, sizeof(double), 241 * 241, a->g.fileb);
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/emnr.c:378:17: warning: ignoring return value of 'fread' declared with attribute 'warn_unused_result' [-Wunused-result]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   378 |                 fread(a->g.GGS, sizeof(double), 241 * 241, a->g.fileb);
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/siphon.c: In function 'setSamplerate_siphon':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/siphon.c:144:42: warning: unused parameter 'rate' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   144 | void setSamplerate_siphon (SIPHON a, int rate)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                      ~~~~^~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/amd.c: In function 'xamd':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/amd.c:215:98: warning: 'audio' may be used uninitialized [-Wmaybe-uninitialized]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   215 |                                                         a->dc = a->mtauR * a->dc + a->onem_mtauR * audio;
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                                                                    ~~~~~~~~~~~~~~^~~~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/amd.c:118:16: note: 'audio' was declared here
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   118 |         double audio;
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                ^~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/ammod.c: In function 'flush_ammod':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/ammod.c:48:25: warning: unused parameter 'a' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    48 | void flush_ammod (AMMOD a)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                   ~~~~~~^
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/ammod.c: In function 'setSamplerate_ammod':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/ammod.c:87:33: warning: unused parameter 'a' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    87 | void setSamplerate_ammod (AMMOD a, int rate)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                           ~~~~~~^
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/ammod.c:87:40: warning: unused parameter 'rate' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    87 | void setSamplerate_ammod (AMMOD a, int rate)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                    ~~~~^~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/channel.c: In function 'start_thread':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/channel.c:33:16: warning: unused variable 'handle' [-Wunused-variable]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    33 |         HANDLE handle = (HANDLE) _beginthread(wdspmain, 0, (void *)(uintptr_t)channel);
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                ^~~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/iqc.c: In function 'flush_iqc':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/iqc.c:108:21: warning: unused parameter 'a' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   108 | void flush_iqc (IQC a)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                 ~~~~^
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c: In function 'QueueUserWorkItem':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c:41:57: warning: unused parameter 'flags' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    41 | void QueueUserWorkItem(void *function,void *context,int flags) {
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                                     ~~~~^~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c: In function 'InitializeCriticalSectionAndSpinCount':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c:64:72: warning: unused parameter 'count' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    64 | void InitializeCriticalSectionAndSpinCount(pthread_mutex_t *mutex, int count) {
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                                                    ~~~~^~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c: In function 'LinuxCreateSemaphore':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c:96:33: warning: unused parameter 'attributes' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    96 | sem_t *LinuxCreateSemaphore(int attributes,int initial_count,int maximum_count,char *name) {
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                             ~~~~^~~~~~~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c:96:66: warning: unused parameter 'maximum_count' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    96 | sem_t *LinuxCreateSemaphore(int attributes,int initial_count,int maximum_count,char *name) {
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                                              ~~~~^~~~~~~~~~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c:96:86: warning: unused parameter 'name' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    96 | sem_t *LinuxCreateSemaphore(int attributes,int initial_count,int maximum_count,char *name) {
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                                                                ~~~~~~^~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c: In function 'LinuxReleaseSemaphore':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c:136:63: warning: unused parameter 'previous_count' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   136 | void LinuxReleaseSemaphore(sem_t* sem,int release_count, int* previous_count) {
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                                          ~~~~~^~~~~~~~~~~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c: In function 'CreateEvent':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c:148:26: warning: unused parameter 'security_attributes' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   148 | sem_t *CreateEvent(void* security_attributes,int bManualReset,int bInitialState,char* name) {
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                    ~~~~~~^~~~~~~~~~~~~~~~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c:148:50: warning: unused parameter 'bManualReset' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   148 | sem_t *CreateEvent(void* security_attributes,int bManualReset,int bInitialState,char* name) {
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                              ~~~~^~~~~~~~~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c:148:67: warning: unused parameter 'bInitialState' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   148 | sem_t *CreateEvent(void* security_attributes,int bManualReset,int bInitialState,char* name) {
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                                               ~~~~^~~~~~~~~~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c:148:87: warning: unused parameter 'name' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   148 | sem_t *CreateEvent(void* security_attributes,int bManualReset,int bInitialState,char* name) {
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                                                                 ~~~~~~^~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c: In function '_beginthread':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c:192:46: warning: cast between incompatible function types from 'void (*)(void *)' to 'void * (*)(void *)' [-Wcast-function-type]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   192 |         if (pthread_create(&threadid, &attr, (void*(*)(void*))start_address, arglist)) {
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                              ^
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c: In function 'SetThreadPriority':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c:237:31: warning: unused parameter 'thread' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   237 | void SetThreadPriority(HANDLE thread, int priority)      {
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c:237:43: warning: unused parameter 'priority' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   237 | void SetThreadPriority(HANDLE thread, int priority)      {
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                       ~~~~^~~~~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/analyzer.c: In function 'XCreateAnalyzer':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/analyzer.c:1323:55: warning: unused parameter 'app_data_path' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:  1323 |                                                 char *app_data_path
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                                 ~~~~~~^~~~~~~~~~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/compress.c: In function 'flush_compressor':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/compress.c:54:35: warning: unused parameter 'a' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    54 | void flush_compressor (COMPRESSOR a)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                        ~~~~~~~~~~~^
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/compress.c: In function 'setSamplerate_compressor':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/compress.c:83:43: warning: unused parameter 'a' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    83 | void setSamplerate_compressor (COMPRESSOR a, int rate)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                ~~~~~~~~~~~^
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/compress.c:83:50: warning: unused parameter 'rate' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    83 | void setSamplerate_compressor (COMPRESSOR a, int rate)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                              ~~~~^~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/patchpanel.c: In function 'flush_panel':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/patchpanel.c:50:25: warning: unused parameter 'a' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    50 | void flush_panel (PANEL a)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                   ~~~~~~^
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/patchpanel.c: In function 'setSamplerate_panel':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/patchpanel.c:109:33: warning: unused parameter 'a' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   109 | void setSamplerate_panel (PANEL a, int rate)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                           ~~~~~~^
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/patchpanel.c:109:40: warning: unused parameter 'rate' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   109 | void setSamplerate_panel (PANEL a, int rate)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                    ~~~~^~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/utilities.c: In function 'malloc0':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/utilities.c:39:13: warning: unused variable 'alignment' [-Wunused-variable]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    39 |         int alignment = 16;
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |             ^~~~~~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/anf.c: In function 'setSamplerate_anf':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/anf.c:149:36: warning: unused parameter 'rate' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   149 | void setSamplerate_anf (ANF a, int rate)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                ~~~~^~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/varsamp.c: In function 'xvarsamp':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/varsamp.c:153:41: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   153 |                         a->inv_cvar = *((double *)&N);
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                        ~^~~~~~~~~~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/anr.c: In function 'setSamplerate_anr':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/anr.c:149:36: warning: unused parameter 'rate' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   149 | void setSamplerate_anr (ANR a, int rate)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                ~~~~^~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/dexp.c: In function 'SendAntiVOXData':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/dexp.c:708:35: warning: unused parameter 'nsamples' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   708 | void SendAntiVOXData (int id, int nsamples, double* data)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                               ~~~~^~~~~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/div.c: In function 'flush_div':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/div.c:62:22: warning: unused parameter 'a' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    62 | void flush_div (MDIV a)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                 ~~~~~^
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/gain.c: In function 'flush_gain':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/gain.c:52:23: warning: unused parameter 'a' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    52 | void flush_gain (GAIN a)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                  ~~~~~^
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/gain.c: In function 'setSamplerate_gain':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/gain.c:86:31: warning: unused parameter 'a' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    86 | void setSamplerate_gain (GAIN a, int rate)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                          ~~~~~^
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/gain.c:86:38: warning: unused parameter 'rate' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    86 | void setSamplerate_gain (GAIN a, int rate)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                  ~~~~^~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/doublepole.c: In function 'H':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/doublepole.c:44:23: warning: unused parameter 'scale' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    44 | static void H (double scale, double fcenter, double bandwidth, double f, double Hres[])
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                ~~~~~~~^~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/sbnr.c: In function 'xsbnr':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/sbnr.c:118:38: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   118 |                 for (size_t i = 0; i < bs; i++)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                      ^
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/sbnr.c:124:38: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   124 |                 for (size_t i = 0; i < bs; i++)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                      ^
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/calcc.c: In function 'psccF':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/calcc.c:840:104: warning: unused parameter 'mox' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   840 | void psccF (int channel, int size, float *Itxbuff, float *Qtxbuff, float *Irxbuff, float *Qrxbuff, int mox, int solidmox)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                                                                                    ~~~~^~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/calcc.c:840:113: warning: unused parameter 'solidmox' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   840 | void psccF (int channel, int size, float *Itxbuff, float *Qtxbuff, float *Irxbuff, float *Qrxbuff, int mox, int solidmox)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                                                                                             ~~~~^~~~~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/sender.c: In function 'setSamplerate_sender':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/sender.c:93:42: warning: unused parameter 'rate' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    93 | void setSamplerate_sender (SENDER a, int rate)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                      ~~~~^~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: libspecbleach/src/shared/post_estimation/noise_floor_manager.c: In function 'noise_floor_manager_initialize':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: libspecbleach/src/shared/post_estimation/noise_floor_manager.c:34:66: warning: unused parameter 'sample_rate' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    34 |                                                   const uint32_t sample_rate,
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                                   ~~~~~~~~~~~~~~~^~~~~~~~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: libspecbleach/src/shared/post_estimation/noise_floor_manager.c:35:66: warning: unused parameter 'hop' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    35 |                                                   const uint32_t hop) {
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                                   ~~~~~~~~~~~~~~~^~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/emnr.c: In function 'readZetaHat':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/emnr.c:226:84: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   226 |                 if (e == 0 && fread(zetaHat,   sizeof(double), nvals, pzetaBinary) != nvals) e = 1;
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                                                                    ^~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/emnr.c:227:88: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   227 |                 if (e == 0 && fread(zetaValid, sizeof(int),        nvals, pzetaBinary) != nvals) e = 1;
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                                                                        ^~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/emnr.c: In function 'calc_emnr':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/emnr.c:307:16: warning: unused variable 'Hvals' [-Wunused-variable]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   307 |         double Hvals[18] = { 0.000, 0.150, 0.480, 0.780, 0.980, 1.550, 2.000, 2.300, 2.520,
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                ^~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/emnr.c:377:17: warning: ignoring return value of 'fread' declared with attribute 'warn_unused_result' [-Wunused-result]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   377 |                 fread(a->g.GG, sizeof(double), 241 * 241, a->g.fileb);
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/emnr.c:378:17: warning: ignoring return value of 'fread' declared with attribute 'warn_unused_result' [-Wunused-result]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   378 |                 fread(a->g.GGS, sizeof(double), 241 * 241, a->g.fileb);
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/siphon.c: In function 'setSamplerate_siphon':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/siphon.c:144:42: warning: unused parameter 'rate' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   144 | void setSamplerate_siphon (SIPHON a, int rate)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                      ~~~~^~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/amd.c: In function 'xamd':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/amd.c:215:98: warning: 'audio' may be used uninitialized [-Wmaybe-uninitialized]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   215 |                                                         a->dc = a->mtauR * a->dc + a->onem_mtauR * audio;
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                                                                    ~~~~~~~~~~~~~~^~~~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/amd.c:118:16: note: 'audio' was declared here
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   118 |         double audio;
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                ^~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/ammod.c: In function 'flush_ammod':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/ammod.c:48:25: warning: unused parameter 'a' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    48 | void flush_ammod (AMMOD a)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                   ~~~~~~^
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/ammod.c: In function 'setSamplerate_ammod':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/ammod.c:87:33: warning: unused parameter 'a' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    87 | void setSamplerate_ammod (AMMOD a, int rate)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                           ~~~~~~^
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/ammod.c:87:40: warning: unused parameter 'rate' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    87 | void setSamplerate_ammod (AMMOD a, int rate)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                    ~~~~^~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/channel.c: In function 'start_thread':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/channel.c:33:16: warning: unused variable 'handle' [-Wunused-variable]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    33 |         HANDLE handle = (HANDLE) _beginthread(wdspmain, 0, (void *)(uintptr_t)channel);
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                ^~~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/iqc.c: In function 'flush_iqc':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/iqc.c:108:21: warning: unused parameter 'a' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   108 | void flush_iqc (IQC a)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                 ~~~~^
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c: In function 'QueueUserWorkItem':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c:41:57: warning: unused parameter 'flags' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    41 | void QueueUserWorkItem(void *function,void *context,int flags) {
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                                     ~~~~^~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c: In function 'InitializeCriticalSectionAndSpinCount':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c:64:72: warning: unused parameter 'count' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    64 | void InitializeCriticalSectionAndSpinCount(pthread_mutex_t *mutex, int count) {
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                                                    ~~~~^~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c: In function 'LinuxCreateSemaphore':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c:96:33: warning: unused parameter 'attributes' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    96 | sem_t *LinuxCreateSemaphore(int attributes,int initial_count,int maximum_count,char *name) {
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                             ~~~~^~~~~~~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c:96:66: warning: unused parameter 'maximum_count' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    96 | sem_t *LinuxCreateSemaphore(int attributes,int initial_count,int maximum_count,char *name) {
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                                              ~~~~^~~~~~~~~~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c:96:86: warning: unused parameter 'name' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    96 | sem_t *LinuxCreateSemaphore(int attributes,int initial_count,int maximum_count,char *name) {
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                                                                ~~~~~~^~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c: In function 'LinuxReleaseSemaphore':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c:136:63: warning: unused parameter 'previous_count' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   136 | void LinuxReleaseSemaphore(sem_t* sem,int release_count, int* previous_count) {
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                                          ~~~~~^~~~~~~~~~~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c: In function 'CreateEvent':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c:148:26: warning: unused parameter 'security_attributes' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   148 | sem_t *CreateEvent(void* security_attributes,int bManualReset,int bInitialState,char* name) {
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                    ~~~~~~^~~~~~~~~~~~~~~~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c:148:50: warning: unused parameter 'bManualReset' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   148 | sem_t *CreateEvent(void* security_attributes,int bManualReset,int bInitialState,char* name) {
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                              ~~~~^~~~~~~~~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c:148:67: warning: unused parameter 'bInitialState' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   148 | sem_t *CreateEvent(void* security_attributes,int bManualReset,int bInitialState,char* name) {
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                                               ~~~~^~~~~~~~~~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c:148:87: warning: unused parameter 'name' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   148 | sem_t *CreateEvent(void* security_attributes,int bManualReset,int bInitialState,char* name) {
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                                                                 ~~~~~~^~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c: In function '_beginthread':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c:192:46: warning: cast between incompatible function types from 'void (*)(void *)' to 'void * (*)(void *)' [-Wcast-function-type]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   192 |         if (pthread_create(&threadid, &attr, (void*(*)(void*))start_address, arglist)) {
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                              ^
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c: In function 'SetThreadPriority':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c:237:31: warning: unused parameter 'thread' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   237 | void SetThreadPriority(HANDLE thread, int priority)      {
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c:237:43: warning: unused parameter 'priority' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   237 | void SetThreadPriority(HANDLE thread, int priority)      {
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                       ~~~~^~~~~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/analyzer.c: In function 'XCreateAnalyzer':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/analyzer.c:1323:55: warning: unused parameter 'app_data_path' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:  1323 |                                                 char *app_data_path
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                                 ~~~~~~^~~~~~~~~~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/compress.c: In function 'flush_compressor':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/compress.c:54:35: warning: unused parameter 'a' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    54 | void flush_compressor (COMPRESSOR a)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                        ~~~~~~~~~~~^
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/compress.c: In function 'setSamplerate_compressor':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/compress.c:83:43: warning: unused parameter 'a' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    83 | void setSamplerate_compressor (COMPRESSOR a, int rate)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                ~~~~~~~~~~~^
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/compress.c:83:50: warning: unused parameter 'rate' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    83 | void setSamplerate_compressor (COMPRESSOR a, int rate)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                              ~~~~^~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/patchpanel.c: In function 'flush_panel':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/patchpanel.c:50:25: warning: unused parameter 'a' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    50 | void flush_panel (PANEL a)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                   ~~~~~~^
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/patchpanel.c: In function 'setSamplerate_panel':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/patchpanel.c:109:33: warning: unused parameter 'a' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   109 | void setSamplerate_panel (PANEL a, int rate)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                           ~~~~~~^
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/patchpanel.c:109:40: warning: unused parameter 'rate' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   109 | void setSamplerate_panel (PANEL a, int rate)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                    ~~~~^~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/utilities.c: In function 'malloc0':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/utilities.c:39:13: warning: unused variable 'alignment' [-Wunused-variable]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    39 |         int alignment = 16;
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |             ^~~~~~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/anf.c: In function 'setSamplerate_anf':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/anf.c:149:36: warning: unused parameter 'rate' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   149 | void setSamplerate_anf (ANF a, int rate)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                ~~~~^~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/varsamp.c: In function 'xvarsamp':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/varsamp.c:153:41: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   153 |                         a->inv_cvar = *((double *)&N);
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                        ~^~~~~~~~~~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/anr.c: In function 'setSamplerate_anr':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/anr.c:149:36: warning: unused parameter 'rate' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   149 | void setSamplerate_anr (ANR a, int rate)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                ~~~~^~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/dexp.c: In function 'SendAntiVOXData':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/dexp.c:708:35: warning: unused parameter 'nsamples' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   708 | void SendAntiVOXData (int id, int nsamples, double* data)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                               ~~~~^~~~~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/div.c: In function 'flush_div':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/div.c:62:22: warning: unused parameter 'a' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    62 | void flush_div (MDIV a)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                 ~~~~~^
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/gain.c: In function 'flush_gain':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/gain.c:52:23: warning: unused parameter 'a' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    52 | void flush_gain (GAIN a)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                  ~~~~~^
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/gain.c: In function 'setSamplerate_gain':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/gain.c:86:31: warning: unused parameter 'a' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    86 | void setSamplerate_gain (GAIN a, int rate)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                          ~~~~~^
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/gain.c:86:38: warning: unused parameter 'rate' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    86 | void setSamplerate_gain (GAIN a, int rate)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                  ~~~~^~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/doublepole.c: In function 'H':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/doublepole.c:44:23: warning: unused parameter 'scale' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    44 | static void H (double scale, double fcenter, double bandwidth, double f, double Hres[])
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                ~~~~~~~^~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/sbnr.c: In function 'xsbnr':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/sbnr.c:118:38: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   118 |                 for (size_t i = 0; i < bs; i++)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                      ^
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/sbnr.c:124:38: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   124 |                 for (size_t i = 0; i < bs; i++)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                      ^
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/calcc.c: In function 'psccF':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/calcc.c:840:104: warning: unused parameter 'mox' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   840 | void psccF (int channel, int size, float *Itxbuff, float *Qtxbuff, float *Irxbuff, float *Qrxbuff, int mox, int solidmox)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                                                                                    ~~~~^~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/calcc.c:840:113: warning: unused parameter 'solidmox' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   840 | void psccF (int channel, int size, float *Itxbuff, float *Qtxbuff, float *Irxbuff, float *Qrxbuff, int mox, int solidmox)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                                                                                             ~~~~^~~~~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/sender.c: In function 'setSamplerate_sender':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/sender.c:93:42: warning: unused parameter 'rate' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    93 | void setSamplerate_sender (SENDER a, int rate)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                      ~~~~^~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: libspecbleach/src/shared/post_estimation/noise_floor_manager.c: In function 'noise_floor_manager_initialize':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: libspecbleach/src/shared/post_estimation/noise_floor_manager.c:34:66: warning: unused parameter 'sample_rate' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    34 |                                                   const uint32_t sample_rate,
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                                   ~~~~~~~~~~~~~~~^~~~~~~~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: libspecbleach/src/shared/post_estimation/noise_floor_manager.c:35:66: warning: unused parameter 'hop' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    35 |                                                   const uint32_t hop) {
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                                   ~~~~~~~~~~~~~~~^~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/emnr.c: In function 'readZetaHat':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/emnr.c:226:84: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   226 |                 if (e == 0 && fread(zetaHat,   sizeof(double), nvals, pzetaBinary) != nvals) e = 1;
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                                                                    ^~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/emnr.c:227:88: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   227 |                 if (e == 0 && fread(zetaValid, sizeof(int),        nvals, pzetaBinary) != nvals) e = 1;
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                                                                        ^~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/emnr.c: In function 'calc_emnr':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/emnr.c:307:16: warning: unused variable 'Hvals' [-Wunused-variable]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   307 |         double Hvals[18] = { 0.000, 0.150, 0.480, 0.780, 0.980, 1.550, 2.000, 2.300, 2.520,
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                ^~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/emnr.c:377:17: warning: ignoring return value of 'fread' declared with attribute 'warn_unused_result' [-Wunused-result]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   377 |                 fread(a->g.GG, sizeof(double), 241 * 241, a->g.fileb);
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/emnr.c:378:17: warning: ignoring return value of 'fread' declared with attribute 'warn_unused_result' [-Wunused-result]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   378 |                 fread(a->g.GGS, sizeof(double), 241 * 241, a->g.fileb);
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/siphon.c: In function 'setSamplerate_siphon':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/siphon.c:144:42: warning: unused parameter 'rate' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   144 | void setSamplerate_siphon (SIPHON a, int rate)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                      ~~~~^~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/amd.c: In function 'xamd':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/amd.c:215:98: warning: 'audio' may be used uninitialized [-Wmaybe-uninitialized]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   215 |                                                         a->dc = a->mtauR * a->dc + a->onem_mtauR * audio;
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                                                                    ~~~~~~~~~~~~~~^~~~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/amd.c:118:16: note: 'audio' was declared here
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   118 |         double audio;
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                ^~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/ammod.c: In function 'flush_ammod':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/ammod.c:48:25: warning: unused parameter 'a' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    48 | void flush_ammod (AMMOD a)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                   ~~~~~~^
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/ammod.c: In function 'setSamplerate_ammod':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/ammod.c:87:33: warning: unused parameter 'a' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    87 | void setSamplerate_ammod (AMMOD a, int rate)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                           ~~~~~~^
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/ammod.c:87:40: warning: unused parameter 'rate' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    87 | void setSamplerate_ammod (AMMOD a, int rate)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                    ~~~~^~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/channel.c: In function 'start_thread':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/channel.c:33:16: warning: unused variable 'handle' [-Wunused-variable]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    33 |         HANDLE handle = (HANDLE) _beginthread(wdspmain, 0, (void *)(uintptr_t)channel);
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                ^~~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/iqc.c: In function 'flush_iqc':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/iqc.c:108:21: warning: unused parameter 'a' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   108 | void flush_iqc (IQC a)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                 ~~~~^
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c: In function 'QueueUserWorkItem':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c:41:57: warning: unused parameter 'flags' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    41 | void QueueUserWorkItem(void *function,void *context,int flags) {
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                                     ~~~~^~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c: In function 'InitializeCriticalSectionAndSpinCount':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c:64:72: warning: unused parameter 'count' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    64 | void InitializeCriticalSectionAndSpinCount(pthread_mutex_t *mutex, int count) {
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                                                    ~~~~^~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c: In function 'LinuxCreateSemaphore':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c:96:33: warning: unused parameter 'attributes' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    96 | sem_t *LinuxCreateSemaphore(int attributes,int initial_count,int maximum_count,char *name) {
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                             ~~~~^~~~~~~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c:96:66: warning: unused parameter 'maximum_count' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    96 | sem_t *LinuxCreateSemaphore(int attributes,int initial_count,int maximum_count,char *name) {
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                                              ~~~~^~~~~~~~~~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c:96:86: warning: unused parameter 'name' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    96 | sem_t *LinuxCreateSemaphore(int attributes,int initial_count,int maximum_count,char *name) {
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                                                                ~~~~~~^~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c: In function 'LinuxReleaseSemaphore':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c:136:63: warning: unused parameter 'previous_count' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   136 | void LinuxReleaseSemaphore(sem_t* sem,int release_count, int* previous_count) {
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                                          ~~~~~^~~~~~~~~~~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c: In function 'CreateEvent':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c:148:26: warning: unused parameter 'security_attributes' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   148 | sem_t *CreateEvent(void* security_attributes,int bManualReset,int bInitialState,char* name) {
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                    ~~~~~~^~~~~~~~~~~~~~~~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c:148:50: warning: unused parameter 'bManualReset' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   148 | sem_t *CreateEvent(void* security_attributes,int bManualReset,int bInitialState,char* name) {
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                              ~~~~^~~~~~~~~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c:148:67: warning: unused parameter 'bInitialState' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   148 | sem_t *CreateEvent(void* security_attributes,int bManualReset,int bInitialState,char* name) {
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                                               ~~~~^~~~~~~~~~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c:148:87: warning: unused parameter 'name' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   148 | sem_t *CreateEvent(void* security_attributes,int bManualReset,int bInitialState,char* name) {
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                                                                 ~~~~~~^~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c: In function '_beginthread':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c:192:46: warning: cast between incompatible function types from 'void (*)(void *)' to 'void * (*)(void *)' [-Wcast-function-type]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   192 |         if (pthread_create(&threadid, &attr, (void*(*)(void*))start_address, arglist)) {
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                              ^
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c: In function 'SetThreadPriority':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c:237:31: warning: unused parameter 'thread' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   237 | void SetThreadPriority(HANDLE thread, int priority)      {
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/linux_port.c:237:43: warning: unused parameter 'priority' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   237 | void SetThreadPriority(HANDLE thread, int priority)      {
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                       ~~~~^~~~~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/analyzer.c: In function 'XCreateAnalyzer':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/analyzer.c:1323:55: warning: unused parameter 'app_data_path' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:  1323 |                                                 char *app_data_path
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                                 ~~~~~~^~~~~~~~~~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/compress.c: In function 'flush_compressor':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/compress.c:54:35: warning: unused parameter 'a' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    54 | void flush_compressor (COMPRESSOR a)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                        ~~~~~~~~~~~^
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/compress.c: In function 'setSamplerate_compressor':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/compress.c:83:43: warning: unused parameter 'a' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    83 | void setSamplerate_compressor (COMPRESSOR a, int rate)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                ~~~~~~~~~~~^
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/compress.c:83:50: warning: unused parameter 'rate' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    83 | void setSamplerate_compressor (COMPRESSOR a, int rate)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                              ~~~~^~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/patchpanel.c: In function 'flush_panel':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/patchpanel.c:50:25: warning: unused parameter 'a' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    50 | void flush_panel (PANEL a)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                   ~~~~~~^
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/patchpanel.c: In function 'setSamplerate_panel':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/patchpanel.c:109:33: warning: unused parameter 'a' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   109 | void setSamplerate_panel (PANEL a, int rate)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                           ~~~~~~^
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/patchpanel.c:109:40: warning: unused parameter 'rate' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   109 | void setSamplerate_panel (PANEL a, int rate)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                    ~~~~^~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/utilities.c: In function 'malloc0':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/utilities.c:39:13: warning: unused variable 'alignment' [-Wunused-variable]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    39 |         int alignment = 16;
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |             ^~~~~~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/anf.c: In function 'setSamplerate_anf':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/anf.c:149:36: warning: unused parameter 'rate' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   149 | void setSamplerate_anf (ANF a, int rate)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                ~~~~^~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/varsamp.c: In function 'xvarsamp':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/varsamp.c:153:41: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   153 |                         a->inv_cvar = *((double *)&N);
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                        ~^~~~~~~~~~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/anr.c: In function 'setSamplerate_anr':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/anr.c:149:36: warning: unused parameter 'rate' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   149 | void setSamplerate_anr (ANR a, int rate)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                ~~~~^~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/dexp.c: In function 'SendAntiVOXData':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/dexp.c:708:35: warning: unused parameter 'nsamples' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   708 | void SendAntiVOXData (int id, int nsamples, double* data)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                               ~~~~^~~~~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/div.c: In function 'flush_div':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/div.c:62:22: warning: unused parameter 'a' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    62 | void flush_div (MDIV a)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                 ~~~~~^
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/gain.c: In function 'flush_gain':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/gain.c:52:23: warning: unused parameter 'a' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    52 | void flush_gain (GAIN a)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                  ~~~~~^
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/gain.c: In function 'setSamplerate_gain':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/gain.c:86:31: warning: unused parameter 'a' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    86 | void setSamplerate_gain (GAIN a, int rate)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                          ~~~~~^
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/gain.c:86:38: warning: unused parameter 'rate' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    86 | void setSamplerate_gain (GAIN a, int rate)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                  ~~~~^~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/doublepole.c: In function 'H':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/doublepole.c:44:23: warning: unused parameter 'scale' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    44 | static void H (double scale, double fcenter, double bandwidth, double f, double Hres[])
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                ~~~~~~~^~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/sbnr.c: In function 'xsbnr':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/sbnr.c:118:38: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   118 |                 for (size_t i = 0; i < bs; i++)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                      ^
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/sbnr.c:124:38: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   124 |                 for (size_t i = 0; i < bs; i++)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                      ^
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/calcc.c: In function 'psccF':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/calcc.c:840:104: warning: unused parameter 'mox' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   840 | void psccF (int channel, int size, float *Itxbuff, float *Qtxbuff, float *Irxbuff, float *Qrxbuff, int mox, int solidmox)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                                                                                    ~~~~^~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/calcc.c:840:113: warning: unused parameter 'solidmox' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:   840 | void psccF (int channel, int size, float *Itxbuff, float *Qtxbuff, float *Irxbuff, float *Qrxbuff, int mox, int solidmox)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                                                                                             ~~~~^~~~~~~~
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/sender.c: In function 'setSamplerate_sender':
[INFO] [stderr] warning: rustyHPSDR@0.1.2: wdsp/sender.c:93:42: warning: unused parameter 'rate' [-Wunused-parameter]
[INFO] [stderr] warning: rustyHPSDR@0.1.2:    93 | void setSamplerate_sender (SENDER a, int rate)
[INFO] [stderr] warning: rustyHPSDR@0.1.2:       |                                      ~~~~^~~~
[INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize`
[INFO] [stdout]   --> src/midi/mod.rs:20:13
[INFO] [stdout]    |
[INFO] [stdout] 20 | use serde::{Deserialize, Serialize};
[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 imports: `Ignore` and `MidiInputPort`
[INFO] [stdout]   --> src/midi/mod.rs:22:13
[INFO] [stdout]    |
[INFO] [stdout] 22 | use midir::{Ignore, MidiInput, MidiInputPort, MidiIO};
[INFO] [stdout]    |             ^^^^^^             ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::select`
[INFO] [stdout]  --> src/tci/mod.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use tokio::select;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::discovery::device_name`
[INFO] [stdout]   --> src/tci/mod.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use crate::discovery::device_name;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `IQ_STREAM` should have an upper camel case name
[INFO] [stdout]   --> src/tci/mod.rs:43:5
[INFO] [stdout]    |
[INFO] [stdout] 43 |     IQ_STREAM = 0,
[INFO] [stdout]    |     ^^^^^^^^^ help: convert the identifier to upper camel case: `IqStream`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `RX_AUDIO_STREAM` should have an upper camel case name
[INFO] [stdout]   --> src/tci/mod.rs:44:5
[INFO] [stdout]    |
[INFO] [stdout] 44 |     RX_AUDIO_STREAM,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `RxAudioStream`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TX_AUDIO_STREAM` should have an upper camel case name
[INFO] [stdout]   --> src/tci/mod.rs:45:5
[INFO] [stdout]    |
[INFO] [stdout] 45 |     TX_AUDIO_STREAM,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `TxAudioStream`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TX_CHRONO` should have an upper camel case name
[INFO] [stdout]   --> src/tci/mod.rs:46:5
[INFO] [stdout]    |
[INFO] [stdout] 46 |     TX_CHRONO,
[INFO] [stdout]    |     ^^^^^^^^^ help: convert the identifier to upper camel case: `TxChrono`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `LINEOUT_STREAM` should have an upper camel case name
[INFO] [stdout]   --> src/tci/mod.rs:47:5
[INFO] [stdout]    |
[INFO] [stdout] 47 |     LINEOUT_STREAM,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `LineoutStream`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Frame` and `Grid`
[INFO] [stdout]   --> src/widgets/mod.rs:18:82
[INFO] [stdout]    |
[INFO] [stdout] 18 | use gtk::{Adjustment, ApplicationWindow, Builder, Button, DrawingArea, DropDown, Frame, Grid, Label, ProgressBar, ToggleButton};
[INFO] [stdout]    |                                                                                  ^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::bands::*`
[INFO] [stdout]   --> src/widgets/mod.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | use crate::bands::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::modes::*`
[INFO] [stdout]   --> src/widgets/mod.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | use crate::modes::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::filters::*`
[INFO] [stdout]   --> src/widgets/mod.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | use crate::filters::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Cell`
[INFO] [stdout]   --> src/vfo/mod.rs:21:17
[INFO] [stdout]    |
[INFO] [stdout] 21 | use std::cell::{Cell, RefCell};
[INFO] [stdout]    |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Keyer` and `RadioModels`
[INFO] [stdout]   --> src/vfo/mod.rs:27:20
[INFO] [stdout]    |
[INFO] [stdout] 27 | use crate::radio::{Keyer, RadioModels, RadioMutex};
[INFO] [stdout]    |                    ^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::receiver::*`
[INFO] [stdout]   --> src/vfo/mod.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 28 | use crate::receiver::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize`
[INFO] [stdout]   --> src/midi/mod.rs:20:13
[INFO] [stdout]    |
[INFO] [stdout] 20 | use serde::{Deserialize, Serialize};
[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 imports: `Ignore` and `MidiInputPort`
[INFO] [stdout]   --> src/midi/mod.rs:22:13
[INFO] [stdout]    |
[INFO] [stdout] 22 | use midir::{Ignore, MidiInput, MidiInputPort, MidiIO};
[INFO] [stdout]    |             ^^^^^^             ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::select`
[INFO] [stdout]  --> src/tci/mod.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use tokio::select;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::discovery::device_name`
[INFO] [stdout]   --> src/tci/mod.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use crate::discovery::device_name;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `IQ_STREAM` should have an upper camel case name
[INFO] [stdout]   --> src/tci/mod.rs:43:5
[INFO] [stdout]    |
[INFO] [stdout] 43 |     IQ_STREAM = 0,
[INFO] [stdout]    |     ^^^^^^^^^ help: convert the identifier to upper camel case: `IqStream`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `RX_AUDIO_STREAM` should have an upper camel case name
[INFO] [stdout]   --> src/tci/mod.rs:44:5
[INFO] [stdout]    |
[INFO] [stdout] 44 |     RX_AUDIO_STREAM,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `RxAudioStream`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TX_AUDIO_STREAM` should have an upper camel case name
[INFO] [stdout]   --> src/tci/mod.rs:45:5
[INFO] [stdout]    |
[INFO] [stdout] 45 |     TX_AUDIO_STREAM,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `TxAudioStream`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TX_CHRONO` should have an upper camel case name
[INFO] [stdout]   --> src/tci/mod.rs:46:5
[INFO] [stdout]    |
[INFO] [stdout] 46 |     TX_CHRONO,
[INFO] [stdout]    |     ^^^^^^^^^ help: convert the identifier to upper camel case: `TxChrono`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `LINEOUT_STREAM` should have an upper camel case name
[INFO] [stdout]   --> src/tci/mod.rs:47:5
[INFO] [stdout]    |
[INFO] [stdout] 47 |     LINEOUT_STREAM,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `LineoutStream`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Frame` and `Grid`
[INFO] [stdout]   --> src/widgets/mod.rs:18:82
[INFO] [stdout]    |
[INFO] [stdout] 18 | use gtk::{Adjustment, ApplicationWindow, Builder, Button, DrawingArea, DropDown, Frame, Grid, Label, ProgressBar, ToggleButton};
[INFO] [stdout]    |                                                                                  ^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::bands::*`
[INFO] [stdout]   --> src/widgets/mod.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | use crate::bands::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::modes::*`
[INFO] [stdout]   --> src/widgets/mod.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | use crate::modes::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::filters::*`
[INFO] [stdout]   --> src/widgets/mod.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | use crate::filters::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Cell`
[INFO] [stdout]   --> src/vfo/mod.rs:21:17
[INFO] [stdout]    |
[INFO] [stdout] 21 | use std::cell::{Cell, RefCell};
[INFO] [stdout]    |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Keyer` and `RadioModels`
[INFO] [stdout]   --> src/vfo/mod.rs:27:20
[INFO] [stdout]    |
[INFO] [stdout] 27 | use crate::radio::{Keyer, RadioModels, RadioMutex};
[INFO] [stdout]    |                    ^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::receiver::*`
[INFO] [stdout]   --> src/vfo/mod.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 28 | use crate::receiver::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/tci/mod.rs:268:25
[INFO] [stdout]     |
[INFO] [stdout] 268 |                         _ => {}
[INFO] [stdout]     |                         ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/tci/mod.rs:268:25
[INFO] [stdout]     |
[INFO] [stdout] 185 |                         TCIDataMessage::IQData(data) => {
[INFO] [stdout]     |                         ---------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 231 |                         TCIDataMessage::AudioData(data) => {
[INFO] [stdout]     |                         ------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 268 |                         _ => {}
[INFO] [stdout]     |                         ^ collectively making this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/tci/mod.rs:330:17
[INFO] [stdout]     |
[INFO] [stdout] 330 |             let mut r = radio_mutex.radio.lock().unwrap();
[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: variable does not need to be mutable
[INFO] [stdout]    --> src/tci/mod.rs:359:21
[INFO] [stdout]     |
[INFO] [stdout] 359 |                 let mut r = radio_mutex.radio.lock().unwrap();
[INFO] [stdout]     |                     ----^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/tci/mod.rs:268:25
[INFO] [stdout]     |
[INFO] [stdout] 268 |                         _ => {}
[INFO] [stdout]     |                         ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/tci/mod.rs:268:25
[INFO] [stdout]     |
[INFO] [stdout] 185 |                         TCIDataMessage::IQData(data) => {
[INFO] [stdout]     |                         ---------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 231 |                         TCIDataMessage::AudioData(data) => {
[INFO] [stdout]     |                         ------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 268 |                         _ => {}
[INFO] [stdout]     |                         ^ collectively making this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/tci/mod.rs:330:17
[INFO] [stdout]     |
[INFO] [stdout] 330 |             let mut r = radio_mutex.radio.lock().unwrap();
[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: variable does not need to be mutable
[INFO] [stdout]    --> src/tci/mod.rs:359:21
[INFO] [stdout]     |
[INFO] [stdout] 359 |                 let mut r = radio_mutex.radio.lock().unwrap();
[INFO] [stdout]     |                     ----^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `MidiIO`
[INFO] [stdout]   --> src/midi/mod.rs:22:47
[INFO] [stdout]    |
[INFO] [stdout] 22 | use midir::{Ignore, MidiInput, MidiInputPort, MidiIO};
[INFO] [stdout]    |                                               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Write`
[INFO] [stdout]  --> src/tci/mod.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::io::Write;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/radio/mod.rs:306:13
[INFO] [stdout]     |
[INFO] [stdout] 306 |         let mut receivers: u8 = 2;
[INFO] [stdout]     |             ----^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/receiver/mod.rs:842:28
[INFO] [stdout]     |
[INFO] [stdout] 842 |                 if let Err(e) = tx.try_send(msg) {
[INFO] [stdout]     |                            ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/receiver/mod.rs:847:28
[INFO] [stdout]     |
[INFO] [stdout] 847 |                 if let Err(e) = tx.try_send(msg) {
[INFO] [stdout]     |                            ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `MidiIO`
[INFO] [stdout]   --> src/midi/mod.rs:22:47
[INFO] [stdout]    |
[INFO] [stdout] 22 | use midir::{Ignore, MidiInput, MidiInputPort, MidiIO};
[INFO] [stdout]    |                                               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Write`
[INFO] [stdout]  --> src/tci/mod.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::io::Write;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `m` is never read
[INFO] [stdout]    --> src/filters/mod.rs:487:9
[INFO] [stdout]     |
[INFO] [stdout] 487 |         m[filter].low = low;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `m` is never read
[INFO] [stdout]    --> src/filters/mod.rs:506:9
[INFO] [stdout]     |
[INFO] [stdout] 506 |         m[filter].high = high;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/radio/mod.rs:306:13
[INFO] [stdout]     |
[INFO] [stdout] 306 |         let mut receivers: u8 = 2;
[INFO] [stdout]     |             ----^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cw_pitch`
[INFO] [stdout]     --> src/configure/mod.rs:2724:9
[INFO] [stdout]      |
[INFO] [stdout] 2724 |     let cw_pitch = r.receiver[rx].cw_pitch;
[INFO] [stdout]      |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cw_pitch`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rc_app_widgets_clone`
[INFO] [stdout]     --> src/configure/mod.rs:2827:9
[INFO] [stdout]      |
[INFO] [stdout] 2827 |     let rc_app_widgets_clone = rc_app_widgets.clone();
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rc_app_widgets_clone`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rc_app_widgets_clone`
[INFO] [stdout]     --> src/configure/mod.rs:2932:9
[INFO] [stdout]      |
[INFO] [stdout] 2932 |     let rc_app_widgets_clone = rc_app_widgets.clone();
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rc_app_widgets_clone`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rc_app_widgets_clone`
[INFO] [stdout]     --> src/configure/mod.rs:3036:9
[INFO] [stdout]      |
[INFO] [stdout] 3036 |     let rc_app_widgets_clone = rc_app_widgets.clone();
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rc_app_widgets_clone`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/protocol1/mod.rs:167:13
[INFO] [stdout]     |
[INFO] [stdout] 167 |         let mut previous_sequence: u32 = 0;
[INFO] [stdout]     |             ----^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `previous_sequence`
[INFO] [stdout]    --> src/protocol1/mod.rs:167:13
[INFO] [stdout]     |
[INFO] [stdout] 167 |         let mut previous_sequence: u32 = 0;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_previous_sequence`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sequence`
[INFO] [stdout]    --> src/protocol1/mod.rs:174:41
[INFO] [stdout]     |
[INFO] [stdout] 174 | ...                   let sequence = u32::from_be_bytes([buffer[4], buffer[5], buffer[6], buffer[7]]);
[INFO] [stdout]     |                           ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sequence`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `process_rx_audio` is never read
[INFO] [stdout]    --> src/protocol1/mod.rs:588:13
[INFO] [stdout]     |
[INFO] [stdout] 588 |             process_rx_audio = false;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/cat/mod.rs:70:13
[INFO] [stdout]    |
[INFO] [stdout] 70 |         let mut writer_stream = stream.try_clone()?;
[INFO] [stdout]    |             ----^^^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cmd`
[INFO] [stdout]    --> src/cat/mod.rs:105:13
[INFO] [stdout]     |
[INFO] [stdout] 105 |         let cmd = input.trim_end_matches(';').to_uppercase(); // cmd does not include the ;
[INFO] [stdout]     |             ^^^ help: if this is intentional, prefix it with an underscore: `_cmd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/cat/mod.rs:114:14
[INFO] [stdout]     |
[INFO] [stdout] 114 |         for (i, cmd) in commands.iter().enumerate() {
[INFO] [stdout]     |              ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `radio_mutex`
[INFO] [stdout]    --> src/cat/mod.rs:136:47
[INFO] [stdout]     |
[INFO] [stdout] 136 |     fn parse_zz_command(&self, command: &str, radio_mutex: &RadioMutex, tx: mpsc::Sender<CatMessage>) -> String {
[INFO] [stdout]     |                                               ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_radio_mutex`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tx`
[INFO] [stdout]    --> src/cat/mod.rs:136:73
[INFO] [stdout]     |
[INFO] [stdout] 136 |     fn parse_zz_command(&self, command: &str, radio_mutex: &RadioMutex, tx: mpsc::Sender<CatMessage>) -> String {
[INFO] [stdout]     |                                                                         ^^ help: if this is intentional, prefix it with an underscore: `_tx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cmd`
[INFO] [stdout]    --> src/cat/mod.rs:137:13
[INFO] [stdout]     |
[INFO] [stdout] 137 |         let cmd = &command[..4];
[INFO] [stdout]     |             ^^^ help: if this is intentional, prefix it with an underscore: `_cmd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `suffix`
[INFO] [stdout]    --> src/cat/mod.rs:138:13
[INFO] [stdout]     |
[INFO] [stdout] 138 |         let suffix = &command[4..];
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_suffix`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `suffix`
[INFO] [stdout]    --> src/cat/mod.rs:142:22
[INFO] [stdout]     |
[INFO] [stdout] 142 |     fn AI_cmd(&self, suffix: &str, radio_mutex: &RadioMutex, tx: mpsc::Sender<CatMessage>) -> String {
[INFO] [stdout]     |                      ^^^^^^ help: if this is intentional, prefix it with an underscore: `_suffix`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `radio_mutex`
[INFO] [stdout]    --> src/cat/mod.rs:142:36
[INFO] [stdout]     |
[INFO] [stdout] 142 |     fn AI_cmd(&self, suffix: &str, radio_mutex: &RadioMutex, tx: mpsc::Sender<CatMessage>) -> String {
[INFO] [stdout]     |                                    ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_radio_mutex`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tx`
[INFO] [stdout]    --> src/cat/mod.rs:142:62
[INFO] [stdout]     |
[INFO] [stdout] 142 |     fn AI_cmd(&self, suffix: &str, radio_mutex: &RadioMutex, tx: mpsc::Sender<CatMessage>) -> String {
[INFO] [stdout]     |                                                              ^^ help: if this is intentional, prefix it with an underscore: `_tx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/cat/mod.rs:148:13
[INFO] [stdout]     |
[INFO] [stdout] 148 |         let mut r = radio_mutex.radio.lock().unwrap();
[INFO] [stdout]     |             ----^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/cat/mod.rs:168:13
[INFO] [stdout]     |
[INFO] [stdout] 168 |         let mut r = radio_mutex.radio.lock().unwrap();
[INFO] [stdout]     |             ----^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `suffix`
[INFO] [stdout]    --> src/cat/mod.rs:187:22
[INFO] [stdout]     |
[INFO] [stdout] 187 |     fn ID_cmd(&self, suffix: &str, radio_mutex: &RadioMutex, tx: mpsc::Sender<CatMessage>) -> String {
[INFO] [stdout]     |                      ^^^^^^ help: if this is intentional, prefix it with an underscore: `_suffix`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `radio_mutex`
[INFO] [stdout]    --> src/cat/mod.rs:187:36
[INFO] [stdout]     |
[INFO] [stdout] 187 |     fn ID_cmd(&self, suffix: &str, radio_mutex: &RadioMutex, tx: mpsc::Sender<CatMessage>) -> String {
[INFO] [stdout]     |                                    ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_radio_mutex`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tx`
[INFO] [stdout]    --> src/cat/mod.rs:187:62
[INFO] [stdout]     |
[INFO] [stdout] 187 |     fn ID_cmd(&self, suffix: &str, radio_mutex: &RadioMutex, tx: mpsc::Sender<CatMessage>) -> String {
[INFO] [stdout]     |                                                              ^^ help: if this is intentional, prefix it with an underscore: `_tx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `suffix`
[INFO] [stdout]    --> src/cat/mod.rs:191:22
[INFO] [stdout]     |
[INFO] [stdout] 191 |     fn IF_cmd(&self, suffix: &str, radio_mutex: &RadioMutex, tx: mpsc::Sender<CatMessage>) -> String {
[INFO] [stdout]     |                      ^^^^^^ help: if this is intentional, prefix it with an underscore: `_suffix`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tx`
[INFO] [stdout]    --> src/cat/mod.rs:191:62
[INFO] [stdout]     |
[INFO] [stdout] 191 |     fn IF_cmd(&self, suffix: &str, radio_mutex: &RadioMutex, tx: mpsc::Sender<CatMessage>) -> String {
[INFO] [stdout]     |                                                              ^^ help: if this is intentional, prefix it with an underscore: `_tx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tx`
[INFO] [stdout]    --> src/cat/mod.rs:216:62
[INFO] [stdout]     |
[INFO] [stdout] 216 |     fn KS_cmd(&self, suffix: &str, radio_mutex: &RadioMutex, tx: mpsc::Sender<CatMessage>) -> String {
[INFO] [stdout]     |                                                              ^^ help: if this is intentional, prefix it with an underscore: `_tx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/cat/mod.rs:228:13
[INFO] [stdout]     |
[INFO] [stdout] 228 |         let mut r = radio_mutex.radio.lock().unwrap();
[INFO] [stdout]     |             ----^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tx`
[INFO] [stdout]    --> src/cat/mod.rs:227:62
[INFO] [stdout]     |
[INFO] [stdout] 227 |     fn MD_cmd(&self, suffix: &str, radio_mutex: &RadioMutex, tx: mpsc::Sender<CatMessage>) -> String {
[INFO] [stdout]     |                                                              ^^ help: if this is intentional, prefix it with an underscore: `_tx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/cat/mod.rs:240:13
[INFO] [stdout]     |
[INFO] [stdout] 240 |         let mut reply = "".to_string();
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `suffix`
[INFO] [stdout]    --> src/cat/mod.rs:238:22
[INFO] [stdout]     |
[INFO] [stdout] 238 |     fn RX_cmd(&self, suffix: &str, radio_mutex: &RadioMutex, tx: mpsc::Sender<CatMessage>) -> String {
[INFO] [stdout]     |                      ^^^^^^ help: if this is intentional, prefix it with an underscore: `_suffix`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tx`
[INFO] [stdout]    --> src/cat/mod.rs:248:62
[INFO] [stdout]     |
[INFO] [stdout] 248 |     fn VX_cmd(&self, suffix: &str, radio_mutex: &RadioMutex, tx: mpsc::Sender<CatMessage>) -> String {
[INFO] [stdout]     |                                                              ^^ help: if this is intentional, prefix it with an underscore: `_tx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/cat/mod.rs:261:13
[INFO] [stdout]     |
[INFO] [stdout] 261 |         let mut reply = "".to_string();
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `suffix`
[INFO] [stdout]    --> src/cat/mod.rs:259:22
[INFO] [stdout]     |
[INFO] [stdout] 259 |     fn TX_cmd(&self, suffix: &str, radio_mutex: &RadioMutex, tx: mpsc::Sender<CatMessage>) -> String {
[INFO] [stdout]     |                      ^^^^^^ help: if this is intentional, prefix it with an underscore: `_suffix`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `radio_mutex`
[INFO] [stdout]   --> src/midi/mod.rs:87:23
[INFO] [stdout]    |
[INFO] [stdout] 87 |     pub fn run(&self, radio_mutex: &RadioMutex, tx: &mpsc::Sender<MidiMessage>, stop_flag: Arc<AtomicBool>) -> Result<(), Box<dyn Er...
[INFO] [stdout]    |                       ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_radio_mutex`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/rigctl/mod.rs:72:13
[INFO] [stdout]    |
[INFO] [stdout] 72 |         let mut writer_stream = stream.try_clone()?;
[INFO] [stdout]    |             ----^^^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/rigctl/mod.rs:164:21
[INFO] [stdout]     |
[INFO] [stdout] 160 |         "get_vfo" | "v" | "V" => {
[INFO] [stdout]     |                           --- matches all the relevant values
[INFO] [stdout] ...
[INFO] [stdout] 164 |         "set_vfo" | "V" => {
[INFO] [stdout]     |                     ^^^ no value can reach this
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/receiver/mod.rs:842:28
[INFO] [stdout]     |
[INFO] [stdout] 842 |                 if let Err(e) = tx.try_send(msg) {
[INFO] [stdout]     |                            ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/receiver/mod.rs:847:28
[INFO] [stdout]     |
[INFO] [stdout] 847 |                 if let Err(e) = tx.try_send(msg) {
[INFO] [stdout]     |                            ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `radio`
[INFO] [stdout]    --> src/tci/mod.rs:422:11
[INFO] [stdout]     |
[INFO] [stdout] 422 | fn get_if(radio: RadioMutex) -> String {
[INFO] [stdout]     |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_radio`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `radio`
[INFO] [stdout]    --> src/tci/mod.rs:428:25
[INFO] [stdout]     |
[INFO] [stdout] 428 | fn get_modulations_list(radio: RadioMutex) -> String {
[INFO] [stdout]     |                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_radio`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `r`
[INFO] [stdout]    --> src/tci/mod.rs:481:9
[INFO] [stdout]     |
[INFO] [stdout] 481 |     let r = radio.radio.lock().unwrap();
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `r`
[INFO] [stdout]    --> src/tci/mod.rs:488:9
[INFO] [stdout]     |
[INFO] [stdout] 488 |     let r = radio.radio.lock().unwrap();
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> src/antenna/mod.rs:42:13
[INFO] [stdout]    |
[INFO] [stdout] 41 |             5 => Some(Antenna::XVTR),
[INFO] [stdout]    |             - matches all the relevant values
[INFO] [stdout] 42 |             5 => Some(Antenna::NONE),
[INFO] [stdout]    |             ^ no value can reach this
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `band_grid_clone`
[INFO] [stdout]   --> src/vfo/mod.rs:65:9
[INFO] [stdout]    |
[INFO] [stdout] 65 |     let band_grid_clone = band_grid.clone();
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_band_grid_clone`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `format_u32_with_separators` is never used
[INFO] [stdout]    --> src/radio/mod.rs:706:4
[INFO] [stdout]     |
[INFO] [stdout] 706 | fn format_u32_with_separators(value: u32) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_meter` is never used
[INFO] [stdout]    --> src/radio/mod.rs:722:4
[INFO] [stdout]     |
[INFO] [stdout] 722 | fn draw_meter(cr: &Context, dbm: f64) {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_waterfall` is never used
[INFO] [stdout]    --> src/radio/mod.rs:765:4
[INFO] [stdout]     |
[INFO] [stdout] 765 | fn draw_waterfall(cr: &Context, width: i32, height: i32, pixbuf: &Rc<RefCell<Option<Pixbuf>>>) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SUBRX_BASE_CHANNEL` is never used
[INFO] [stdout]   --> src/receiver/mod.rs:37:7
[INFO] [stdout]    |
[INFO] [stdout] 37 | const SUBRX_BASE_CHANNEL: i32 = 16;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `cw_pitch_spinbutton` is never read
[INFO] [stdout]   --> src/filters/mod.rs:84:5
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub struct FilterGrid {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 84 |     cw_pitch_spinbutton: SpinButton,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `FilterGrid` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `receive_sequence`, `wide_sequence`, `n_samples`, `left_sample`, and `right_sample` are never read
[INFO] [stdout]   --> src/protocol1/mod.rs:46:5
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub struct Protocol1 {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 46 |     receive_sequence: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 47 |     send_sequence: u32,
[INFO] [stdout] 48 |     wide_sequence: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 52 |     n_samples: i32,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 53 |     left_sample: i32,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 54 |     right_sample: i32,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `f64_to_f32` is never used
[INFO] [stdout]    --> src/protocol1/mod.rs:892:8
[INFO] [stdout]     |
[INFO] [stdout]  64 | impl Protocol1 {
[INFO] [stdout]     | -------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 892 |     fn f64_to_f32(input: Vec<f64>) -> Vec<f32> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RX_YELLOW_LED` is never used
[INFO] [stdout]   --> src/protocol2/mod.rs:37:7
[INFO] [stdout]    |
[INFO] [stdout] 37 | const RX_YELLOW_LED: u32 = 0x00000001;
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UNUSED_1` is never used
[INFO] [stdout]   --> src/protocol2/mod.rs:44:7
[INFO] [stdout]    |
[INFO] [stdout] 44 | const UNUSED_1: u32 =      0x00000080;
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `XVTR_RX_IN` is never used
[INFO] [stdout]   --> src/protocol2/mod.rs:45:7
[INFO] [stdout]    |
[INFO] [stdout] 45 | const XVTR_RX_IN: u32 =    0x00000100;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RX_2_IN` is never used
[INFO] [stdout]   --> src/protocol2/mod.rs:46:7
[INFO] [stdout]    |
[INFO] [stdout] 46 | const RX_2_IN: u32 =       0x00000200;
[INFO] [stdout]    |       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RX_1_IN` is never used
[INFO] [stdout]   --> src/protocol2/mod.rs:47:7
[INFO] [stdout]    |
[INFO] [stdout] 47 | const RX_1_IN: u32 =       0x00000400;
[INFO] [stdout]    |       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RX_1_OUT` is never used
[INFO] [stdout]   --> src/protocol2/mod.rs:48:7
[INFO] [stdout]    |
[INFO] [stdout] 48 | const RX_1_OUT: u32 =      0x00000800;
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ATTEN_20_dB` is never used
[INFO] [stdout]   --> src/protocol2/mod.rs:50:7
[INFO] [stdout]    |
[INFO] [stdout] 50 | const ATTEN_20_dB: u32 =   0x00002000;
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ATTEN_10_dB` is never used
[INFO] [stdout]   --> src/protocol2/mod.rs:51:7
[INFO] [stdout]    |
[INFO] [stdout] 51 | const ATTEN_10_dB: u32 =   0x00004000;
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RX_RED_LED` is never used
[INFO] [stdout]   --> src/protocol2/mod.rs:52:7
[INFO] [stdout]    |
[INFO] [stdout] 52 | const RX_RED_LED: u32 =    0x00008000;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UNUSED_2` is never used
[INFO] [stdout]   --> src/protocol2/mod.rs:53:7
[INFO] [stdout]    |
[INFO] [stdout] 53 | const UNUSED_2: u32 =      0x00010000;
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UNUSED_3` is never used
[INFO] [stdout]   --> src/protocol2/mod.rs:54:7
[INFO] [stdout]    |
[INFO] [stdout] 54 | const UNUSED_3: u32 =      0x00020000;
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TRX_STATUS` is never used
[INFO] [stdout]   --> src/protocol2/mod.rs:55:7
[INFO] [stdout]    |
[INFO] [stdout] 55 | const TRX_STATUS: u32 =    0x00040000;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TX_YELLOW_LED` is never used
[INFO] [stdout]   --> src/protocol2/mod.rs:56:7
[INFO] [stdout]    |
[INFO] [stdout] 56 | const TX_YELLOW_LED: u32 = 0x00080000;
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ANT_1` is never used
[INFO] [stdout]   --> src/protocol2/mod.rs:61:7
[INFO] [stdout]    |
[INFO] [stdout] 61 | const ANT_1: u32 =         0x01000000;
[INFO] [stdout]    |       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ANT_2` is never used
[INFO] [stdout]   --> src/protocol2/mod.rs:62:7
[INFO] [stdout]    |
[INFO] [stdout] 62 | const ANT_2: u32 =         0x02000000;
[INFO] [stdout]    |       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ANT_3` is never used
[INFO] [stdout]   --> src/protocol2/mod.rs:63:7
[INFO] [stdout]    |
[INFO] [stdout] 63 | const ANT_3: u32 =         0x04000000;
[INFO] [stdout]    |       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TR_RELAY` is never used
[INFO] [stdout]   --> src/protocol2/mod.rs:64:7
[INFO] [stdout]    |
[INFO] [stdout] 64 | const TR_RELAY: u32 =      0x08000000;
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TX_RED_LED` is never used
[INFO] [stdout]   --> src/protocol2/mod.rs:65:7
[INFO] [stdout]    |
[INFO] [stdout] 65 | const TX_RED_LED: u32 =    0x10000000;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `receivers` is never read
[INFO] [stdout]   --> src/protocol2/mod.rs:74:5
[INFO] [stdout]    |
[INFO] [stdout] 71 | pub struct Protocol2 {
[INFO] [stdout]    |            --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 74 |     receivers: u8,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `f64_to_f32` is never used
[INFO] [stdout]    --> src/protocol2/mod.rs:834:8
[INFO] [stdout]     |
[INFO] [stdout]  85 | impl Protocol2 {
[INFO] [stdout]     | -------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 834 |     fn f64_to_f32(input: Vec<f64>) -> Vec<f32> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `swr` is never read
[INFO] [stdout]   --> src/meter/mod.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub struct Meter {
[INFO] [stdout]    |            ----- field in this struct
[INFO] [stdout] 23 |     surface: ImageSurface,
[INFO] [stdout] 24 |     swr: f32,
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Meter` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `MidiVfoA` and `MidiVfoB` are never constructed
[INFO] [stdout]   --> src/midi/mod.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 27 | enum MidiAction {
[INFO] [stdout]    |      ---------- variants in this enum
[INFO] [stdout] 28 |     MidiNone,
[INFO] [stdout] 29 |     MidiVfoA,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 30 |     MidiVfoB,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MidiAction` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `midi_action` is never read
[INFO] [stdout]   --> src/midi/mod.rs:57:5
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub struct MidiFunction {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] 56 |     midi_type: MidiType,
[INFO] [stdout] 57 |     midi_action: MidiAction,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MidiFunction` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `TX_AUDIO_STREAM`, `TX_CHRONO`, and `LINEOUT_STREAM` are never constructed
[INFO] [stdout]   --> src/tci/mod.rs:45:5
[INFO] [stdout]    |
[INFO] [stdout] 42 | enum TCIStreamType {
[INFO] [stdout]    |      ------------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 45 |     TX_AUDIO_STREAM,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 46 |     TX_CHRONO,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 47 |     LINEOUT_STREAM,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/radio/mod.rs:629:21
[INFO] [stdout]     |
[INFO] [stdout] 629 |                     file.read_to_string(&mut s);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 629 |                     let _ = file.read_to_string(&mut s);
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `update_Nrvals` should have a snake case name
[INFO] [stdout]    --> src/receiver/mod.rs:520:12
[INFO] [stdout]     |
[INFO] [stdout] 520 |     pub fn update_Nrvals(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^ help: convert the identifier to snake case: `update_nrvals`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `update_Anfvals` should have a snake case name
[INFO] [stdout]    --> src/receiver/mod.rs:526:12
[INFO] [stdout]     |
[INFO] [stdout] 526 |     pub fn update_Anfvals(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `update_anfvals`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `update_AgcPosition` should have a snake case name
[INFO] [stdout]    --> src/receiver/mod.rs:532:12
[INFO] [stdout]     |
[INFO] [stdout] 532 |     pub fn update_AgcPosition(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `update_agc_position`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `fscLin` should have a snake case name
[INFO] [stdout]    --> src/receiver/mod.rs:606:13
[INFO] [stdout]     |
[INFO] [stdout] 606 |         let fscLin = 0.0;
[INFO] [stdout]     |             ^^^^^^ help: convert the identifier to snake case: `fsc_lin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `fscHin` should have a snake case name
[INFO] [stdout]    --> src/receiver/mod.rs:607:13
[INFO] [stdout]     |
[INFO] [stdout] 607 |         let fscHin = 0.0;
[INFO] [stdout]     |             ^^^^^^ help: convert the identifier to snake case: `fsc_hin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constant `filterLSB` should have an upper case name
[INFO] [stdout]   --> src/filters/mod.rs:92:15
[INFO] [stdout]    |
[INFO] [stdout] 92 |         const filterLSB: [Filter; 12] = [
[INFO] [stdout]    |               ^^^^^^^^^ help: convert the identifier to upper case: `FILTER_LSB`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_upper_case_globals)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constant `filterUSB` should have an upper case name
[INFO] [stdout]    --> src/filters/mod.rs:107:15
[INFO] [stdout]     |
[INFO] [stdout] 107 |         const filterUSB: [Filter; 12] = [
[INFO] [stdout]     |               ^^^^^^^^^ help: convert the identifier to upper case: `FILTER_USB`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constant `filterCWL` should have an upper case name
[INFO] [stdout]    --> src/filters/mod.rs:122:15
[INFO] [stdout]     |
[INFO] [stdout] 122 |         const filterCWL: [Filter; 12] = [
[INFO] [stdout]     |               ^^^^^^^^^ help: convert the identifier to upper case: `FILTER_CWL`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constant `filterCWU` should have an upper case name
[INFO] [stdout]    --> src/filters/mod.rs:137:15
[INFO] [stdout]     |
[INFO] [stdout] 137 |         const filterCWU: [Filter; 12] = [
[INFO] [stdout]     |               ^^^^^^^^^ help: convert the identifier to upper case: `FILTER_CWU`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constant `filterDIGL` should have an upper case name
[INFO] [stdout]    --> src/filters/mod.rs:152:15
[INFO] [stdout]     |
[INFO] [stdout] 152 |         const filterDIGL: [Filter; 12] = [
[INFO] [stdout]     |               ^^^^^^^^^^ help: convert the identifier to upper case: `FILTER_DIGL`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constant `filterDIGU` should have an upper case name
[INFO] [stdout]    --> src/filters/mod.rs:167:15
[INFO] [stdout]     |
[INFO] [stdout] 167 |         const filterDIGU: [Filter; 12] = [
[INFO] [stdout]     |               ^^^^^^^^^^ help: convert the identifier to upper case: `FILTER_DIGU`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constant `filterAM` should have an upper case name
[INFO] [stdout]    --> src/filters/mod.rs:182:15
[INFO] [stdout]     |
[INFO] [stdout] 182 |         const filterAM: [Filter; 12] = [
[INFO] [stdout]     |               ^^^^^^^^ help: convert the identifier to upper case: `FILTER_AM`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constant `filterSAM` should have an upper case name
[INFO] [stdout]    --> src/filters/mod.rs:197:15
[INFO] [stdout]     |
[INFO] [stdout] 197 |         const filterSAM: [Filter; 12] = [
[INFO] [stdout]     |               ^^^^^^^^^ help: convert the identifier to upper case: `FILTER_SAM`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constant `filterFMN` should have an upper case name
[INFO] [stdout]    --> src/filters/mod.rs:212:15
[INFO] [stdout]     |
[INFO] [stdout] 212 |         const filterFMN: [Filter; 12] = [
[INFO] [stdout]     |               ^^^^^^^^^ help: convert the identifier to upper case: `FILTER_FMN`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constant `filterDSB` should have an upper case name
[INFO] [stdout]    --> src/filters/mod.rs:227:15
[INFO] [stdout]     |
[INFO] [stdout] 227 |         const filterDSB: [Filter; 12] = [
[INFO] [stdout]     |               ^^^^^^^^^ help: convert the identifier to upper case: `FILTER_DSB`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constant `filterSPEC` should have an upper case name
[INFO] [stdout]    --> src/filters/mod.rs:242:15
[INFO] [stdout]     |
[INFO] [stdout] 242 |         const filterSPEC: [Filter; 12] = [
[INFO] [stdout]     |               ^^^^^^^^^^ help: convert the identifier to upper case: `FILTER_SPEC`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constant `filterDRM` should have an upper case name
[INFO] [stdout]    --> src/filters/mod.rs:257:15
[INFO] [stdout]     |
[INFO] [stdout] 257 |         const filterDRM: [Filter; 12] = [
[INFO] [stdout]     |               ^^^^^^^^^ help: convert the identifier to upper case: `FILTER_DRM`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ATTEN_20_dB` should have an upper case name
[INFO] [stdout]   --> src/protocol2/mod.rs:50:7
[INFO] [stdout]    |
[INFO] [stdout] 50 | const ATTEN_20_dB: u32 =   0x00002000;
[INFO] [stdout]    |       ^^^^^^^^^^^ help: convert the identifier to upper case: `ATTEN_20_D_B`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ATTEN_10_dB` should have an upper case name
[INFO] [stdout]   --> src/protocol2/mod.rs:51:7
[INFO] [stdout]    |
[INFO] [stdout] 51 | const ATTEN_10_dB: u32 =   0x00004000;
[INFO] [stdout]    |       ^^^^^^^^^^^ help: convert the identifier to upper case: `ATTEN_10_D_B`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `rxaMeterType_RXA_S_PK` should have an upper case name
[INFO] [stdout]    --> src/wdsp/mod.rs:217:11
[INFO] [stdout]     |
[INFO] [stdout] 217 | pub const rxaMeterType_RXA_S_PK: rxaMeterType = 0;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `RXA_METER_TYPE_RXA_S_PK`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `rxaMeterType_RXA_S_AV` should have an upper case name
[INFO] [stdout]    --> src/wdsp/mod.rs:218:11
[INFO] [stdout]     |
[INFO] [stdout] 218 | pub const rxaMeterType_RXA_S_AV: rxaMeterType = 1;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `RXA_METER_TYPE_RXA_S_AV`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `rxaMeterType_RXA_ADC_PK` should have an upper case name
[INFO] [stdout]    --> src/wdsp/mod.rs:219:11
[INFO] [stdout]     |
[INFO] [stdout] 219 | pub const rxaMeterType_RXA_ADC_PK: rxaMeterType = 2;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `RXA_METER_TYPE_RXA_ADC_PK`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `rxaMeterType_RXA_ADC_AV` should have an upper case name
[INFO] [stdout]    --> src/wdsp/mod.rs:220:11
[INFO] [stdout]     |
[INFO] [stdout] 220 | pub const rxaMeterType_RXA_ADC_AV: rxaMeterType = 3;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `RXA_METER_TYPE_RXA_ADC_AV`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `rxaMeterType_RXA_AGC_GAIN` should have an upper case name
[INFO] [stdout]    --> src/wdsp/mod.rs:221:11
[INFO] [stdout]     |
[INFO] [stdout] 221 | pub const rxaMeterType_RXA_AGC_GAIN: rxaMeterType = 4;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `RXA_METER_TYPE_RXA_AGC_GAIN`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `rxaMeterType_RXA_AGC_PK` should have an upper case name
[INFO] [stdout]    --> src/wdsp/mod.rs:222:11
[INFO] [stdout]     |
[INFO] [stdout] 222 | pub const rxaMeterType_RXA_AGC_PK: rxaMeterType = 5;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `RXA_METER_TYPE_RXA_AGC_PK`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `rxaMeterType_RXA_AGC_AV` should have an upper case name
[INFO] [stdout]    --> src/wdsp/mod.rs:223:11
[INFO] [stdout]     |
[INFO] [stdout] 223 | pub const rxaMeterType_RXA_AGC_AV: rxaMeterType = 6;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `RXA_METER_TYPE_RXA_AGC_AV`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `rxaMeterType_RXA_METERTYPE_LAST` should have an upper case name
[INFO] [stdout]    --> src/wdsp/mod.rs:224:11
[INFO] [stdout]     |
[INFO] [stdout] 224 | pub const rxaMeterType_RXA_METERTYPE_LAST: rxaMeterType = 7;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `RXA_METER_TYPE_RXA_METERTYPE_LAST`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `txaMeterType_TXA_MIC_PK` should have an upper case name
[INFO] [stdout]    --> src/wdsp/mod.rs:562:11
[INFO] [stdout]     |
[INFO] [stdout] 562 | pub const txaMeterType_TXA_MIC_PK: txaMeterType = 0;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `TXA_METER_TYPE_TXA_MIC_PK`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `txaMeterType_TXA_MIC_AV` should have an upper case name
[INFO] [stdout]    --> src/wdsp/mod.rs:563:11
[INFO] [stdout]     |
[INFO] [stdout] 563 | pub const txaMeterType_TXA_MIC_AV: txaMeterType = 1;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `TXA_METER_TYPE_TXA_MIC_AV`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `txaMeterType_TXA_EQ_PK` should have an upper case name
[INFO] [stdout]    --> src/wdsp/mod.rs:564:11
[INFO] [stdout]     |
[INFO] [stdout] 564 | pub const txaMeterType_TXA_EQ_PK: txaMeterType = 2;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `TXA_METER_TYPE_TXA_EQ_PK`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `txaMeterType_TXA_EQ_AV` should have an upper case name
[INFO] [stdout]    --> src/wdsp/mod.rs:565:11
[INFO] [stdout]     |
[INFO] [stdout] 565 | pub const txaMeterType_TXA_EQ_AV: txaMeterType = 3;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `TXA_METER_TYPE_TXA_EQ_AV`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `txaMeterType_TXA_LVLR_PK` should have an upper case name
[INFO] [stdout]    --> src/wdsp/mod.rs:566:11
[INFO] [stdout]     |
[INFO] [stdout] 566 | pub const txaMeterType_TXA_LVLR_PK: txaMeterType = 4;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `TXA_METER_TYPE_TXA_LVLR_PK`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `txaMeterType_TXA_LVLR_AV` should have an upper case name
[INFO] [stdout]    --> src/wdsp/mod.rs:567:11
[INFO] [stdout]     |
[INFO] [stdout] 567 | pub const txaMeterType_TXA_LVLR_AV: txaMeterType = 5;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `TXA_METER_TYPE_TXA_LVLR_AV`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `txaMeterType_TXA_LVLR_GAIN` should have an upper case name
[INFO] [stdout]    --> src/wdsp/mod.rs:568:11
[INFO] [stdout]     |
[INFO] [stdout] 568 | pub const txaMeterType_TXA_LVLR_GAIN: txaMeterType = 6;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `TXA_METER_TYPE_TXA_LVLR_GAIN`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `txaMeterType_TXA_CFC_PK` should have an upper case name
[INFO] [stdout]    --> src/wdsp/mod.rs:569:11
[INFO] [stdout]     |
[INFO] [stdout] 569 | pub const txaMeterType_TXA_CFC_PK: txaMeterType = 7;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `TXA_METER_TYPE_TXA_CFC_PK`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `txaMeterType_TXA_CFC_AV` should have an upper case name
[INFO] [stdout]    --> src/wdsp/mod.rs:570:11
[INFO] [stdout]     |
[INFO] [stdout] 570 | pub const txaMeterType_TXA_CFC_AV: txaMeterType = 8;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `TXA_METER_TYPE_TXA_CFC_AV`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `txaMeterType_TXA_CFC_GAIN` should have an upper case name
[INFO] [stdout]    --> src/wdsp/mod.rs:571:11
[INFO] [stdout]     |
[INFO] [stdout] 571 | pub const txaMeterType_TXA_CFC_GAIN: txaMeterType = 9;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `TXA_METER_TYPE_TXA_CFC_GAIN`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `txaMeterType_TXA_COMP_PK` should have an upper case name
[INFO] [stdout]    --> src/wdsp/mod.rs:572:11
[INFO] [stdout]     |
[INFO] [stdout] 572 | pub const txaMeterType_TXA_COMP_PK: txaMeterType = 10;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `TXA_METER_TYPE_TXA_COMP_PK`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `txaMeterType_TXA_COMP_AV` should have an upper case name
[INFO] [stdout]    --> src/wdsp/mod.rs:573:11
[INFO] [stdout]     |
[INFO] [stdout] 573 | pub const txaMeterType_TXA_COMP_AV: txaMeterType = 11;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `TXA_METER_TYPE_TXA_COMP_AV`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `txaMeterType_TXA_ALC_PK` should have an upper case name
[INFO] [stdout]    --> src/wdsp/mod.rs:574:11
[INFO] [stdout]     |
[INFO] [stdout] 574 | pub const txaMeterType_TXA_ALC_PK: txaMeterType = 12;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `TXA_METER_TYPE_TXA_ALC_PK`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `txaMeterType_TXA_ALC_AV` should have an upper case name
[INFO] [stdout]    --> src/wdsp/mod.rs:575:11
[INFO] [stdout]     |
[INFO] [stdout] 575 | pub const txaMeterType_TXA_ALC_AV: txaMeterType = 13;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `TXA_METER_TYPE_TXA_ALC_AV`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `txaMeterType_TXA_ALC_GAIN` should have an upper case name
[INFO] [stdout]    --> src/wdsp/mod.rs:576:11
[INFO] [stdout]     |
[INFO] [stdout] 576 | pub const txaMeterType_TXA_ALC_GAIN: txaMeterType = 14;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `TXA_METER_TYPE_TXA_ALC_GAIN`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `txaMeterType_TXA_OUT_PK` should have an upper case name
[INFO] [stdout]    --> src/wdsp/mod.rs:577:11
[INFO] [stdout]     |
[INFO] [stdout] 577 | pub const txaMeterType_TXA_OUT_PK: txaMeterType = 15;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `TXA_METER_TYPE_TXA_OUT_PK`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `txaMeterType_TXA_OUT_AV` should have an upper case name
[INFO] [stdout]    --> src/wdsp/mod.rs:578:11
[INFO] [stdout]     |
[INFO] [stdout] 578 | pub const txaMeterType_TXA_OUT_AV: txaMeterType = 16;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `TXA_METER_TYPE_TXA_OUT_AV`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `txaMeterType_TXA_METERTYPE_LAST` should have an upper case name
[INFO] [stdout]    --> src/wdsp/mod.rs:579:11
[INFO] [stdout]     |
[INFO] [stdout] 579 | pub const txaMeterType_TXA_METERTYPE_LAST: txaMeterType = 17;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `TXA_METER_TYPE_TXA_METERTYPE_LAST`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ALEX_ATTENUATION_0dB` should have an upper case name
[INFO] [stdout]   --> src/alex/mod.rs:28:11
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub const ALEX_ATTENUATION_0dB: u32 =    0x00000000;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `ALEX_ATTENUATION_0D_B`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ALEX_ATTENUATION_10dB` should have an upper case name
[INFO] [stdout]   --> src/alex/mod.rs:29:11
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub const ALEX_ATTENUATION_10dB: u32 =   0x00004000;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `ALEX_ATTENUATION_10D_B`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ALEX_ATTENUATION_20dB` should have an upper case name
[INFO] [stdout]   --> src/alex/mod.rs:30:11
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub const ALEX_ATTENUATION_20dB: u32 =   0x00002000;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `ALEX_ATTENUATION_20D_B`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ALEX_ATTENUATION_30dB` should have an upper case name
[INFO] [stdout]   --> src/alex/mod.rs:31:11
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub const ALEX_ATTENUATION_30dB: u32 =   0x00006000;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `ALEX_ATTENUATION_30D_B`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]   --> src/waterfall/mod.rs:77:25
[INFO] [stdout]    |
[INFO] [stdout] 77 |                 let mut R = 0.0;
[INFO] [stdout]    |                         ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `G` should have a snake case name
[INFO] [stdout]   --> src/waterfall/mod.rs:78:25
[INFO] [stdout]    |
[INFO] [stdout] 78 |                 let mut G = 0.0;
[INFO] [stdout]    |                         ^ help: convert the identifier to snake case: `g`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `B` should have a snake case name
[INFO] [stdout]   --> src/waterfall/mod.rs:79:25
[INFO] [stdout]    |
[INFO] [stdout] 79 |                 let mut B = 0.0;
[INFO] [stdout]    |                         ^ help: convert the identifier to snake case: `b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `AI_cmd` should have a snake case name
[INFO] [stdout]    --> src/cat/mod.rs:142:8
[INFO] [stdout]     |
[INFO] [stdout] 142 |     fn AI_cmd(&self, suffix: &str, radio_mutex: &RadioMutex, tx: mpsc::Sender<CatMessage>) -> String {
[INFO] [stdout]     |        ^^^^^^ help: convert the identifier to snake case: `ai_cmd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `FA_cmd` should have a snake case name
[INFO] [stdout]    --> src/cat/mod.rs:147:8
[INFO] [stdout]     |
[INFO] [stdout] 147 |     fn FA_cmd(&self, suffix: &str, radio_mutex: &RadioMutex, tx: mpsc::Sender<CatMessage>) -> String {
[INFO] [stdout]     |        ^^^^^^ help: convert the identifier to snake case: `fa_cmd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `FB_cmd` should have a snake case name
[INFO] [stdout]    --> src/cat/mod.rs:167:8
[INFO] [stdout]     |
[INFO] [stdout] 167 |     fn FB_cmd(&self, suffix: &str, radio_mutex: &RadioMutex, tx: mpsc::Sender<CatMessage>) -> String {
[INFO] [stdout]     |        ^^^^^^ help: convert the identifier to snake case: `fb_cmd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `ID_cmd` should have a snake case name
[INFO] [stdout]    --> src/cat/mod.rs:187:8
[INFO] [stdout]     |
[INFO] [stdout] 187 |     fn ID_cmd(&self, suffix: &str, radio_mutex: &RadioMutex, tx: mpsc::Sender<CatMessage>) -> String {
[INFO] [stdout]     |        ^^^^^^ help: convert the identifier to snake case: `id_cmd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `IF_cmd` should have a snake case name
[INFO] [stdout]    --> src/cat/mod.rs:191:8
[INFO] [stdout]     |
[INFO] [stdout] 191 |     fn IF_cmd(&self, suffix: &str, radio_mutex: &RadioMutex, tx: mpsc::Sender<CatMessage>) -> String {
[INFO] [stdout]     |        ^^^^^^ help: convert the identifier to snake case (notice the capitalization): `if_cmd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `KS_cmd` should have a snake case name
[INFO] [stdout]    --> src/cat/mod.rs:216:8
[INFO] [stdout]     |
[INFO] [stdout] 216 |     fn KS_cmd(&self, suffix: &str, radio_mutex: &RadioMutex, tx: mpsc::Sender<CatMessage>) -> String {
[INFO] [stdout]     |        ^^^^^^ help: convert the identifier to snake case (notice the capitalization): `ks_cmd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `MD_cmd` should have a snake case name
[INFO] [stdout]    --> src/cat/mod.rs:227:8
[INFO] [stdout]     |
[INFO] [stdout] 227 |     fn MD_cmd(&self, suffix: &str, radio_mutex: &RadioMutex, tx: mpsc::Sender<CatMessage>) -> String {
[INFO] [stdout]     |        ^^^^^^ help: convert the identifier to snake case: `md_cmd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `RX_cmd` should have a snake case name
[INFO] [stdout]    --> src/cat/mod.rs:238:8
[INFO] [stdout]     |
[INFO] [stdout] 238 |     fn RX_cmd(&self, suffix: &str, radio_mutex: &RadioMutex, tx: mpsc::Sender<CatMessage>) -> String {
[INFO] [stdout]     |        ^^^^^^ help: convert the identifier to snake case: `rx_cmd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `VX_cmd` should have a snake case name
[INFO] [stdout]    --> src/cat/mod.rs:248:8
[INFO] [stdout]     |
[INFO] [stdout] 248 |     fn VX_cmd(&self, suffix: &str, radio_mutex: &RadioMutex, tx: mpsc::Sender<CatMessage>) -> String {
[INFO] [stdout]     |        ^^^^^^ help: convert the identifier to snake case (notice the capitalization): `vx_cmd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `TX_cmd` should have a snake case name
[INFO] [stdout]    --> src/cat/mod.rs:259:8
[INFO] [stdout]     |
[INFO] [stdout] 259 |     fn TX_cmd(&self, suffix: &str, radio_mutex: &RadioMutex, tx: mpsc::Sender<CatMessage>) -> String {
[INFO] [stdout]     |        ^^^^^^ help: convert the identifier to snake case: `tx_cmd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `m` is never read
[INFO] [stdout]    --> src/filters/mod.rs:487:9
[INFO] [stdout]     |
[INFO] [stdout] 487 |         m[filter].low = low;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `m` is never read
[INFO] [stdout]    --> src/filters/mod.rs:506:9
[INFO] [stdout]     |
[INFO] [stdout] 506 |         m[filter].high = high;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cw_pitch`
[INFO] [stdout]     --> src/configure/mod.rs:2724:9
[INFO] [stdout]      |
[INFO] [stdout] 2724 |     let cw_pitch = r.receiver[rx].cw_pitch;
[INFO] [stdout]      |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cw_pitch`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rc_app_widgets_clone`
[INFO] [stdout]     --> src/configure/mod.rs:2827:9
[INFO] [stdout]      |
[INFO] [stdout] 2827 |     let rc_app_widgets_clone = rc_app_widgets.clone();
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rc_app_widgets_clone`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rc_app_widgets_clone`
[INFO] [stdout]     --> src/configure/mod.rs:2932:9
[INFO] [stdout]      |
[INFO] [stdout] 2932 |     let rc_app_widgets_clone = rc_app_widgets.clone();
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rc_app_widgets_clone`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rc_app_widgets_clone`
[INFO] [stdout]     --> src/configure/mod.rs:3036:9
[INFO] [stdout]      |
[INFO] [stdout] 3036 |     let rc_app_widgets_clone = rc_app_widgets.clone();
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rc_app_widgets_clone`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/protocol1/mod.rs:167:13
[INFO] [stdout]     |
[INFO] [stdout] 167 |         let mut previous_sequence: u32 = 0;
[INFO] [stdout]     |             ----^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `previous_sequence`
[INFO] [stdout]    --> src/protocol1/mod.rs:167:13
[INFO] [stdout]     |
[INFO] [stdout] 167 |         let mut previous_sequence: u32 = 0;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_previous_sequence`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sequence`
[INFO] [stdout]    --> src/protocol1/mod.rs:174:41
[INFO] [stdout]     |
[INFO] [stdout] 174 | ...                   let sequence = u32::from_be_bytes([buffer[4], buffer[5], buffer[6], buffer[7]]);
[INFO] [stdout]     |                           ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sequence`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `process_rx_audio` is never read
[INFO] [stdout]    --> src/protocol1/mod.rs:588:13
[INFO] [stdout]     |
[INFO] [stdout] 588 |             process_rx_audio = false;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/cat/mod.rs:70:13
[INFO] [stdout]    |
[INFO] [stdout] 70 |         let mut writer_stream = stream.try_clone()?;
[INFO] [stdout]    |             ----^^^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cmd`
[INFO] [stdout]    --> src/cat/mod.rs:105:13
[INFO] [stdout]     |
[INFO] [stdout] 105 |         let cmd = input.trim_end_matches(';').to_uppercase(); // cmd does not include the ;
[INFO] [stdout]     |             ^^^ help: if this is intentional, prefix it with an underscore: `_cmd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/cat/mod.rs:114:14
[INFO] [stdout]     |
[INFO] [stdout] 114 |         for (i, cmd) in commands.iter().enumerate() {
[INFO] [stdout]     |              ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `radio_mutex`
[INFO] [stdout]    --> src/cat/mod.rs:136:47
[INFO] [stdout]     |
[INFO] [stdout] 136 |     fn parse_zz_command(&self, command: &str, radio_mutex: &RadioMutex, tx: mpsc::Sender<CatMessage>) -> String {
[INFO] [stdout]     |                                               ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_radio_mutex`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tx`
[INFO] [stdout]    --> src/cat/mod.rs:136:73
[INFO] [stdout]     |
[INFO] [stdout] 136 |     fn parse_zz_command(&self, command: &str, radio_mutex: &RadioMutex, tx: mpsc::Sender<CatMessage>) -> String {
[INFO] [stdout]     |                                                                         ^^ help: if this is intentional, prefix it with an underscore: `_tx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cmd`
[INFO] [stdout]    --> src/cat/mod.rs:137:13
[INFO] [stdout]     |
[INFO] [stdout] 137 |         let cmd = &command[..4];
[INFO] [stdout]     |             ^^^ help: if this is intentional, prefix it with an underscore: `_cmd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `suffix`
[INFO] [stdout]    --> src/cat/mod.rs:138:13
[INFO] [stdout]     |
[INFO] [stdout] 138 |         let suffix = &command[4..];
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_suffix`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `suffix`
[INFO] [stdout]    --> src/cat/mod.rs:142:22
[INFO] [stdout]     |
[INFO] [stdout] 142 |     fn AI_cmd(&self, suffix: &str, radio_mutex: &RadioMutex, tx: mpsc::Sender<CatMessage>) -> String {
[INFO] [stdout]     |                      ^^^^^^ help: if this is intentional, prefix it with an underscore: `_suffix`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `radio_mutex`
[INFO] [stdout]    --> src/cat/mod.rs:142:36
[INFO] [stdout]     |
[INFO] [stdout] 142 |     fn AI_cmd(&self, suffix: &str, radio_mutex: &RadioMutex, tx: mpsc::Sender<CatMessage>) -> String {
[INFO] [stdout]     |                                    ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_radio_mutex`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tx`
[INFO] [stdout]    --> src/cat/mod.rs:142:62
[INFO] [stdout]     |
[INFO] [stdout] 142 |     fn AI_cmd(&self, suffix: &str, radio_mutex: &RadioMutex, tx: mpsc::Sender<CatMessage>) -> String {
[INFO] [stdout]     |                                                              ^^ help: if this is intentional, prefix it with an underscore: `_tx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/cat/mod.rs:148:13
[INFO] [stdout]     |
[INFO] [stdout] 148 |         let mut r = radio_mutex.radio.lock().unwrap();
[INFO] [stdout]     |             ----^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/cat/mod.rs:168:13
[INFO] [stdout]     |
[INFO] [stdout] 168 |         let mut r = radio_mutex.radio.lock().unwrap();
[INFO] [stdout]     |             ----^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `suffix`
[INFO] [stdout]    --> src/cat/mod.rs:187:22
[INFO] [stdout]     |
[INFO] [stdout] 187 |     fn ID_cmd(&self, suffix: &str, radio_mutex: &RadioMutex, tx: mpsc::Sender<CatMessage>) -> String {
[INFO] [stdout]     |                      ^^^^^^ help: if this is intentional, prefix it with an underscore: `_suffix`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `radio_mutex`
[INFO] [stdout]    --> src/cat/mod.rs:187:36
[INFO] [stdout]     |
[INFO] [stdout] 187 |     fn ID_cmd(&self, suffix: &str, radio_mutex: &RadioMutex, tx: mpsc::Sender<CatMessage>) -> String {
[INFO] [stdout]     |                                    ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_radio_mutex`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tx`
[INFO] [stdout]    --> src/cat/mod.rs:187:62
[INFO] [stdout]     |
[INFO] [stdout] 187 |     fn ID_cmd(&self, suffix: &str, radio_mutex: &RadioMutex, tx: mpsc::Sender<CatMessage>) -> String {
[INFO] [stdout]     |                                                              ^^ help: if this is intentional, prefix it with an underscore: `_tx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `suffix`
[INFO] [stdout]    --> src/cat/mod.rs:191:22
[INFO] [stdout]     |
[INFO] [stdout] 191 |     fn IF_cmd(&self, suffix: &str, radio_mutex: &RadioMutex, tx: mpsc::Sender<CatMessage>) -> String {
[INFO] [stdout]     |                      ^^^^^^ help: if this is intentional, prefix it with an underscore: `_suffix`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tx`
[INFO] [stdout]    --> src/cat/mod.rs:191:62
[INFO] [stdout]     |
[INFO] [stdout] 191 |     fn IF_cmd(&self, suffix: &str, radio_mutex: &RadioMutex, tx: mpsc::Sender<CatMessage>) -> String {
[INFO] [stdout]     |                                                              ^^ help: if this is intentional, prefix it with an underscore: `_tx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tx`
[INFO] [stdout]    --> src/cat/mod.rs:216:62
[INFO] [stdout]     |
[INFO] [stdout] 216 |     fn KS_cmd(&self, suffix: &str, radio_mutex: &RadioMutex, tx: mpsc::Sender<CatMessage>) -> String {
[INFO] [stdout]     |                                                              ^^ help: if this is intentional, prefix it with an underscore: `_tx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/cat/mod.rs:228:13
[INFO] [stdout]     |
[INFO] [stdout] 228 |         let mut r = radio_mutex.radio.lock().unwrap();
[INFO] [stdout]     |             ----^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tx`
[INFO] [stdout]    --> src/cat/mod.rs:227:62
[INFO] [stdout]     |
[INFO] [stdout] 227 |     fn MD_cmd(&self, suffix: &str, radio_mutex: &RadioMutex, tx: mpsc::Sender<CatMessage>) -> String {
[INFO] [stdout]     |                                                              ^^ help: if this is intentional, prefix it with an underscore: `_tx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/cat/mod.rs:240:13
[INFO] [stdout]     |
[INFO] [stdout] 240 |         let mut reply = "".to_string();
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `suffix`
[INFO] [stdout]    --> src/cat/mod.rs:238:22
[INFO] [stdout]     |
[INFO] [stdout] 238 |     fn RX_cmd(&self, suffix: &str, radio_mutex: &RadioMutex, tx: mpsc::Sender<CatMessage>) -> String {
[INFO] [stdout]     |                      ^^^^^^ help: if this is intentional, prefix it with an underscore: `_suffix`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tx`
[INFO] [stdout]    --> src/cat/mod.rs:248:62
[INFO] [stdout]     |
[INFO] [stdout] 248 |     fn VX_cmd(&self, suffix: &str, radio_mutex: &RadioMutex, tx: mpsc::Sender<CatMessage>) -> String {
[INFO] [stdout]     |                                                              ^^ help: if this is intentional, prefix it with an underscore: `_tx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/cat/mod.rs:261:13
[INFO] [stdout]     |
[INFO] [stdout] 261 |         let mut reply = "".to_string();
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `suffix`
[INFO] [stdout]    --> src/cat/mod.rs:259:22
[INFO] [stdout]     |
[INFO] [stdout] 259 |     fn TX_cmd(&self, suffix: &str, radio_mutex: &RadioMutex, tx: mpsc::Sender<CatMessage>) -> String {
[INFO] [stdout]     |                      ^^^^^^ help: if this is intentional, prefix it with an underscore: `_suffix`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `radio_mutex`
[INFO] [stdout]   --> src/midi/mod.rs:87:23
[INFO] [stdout]    |
[INFO] [stdout] 87 |     pub fn run(&self, radio_mutex: &RadioMutex, tx: &mpsc::Sender<MidiMessage>, stop_flag: Arc<AtomicBool>) -> Result<(), Box<dyn Er...
[INFO] [stdout]    |                       ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_radio_mutex`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/rigctl/mod.rs:72:13
[INFO] [stdout]    |
[INFO] [stdout] 72 |         let mut writer_stream = stream.try_clone()?;
[INFO] [stdout]    |             ----^^^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/rigctl/mod.rs:164:21
[INFO] [stdout]     |
[INFO] [stdout] 160 |         "get_vfo" | "v" | "V" => {
[INFO] [stdout]     |                           --- matches all the relevant values
[INFO] [stdout] ...
[INFO] [stdout] 164 |         "set_vfo" | "V" => {
[INFO] [stdout]     |                     ^^^ no value can reach this
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `radio`
[INFO] [stdout]    --> src/tci/mod.rs:422:11
[INFO] [stdout]     |
[INFO] [stdout] 422 | fn get_if(radio: RadioMutex) -> String {
[INFO] [stdout]     |           ^^^^^ help: if this is intentional, prefix it with an underscore: `_radio`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `radio`
[INFO] [stdout]    --> src/tci/mod.rs:428:25
[INFO] [stdout]     |
[INFO] [stdout] 428 | fn get_modulations_list(radio: RadioMutex) -> String {
[INFO] [stdout]     |                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_radio`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `r`
[INFO] [stdout]    --> src/tci/mod.rs:481:9
[INFO] [stdout]     |
[INFO] [stdout] 481 |     let r = radio.radio.lock().unwrap();
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `r`
[INFO] [stdout]    --> src/tci/mod.rs:488:9
[INFO] [stdout]     |
[INFO] [stdout] 488 |     let r = radio.radio.lock().unwrap();
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> src/antenna/mod.rs:42:13
[INFO] [stdout]    |
[INFO] [stdout] 41 |             5 => Some(Antenna::XVTR),
[INFO] [stdout]    |             - matches all the relevant values
[INFO] [stdout] 42 |             5 => Some(Antenna::NONE),
[INFO] [stdout]    |             ^ no value can reach this
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `band_grid_clone`
[INFO] [stdout]   --> src/vfo/mod.rs:65:9
[INFO] [stdout]    |
[INFO] [stdout] 65 |     let band_grid_clone = band_grid.clone();
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_band_grid_clone`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `format_u32_with_separators` is never used
[INFO] [stdout]    --> src/radio/mod.rs:706:4
[INFO] [stdout]     |
[INFO] [stdout] 706 | fn format_u32_with_separators(value: u32) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_meter` is never used
[INFO] [stdout]    --> src/radio/mod.rs:722:4
[INFO] [stdout]     |
[INFO] [stdout] 722 | fn draw_meter(cr: &Context, dbm: f64) {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_waterfall` is never used
[INFO] [stdout]    --> src/radio/mod.rs:765:4
[INFO] [stdout]     |
[INFO] [stdout] 765 | fn draw_waterfall(cr: &Context, width: i32, height: i32, pixbuf: &Rc<RefCell<Option<Pixbuf>>>) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SUBRX_BASE_CHANNEL` is never used
[INFO] [stdout]   --> src/receiver/mod.rs:37:7
[INFO] [stdout]    |
[INFO] [stdout] 37 | const SUBRX_BASE_CHANNEL: i32 = 16;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `cw_pitch_spinbutton` is never read
[INFO] [stdout]   --> src/filters/mod.rs:84:5
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub struct FilterGrid {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 84 |     cw_pitch_spinbutton: SpinButton,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `FilterGrid` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `receive_sequence`, `wide_sequence`, `n_samples`, `left_sample`, and `right_sample` are never read
[INFO] [stdout]   --> src/protocol1/mod.rs:46:5
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub struct Protocol1 {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 46 |     receive_sequence: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 47 |     send_sequence: u32,
[INFO] [stdout] 48 |     wide_sequence: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 52 |     n_samples: i32,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 53 |     left_sample: i32,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 54 |     right_sample: i32,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `f64_to_f32` is never used
[INFO] [stdout]    --> src/protocol1/mod.rs:892:8
[INFO] [stdout]     |
[INFO] [stdout]  64 | impl Protocol1 {
[INFO] [stdout]     | -------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 892 |     fn f64_to_f32(input: Vec<f64>) -> Vec<f32> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RX_YELLOW_LED` is never used
[INFO] [stdout]   --> src/protocol2/mod.rs:37:7
[INFO] [stdout]    |
[INFO] [stdout] 37 | const RX_YELLOW_LED: u32 = 0x00000001;
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UNUSED_1` is never used
[INFO] [stdout]   --> src/protocol2/mod.rs:44:7
[INFO] [stdout]    |
[INFO] [stdout] 44 | const UNUSED_1: u32 =      0x00000080;
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `XVTR_RX_IN` is never used
[INFO] [stdout]   --> src/protocol2/mod.rs:45:7
[INFO] [stdout]    |
[INFO] [stdout] 45 | const XVTR_RX_IN: u32 =    0x00000100;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RX_2_IN` is never used
[INFO] [stdout]   --> src/protocol2/mod.rs:46:7
[INFO] [stdout]    |
[INFO] [stdout] 46 | const RX_2_IN: u32 =       0x00000200;
[INFO] [stdout]    |       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RX_1_IN` is never used
[INFO] [stdout]   --> src/protocol2/mod.rs:47:7
[INFO] [stdout]    |
[INFO] [stdout] 47 | const RX_1_IN: u32 =       0x00000400;
[INFO] [stdout]    |       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RX_1_OUT` is never used
[INFO] [stdout]   --> src/protocol2/mod.rs:48:7
[INFO] [stdout]    |
[INFO] [stdout] 48 | const RX_1_OUT: u32 =      0x00000800;
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ATTEN_20_dB` is never used
[INFO] [stdout]   --> src/protocol2/mod.rs:50:7
[INFO] [stdout]    |
[INFO] [stdout] 50 | const ATTEN_20_dB: u32 =   0x00002000;
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ATTEN_10_dB` is never used
[INFO] [stdout]   --> src/protocol2/mod.rs:51:7
[INFO] [stdout]    |
[INFO] [stdout] 51 | const ATTEN_10_dB: u32 =   0x00004000;
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RX_RED_LED` is never used
[INFO] [stdout]   --> src/protocol2/mod.rs:52:7
[INFO] [stdout]    |
[INFO] [stdout] 52 | const RX_RED_LED: u32 =    0x00008000;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UNUSED_2` is never used
[INFO] [stdout]   --> src/protocol2/mod.rs:53:7
[INFO] [stdout]    |
[INFO] [stdout] 53 | const UNUSED_2: u32 =      0x00010000;
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `UNUSED_3` is never used
[INFO] [stdout]   --> src/protocol2/mod.rs:54:7
[INFO] [stdout]    |
[INFO] [stdout] 54 | const UNUSED_3: u32 =      0x00020000;
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TRX_STATUS` is never used
[INFO] [stdout]   --> src/protocol2/mod.rs:55:7
[INFO] [stdout]    |
[INFO] [stdout] 55 | const TRX_STATUS: u32 =    0x00040000;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TX_YELLOW_LED` is never used
[INFO] [stdout]   --> src/protocol2/mod.rs:56:7
[INFO] [stdout]    |
[INFO] [stdout] 56 | const TX_YELLOW_LED: u32 = 0x00080000;
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ANT_1` is never used
[INFO] [stdout]   --> src/protocol2/mod.rs:61:7
[INFO] [stdout]    |
[INFO] [stdout] 61 | const ANT_1: u32 =         0x01000000;
[INFO] [stdout]    |       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ANT_2` is never used
[INFO] [stdout]   --> src/protocol2/mod.rs:62:7
[INFO] [stdout]    |
[INFO] [stdout] 62 | const ANT_2: u32 =         0x02000000;
[INFO] [stdout]    |       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ANT_3` is never used
[INFO] [stdout]   --> src/protocol2/mod.rs:63:7
[INFO] [stdout]    |
[INFO] [stdout] 63 | const ANT_3: u32 =         0x04000000;
[INFO] [stdout]    |       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TR_RELAY` is never used
[INFO] [stdout]   --> src/protocol2/mod.rs:64:7
[INFO] [stdout]    |
[INFO] [stdout] 64 | const TR_RELAY: u32 =      0x08000000;
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TX_RED_LED` is never used
[INFO] [stdout]   --> src/protocol2/mod.rs:65:7
[INFO] [stdout]    |
[INFO] [stdout] 65 | const TX_RED_LED: u32 =    0x10000000;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `receivers` is never read
[INFO] [stdout]   --> src/protocol2/mod.rs:74:5
[INFO] [stdout]    |
[INFO] [stdout] 71 | pub struct Protocol2 {
[INFO] [stdout]    |            --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 74 |     receivers: u8,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `f64_to_f32` is never used
[INFO] [stdout]    --> src/protocol2/mod.rs:834:8
[INFO] [stdout]     |
[INFO] [stdout]  85 | impl Protocol2 {
[INFO] [stdout]     | -------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 834 |     fn f64_to_f32(input: Vec<f64>) -> Vec<f32> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `swr` is never read
[INFO] [stdout]   --> src/meter/mod.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub struct Meter {
[INFO] [stdout]    |            ----- field in this struct
[INFO] [stdout] 23 |     surface: ImageSurface,
[INFO] [stdout] 24 |     swr: f32,
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Meter` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `MidiVfoA` and `MidiVfoB` are never constructed
[INFO] [stdout]   --> src/midi/mod.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 27 | enum MidiAction {
[INFO] [stdout]    |      ---------- variants in this enum
[INFO] [stdout] 28 |     MidiNone,
[INFO] [stdout] 29 |     MidiVfoA,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 30 |     MidiVfoB,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MidiAction` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `midi_action` is never read
[INFO] [stdout]   --> src/midi/mod.rs:57:5
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub struct MidiFunction {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] 56 |     midi_type: MidiType,
[INFO] [stdout] 57 |     midi_action: MidiAction,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MidiFunction` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `TX_AUDIO_STREAM`, `TX_CHRONO`, and `LINEOUT_STREAM` are never constructed
[INFO] [stdout]   --> src/tci/mod.rs:45:5
[INFO] [stdout]    |
[INFO] [stdout] 42 | enum TCIStreamType {
[INFO] [stdout]    |      ------------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 45 |     TX_AUDIO_STREAM,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 46 |     TX_CHRONO,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 47 |     LINEOUT_STREAM,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: crate `rustyHPSDR` should have a snake case name
[INFO] [stdout]   |
[INFO] [stdout]   = help: convert the identifier to snake case: `rusty_hpsdr`
[INFO] [stdout]   = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/radio/mod.rs:629:21
[INFO] [stdout]     |
[INFO] [stdout] 629 |                     file.read_to_string(&mut s);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 629 |                     let _ = file.read_to_string(&mut s);
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `update_Nrvals` should have a snake case name
[INFO] [stdout]    --> src/receiver/mod.rs:520:12
[INFO] [stdout]     |
[INFO] [stdout] 520 |     pub fn update_Nrvals(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^ help: convert the identifier to snake case: `update_nrvals`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `update_Anfvals` should have a snake case name
[INFO] [stdout]    --> src/receiver/mod.rs:526:12
[INFO] [stdout]     |
[INFO] [stdout] 526 |     pub fn update_Anfvals(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `update_anfvals`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `update_AgcPosition` should have a snake case name
[INFO] [stdout]    --> src/receiver/mod.rs:532:12
[INFO] [stdout]     |
[INFO] [stdout] 532 |     pub fn update_AgcPosition(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `update_agc_position`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `fscLin` should have a snake case name
[INFO] [stdout]    --> src/receiver/mod.rs:606:13
[INFO] [stdout]     |
[INFO] [stdout] 606 |         let fscLin = 0.0;
[INFO] [stdout]     |             ^^^^^^ help: convert the identifier to snake case: `fsc_lin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `fscHin` should have a snake case name
[INFO] [stdout]    --> src/receiver/mod.rs:607:13
[INFO] [stdout]     |
[INFO] [stdout] 607 |         let fscHin = 0.0;
[INFO] [stdout]     |             ^^^^^^ help: convert the identifier to snake case: `fsc_hin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constant `filterLSB` should have an upper case name
[INFO] [stdout]   --> src/filters/mod.rs:92:15
[INFO] [stdout]    |
[INFO] [stdout] 92 |         const filterLSB: [Filter; 12] = [
[INFO] [stdout]    |               ^^^^^^^^^ help: convert the identifier to upper case: `FILTER_LSB`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_upper_case_globals)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constant `filterUSB` should have an upper case name
[INFO] [stdout]    --> src/filters/mod.rs:107:15
[INFO] [stdout]     |
[INFO] [stdout] 107 |         const filterUSB: [Filter; 12] = [
[INFO] [stdout]     |               ^^^^^^^^^ help: convert the identifier to upper case: `FILTER_USB`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constant `filterCWL` should have an upper case name
[INFO] [stdout]    --> src/filters/mod.rs:122:15
[INFO] [stdout]     |
[INFO] [stdout] 122 |         const filterCWL: [Filter; 12] = [
[INFO] [stdout]     |               ^^^^^^^^^ help: convert the identifier to upper case: `FILTER_CWL`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constant `filterCWU` should have an upper case name
[INFO] [stdout]    --> src/filters/mod.rs:137:15
[INFO] [stdout]     |
[INFO] [stdout] 137 |         const filterCWU: [Filter; 12] = [
[INFO] [stdout]     |               ^^^^^^^^^ help: convert the identifier to upper case: `FILTER_CWU`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constant `filterDIGL` should have an upper case name
[INFO] [stdout]    --> src/filters/mod.rs:152:15
[INFO] [stdout]     |
[INFO] [stdout] 152 |         const filterDIGL: [Filter; 12] = [
[INFO] [stdout]     |               ^^^^^^^^^^ help: convert the identifier to upper case: `FILTER_DIGL`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constant `filterDIGU` should have an upper case name
[INFO] [stdout]    --> src/filters/mod.rs:167:15
[INFO] [stdout]     |
[INFO] [stdout] 167 |         const filterDIGU: [Filter; 12] = [
[INFO] [stdout]     |               ^^^^^^^^^^ help: convert the identifier to upper case: `FILTER_DIGU`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constant `filterAM` should have an upper case name
[INFO] [stdout]    --> src/filters/mod.rs:182:15
[INFO] [stdout]     |
[INFO] [stdout] 182 |         const filterAM: [Filter; 12] = [
[INFO] [stdout]     |               ^^^^^^^^ help: convert the identifier to upper case: `FILTER_AM`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constant `filterSAM` should have an upper case name
[INFO] [stdout]    --> src/filters/mod.rs:197:15
[INFO] [stdout]     |
[INFO] [stdout] 197 |         const filterSAM: [Filter; 12] = [
[INFO] [stdout]     |               ^^^^^^^^^ help: convert the identifier to upper case: `FILTER_SAM`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constant `filterFMN` should have an upper case name
[INFO] [stdout]    --> src/filters/mod.rs:212:15
[INFO] [stdout]     |
[INFO] [stdout] 212 |         const filterFMN: [Filter; 12] = [
[INFO] [stdout]     |               ^^^^^^^^^ help: convert the identifier to upper case: `FILTER_FMN`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constant `filterDSB` should have an upper case name
[INFO] [stdout]    --> src/filters/mod.rs:227:15
[INFO] [stdout]     |
[INFO] [stdout] 227 |         const filterDSB: [Filter; 12] = [
[INFO] [stdout]     |               ^^^^^^^^^ help: convert the identifier to upper case: `FILTER_DSB`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constant `filterSPEC` should have an upper case name
[INFO] [stdout]    --> src/filters/mod.rs:242:15
[INFO] [stdout]     |
[INFO] [stdout] 242 |         const filterSPEC: [Filter; 12] = [
[INFO] [stdout]     |               ^^^^^^^^^^ help: convert the identifier to upper case: `FILTER_SPEC`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constant `filterDRM` should have an upper case name
[INFO] [stdout]    --> src/filters/mod.rs:257:15
[INFO] [stdout]     |
[INFO] [stdout] 257 |         const filterDRM: [Filter; 12] = [
[INFO] [stdout]     |               ^^^^^^^^^ help: convert the identifier to upper case: `FILTER_DRM`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ATTEN_20_dB` should have an upper case name
[INFO] [stdout]   --> src/protocol2/mod.rs:50:7
[INFO] [stdout]    |
[INFO] [stdout] 50 | const ATTEN_20_dB: u32 =   0x00002000;
[INFO] [stdout]    |       ^^^^^^^^^^^ help: convert the identifier to upper case: `ATTEN_20_D_B`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ATTEN_10_dB` should have an upper case name
[INFO] [stdout]   --> src/protocol2/mod.rs:51:7
[INFO] [stdout]    |
[INFO] [stdout] 51 | const ATTEN_10_dB: u32 =   0x00004000;
[INFO] [stdout]    |       ^^^^^^^^^^^ help: convert the identifier to upper case: `ATTEN_10_D_B`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `rxaMeterType_RXA_S_PK` should have an upper case name
[INFO] [stdout]    --> src/wdsp/mod.rs:217:11
[INFO] [stdout]     |
[INFO] [stdout] 217 | pub const rxaMeterType_RXA_S_PK: rxaMeterType = 0;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `RXA_METER_TYPE_RXA_S_PK`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `rxaMeterType_RXA_S_AV` should have an upper case name
[INFO] [stdout]    --> src/wdsp/mod.rs:218:11
[INFO] [stdout]     |
[INFO] [stdout] 218 | pub const rxaMeterType_RXA_S_AV: rxaMeterType = 1;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `RXA_METER_TYPE_RXA_S_AV`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `rxaMeterType_RXA_ADC_PK` should have an upper case name
[INFO] [stdout]    --> src/wdsp/mod.rs:219:11
[INFO] [stdout]     |
[INFO] [stdout] 219 | pub const rxaMeterType_RXA_ADC_PK: rxaMeterType = 2;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `RXA_METER_TYPE_RXA_ADC_PK`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `rxaMeterType_RXA_ADC_AV` should have an upper case name
[INFO] [stdout]    --> src/wdsp/mod.rs:220:11
[INFO] [stdout]     |
[INFO] [stdout] 220 | pub const rxaMeterType_RXA_ADC_AV: rxaMeterType = 3;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `RXA_METER_TYPE_RXA_ADC_AV`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `rxaMeterType_RXA_AGC_GAIN` should have an upper case name
[INFO] [stdout]    --> src/wdsp/mod.rs:221:11
[INFO] [stdout]     |
[INFO] [stdout] 221 | pub const rxaMeterType_RXA_AGC_GAIN: rxaMeterType = 4;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `RXA_METER_TYPE_RXA_AGC_GAIN`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `rxaMeterType_RXA_AGC_PK` should have an upper case name
[INFO] [stdout]    --> src/wdsp/mod.rs:222:11
[INFO] [stdout]     |
[INFO] [stdout] 222 | pub const rxaMeterType_RXA_AGC_PK: rxaMeterType = 5;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `RXA_METER_TYPE_RXA_AGC_PK`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `rxaMeterType_RXA_AGC_AV` should have an upper case name
[INFO] [stdout]    --> src/wdsp/mod.rs:223:11
[INFO] [stdout]     |
[INFO] [stdout] 223 | pub const rxaMeterType_RXA_AGC_AV: rxaMeterType = 6;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `RXA_METER_TYPE_RXA_AGC_AV`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `rxaMeterType_RXA_METERTYPE_LAST` should have an upper case name
[INFO] [stdout]    --> src/wdsp/mod.rs:224:11
[INFO] [stdout]     |
[INFO] [stdout] 224 | pub const rxaMeterType_RXA_METERTYPE_LAST: rxaMeterType = 7;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `RXA_METER_TYPE_RXA_METERTYPE_LAST`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `txaMeterType_TXA_MIC_PK` should have an upper case name
[INFO] [stdout]    --> src/wdsp/mod.rs:562:11
[INFO] [stdout]     |
[INFO] [stdout] 562 | pub const txaMeterType_TXA_MIC_PK: txaMeterType = 0;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `TXA_METER_TYPE_TXA_MIC_PK`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `txaMeterType_TXA_MIC_AV` should have an upper case name
[INFO] [stdout]    --> src/wdsp/mod.rs:563:11
[INFO] [stdout]     |
[INFO] [stdout] 563 | pub const txaMeterType_TXA_MIC_AV: txaMeterType = 1;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `TXA_METER_TYPE_TXA_MIC_AV`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `txaMeterType_TXA_EQ_PK` should have an upper case name
[INFO] [stdout]    --> src/wdsp/mod.rs:564:11
[INFO] [stdout]     |
[INFO] [stdout] 564 | pub const txaMeterType_TXA_EQ_PK: txaMeterType = 2;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `TXA_METER_TYPE_TXA_EQ_PK`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `txaMeterType_TXA_EQ_AV` should have an upper case name
[INFO] [stdout]    --> src/wdsp/mod.rs:565:11
[INFO] [stdout]     |
[INFO] [stdout] 565 | pub const txaMeterType_TXA_EQ_AV: txaMeterType = 3;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `TXA_METER_TYPE_TXA_EQ_AV`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `txaMeterType_TXA_LVLR_PK` should have an upper case name
[INFO] [stdout]    --> src/wdsp/mod.rs:566:11
[INFO] [stdout]     |
[INFO] [stdout] 566 | pub const txaMeterType_TXA_LVLR_PK: txaMeterType = 4;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `TXA_METER_TYPE_TXA_LVLR_PK`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `txaMeterType_TXA_LVLR_AV` should have an upper case name
[INFO] [stdout]    --> src/wdsp/mod.rs:567:11
[INFO] [stdout]     |
[INFO] [stdout] 567 | pub const txaMeterType_TXA_LVLR_AV: txaMeterType = 5;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `TXA_METER_TYPE_TXA_LVLR_AV`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `txaMeterType_TXA_LVLR_GAIN` should have an upper case name
[INFO] [stdout]    --> src/wdsp/mod.rs:568:11
[INFO] [stdout]     |
[INFO] [stdout] 568 | pub const txaMeterType_TXA_LVLR_GAIN: txaMeterType = 6;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `TXA_METER_TYPE_TXA_LVLR_GAIN`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `txaMeterType_TXA_CFC_PK` should have an upper case name
[INFO] [stdout]    --> src/wdsp/mod.rs:569:11
[INFO] [stdout]     |
[INFO] [stdout] 569 | pub const txaMeterType_TXA_CFC_PK: txaMeterType = 7;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `TXA_METER_TYPE_TXA_CFC_PK`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `txaMeterType_TXA_CFC_AV` should have an upper case name
[INFO] [stdout]    --> src/wdsp/mod.rs:570:11
[INFO] [stdout]     |
[INFO] [stdout] 570 | pub const txaMeterType_TXA_CFC_AV: txaMeterType = 8;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `TXA_METER_TYPE_TXA_CFC_AV`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `txaMeterType_TXA_CFC_GAIN` should have an upper case name
[INFO] [stdout]    --> src/wdsp/mod.rs:571:11
[INFO] [stdout]     |
[INFO] [stdout] 571 | pub const txaMeterType_TXA_CFC_GAIN: txaMeterType = 9;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `TXA_METER_TYPE_TXA_CFC_GAIN`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `txaMeterType_TXA_COMP_PK` should have an upper case name
[INFO] [stdout]    --> src/wdsp/mod.rs:572:11
[INFO] [stdout]     |
[INFO] [stdout] 572 | pub const txaMeterType_TXA_COMP_PK: txaMeterType = 10;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `TXA_METER_TYPE_TXA_COMP_PK`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `txaMeterType_TXA_COMP_AV` should have an upper case name
[INFO] [stdout]    --> src/wdsp/mod.rs:573:11
[INFO] [stdout]     |
[INFO] [stdout] 573 | pub const txaMeterType_TXA_COMP_AV: txaMeterType = 11;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `TXA_METER_TYPE_TXA_COMP_AV`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `txaMeterType_TXA_ALC_PK` should have an upper case name
[INFO] [stdout]    --> src/wdsp/mod.rs:574:11
[INFO] [stdout]     |
[INFO] [stdout] 574 | pub const txaMeterType_TXA_ALC_PK: txaMeterType = 12;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `TXA_METER_TYPE_TXA_ALC_PK`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `txaMeterType_TXA_ALC_AV` should have an upper case name
[INFO] [stdout]    --> src/wdsp/mod.rs:575:11
[INFO] [stdout]     |
[INFO] [stdout] 575 | pub const txaMeterType_TXA_ALC_AV: txaMeterType = 13;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `TXA_METER_TYPE_TXA_ALC_AV`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `txaMeterType_TXA_ALC_GAIN` should have an upper case name
[INFO] [stdout]    --> src/wdsp/mod.rs:576:11
[INFO] [stdout]     |
[INFO] [stdout] 576 | pub const txaMeterType_TXA_ALC_GAIN: txaMeterType = 14;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `TXA_METER_TYPE_TXA_ALC_GAIN`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `txaMeterType_TXA_OUT_PK` should have an upper case name
[INFO] [stdout]    --> src/wdsp/mod.rs:577:11
[INFO] [stdout]     |
[INFO] [stdout] 577 | pub const txaMeterType_TXA_OUT_PK: txaMeterType = 15;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `TXA_METER_TYPE_TXA_OUT_PK`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `txaMeterType_TXA_OUT_AV` should have an upper case name
[INFO] [stdout]    --> src/wdsp/mod.rs:578:11
[INFO] [stdout]     |
[INFO] [stdout] 578 | pub const txaMeterType_TXA_OUT_AV: txaMeterType = 16;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `TXA_METER_TYPE_TXA_OUT_AV`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `txaMeterType_TXA_METERTYPE_LAST` should have an upper case name
[INFO] [stdout]    --> src/wdsp/mod.rs:579:11
[INFO] [stdout]     |
[INFO] [stdout] 579 | pub const txaMeterType_TXA_METERTYPE_LAST: txaMeterType = 17;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `TXA_METER_TYPE_TXA_METERTYPE_LAST`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ALEX_ATTENUATION_0dB` should have an upper case name
[INFO] [stdout]   --> src/alex/mod.rs:28:11
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub const ALEX_ATTENUATION_0dB: u32 =    0x00000000;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `ALEX_ATTENUATION_0D_B`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ALEX_ATTENUATION_10dB` should have an upper case name
[INFO] [stdout]   --> src/alex/mod.rs:29:11
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub const ALEX_ATTENUATION_10dB: u32 =   0x00004000;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `ALEX_ATTENUATION_10D_B`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ALEX_ATTENUATION_20dB` should have an upper case name
[INFO] [stdout]   --> src/alex/mod.rs:30:11
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub const ALEX_ATTENUATION_20dB: u32 =   0x00002000;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `ALEX_ATTENUATION_20D_B`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ALEX_ATTENUATION_30dB` should have an upper case name
[INFO] [stdout]   --> src/alex/mod.rs:31:11
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub const ALEX_ATTENUATION_30dB: u32 =   0x00006000;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper case: `ALEX_ATTENUATION_30D_B`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]   --> src/waterfall/mod.rs:77:25
[INFO] [stdout]    |
[INFO] [stdout] 77 |                 let mut R = 0.0;
[INFO] [stdout]    |                         ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `G` should have a snake case name
[INFO] [stdout]   --> src/waterfall/mod.rs:78:25
[INFO] [stdout]    |
[INFO] [stdout] 78 |                 let mut G = 0.0;
[INFO] [stdout]    |                         ^ help: convert the identifier to snake case: `g`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `B` should have a snake case name
[INFO] [stdout]   --> src/waterfall/mod.rs:79:25
[INFO] [stdout]    |
[INFO] [stdout] 79 |                 let mut B = 0.0;
[INFO] [stdout]    |                         ^ help: convert the identifier to snake case: `b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `AI_cmd` should have a snake case name
[INFO] [stdout]    --> src/cat/mod.rs:142:8
[INFO] [stdout]     |
[INFO] [stdout] 142 |     fn AI_cmd(&self, suffix: &str, radio_mutex: &RadioMutex, tx: mpsc::Sender<CatMessage>) -> String {
[INFO] [stdout]     |        ^^^^^^ help: convert the identifier to snake case: `ai_cmd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `FA_cmd` should have a snake case name
[INFO] [stdout]    --> src/cat/mod.rs:147:8
[INFO] [stdout]     |
[INFO] [stdout] 147 |     fn FA_cmd(&self, suffix: &str, radio_mutex: &RadioMutex, tx: mpsc::Sender<CatMessage>) -> String {
[INFO] [stdout]     |        ^^^^^^ help: convert the identifier to snake case: `fa_cmd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `FB_cmd` should have a snake case name
[INFO] [stdout]    --> src/cat/mod.rs:167:8
[INFO] [stdout]     |
[INFO] [stdout] 167 |     fn FB_cmd(&self, suffix: &str, radio_mutex: &RadioMutex, tx: mpsc::Sender<CatMessage>) -> String {
[INFO] [stdout]     |        ^^^^^^ help: convert the identifier to snake case: `fb_cmd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `ID_cmd` should have a snake case name
[INFO] [stdout]    --> src/cat/mod.rs:187:8
[INFO] [stdout]     |
[INFO] [stdout] 187 |     fn ID_cmd(&self, suffix: &str, radio_mutex: &RadioMutex, tx: mpsc::Sender<CatMessage>) -> String {
[INFO] [stdout]     |        ^^^^^^ help: convert the identifier to snake case: `id_cmd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `IF_cmd` should have a snake case name
[INFO] [stdout]    --> src/cat/mod.rs:191:8
[INFO] [stdout]     |
[INFO] [stdout] 191 |     fn IF_cmd(&self, suffix: &str, radio_mutex: &RadioMutex, tx: mpsc::Sender<CatMessage>) -> String {
[INFO] [stdout]     |        ^^^^^^ help: convert the identifier to snake case (notice the capitalization): `if_cmd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `KS_cmd` should have a snake case name
[INFO] [stdout]    --> src/cat/mod.rs:216:8
[INFO] [stdout]     |
[INFO] [stdout] 216 |     fn KS_cmd(&self, suffix: &str, radio_mutex: &RadioMutex, tx: mpsc::Sender<CatMessage>) -> String {
[INFO] [stdout]     |        ^^^^^^ help: convert the identifier to snake case (notice the capitalization): `ks_cmd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `MD_cmd` should have a snake case name
[INFO] [stdout]    --> src/cat/mod.rs:227:8
[INFO] [stdout]     |
[INFO] [stdout] 227 |     fn MD_cmd(&self, suffix: &str, radio_mutex: &RadioMutex, tx: mpsc::Sender<CatMessage>) -> String {
[INFO] [stdout]     |        ^^^^^^ help: convert the identifier to snake case: `md_cmd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `RX_cmd` should have a snake case name
[INFO] [stdout]    --> src/cat/mod.rs:238:8
[INFO] [stdout]     |
[INFO] [stdout] 238 |     fn RX_cmd(&self, suffix: &str, radio_mutex: &RadioMutex, tx: mpsc::Sender<CatMessage>) -> String {
[INFO] [stdout]     |        ^^^^^^ help: convert the identifier to snake case: `rx_cmd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `VX_cmd` should have a snake case name
[INFO] [stdout]    --> src/cat/mod.rs:248:8
[INFO] [stdout]     |
[INFO] [stdout] 248 |     fn VX_cmd(&self, suffix: &str, radio_mutex: &RadioMutex, tx: mpsc::Sender<CatMessage>) -> String {
[INFO] [stdout]     |        ^^^^^^ help: convert the identifier to snake case (notice the capitalization): `vx_cmd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `TX_cmd` should have a snake case name
[INFO] [stdout]    --> src/cat/mod.rs:259:8
[INFO] [stdout]     |
[INFO] [stdout] 259 |     fn TX_cmd(&self, suffix: &str, radio_mutex: &RadioMutex, tx: mpsc::Sender<CatMessage>) -> String {
[INFO] [stdout]     |        ^^^^^^ help: convert the identifier to snake case: `tx_cmd`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rustyHPSDR::bands::*`
[INFO] [stdout]   --> src/main.rs:52:5
[INFO] [stdout]    |
[INFO] [stdout] 52 | use rustyHPSDR::bands::*;
[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: `rustyHPSDR::filters::*`
[INFO] [stdout]   --> src/main.rs:58:5
[INFO] [stdout]    |
[INFO] [stdout] 58 | use rustyHPSDR::filters::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rustyHPSDR::discovery::Boards`
[INFO] [stdout]   --> src/main.rs:61:5
[INFO] [stdout]    |
[INFO] [stdout] 61 | use rustyHPSDR::discovery::Boards;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stdout]     --> src/main.rs:1708:73
[INFO] [stdout]      |
[INFO] [stdout] 1708 |   ...   glib::timeout_add_local(Duration::from_millis(100), clone!(@strong radio_mutex_clone, @strong rc_app_widgets_clone=> move ...
[INFO] [stdout]      |  ___________________________________________________________^
[INFO] [stdout] 1709 | | ...       match rx.try_recv() {
[INFO] [stdout] 1710 | | ...           Ok(msg) => {
[INFO] [stdout] ...    |
[INFO] [stdout] 1783 | | ...   }));
[INFO] [stdout]      | |________^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(deprecated)]` on by default
[INFO] [stdout]      = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stdout]     --> src/main.rs:1830:73
[INFO] [stdout]      |
[INFO] [stdout] 1830 |   ...   glib::timeout_add_local(Duration::from_millis(100), clone!(@strong radio_mutex_clone, @strong rc_app_widgets_clone=> move ...
[INFO] [stdout]      |  ___________________________________________________________^
[INFO] [stdout] 1831 | | ...       match rx.try_recv() {
[INFO] [stdout] 1832 | | ...           Ok(msg) => {
[INFO] [stdout] ...    |
[INFO] [stdout] 1898 | | ...   }));
[INFO] [stdout]      | |________^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stdout]     --> src/main.rs:2037:73
[INFO] [stdout]      |
[INFO] [stdout] 2037 |   ...   glib::timeout_add_local(Duration::from_millis(100), clone!(@strong radio_mutex_clone, @strong rc_app_widgets_clone => move...
[INFO] [stdout]      |  ___________________________________________________________^
[INFO] [stdout] 2038 | | ...   //glib::timeout_add_local(Duration::from_millis(100), move || {
[INFO] [stdout] 2039 | | ...       match rx_at_main.try_recv() {
[INFO] [stdout] 2040 | | ...           Ok(msg) => {
[INFO] [stdout] ...    |
[INFO] [stdout] 2141 | | ...   }));
[INFO] [stdout]      | |________^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rustyHPSDR::bands::*`
[INFO] [stdout]   --> src/main.rs:52:5
[INFO] [stdout]    |
[INFO] [stdout] 52 | use rustyHPSDR::bands::*;
[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: `rustyHPSDR::filters::*`
[INFO] [stdout]   --> src/main.rs:58:5
[INFO] [stdout]    |
[INFO] [stdout] 58 | use rustyHPSDR::filters::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rustyHPSDR::discovery::Boards`
[INFO] [stdout]   --> src/main.rs:61:5
[INFO] [stdout]    |
[INFO] [stdout] 61 | use rustyHPSDR::discovery::Boards;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stdout]     --> src/main.rs:1708:73
[INFO] [stdout]      |
[INFO] [stdout] 1708 |   ...   glib::timeout_add_local(Duration::from_millis(100), clone!(@strong radio_mutex_clone, @strong rc_app_widgets_clone=> move ...
[INFO] [stdout]      |  ___________________________________________________________^
[INFO] [stdout] 1709 | | ...       match rx.try_recv() {
[INFO] [stdout] 1710 | | ...           Ok(msg) => {
[INFO] [stdout] ...    |
[INFO] [stdout] 1783 | | ...   }));
[INFO] [stdout]      | |________^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(deprecated)]` on by default
[INFO] [stdout]      = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stdout]     --> src/main.rs:1830:73
[INFO] [stdout]      |
[INFO] [stdout] 1830 |   ...   glib::timeout_add_local(Duration::from_millis(100), clone!(@strong radio_mutex_clone, @strong rc_app_widgets_clone=> move ...
[INFO] [stdout]      |  ___________________________________________________________^
[INFO] [stdout] 1831 | | ...       match rx.try_recv() {
[INFO] [stdout] 1832 | | ...           Ok(msg) => {
[INFO] [stdout] ...    |
[INFO] [stdout] 1898 | | ...   }));
[INFO] [stdout]      | |________^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `clone`: Using old-style clone! syntax
[INFO] [stdout]     --> src/main.rs:2037:73
[INFO] [stdout]      |
[INFO] [stdout] 2037 |   ...   glib::timeout_add_local(Duration::from_millis(100), clone!(@strong radio_mutex_clone, @strong rc_app_widgets_clone => move...
[INFO] [stdout]      |  ___________________________________________________________^
[INFO] [stdout] 2038 | | ...   //glib::timeout_add_local(Duration::from_millis(100), move || {
[INFO] [stdout] 2039 | | ...       match rx_at_main.try_recv() {
[INFO] [stdout] 2040 | | ...           Ok(msg) => {
[INFO] [stdout] ...    |
[INFO] [stdout] 2141 | | ...   }));
[INFO] [stdout]      | |________^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this warning originates in the macro `clone` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated struct `gtk4::StyleContext`: Since 4.10
[INFO] [stdout]    --> src/main.rs:165:10
[INFO] [stdout]     |
[INFO] [stdout] 165 |     gtk::StyleContext::add_provider_for_display(
[INFO] [stdout]     |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated struct `gtk4::StyleContext`: Since 4.10
[INFO] [stdout]    --> src/main.rs:165:10
[INFO] [stdout]     |
[INFO] [stdout] 165 |     gtk::StyleContext::add_provider_for_display(
[INFO] [stdout]     |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::CssProvider::load_from_data`: Since 4.12
[INFO] [stdout]    --> src/main.rs:164:14
[INFO] [stdout]     |
[INFO] [stdout] 164 |     provider.load_from_data(ui_css);
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `gtk4::style_context::<impl gtk4::StyleContext>::add_provider_for_display`: Use gtk::style_context_add_provider_for_display instead.
[INFO] [stdout]    --> src/main.rs:165:24
[INFO] [stdout]     |
[INFO] [stdout] 165 |     gtk::StyleContext::add_provider_for_display(
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::WidgetExt::style_context`: Since 4.10
[INFO] [stdout]    --> src/main.rs:342:71
[INFO] [stdout]     |
[INFO] [stdout] 342 |                         let style_context = app_widgets.a_to_b_button.style_context();
[INFO] [stdout]     |                                                                       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::StyleContextExt::add_class`: Since 4.10
[INFO] [stdout]    --> src/main.rs:343:39
[INFO] [stdout]     |
[INFO] [stdout] 343 |                         style_context.add_class("basic-button");
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::WidgetExt::style_context`: Since 4.10
[INFO] [stdout]    --> src/main.rs:344:71
[INFO] [stdout]     |
[INFO] [stdout] 344 |                         let style_context = app_widgets.b_to_a_button.style_context();
[INFO] [stdout]     |                                                                       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::StyleContextExt::add_class`: Since 4.10
[INFO] [stdout]    --> src/main.rs:345:39
[INFO] [stdout]     |
[INFO] [stdout] 345 |                         style_context.add_class("basic-button");
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::CssProvider::load_from_data`: Since 4.12
[INFO] [stdout]    --> src/main.rs:164:14
[INFO] [stdout]     |
[INFO] [stdout] 164 |     provider.load_from_data(ui_css);
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::WidgetExt::style_context`: Since 4.10
[INFO] [stdout]    --> src/main.rs:346:73
[INFO] [stdout]     |
[INFO] [stdout] 346 |                         let style_context = app_widgets.a_swap_b_button.style_context();
[INFO] [stdout]     |                                                                         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `gtk4::style_context::<impl gtk4::StyleContext>::add_provider_for_display`: Use gtk::style_context_add_provider_for_display instead.
[INFO] [stdout]    --> src/main.rs:165:24
[INFO] [stdout]     |
[INFO] [stdout] 165 |     gtk::StyleContext::add_provider_for_display(
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::StyleContextExt::add_class`: Since 4.10
[INFO] [stdout]    --> src/main.rs:347:39
[INFO] [stdout]     |
[INFO] [stdout] 347 |                         style_context.add_class("basic-button");
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::WidgetExt::style_context`: Since 4.10
[INFO] [stdout]    --> src/main.rs:349:69
[INFO] [stdout]     |
[INFO] [stdout] 349 |                         let style_context = app_widgets.ctun_button.style_context();
[INFO] [stdout]     |                                                                     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::StyleContextExt::add_class`: Since 4.10
[INFO] [stdout]    --> src/main.rs:350:39
[INFO] [stdout]     |
[INFO] [stdout] 350 |                         style_context.add_class("toggle");
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::WidgetExt::style_context`: Since 4.10
[INFO] [stdout]    --> src/main.rs:353:68
[INFO] [stdout]     |
[INFO] [stdout] 353 |                         let style_context = app_widgets.cat_button.style_context();
[INFO] [stdout]     |                                                                    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::StyleContextExt::add_class`: Since 4.10
[INFO] [stdout]    --> src/main.rs:354:39
[INFO] [stdout]     |
[INFO] [stdout] 354 |                         style_context.add_class("toggle");
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::WidgetExt::style_context`: Since 4.10
[INFO] [stdout]    --> src/main.rs:357:71
[INFO] [stdout]     |
[INFO] [stdout] 357 |                         let style_context = app_widgets.rigctl_button.style_context();
[INFO] [stdout]     |                                                                       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::StyleContextExt::add_class`: Since 4.10
[INFO] [stdout]    --> src/main.rs:358:39
[INFO] [stdout]     |
[INFO] [stdout] 358 |                         style_context.add_class("toggle");
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::WidgetExt::style_context`: Since 4.10
[INFO] [stdout]    --> src/main.rs:365:68
[INFO] [stdout]     |
[INFO] [stdout] 365 |                         let style_context = app_widgets.tci_button.style_context();
[INFO] [stdout]     |                                                                    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::StyleContextExt::add_class`: Since 4.10
[INFO] [stdout]    --> src/main.rs:366:39
[INFO] [stdout]     |
[INFO] [stdout] 366 |                         style_context.add_class("toggle");
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::WidgetExt::style_context`: Since 4.10
[INFO] [stdout]    --> src/main.rs:369:70
[INFO] [stdout]     |
[INFO] [stdout] 369 |                         let style_context = app_widgets.split_button.style_context();
[INFO] [stdout]     |                                                                      ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::StyleContextExt::add_class`: Since 4.10
[INFO] [stdout]    --> src/main.rs:370:39
[INFO] [stdout]     |
[INFO] [stdout] 370 |                         style_context.add_class("toggle");
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::WidgetExt::style_context`: Since 4.10
[INFO] [stdout]    --> src/main.rs:373:68
[INFO] [stdout]     |
[INFO] [stdout] 373 |                         let style_context = app_widgets.rx2_button.style_context();
[INFO] [stdout]     |                                                                    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::StyleContextExt::add_class`: Since 4.10
[INFO] [stdout]    --> src/main.rs:374:39
[INFO] [stdout]     |
[INFO] [stdout] 374 |                         style_context.add_class("toggle");
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::WidgetExt::style_context`: Since 4.10
[INFO] [stdout]    --> src/main.rs:440:67
[INFO] [stdout]     |
[INFO] [stdout] 440 |                         let style_context = app_widgets.nr_button.style_context();
[INFO] [stdout]     |                                                                   ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::StyleContextExt::add_class`: Since 4.10
[INFO] [stdout]    --> src/main.rs:441:39
[INFO] [stdout]     |
[INFO] [stdout] 441 |                         style_context.add_class("toggle");
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::WidgetExt::style_context`: Since 4.10
[INFO] [stdout]    --> src/main.rs:460:67
[INFO] [stdout]     |
[INFO] [stdout] 460 |                         let style_context = app_widgets.nb_button.style_context();
[INFO] [stdout]     |                                                                   ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::StyleContextExt::add_class`: Since 4.10
[INFO] [stdout]    --> src/main.rs:461:39
[INFO] [stdout]     |
[INFO] [stdout] 461 |                         style_context.add_class("toggle");
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::WidgetExt::style_context`: Since 4.10
[INFO] [stdout]    --> src/main.rs:472:68
[INFO] [stdout]     |
[INFO] [stdout] 472 |                         let style_context = app_widgets.anf_button.style_context();
[INFO] [stdout]     |                                                                    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::StyleContextExt::add_class`: Since 4.10
[INFO] [stdout]    --> src/main.rs:473:39
[INFO] [stdout]     |
[INFO] [stdout] 473 |                         style_context.add_class("toggle");
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::WidgetExt::style_context`: Since 4.10
[INFO] [stdout]    --> src/main.rs:477:68
[INFO] [stdout]     |
[INFO] [stdout] 477 |                         let style_context = app_widgets.snb_button.style_context();
[INFO] [stdout]     |                                                                    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::StyleContextExt::add_class`: Since 4.10
[INFO] [stdout]    --> src/main.rs:478:39
[INFO] [stdout]     |
[INFO] [stdout] 478 |                         style_context.add_class("toggle");
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::WidgetExt::style_context`: Since 4.10
[INFO] [stdout]    --> src/main.rs:482:68
[INFO] [stdout]     |
[INFO] [stdout] 482 |                         let style_context = app_widgets.mox_button.style_context();
[INFO] [stdout]     |                                                                    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::StyleContextExt::add_class`: Since 4.10
[INFO] [stdout]    --> src/main.rs:483:39
[INFO] [stdout]     |
[INFO] [stdout] 483 |                         style_context.add_class("toggle");
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::WidgetExt::style_context`: Since 4.10
[INFO] [stdout]    --> src/main.rs:485:68
[INFO] [stdout]     |
[INFO] [stdout] 485 |                         let style_context = app_widgets.tun_button.style_context();
[INFO] [stdout]     |                                                                    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::StyleContextExt::add_class`: Since 4.10
[INFO] [stdout]    --> src/main.rs:486:39
[INFO] [stdout]     |
[INFO] [stdout] 486 |                         style_context.add_class("toggle");
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::WidgetExt::style_context`: Since 4.10
[INFO] [stdout]    --> src/main.rs:635:52
[INFO] [stdout]     |
[INFO] [stdout] 635 |                         let style_context = button.style_context();
[INFO] [stdout]     |                                                    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::WidgetExt::style_context`: Since 4.10
[INFO] [stdout]    --> src/main.rs:342:71
[INFO] [stdout]     |
[INFO] [stdout] 342 |                         let style_context = app_widgets.a_to_b_button.style_context();
[INFO] [stdout]     |                                                                       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::StyleContextExt::add_class`: Since 4.10
[INFO] [stdout]    --> src/main.rs:343:39
[INFO] [stdout]     |
[INFO] [stdout] 343 |                         style_context.add_class("basic-button");
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::WidgetExt::style_context`: Since 4.10
[INFO] [stdout]    --> src/main.rs:344:71
[INFO] [stdout]     |
[INFO] [stdout] 344 |                         let style_context = app_widgets.b_to_a_button.style_context();
[INFO] [stdout]     |                                                                       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::WidgetExt::allocated_width`: Since 4.12
[INFO] [stdout]    --> src/main.rs:727:40
[INFO] [stdout]     |
[INFO] [stdout] 727 |                         let width = da.allocated_width();
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::StyleContextExt::add_class`: Since 4.10
[INFO] [stdout]    --> src/main.rs:345:39
[INFO] [stdout]     |
[INFO] [stdout] 345 |                         style_context.add_class("basic-button");
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::WidgetExt::style_context`: Since 4.10
[INFO] [stdout]    --> src/main.rs:346:73
[INFO] [stdout]     |
[INFO] [stdout] 346 |                         let style_context = app_widgets.a_swap_b_button.style_context();
[INFO] [stdout]     |                                                                         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::StyleContextExt::add_class`: Since 4.10
[INFO] [stdout]    --> src/main.rs:347:39
[INFO] [stdout]     |
[INFO] [stdout] 347 |                         style_context.add_class("basic-button");
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::WidgetExt::style_context`: Since 4.10
[INFO] [stdout]    --> src/main.rs:349:69
[INFO] [stdout]     |
[INFO] [stdout] 349 |                         let style_context = app_widgets.ctun_button.style_context();
[INFO] [stdout]     |                                                                     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::StyleContextExt::add_class`: Since 4.10
[INFO] [stdout]    --> src/main.rs:350:39
[INFO] [stdout]     |
[INFO] [stdout] 350 |                         style_context.add_class("toggle");
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::WidgetExt::style_context`: Since 4.10
[INFO] [stdout]    --> src/main.rs:353:68
[INFO] [stdout]     |
[INFO] [stdout] 353 |                         let style_context = app_widgets.cat_button.style_context();
[INFO] [stdout]     |                                                                    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::StyleContextExt::add_class`: Since 4.10
[INFO] [stdout]    --> src/main.rs:354:39
[INFO] [stdout]     |
[INFO] [stdout] 354 |                         style_context.add_class("toggle");
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::WidgetExt::allocated_width`: Since 4.12
[INFO] [stdout]    --> src/main.rs:760:40
[INFO] [stdout]     |
[INFO] [stdout] 760 |                         let width = da.allocated_width();
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::WidgetExt::style_context`: Since 4.10
[INFO] [stdout]    --> src/main.rs:357:71
[INFO] [stdout]     |
[INFO] [stdout] 357 |                         let style_context = app_widgets.rigctl_button.style_context();
[INFO] [stdout]     |                                                                       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::StyleContextExt::add_class`: Since 4.10
[INFO] [stdout]    --> src/main.rs:358:39
[INFO] [stdout]     |
[INFO] [stdout] 358 |                         style_context.add_class("toggle");
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::WidgetExt::style_context`: Since 4.10
[INFO] [stdout]    --> src/main.rs:365:68
[INFO] [stdout]     |
[INFO] [stdout] 365 |                         let style_context = app_widgets.tci_button.style_context();
[INFO] [stdout]     |                                                                    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::StyleContextExt::add_class`: Since 4.10
[INFO] [stdout]    --> src/main.rs:366:39
[INFO] [stdout]     |
[INFO] [stdout] 366 |                         style_context.add_class("toggle");
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::WidgetExt::style_context`: Since 4.10
[INFO] [stdout]    --> src/main.rs:369:70
[INFO] [stdout]     |
[INFO] [stdout] 369 |                         let style_context = app_widgets.split_button.style_context();
[INFO] [stdout]     |                                                                      ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::StyleContextExt::add_class`: Since 4.10
[INFO] [stdout]    --> src/main.rs:370:39
[INFO] [stdout]     |
[INFO] [stdout] 370 |                         style_context.add_class("toggle");
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::WidgetExt::style_context`: Since 4.10
[INFO] [stdout]    --> src/main.rs:373:68
[INFO] [stdout]     |
[INFO] [stdout] 373 |                         let style_context = app_widgets.rx2_button.style_context();
[INFO] [stdout]     |                                                                    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::StyleContextExt::add_class`: Since 4.10
[INFO] [stdout]    --> src/main.rs:374:39
[INFO] [stdout]     |
[INFO] [stdout] 374 |                         style_context.add_class("toggle");
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::WidgetExt::style_context`: Since 4.10
[INFO] [stdout]    --> src/main.rs:440:67
[INFO] [stdout]     |
[INFO] [stdout] 440 |                         let style_context = app_widgets.nr_button.style_context();
[INFO] [stdout]     |                                                                   ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::StyleContextExt::add_class`: Since 4.10
[INFO] [stdout]    --> src/main.rs:441:39
[INFO] [stdout]     |
[INFO] [stdout] 441 |                         style_context.add_class("toggle");
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::WidgetExt::style_context`: Since 4.10
[INFO] [stdout]    --> src/main.rs:460:67
[INFO] [stdout]     |
[INFO] [stdout] 460 |                         let style_context = app_widgets.nb_button.style_context();
[INFO] [stdout]     |                                                                   ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::StyleContextExt::add_class`: Since 4.10
[INFO] [stdout]    --> src/main.rs:461:39
[INFO] [stdout]     |
[INFO] [stdout] 461 |                         style_context.add_class("toggle");
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::WidgetExt::style_context`: Since 4.10
[INFO] [stdout]    --> src/main.rs:472:68
[INFO] [stdout]     |
[INFO] [stdout] 472 |                         let style_context = app_widgets.anf_button.style_context();
[INFO] [stdout]     |                                                                    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::StyleContextExt::add_class`: Since 4.10
[INFO] [stdout]    --> src/main.rs:473:39
[INFO] [stdout]     |
[INFO] [stdout] 473 |                         style_context.add_class("toggle");
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::WidgetExt::allocated_width`: Since 4.12
[INFO] [stdout]    --> src/main.rs:964:40
[INFO] [stdout]     |
[INFO] [stdout] 964 |                         let width = da.allocated_width();
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::WidgetExt::style_context`: Since 4.10
[INFO] [stdout]    --> src/main.rs:477:68
[INFO] [stdout]     |
[INFO] [stdout] 477 |                         let style_context = app_widgets.snb_button.style_context();
[INFO] [stdout]     |                                                                    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::StyleContextExt::add_class`: Since 4.10
[INFO] [stdout]    --> src/main.rs:478:39
[INFO] [stdout]     |
[INFO] [stdout] 478 |                         style_context.add_class("toggle");
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::WidgetExt::style_context`: Since 4.10
[INFO] [stdout]    --> src/main.rs:482:68
[INFO] [stdout]     |
[INFO] [stdout] 482 |                         let style_context = app_widgets.mox_button.style_context();
[INFO] [stdout]     |                                                                    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::StyleContextExt::add_class`: Since 4.10
[INFO] [stdout]    --> src/main.rs:483:39
[INFO] [stdout]     |
[INFO] [stdout] 483 |                         style_context.add_class("toggle");
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::WidgetExt::allocated_width`: Since 4.12
[INFO] [stdout]    --> src/main.rs:978:40
[INFO] [stdout]     |
[INFO] [stdout] 978 |                         let width = da.allocated_width();
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::WidgetExt::style_context`: Since 4.10
[INFO] [stdout]    --> src/main.rs:485:68
[INFO] [stdout]     |
[INFO] [stdout] 485 |                         let style_context = app_widgets.tun_button.style_context();
[INFO] [stdout]     |                                                                    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::StyleContextExt::add_class`: Since 4.10
[INFO] [stdout]    --> src/main.rs:486:39
[INFO] [stdout]     |
[INFO] [stdout] 486 |                         style_context.add_class("toggle");
[INFO] [stdout]     |                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::WidgetExt::style_context`: Since 4.10
[INFO] [stdout]    --> src/main.rs:635:52
[INFO] [stdout]     |
[INFO] [stdout] 635 |                         let style_context = button.style_context();
[INFO] [stdout]     |                                                    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::WidgetExt::allocated_width`: Since 4.12
[INFO] [stdout]    --> src/main.rs:727:40
[INFO] [stdout]     |
[INFO] [stdout] 727 |                         let width = da.allocated_width();
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::WidgetExt::allocated_width`: Since 4.12
[INFO] [stdout]    --> src/main.rs:760:40
[INFO] [stdout]     |
[INFO] [stdout] 760 |                         let width = da.allocated_width();
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::WidgetExt::allocated_width`: Since 4.12
[INFO] [stdout]    --> src/main.rs:964:40
[INFO] [stdout]     |
[INFO] [stdout] 964 |                         let width = da.allocated_width();
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `gtk4::prelude::WidgetExt::allocated_width`: Since 4.12
[INFO] [stdout]    --> src/main.rs:978:40
[INFO] [stdout]     |
[INFO] [stdout] 978 |                         let width = da.allocated_width();
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SinkExt`
[INFO] [stdout]   --> src/main.rs:49:26
[INFO] [stdout]    |
[INFO] [stdout] 49 | use futures::{StreamExt, SinkExt};
[INFO] [stdout]    |                          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `StreamExt`
[INFO] [stdout]   --> src/main.rs:49:15
[INFO] [stdout]    |
[INFO] [stdout] 49 | use futures::{StreamExt, SinkExt};
[INFO] [stdout]    |               ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SinkExt`
[INFO] [stdout]   --> src/main.rs:49:26
[INFO] [stdout]    |
[INFO] [stdout] 49 | use futures::{StreamExt, SinkExt};
[INFO] [stdout]    |                          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `StreamExt`
[INFO] [stdout]   --> src/main.rs:49:15
[INFO] [stdout]    |
[INFO] [stdout] 49 | use futures::{StreamExt, SinkExt};
[INFO] [stdout]    |               ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/main.rs:1737:45
[INFO] [stdout]      |
[INFO] [stdout] 1737 | ...                   let mut app_widgets = rc_app_widgets_clone.borrow_mut();
[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: variable does not need to be mutable
[INFO] [stdout]     --> src/main.rs:1867:45
[INFO] [stdout]      |
[INFO] [stdout] 1867 | ...                   let mut app_widgets = rc_app_widgets_clone.borrow_mut();
[INFO] [stdout]      |                           ----^^^^^^^^^^^
[INFO] [stdout]      |                           |
[INFO] [stdout]      |                           help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/main.rs:2017:33
[INFO] [stdout]      |
[INFO] [stdout] 2017 | ...                   let mut tci_clone_clone = tci_clone.clone();
[INFO] [stdout]      |                           ----^^^^^^^^^^^^^^^
[INFO] [stdout]      |                           |
[INFO] [stdout]      |                           help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/main.rs:2084:45
[INFO] [stdout]      |
[INFO] [stdout] 2084 | ...                   let mut app_widgets = rc_app_widgets_clone.borrow_mut();
[INFO] [stdout]      |                           ----^^^^^^^^^^^
[INFO] [stdout]      |                           |
[INFO] [stdout]      |                           help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/main.rs:2101:45
[INFO] [stdout]      |
[INFO] [stdout] 2101 | ...                   let mut app_widgets = rc_app_widgets_clone.borrow_mut();
[INFO] [stdout]      |                           ----^^^^^^^^^^^
[INFO] [stdout]      |                           |
[INFO] [stdout]      |                           help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/main.rs:2118:45
[INFO] [stdout]      |
[INFO] [stdout] 2118 | ...                   let mut app_widgets = rc_app_widgets_clone.borrow_mut();
[INFO] [stdout]      |                           ----^^^^^^^^^^^
[INFO] [stdout]      |                           |
[INFO] [stdout]      |                           help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:249:13
[INFO] [stdout]     |
[INFO] [stdout] 249 |         let mut app_widgets = rc_app_widgets_clone.borrow_mut();
[INFO] [stdout]     |             ----^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/main.rs:1790:30
[INFO] [stdout]      |
[INFO] [stdout] 1790 | ...   let (tx, mut rx): (std::sync::mpsc::Sender<RIGCTLMessage>, std::sync::mpsc::Receiver<RIGCTLMessage>) = std::sync::mpsc::chan...
[INFO] [stdout]      |                ----^^
[INFO] [stdout]      |                |
[INFO] [stdout]      |                help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/main.rs:1985:40
[INFO] [stdout]      |
[INFO] [stdout] 1985 | ...   let (tx_from_main, mut rx_at_tci): (mpsc::Sender<TCIDataMessage>, mpsc::Receiver<TCIDataMessage>) = mpsc::channel(100);
[INFO] [stdout]      |                          ----^^^^^^^^^
[INFO] [stdout]      |                          |
[INFO] [stdout]      |                          help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `is_transmitting` is never read
[INFO] [stdout]     --> src/main.rs:1595:51
[INFO] [stdout]      |
[INFO] [stdout] 1595 |                         let mut is_transmitting = false;
[INFO] [stdout]      |                                                   ^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 1599 |                             is_transmitting = r.is_transmitting();
[INFO] [stdout]      |                             ------------------------------------- `is_transmitting` 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: value assigned to `rx2` is never read
[INFO] [stdout]     --> src/main.rs:1596:39
[INFO] [stdout]      |
[INFO] [stdout] 1596 |                         let mut rx2 = false;
[INFO] [stdout]      |                                       ^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 1600 |                             rx2 = r.rx2_enabled;
[INFO] [stdout]      |                             ------------------- `rx2` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `is_transmitting` is never read
[INFO] [stdout]     --> src/main.rs:1574:51
[INFO] [stdout]      |
[INFO] [stdout] 1574 |                         let mut is_transmitting = false;
[INFO] [stdout]      |                                                   ^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 1577 |                         is_transmitting = r.is_transmitting();
[INFO] [stdout]      |                         ------------------------------------- `is_transmitting` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `width`
[INFO] [stdout]     --> src/main.rs:1526:78
[INFO] [stdout]      |
[INFO] [stdout] 1526 |                     app_widgets.meter_2_display.set_draw_func(move |_da, cr, width, height| {
[INFO] [stdout]      |                                                                              ^^^^^ help: if this is intentional, prefix it with an underscore: `_width`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `height`
[INFO] [stdout]     --> src/main.rs:1526:85
[INFO] [stdout]      |
[INFO] [stdout] 1526 |                     app_widgets.meter_2_display.set_draw_func(move |_da, cr, width, height| {
[INFO] [stdout]      |                                                                                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_height`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `width`
[INFO] [stdout]     --> src/main.rs:1520:78
[INFO] [stdout]      |
[INFO] [stdout] 1520 |                     app_widgets.meter_1_display.set_draw_func(move |_da, cr, width, height| {
[INFO] [stdout]      |                                                                              ^^^^^ help: if this is intentional, prefix it with an underscore: `_width`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `height`
[INFO] [stdout]     --> src/main.rs:1520:85
[INFO] [stdout]      |
[INFO] [stdout] 1520 |                     app_widgets.meter_1_display.set_draw_func(move |_da, cr, width, height| {
[INFO] [stdout]      |                                                                                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_height`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `active`
[INFO] [stdout]     --> src/main.rs:1225:29
[INFO] [stdout]      |
[INFO] [stdout] 1225 |                         let active = button.is_active();
[INFO] [stdout]      |                             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_active`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `active`
[INFO] [stdout]     --> src/main.rs:1181:29
[INFO] [stdout]      |
[INFO] [stdout] 1181 |                         let active = button.is_active();
[INFO] [stdout]      |                             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_active`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `controller`
[INFO] [stdout]    --> src/main.rs:951:72
[INFO] [stdout]     |
[INFO] [stdout] 951 |                     scroll_controller_waterfall_2.connect_scroll(move |controller, _dx, dy| {
[INFO] [stdout]     |                                                                        ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_controller`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `controller`
[INFO] [stdout]    --> src/main.rs:940:70
[INFO] [stdout]     |
[INFO] [stdout] 940 |                     scroll_controller_waterfall.connect_scroll(move |controller, _dx, dy| {
[INFO] [stdout]     |                                                                      ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_controller`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `controller`
[INFO] [stdout]    --> src/main.rs:895:71
[INFO] [stdout]     |
[INFO] [stdout] 895 |                     scroll_controller_spectrum_2.connect_scroll(move |controller, _dx, dy| {
[INFO] [stdout]     |                                                                       ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_controller`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `controller`
[INFO] [stdout]    --> src/main.rs:848:69
[INFO] [stdout]     |
[INFO] [stdout] 848 |                     scroll_controller_spectrum.connect_scroll(move |controller, _dx, dy| {
[INFO] [stdout]     |                                                                     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_controller`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `controller`
[INFO] [stdout]    --> src/main.rs:820:77
[INFO] [stdout]     |
[INFO] [stdout] 820 |                     motion_event_controller_spectrum_2.connect_motion(move |controller, x, y| {
[INFO] [stdout]     |                                                                             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_controller`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `controller`
[INFO] [stdout]    --> src/main.rs:788:75
[INFO] [stdout]     |
[INFO] [stdout] 788 |                     motion_event_controller_spectrum.connect_motion(move |controller, x, y| {
[INFO] [stdout]     |                                                                           ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_controller`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `controller`
[INFO] [stdout]    --> src/main.rs:768:84
[INFO] [stdout]     |
[INFO] [stdout] 768 |                     spectrum_2_click_gesture_clone.connect_released(move |gesture, controller, x, _y| {
[INFO] [stdout]     |                                                                                    ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_controller`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/main.rs:768:96
[INFO] [stdout]     |
[INFO] [stdout] 768 |                     spectrum_2_click_gesture_clone.connect_released(move |gesture, controller, x, _y| {
[INFO] [stdout]     |                                                                                                ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `controller`
[INFO] [stdout]    --> src/main.rs:758:83
[INFO] [stdout]     |
[INFO] [stdout] 758 |                     spectrum_2_click_gesture_clone.connect_pressed(move |gesture, controller, x, _y| {
[INFO] [stdout]     |                                                                                   ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_controller`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `controller`
[INFO] [stdout]    --> src/main.rs:744:82
[INFO] [stdout]     |
[INFO] [stdout] 744 |                     spectrum_click_gesture_clone.connect_released(move |gesture, controller, x, _y| {
[INFO] [stdout]     |                                                                                  ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_controller`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/main.rs:744:94
[INFO] [stdout]     |
[INFO] [stdout] 744 |                     spectrum_click_gesture_clone.connect_released(move |gesture, controller, x, _y| {
[INFO] [stdout]     |                                                                                              ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `controller`
[INFO] [stdout]    --> src/main.rs:725:81
[INFO] [stdout]     |
[INFO] [stdout] 725 |                     spectrum_click_gesture_clone.connect_pressed(move |gesture, controller, x, _y| {
[INFO] [stdout]     |                                                                                 ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_controller`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `step` is never read
[INFO] [stdout]    --> src/main.rs:690:40
[INFO] [stdout]     |
[INFO] [stdout] 690 |                         let mut step = 1000.0;
[INFO] [stdout]     |                                        ^^^^^^ this value is reassigned later and never used
[INFO] [stdout] 691 |                         match index {
[INFO] [stdout] 692 |                             0 => step = 1.0,
[INFO] [stdout]     |                                  ---------- `step` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `style_context`
[INFO] [stdout]    --> src/main.rs:635:29
[INFO] [stdout]     |
[INFO] [stdout] 635 |                         let style_context = button.style_context();
[INFO] [stdout]     |                             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_style_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n_press`
[INFO] [stdout]    --> src/main.rs:547:61
[INFO] [stdout]     |
[INFO] [stdout] 547 |                     gesture.connect_pressed(move |_gesture, n_press, x, y| {
[INFO] [stdout]     |                                                             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_n_press`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/main.rs:547:70
[INFO] [stdout]     |
[INFO] [stdout] 547 |                     gesture.connect_pressed(move |_gesture, n_press, x, y| {
[INFO] [stdout]     |                                                                      ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]    --> src/main.rs:547:73
[INFO] [stdout]     |
[INFO] [stdout] 547 |                     gesture.connect_pressed(move |_gesture, n_press, x, y| {
[INFO] [stdout]     |                                                                         ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n_press`
[INFO] [stdout]    --> src/main.rs:519:61
[INFO] [stdout]     |
[INFO] [stdout] 519 |                     gesture.connect_pressed(move |_gesture, n_press, x, y| {
[INFO] [stdout]     |                                                             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_n_press`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/main.rs:519:70
[INFO] [stdout]     |
[INFO] [stdout] 519 |                     gesture.connect_pressed(move |_gesture, n_press, x, y| {
[INFO] [stdout]     |                                                                      ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]    --> src/main.rs:519:73
[INFO] [stdout]     |
[INFO] [stdout] 519 |                     gesture.connect_pressed(move |_gesture, n_press, x, y| {
[INFO] [stdout]     |                                                                         ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `controller`
[INFO] [stdout]    --> src/main.rs:510:62
[INFO] [stdout]     |
[INFO] [stdout] 510 |                     scroll_controller_a.connect_scroll(move |controller, dx, dy| {
[INFO] [stdout]     |                                                              ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_controller`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dx`
[INFO] [stdout]    --> src/main.rs:510:74
[INFO] [stdout]     |
[INFO] [stdout] 510 |                     scroll_controller_a.connect_scroll(move |controller, dx, dy| {
[INFO] [stdout]     |                                                                          ^^ help: if this is intentional, prefix it with an underscore: `_dx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `middle_button_state`
[INFO] [stdout]    --> src/main.rs:847:25
[INFO] [stdout]     |
[INFO] [stdout] 847 |                     let middle_button_state = middle_button_pressed.clone();
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_middle_button_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `middle_button_state`
[INFO] [stdout]    --> src/main.rs:894:25
[INFO] [stdout]     |
[INFO] [stdout] 894 |                     let middle_button_state = middle_button_pressed.clone();
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_middle_button_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `band`
[INFO] [stdout]     --> src/main.rs:1033:25
[INFO] [stdout]      |
[INFO] [stdout] 1033 |                     let band = r.receiver[rx].band.to_usize();
[INFO] [stdout]      |                         ^^^^ help: if this is intentional, prefix it with an underscore: `_band`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mode`
[INFO] [stdout]     --> src/main.rs:1034:25
[INFO] [stdout]      |
[INFO] [stdout] 1034 |                     let mode = r.receiver[rx].mode;
[INFO] [stdout]      |                         ^^^^ help: if this is intentional, prefix it with an underscore: `_mode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `filter`
[INFO] [stdout]     --> src/main.rs:1035:25
[INFO] [stdout]      |
[INFO] [stdout] 1035 |                     let filter = r.receiver[rx].filter;
[INFO] [stdout]      |                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_filter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `low`
[INFO] [stdout]     --> src/main.rs:1036:25
[INFO] [stdout]      |
[INFO] [stdout] 1036 |                     let low = r.receiver[rx].filter_low;
[INFO] [stdout]      |                         ^^^ help: if this is intentional, prefix it with an underscore: `_low`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `high`
[INFO] [stdout]     --> src/main.rs:1037:25
[INFO] [stdout]      |
[INFO] [stdout] 1037 |                     let high = r.receiver[rx].filter_high;
[INFO] [stdout]      |                         ^^^^ help: if this is intentional, prefix it with an underscore: `_high`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rc_meter_tx_clone2`
[INFO] [stdout]     --> src/main.rs:1612:25
[INFO] [stdout]      |
[INFO] [stdout] 1612 |                     let rc_meter_tx_clone2 = rc_meter_tx_clone.clone();
[INFO] [stdout]      |                         ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rc_meter_tx_clone2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `meter_tx_timeout_id`
[INFO] [stdout]     --> src/main.rs:1632:25
[INFO] [stdout]      |
[INFO] [stdout] 1632 |                     let meter_tx_timeout_id = timeout_add_local(Duration::from_millis(update_interval as u64), move || {
[INFO] [stdout]      |                         ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_meter_tx_timeout_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `keepalive_timeout_id`
[INFO] [stdout]     --> src/main.rs:1648:29
[INFO] [stdout]      |
[INFO] [stdout] 1648 |                         let keepalive_timeout_id = timeout_add_local(Duration::from_millis(250), move || {
[INFO] [stdout]      |                             ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_keepalive_timeout_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tx_from_main_clone`
[INFO] [stdout]     --> src/main.rs:1991:25
[INFO] [stdout]      |
[INFO] [stdout] 1991 |                     let tx_from_main_clone = tx_from_main.clone();
[INFO] [stdout]      |                         ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tx_from_main_clone`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `update_interval` is never read
[INFO] [stdout]     --> src/main.rs:1562:47
[INFO] [stdout]      |
[INFO] [stdout] 1562 |                     let mut update_interval = 100.0;
[INFO] [stdout]      |                                               ^^^^^ this value is reassigned later and never used
[INFO] [stdout] 1563 |                     let r = radio_mutex.radio.lock().unwrap();
[INFO] [stdout] 1564 |                     update_interval = 1000.0 / r.receiver[0].spectrum_fps;
[INFO] [stdout]      |                     ----------------------------------------------------- `update_interval` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `builder_clone`
[INFO] [stdout]    --> src/main.rs:239:9
[INFO] [stdout]     |
[INFO] [stdout] 239 |     let builder_clone = builder.clone();
[INFO] [stdout]     |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_builder_clone`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rc_meter`
[INFO] [stdout]     --> src/main.rs:2247:89
[INFO] [stdout]      |
[INFO] [stdout] 2247 | fn meter_tx_update(radio_mutex: &RadioMutex,  rc_app_widgets: &Rc<RefCell<AppWidgets>>, rc_meter: &Rc<RefCell<Meter>>) {
[INFO] [stdout]      |                                                                                         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rc_meter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `button`
[INFO] [stdout]     --> src/main.rs:2290:130
[INFO] [stdout]      |
[INFO] [stdout] 2290 | ...ize, x: f64, width: i32, button: u32) -> bool {
[INFO] [stdout]      |                             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_button`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `display_frequency_high`
[INFO] [stdout]     --> src/main.rs:2313:9
[INFO] [stdout]      |
[INFO] [stdout] 2313 |     let display_frequency_high = frequency_high + display_frequency_offset;
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_display_frequency_high`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `frequency_low`
[INFO] [stdout]     --> src/main.rs:2338:9
[INFO] [stdout]      |
[INFO] [stdout] 2338 |     let frequency_low = r.receiver[rx].frequency - (r.receiver[rx].sample_rate/2) as f64;
[INFO] [stdout]      |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_frequency_low`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `frequency_high`
[INFO] [stdout]     --> src/main.rs:2339:9
[INFO] [stdout]      |
[INFO] [stdout] 2339 |     let frequency_high = r.receiver[rx].frequency + (r.receiver[rx].sample_rate/2) as f64;
[INFO] [stdout]      |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_frequency_high`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/main.rs:2391:9
[INFO] [stdout]      |
[INFO] [stdout] 2391 |     let mut app_widgets = rc_app_widgets.borrow_mut();
[INFO] [stdout]      |         ----^^^^^^^^^^^
[INFO] [stdout]      |         |
[INFO] [stdout]      |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `band`
[INFO] [stdout]     --> src/main.rs:2360:9
[INFO] [stdout]      |
[INFO] [stdout] 2360 |     let band = r.receiver[rx].band;
[INFO] [stdout]      |         ^^^^ help: if this is intentional, prefix it with an underscore: `_band`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `filter`
[INFO] [stdout]     --> src/main.rs:2362:9
[INFO] [stdout]      |
[INFO] [stdout] 2362 |     let filter = r.receiver[rx].filter;
[INFO] [stdout]      |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_filter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `attenuation` is never read
[INFO] [stdout]     --> src/main.rs:2379:27
[INFO] [stdout]      |
[INFO] [stdout] 2379 |     let mut attenuation = r.receiver[rx].band_info[b].attenuation;
[INFO] [stdout]      |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 2385 |         attenuation = r.receiver[rx].band_info[b].attenuation;
[INFO] [stdout]      |         ----------------------------------------------------- `attenuation` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/main.rs:1737:45
[INFO] [stdout]      |
[INFO] [stdout] 1737 | ...                   let mut app_widgets = rc_app_widgets_clone.borrow_mut();
[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: variable does not need to be mutable
[INFO] [stdout]     --> src/main.rs:1867:45
[INFO] [stdout]      |
[INFO] [stdout] 1867 | ...                   let mut app_widgets = rc_app_widgets_clone.borrow_mut();
[INFO] [stdout]      |                           ----^^^^^^^^^^^
[INFO] [stdout]      |                           |
[INFO] [stdout]      |                           help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/main.rs:2017:33
[INFO] [stdout]      |
[INFO] [stdout] 2017 | ...                   let mut tci_clone_clone = tci_clone.clone();
[INFO] [stdout]      |                           ----^^^^^^^^^^^^^^^
[INFO] [stdout]      |                           |
[INFO] [stdout]      |                           help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/main.rs:2084:45
[INFO] [stdout]      |
[INFO] [stdout] 2084 | ...                   let mut app_widgets = rc_app_widgets_clone.borrow_mut();
[INFO] [stdout]      |                           ----^^^^^^^^^^^
[INFO] [stdout]      |                           |
[INFO] [stdout]      |                           help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/main.rs:2101:45
[INFO] [stdout]      |
[INFO] [stdout] 2101 | ...                   let mut app_widgets = rc_app_widgets_clone.borrow_mut();
[INFO] [stdout]      |                           ----^^^^^^^^^^^
[INFO] [stdout]      |                           |
[INFO] [stdout]      |                           help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/main.rs:2118:45
[INFO] [stdout]      |
[INFO] [stdout] 2118 | ...                   let mut app_widgets = rc_app_widgets_clone.borrow_mut();
[INFO] [stdout]      |                           ----^^^^^^^^^^^
[INFO] [stdout]      |                           |
[INFO] [stdout]      |                           help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:249:13
[INFO] [stdout]     |
[INFO] [stdout] 249 |         let mut app_widgets = rc_app_widgets_clone.borrow_mut();
[INFO] [stdout]     |             ----^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/main.rs:1790:30
[INFO] [stdout]      |
[INFO] [stdout] 1790 | ...   let (tx, mut rx): (std::sync::mpsc::Sender<RIGCTLMessage>, std::sync::mpsc::Receiver<RIGCTLMessage>) = std::sync::mpsc::chan...
[INFO] [stdout]      |                ----^^
[INFO] [stdout]      |                |
[INFO] [stdout]      |                help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/main.rs:1985:40
[INFO] [stdout]      |
[INFO] [stdout] 1985 | ...   let (tx_from_main, mut rx_at_tci): (mpsc::Sender<TCIDataMessage>, mpsc::Receiver<TCIDataMessage>) = mpsc::channel(100);
[INFO] [stdout]      |                          ----^^^^^^^^^
[INFO] [stdout]      |                          |
[INFO] [stdout]      |                          help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `is_transmitting` is never read
[INFO] [stdout]     --> src/main.rs:1595:51
[INFO] [stdout]      |
[INFO] [stdout] 1595 |                         let mut is_transmitting = false;
[INFO] [stdout]      |                                                   ^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 1599 |                             is_transmitting = r.is_transmitting();
[INFO] [stdout]      |                             ------------------------------------- `is_transmitting` 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: value assigned to `rx2` is never read
[INFO] [stdout]     --> src/main.rs:1596:39
[INFO] [stdout]      |
[INFO] [stdout] 1596 |                         let mut rx2 = false;
[INFO] [stdout]      |                                       ^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 1600 |                             rx2 = r.rx2_enabled;
[INFO] [stdout]      |                             ------------------- `rx2` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `is_transmitting` is never read
[INFO] [stdout]     --> src/main.rs:1574:51
[INFO] [stdout]      |
[INFO] [stdout] 1574 |                         let mut is_transmitting = false;
[INFO] [stdout]      |                                                   ^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 1577 |                         is_transmitting = r.is_transmitting();
[INFO] [stdout]      |                         ------------------------------------- `is_transmitting` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `width`
[INFO] [stdout]     --> src/main.rs:1526:78
[INFO] [stdout]      |
[INFO] [stdout] 1526 |                     app_widgets.meter_2_display.set_draw_func(move |_da, cr, width, height| {
[INFO] [stdout]      |                                                                              ^^^^^ help: if this is intentional, prefix it with an underscore: `_width`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `height`
[INFO] [stdout]     --> src/main.rs:1526:85
[INFO] [stdout]      |
[INFO] [stdout] 1526 |                     app_widgets.meter_2_display.set_draw_func(move |_da, cr, width, height| {
[INFO] [stdout]      |                                                                                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_height`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `width`
[INFO] [stdout]     --> src/main.rs:1520:78
[INFO] [stdout]      |
[INFO] [stdout] 1520 |                     app_widgets.meter_1_display.set_draw_func(move |_da, cr, width, height| {
[INFO] [stdout]      |                                                                              ^^^^^ help: if this is intentional, prefix it with an underscore: `_width`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `height`
[INFO] [stdout]     --> src/main.rs:1520:85
[INFO] [stdout]      |
[INFO] [stdout] 1520 |                     app_widgets.meter_1_display.set_draw_func(move |_da, cr, width, height| {
[INFO] [stdout]      |                                                                                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_height`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `active`
[INFO] [stdout]     --> src/main.rs:1225:29
[INFO] [stdout]      |
[INFO] [stdout] 1225 |                         let active = button.is_active();
[INFO] [stdout]      |                             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_active`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `active`
[INFO] [stdout]     --> src/main.rs:1181:29
[INFO] [stdout]      |
[INFO] [stdout] 1181 |                         let active = button.is_active();
[INFO] [stdout]      |                             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_active`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `controller`
[INFO] [stdout]    --> src/main.rs:951:72
[INFO] [stdout]     |
[INFO] [stdout] 951 |                     scroll_controller_waterfall_2.connect_scroll(move |controller, _dx, dy| {
[INFO] [stdout]     |                                                                        ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_controller`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `controller`
[INFO] [stdout]    --> src/main.rs:940:70
[INFO] [stdout]     |
[INFO] [stdout] 940 |                     scroll_controller_waterfall.connect_scroll(move |controller, _dx, dy| {
[INFO] [stdout]     |                                                                      ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_controller`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `controller`
[INFO] [stdout]    --> src/main.rs:895:71
[INFO] [stdout]     |
[INFO] [stdout] 895 |                     scroll_controller_spectrum_2.connect_scroll(move |controller, _dx, dy| {
[INFO] [stdout]     |                                                                       ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_controller`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `controller`
[INFO] [stdout]    --> src/main.rs:848:69
[INFO] [stdout]     |
[INFO] [stdout] 848 |                     scroll_controller_spectrum.connect_scroll(move |controller, _dx, dy| {
[INFO] [stdout]     |                                                                     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_controller`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `controller`
[INFO] [stdout]    --> src/main.rs:820:77
[INFO] [stdout]     |
[INFO] [stdout] 820 |                     motion_event_controller_spectrum_2.connect_motion(move |controller, x, y| {
[INFO] [stdout]     |                                                                             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_controller`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `controller`
[INFO] [stdout]    --> src/main.rs:788:75
[INFO] [stdout]     |
[INFO] [stdout] 788 |                     motion_event_controller_spectrum.connect_motion(move |controller, x, y| {
[INFO] [stdout]     |                                                                           ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_controller`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `controller`
[INFO] [stdout]    --> src/main.rs:768:84
[INFO] [stdout]     |
[INFO] [stdout] 768 |                     spectrum_2_click_gesture_clone.connect_released(move |gesture, controller, x, _y| {
[INFO] [stdout]     |                                                                                    ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_controller`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/main.rs:768:96
[INFO] [stdout]     |
[INFO] [stdout] 768 |                     spectrum_2_click_gesture_clone.connect_released(move |gesture, controller, x, _y| {
[INFO] [stdout]     |                                                                                                ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `controller`
[INFO] [stdout]    --> src/main.rs:758:83
[INFO] [stdout]     |
[INFO] [stdout] 758 |                     spectrum_2_click_gesture_clone.connect_pressed(move |gesture, controller, x, _y| {
[INFO] [stdout]     |                                                                                   ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_controller`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `controller`
[INFO] [stdout]    --> src/main.rs:744:82
[INFO] [stdout]     |
[INFO] [stdout] 744 |                     spectrum_click_gesture_clone.connect_released(move |gesture, controller, x, _y| {
[INFO] [stdout]     |                                                                                  ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_controller`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/main.rs:744:94
[INFO] [stdout]     |
[INFO] [stdout] 744 |                     spectrum_click_gesture_clone.connect_released(move |gesture, controller, x, _y| {
[INFO] [stdout]     |                                                                                              ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `controller`
[INFO] [stdout]    --> src/main.rs:725:81
[INFO] [stdout]     |
[INFO] [stdout] 725 |                     spectrum_click_gesture_clone.connect_pressed(move |gesture, controller, x, _y| {
[INFO] [stdout]     |                                                                                 ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_controller`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `step` is never read
[INFO] [stdout]    --> src/main.rs:690:40
[INFO] [stdout]     |
[INFO] [stdout] 690 |                         let mut step = 1000.0;
[INFO] [stdout]     |                                        ^^^^^^ this value is reassigned later and never used
[INFO] [stdout] 691 |                         match index {
[INFO] [stdout] 692 |                             0 => step = 1.0,
[INFO] [stdout]     |                                  ---------- `step` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `style_context`
[INFO] [stdout]    --> src/main.rs:635:29
[INFO] [stdout]     |
[INFO] [stdout] 635 |                         let style_context = button.style_context();
[INFO] [stdout]     |                             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_style_context`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n_press`
[INFO] [stdout]    --> src/main.rs:547:61
[INFO] [stdout]     |
[INFO] [stdout] 547 |                     gesture.connect_pressed(move |_gesture, n_press, x, y| {
[INFO] [stdout]     |                                                             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_n_press`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/main.rs:547:70
[INFO] [stdout]     |
[INFO] [stdout] 547 |                     gesture.connect_pressed(move |_gesture, n_press, x, y| {
[INFO] [stdout]     |                                                                      ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]    --> src/main.rs:547:73
[INFO] [stdout]     |
[INFO] [stdout] 547 |                     gesture.connect_pressed(move |_gesture, n_press, x, y| {
[INFO] [stdout]     |                                                                         ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n_press`
[INFO] [stdout]    --> src/main.rs:519:61
[INFO] [stdout]     |
[INFO] [stdout] 519 |                     gesture.connect_pressed(move |_gesture, n_press, x, y| {
[INFO] [stdout]     |                                                             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_n_press`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/main.rs:519:70
[INFO] [stdout]     |
[INFO] [stdout] 519 |                     gesture.connect_pressed(move |_gesture, n_press, x, y| {
[INFO] [stdout]     |                                                                      ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]    --> src/main.rs:519:73
[INFO] [stdout]     |
[INFO] [stdout] 519 |                     gesture.connect_pressed(move |_gesture, n_press, x, y| {
[INFO] [stdout]     |                                                                         ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `controller`
[INFO] [stdout]    --> src/main.rs:510:62
[INFO] [stdout]     |
[INFO] [stdout] 510 |                     scroll_controller_a.connect_scroll(move |controller, dx, dy| {
[INFO] [stdout]     |                                                              ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_controller`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dx`
[INFO] [stdout]    --> src/main.rs:510:74
[INFO] [stdout]     |
[INFO] [stdout] 510 |                     scroll_controller_a.connect_scroll(move |controller, dx, dy| {
[INFO] [stdout]     |                                                                          ^^ help: if this is intentional, prefix it with an underscore: `_dx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `middle_button_state`
[INFO] [stdout]    --> src/main.rs:847:25
[INFO] [stdout]     |
[INFO] [stdout] 847 |                     let middle_button_state = middle_button_pressed.clone();
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_middle_button_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `middle_button_state`
[INFO] [stdout]    --> src/main.rs:894:25
[INFO] [stdout]     |
[INFO] [stdout] 894 |                     let middle_button_state = middle_button_pressed.clone();
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_middle_button_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `band`
[INFO] [stdout]     --> src/main.rs:1033:25
[INFO] [stdout]      |
[INFO] [stdout] 1033 |                     let band = r.receiver[rx].band.to_usize();
[INFO] [stdout]      |                         ^^^^ help: if this is intentional, prefix it with an underscore: `_band`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mode`
[INFO] [stdout]     --> src/main.rs:1034:25
[INFO] [stdout]      |
[INFO] [stdout] 1034 |                     let mode = r.receiver[rx].mode;
[INFO] [stdout]      |                         ^^^^ help: if this is intentional, prefix it with an underscore: `_mode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `filter`
[INFO] [stdout]     --> src/main.rs:1035:25
[INFO] [stdout]      |
[INFO] [stdout] 1035 |                     let filter = r.receiver[rx].filter;
[INFO] [stdout]      |                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_filter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `low`
[INFO] [stdout]     --> src/main.rs:1036:25
[INFO] [stdout]      |
[INFO] [stdout] 1036 |                     let low = r.receiver[rx].filter_low;
[INFO] [stdout]      |                         ^^^ help: if this is intentional, prefix it with an underscore: `_low`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `high`
[INFO] [stdout]     --> src/main.rs:1037:25
[INFO] [stdout]      |
[INFO] [stdout] 1037 |                     let high = r.receiver[rx].filter_high;
[INFO] [stdout]      |                         ^^^^ help: if this is intentional, prefix it with an underscore: `_high`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]     --> src/main.rs:1676:29
[INFO] [stdout]      |
[INFO] [stdout] 1676 | ...                   cat_clone_clone.run(&radio_mutex_clone, &tx_clone, stop_flag_clone);
[INFO] [stdout]      |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]      = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 1676 |                             let _ = cat_clone_clone.run(&radio_mutex_clone, &tx_clone, stop_flag_clone);
[INFO] [stdout]      |                             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]     --> src/main.rs:1695:33
[INFO] [stdout]      |
[INFO] [stdout] 1695 | ...                   cat_clone_clone.run(&radio_mutex_clone_clone, &tx_clone_clone, stop_flag_clone);
[INFO] [stdout]      |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 1695 |                                 let _ = cat_clone_clone.run(&radio_mutex_clone_clone, &tx_clone_clone, stop_flag_clone);
[INFO] [stdout]      |                                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]     --> src/main.rs:1800:29
[INFO] [stdout]      |
[INFO] [stdout] 1800 | ...                   rigctl_clone_clone.run(&radio_mutex_clone, &tx_clone, stop_flag_clone);
[INFO] [stdout]      |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 1800 |                             let _ = rigctl_clone_clone.run(&radio_mutex_clone, &tx_clone, stop_flag_clone);
[INFO] [stdout]      |                             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rc_meter_tx_clone2`
[INFO] [stdout]     --> src/main.rs:1612:25
[INFO] [stdout]      |
[INFO] [stdout] 1612 |                     let rc_meter_tx_clone2 = rc_meter_tx_clone.clone();
[INFO] [stdout]      |                         ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rc_meter_tx_clone2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]     --> src/main.rs:1818:33
[INFO] [stdout]      |
[INFO] [stdout] 1818 | ...                   rigctl_clone_clone.run(&radio_mutex_clone_clone, &tx_clone_clone, stop_flag_clone);
[INFO] [stdout]      |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 1818 |                                 let _ = rigctl_clone_clone.run(&radio_mutex_clone_clone, &tx_clone_clone, stop_flag_clone);
[INFO] [stdout]      |                                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `meter_tx_timeout_id`
[INFO] [stdout]     --> src/main.rs:1632:25
[INFO] [stdout]      |
[INFO] [stdout] 1632 |                     let meter_tx_timeout_id = timeout_add_local(Duration::from_millis(update_interval as u64), move || {
[INFO] [stdout]      |                         ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_meter_tx_timeout_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `keepalive_timeout_id`
[INFO] [stdout]     --> src/main.rs:1648:29
[INFO] [stdout]      |
[INFO] [stdout] 1648 |                         let keepalive_timeout_id = timeout_add_local(Duration::from_millis(250), move || {
[INFO] [stdout]      |                             ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_keepalive_timeout_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tx_from_main_clone`
[INFO] [stdout]     --> src/main.rs:1991:25
[INFO] [stdout]      |
[INFO] [stdout] 1991 |                     let tx_from_main_clone = tx_from_main.clone();
[INFO] [stdout]      |                         ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tx_from_main_clone`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `update_interval` is never read
[INFO] [stdout]     --> src/main.rs:1562:47
[INFO] [stdout]      |
[INFO] [stdout] 1562 |                     let mut update_interval = 100.0;
[INFO] [stdout]      |                                               ^^^^^ this value is reassigned later and never used
[INFO] [stdout] 1563 |                     let r = radio_mutex.radio.lock().unwrap();
[INFO] [stdout] 1564 |                     update_interval = 1000.0 / r.receiver[0].spectrum_fps;
[INFO] [stdout]      |                     ----------------------------------------------------- `update_interval` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `builder_clone`
[INFO] [stdout]    --> src/main.rs:239:9
[INFO] [stdout]     |
[INFO] [stdout] 239 |     let builder_clone = builder.clone();
[INFO] [stdout]     |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_builder_clone`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rc_meter`
[INFO] [stdout]     --> src/main.rs:2247:89
[INFO] [stdout]      |
[INFO] [stdout] 2247 | fn meter_tx_update(radio_mutex: &RadioMutex,  rc_app_widgets: &Rc<RefCell<AppWidgets>>, rc_meter: &Rc<RefCell<Meter>>) {
[INFO] [stdout]      |                                                                                         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rc_meter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `button`
[INFO] [stdout]     --> src/main.rs:2290:130
[INFO] [stdout]      |
[INFO] [stdout] 2290 | ...ize, x: f64, width: i32, button: u32) -> bool {
[INFO] [stdout]      |                             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_button`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `display_frequency_high`
[INFO] [stdout]     --> src/main.rs:2313:9
[INFO] [stdout]      |
[INFO] [stdout] 2313 |     let display_frequency_high = frequency_high + display_frequency_offset;
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_display_frequency_high`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `frequency_low`
[INFO] [stdout]     --> src/main.rs:2338:9
[INFO] [stdout]      |
[INFO] [stdout] 2338 |     let frequency_low = r.receiver[rx].frequency - (r.receiver[rx].sample_rate/2) as f64;
[INFO] [stdout]      |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_frequency_low`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `frequency_high`
[INFO] [stdout]     --> src/main.rs:2339:9
[INFO] [stdout]      |
[INFO] [stdout] 2339 |     let frequency_high = r.receiver[rx].frequency + (r.receiver[rx].sample_rate/2) as f64;
[INFO] [stdout]      |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_frequency_high`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/main.rs:2391:9
[INFO] [stdout]      |
[INFO] [stdout] 2391 |     let mut app_widgets = rc_app_widgets.borrow_mut();
[INFO] [stdout]      |         ----^^^^^^^^^^^
[INFO] [stdout]      |         |
[INFO] [stdout]      |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `band`
[INFO] [stdout]     --> src/main.rs:2360:9
[INFO] [stdout]      |
[INFO] [stdout] 2360 |     let band = r.receiver[rx].band;
[INFO] [stdout]      |         ^^^^ help: if this is intentional, prefix it with an underscore: `_band`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `filter`
[INFO] [stdout]     --> src/main.rs:2362:9
[INFO] [stdout]      |
[INFO] [stdout] 2362 |     let filter = r.receiver[rx].filter;
[INFO] [stdout]      |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_filter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `attenuation` is never read
[INFO] [stdout]     --> src/main.rs:2379:27
[INFO] [stdout]      |
[INFO] [stdout] 2379 |     let mut attenuation = r.receiver[rx].band_info[b].attenuation;
[INFO] [stdout]      |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 2385 |         attenuation = r.receiver[rx].band_info[b].attenuation;
[INFO] [stdout]      |         ----------------------------------------------------- `attenuation` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]     --> src/main.rs:1676:29
[INFO] [stdout]      |
[INFO] [stdout] 1676 | ...                   cat_clone_clone.run(&radio_mutex_clone, &tx_clone, stop_flag_clone);
[INFO] [stdout]      |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]      = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 1676 |                             let _ = cat_clone_clone.run(&radio_mutex_clone, &tx_clone, stop_flag_clone);
[INFO] [stdout]      |                             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]     --> src/main.rs:1695:33
[INFO] [stdout]      |
[INFO] [stdout] 1695 | ...                   cat_clone_clone.run(&radio_mutex_clone_clone, &tx_clone_clone, stop_flag_clone);
[INFO] [stdout]      |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 1695 |                                 let _ = cat_clone_clone.run(&radio_mutex_clone_clone, &tx_clone_clone, stop_flag_clone);
[INFO] [stdout]      |                                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]     --> src/main.rs:1800:29
[INFO] [stdout]      |
[INFO] [stdout] 1800 | ...                   rigctl_clone_clone.run(&radio_mutex_clone, &tx_clone, stop_flag_clone);
[INFO] [stdout]      |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 1800 |                             let _ = rigctl_clone_clone.run(&radio_mutex_clone, &tx_clone, stop_flag_clone);
[INFO] [stdout]      |                             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]     --> src/main.rs:1818:33
[INFO] [stdout]      |
[INFO] [stdout] 1818 | ...                   rigctl_clone_clone.run(&radio_mutex_clone_clone, &tx_clone_clone, stop_flag_clone);
[INFO] [stdout]      |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]      |
[INFO] [stdout] 1818 |                                 let _ = rigctl_clone_clone.run(&radio_mutex_clone_clone, &tx_clone_clone, stop_flag_clone);
[INFO] [stdout]      |                                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 4m 15s
[INFO] running `Command { std: "docker" "inspect" "77cc54f42281737d877abdd0d44593db90fbe4c5d0c1757cda22dd59e64392a3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "77cc54f42281737d877abdd0d44593db90fbe4c5d0c1757cda22dd59e64392a3", kill_on_drop: false }`
[INFO] [stdout] 77cc54f42281737d877abdd0d44593db90fbe4c5d0c1757cda22dd59e64392a3
