[INFO] cloning repository https://github.com/uwueviee/bannana-pho
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/uwueviee/bannana-pho" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fuwueviee%2Fbannana-pho", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fuwueviee%2Fbannana-pho'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] b2cff6d4c05ae1d139e07f8d6f5838535e2932bb
[INFO] testing uwueviee/bannana-pho against 1.99.0-beta.8+cargoflags=--release for beta-release-1.100-3
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fuwueviee%2Fbannana-pho" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/uwueviee/bannana-pho
[INFO] finished tweaking git repo https://github.com/uwueviee/bannana-pho
[INFO] tweaked toml for git repo https://github.com/uwueviee/bannana-pho written to /workspace/builds/worker-0-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/uwueviee/bannana-pho on toolchain 1.99.0-beta.8
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/uwueviee/bannana-pho already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded utf-8 v0.7.6
[INFO] [stderr]   Downloaded tokio-tungstenite v0.16.1
[INFO] [stderr]   Downloaded tungstenite v0.16.0
[INFO] [stderr]   Downloaded url v2.2.2
[INFO] [stderr]   Downloaded percent-encoding v2.1.0
[INFO] [stderr]   Downloaded httparse v1.6.0
[INFO] [stderr]   Downloaded tokio-macros v1.7.0
[INFO] [stderr]   Downloaded futures-macro v0.3.21
[INFO] [stderr]   Downloaded sha1_smol v1.0.0
[INFO] [stderr]   Downloaded quick-error v1.2.3
[INFO] [stderr]   Downloaded num-derive v0.3.3
[INFO] [stderr]   Downloaded tinyvec_macros v0.1.0
[INFO] [stderr]   Downloaded opaque-debug v0.3.0
[INFO] [stderr]   Downloaded block-buffer v0.9.0
[INFO] [stderr]   Downloaded scopeguard v1.1.0
[INFO] [stderr]   Downloaded hermit-abi v0.1.19
[INFO] [stderr]   Downloaded futures-core v0.3.21
[INFO] [stderr]   Downloaded block-buffer v0.10.2
[INFO] [stderr]   Downloaded sha1 v0.6.1
[INFO] [stderr]   Downloaded dtoa v0.4.8
[INFO] [stderr]   Downloaded pretty_env_logger v0.4.0
[INFO] [stderr]   Downloaded num-iter v0.1.42
[INFO] [stderr]   Downloaded matches v0.1.9
[INFO] [stderr]   Downloaded winapi-util v0.1.5
[INFO] [stderr]   Downloaded num v0.4.0
[INFO] [stderr]   Downloaded futures-task v0.3.21
[INFO] [stderr]   Downloaded version_check v0.9.4
[INFO] [stderr]   Downloaded digest v0.9.0
[INFO] [stderr]   Downloaded getrandom v0.2.4
[INFO] [stderr]   Downloaded once_cell v1.9.0
[INFO] [stderr]   Downloaded num_cpus v1.13.1
[INFO] [stderr]   Downloaded memchr v2.3.4
[INFO] [stderr]   Downloaded slab v0.4.5
[INFO] [stderr]   Downloaded futures-sink v0.3.21
[INFO] [stderr]   Downloaded digest v0.10.3
[INFO] [stderr]   Downloaded crypto-common v0.1.3
[INFO] [stderr]   Downloaded serde_repr v0.1.7
[INFO] [stderr]   Downloaded itoa v0.4.8
[INFO] [stderr]   Downloaded env_logger v0.7.1
[INFO] [stderr]   Downloaded termcolor v1.1.2
[INFO] [stderr]   Downloaded humantime v1.3.0
[INFO] [stderr]   Downloaded atty v0.2.14
[INFO] [stderr]   Downloaded num-rational v0.4.0
[INFO] [stderr]   Downloaded form_urlencoded v1.0.1
[INFO] [stderr]   Downloaded thiserror-impl v1.0.30
[INFO] [stderr]   Downloaded unicode-xid v0.2.2
[INFO] [stderr]   Downloaded sha-1 v0.9.8
[INFO] [stderr]   Downloaded cpufeatures v0.2.1
[INFO] [stderr]   Downloaded rand_core v0.6.3
[INFO] [stderr]   Downloaded itoa v1.0.1
[INFO] [stderr]   Downloaded byteorder v1.4.3
[INFO] [stderr]   Downloaded parking_lot_core v0.9.1
[INFO] [stderr]   Downloaded lock_api v0.4.6
[INFO] [stderr]   Downloaded thiserror v1.0.30
[INFO] [stderr]   Downloaded signal-hook-registry v1.4.0
[INFO] [stderr]   Downloaded pin-project-lite v0.2.8
[INFO] [stderr]   Downloaded smallvec v1.8.0
[INFO] [stderr]   Downloaded redox_syscall v0.2.10
[INFO] [stderr]   Downloaded miow v0.3.7
[INFO] [stderr]   Downloaded num-integer v0.1.44
[INFO] [stderr]   Downloaded quote v1.0.15
[INFO] [stderr]   Downloaded wasi v0.10.2+wasi-snapshot-preview1
[INFO] [stderr]   Downloaded ppv-lite86 v0.2.16
[INFO] [stderr]   Downloaded socket2 v0.4.4
[INFO] [stderr]   Downloaded parking_lot v0.12.0
[INFO] [stderr]   Downloaded sha2 v0.10.2
[INFO] [stderr]   Downloaded serde_derive v1.0.136
[INFO] [stderr]   Downloaded ryu v1.0.9
[INFO] [stderr]   Downloaded async-trait v0.1.52
[INFO] [stderr]   Downloaded num-traits v0.2.14
[INFO] [stderr]   Downloaded num-complex v0.4.0
[INFO] [stderr]   Downloaded tinyvec v1.5.1
[INFO] [stderr]   Downloaded unicode-bidi v0.3.7
[INFO] [stderr]   Downloaded proc-macro2 v1.0.36
[INFO] [stderr]   Downloaded generic-array v0.14.5
[INFO] [stderr]   Downloaded typenum v1.15.0
[INFO] [stderr]   Downloaded log v0.4.14
[INFO] [stderr]   Downloaded bytes v1.1.0
[INFO] [stderr]   Downloaded base64 v0.13.0
[INFO] [stderr]   Downloaded serde v1.0.136
[INFO] [stderr]   Downloaded num-bigint v0.4.3
[INFO] [stderr]   Downloaded mio v0.8.0
[INFO] [stderr]   Downloaded unicode-normalization v0.1.19
[INFO] [stderr]   Downloaded http v0.2.6
[INFO] [stderr]   Downloaded aho-corasick v0.7.15
[INFO] [stderr]   Downloaded ntapi v0.3.7
[INFO] [stderr]   Downloaded serde_json v1.0.79
[INFO] [stderr]   Downloaded redis v0.21.5
[INFO] [stderr]   Downloaded combine v4.6.3
[INFO] [stderr]   Downloaded futures-util v0.3.21
[INFO] [stderr]   Downloaded regex v1.4.6
[INFO] [stderr]   Downloaded syn v1.0.86
[INFO] [stderr]   Downloaded regex-syntax v0.6.25
[INFO] [stderr]   Downloaded idna v0.2.3
[INFO] [stderr]   Downloaded libc v0.2.118
[INFO] [stderr]   Downloaded tokio v1.17.0
[INFO] [stderr]   Downloaded windows_aarch64_msvc v0.32.0
[INFO] [stderr]   Downloaded windows_x86_64_msvc v0.32.0
[INFO] [stderr]   Downloaded windows_i686_msvc v0.32.0
[INFO] [stderr]   Downloaded windows_x86_64_gnu v0.32.0
[INFO] [stderr]   Downloaded windows_i686_gnu v0.32.0
[INFO] [stderr]   Downloaded windows-sys v0.32.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] a289a1511c8c4a59353911d77c0667b46170ee63bb13b36abc4bbc4832d39a86
[INFO] running `Command { std: "docker" "start" "a289a1511c8c4a59353911d77c0667b46170ee63bb13b36abc4bbc4832d39a86", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "a289a1511c8c4a59353911d77c0667b46170ee63bb13b36abc4bbc4832d39a86", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "a289a1511c8c4a59353911d77c0667b46170ee63bb13b36abc4bbc4832d39a86" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "a289a1511c8c4a59353911d77c0667b46170ee63bb13b36abc4bbc4832d39a86", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "a289a1511c8c4a59353911d77c0667b46170ee63bb13b36abc4bbc4832d39a86" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "build" "--frozen" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.36
[INFO] [stderr]    Compiling libc v0.2.118
[INFO] [stderr]    Compiling unicode-xid v0.2.2
[INFO] [stderr]    Compiling syn v1.0.86
[INFO] [stderr]    Compiling autocfg v1.1.0
[INFO] [stderr]    Compiling cfg-if v1.0.0
[INFO] [stderr]    Compiling typenum v1.15.0
[INFO] [stderr]    Compiling version_check v0.9.4
[INFO] [stderr]    Compiling memchr v2.3.4
[INFO] [stderr]    Compiling log v0.4.14
[INFO] [stderr]    Compiling tinyvec_macros v0.1.0
[INFO] [stderr]    Compiling tinyvec v1.5.1
[INFO] [stderr]    Compiling matches v0.1.9
[INFO] [stderr]    Compiling num-traits v0.2.14
[INFO] [stderr]    Compiling num-integer v0.1.44
[INFO] [stderr]    Compiling generic-array v0.14.5
[INFO] [stderr]    Compiling bytes v1.1.0
[INFO] [stderr]    Compiling percent-encoding v2.1.0
[INFO] [stderr]    Compiling parking_lot_core v0.9.1
[INFO] [stderr]    Compiling quote v1.0.15
[INFO] [stderr]    Compiling getrandom v0.2.4
[INFO] [stderr]    Compiling unicode-bidi v0.3.7
[INFO] [stderr]    Compiling form_urlencoded v1.0.1
[INFO] [stderr]    Compiling num-bigint v0.4.3
[INFO] [stderr]    Compiling rand_core v0.6.3
[INFO] [stderr]    Compiling futures-core v0.3.21
[INFO] [stderr]    Compiling futures-task v0.3.21
[INFO] [stderr]    Compiling serde_derive v1.0.136
[INFO] [stderr]    Compiling cpufeatures v0.2.1
[INFO] [stderr]    Compiling itoa v1.0.1
[INFO] [stderr]    Compiling scopeguard v1.1.0
[INFO] [stderr]    Compiling ppv-lite86 v0.2.16
[INFO] [stderr]    Compiling smallvec v1.8.0
[INFO] [stderr]    Compiling httparse v1.6.0
[INFO] [stderr]    Compiling unicode-normalization v0.1.19
[INFO] [stderr]    Compiling lock_api v0.4.6
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling aho-corasick v0.7.15
[INFO] [stderr]    Compiling num-iter v0.1.42
[INFO] [stderr]    Compiling num-rational v0.4.0
[INFO] [stderr]    Compiling opaque-debug v0.3.0
[INFO] [stderr]    Compiling pin-project-lite v0.2.8
[INFO] [stderr]    Compiling fnv v1.0.7
[INFO] [stderr]    Compiling regex-syntax v0.6.25
[INFO] [stderr]    Compiling serde v1.0.136
[INFO] [stderr]    Compiling futures-util v0.3.21
[INFO] [stderr]    Compiling quick-error v1.2.3
[INFO] [stderr]    Compiling idna v0.2.3
[INFO] [stderr]    Compiling digest v0.9.0
[INFO] [stderr]    Compiling crypto-common v0.1.3
[INFO] [stderr]    Compiling block-buffer v0.9.0
[INFO] [stderr]    Compiling block-buffer v0.10.2
[INFO] [stderr]    Compiling async-trait v0.1.52
[INFO] [stderr]    Compiling subtle v2.4.1
[INFO] [stderr]    Compiling sha-1 v0.9.8
[INFO] [stderr]    Compiling humantime v1.3.0
[INFO] [stderr]    Compiling digest v0.10.3
[INFO] [stderr]    Compiling url v2.2.2
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling http v0.2.6
[INFO] [stderr]    Compiling parking_lot v0.12.0
[INFO] [stderr]    Compiling regex v1.4.6
[INFO] [stderr]    Compiling socket2 v0.4.4
[INFO] [stderr]    Compiling atty v0.2.14
[INFO] [stderr]    Compiling num_cpus v1.13.1
[INFO] [stderr]    Compiling signal-hook-registry v1.4.0
[INFO] [stderr]    Compiling mio v0.8.0
[INFO] [stderr]    Compiling thiserror-impl v1.0.30
[INFO] [stderr]    Compiling tokio-macros v1.7.0
[INFO] [stderr]    Compiling futures-macro v0.3.21
[INFO] [stderr]    Compiling base64 v0.13.0
[INFO] [stderr]    Compiling sha1_smol v1.0.0
[INFO] [stderr]    Compiling futures-sink v0.3.21
[INFO] [stderr]    Compiling once_cell v1.9.0
[INFO] [stderr]    Compiling thiserror v1.0.30
[INFO] [stderr]    Compiling serde_json v1.0.79
[INFO] [stderr]    Compiling pin-utils v0.1.0
[INFO] [stderr]    Compiling termcolor v1.1.2
[INFO] [stderr]    Compiling slab v0.4.5
[INFO] [stderr]    Compiling byteorder v1.4.3
[INFO] [stderr]    Compiling utf-8 v0.7.6
[INFO] [stderr]    Compiling env_logger v0.7.1
[INFO] [stderr]    Compiling tungstenite v0.16.0
[INFO] [stderr]    Compiling tokio v1.17.0
[INFO] [stderr]    Compiling sha1 v0.6.1
[INFO] [stderr]    Compiling num-complex v0.4.0
[INFO] [stderr]    Compiling combine v4.6.3
[INFO] [stderr]    Compiling itoa v0.4.8
[INFO] [stderr]    Compiling ryu v1.0.9
[INFO] [stderr]    Compiling dtoa v0.4.8
[INFO] [stderr]    Compiling num v0.4.0
[INFO] [stderr]    Compiling pretty_env_logger v0.4.0
[INFO] [stderr]    Compiling serde_repr v0.1.7
[INFO] [stderr]    Compiling num-derive v0.3.3
[INFO] [stderr]    Compiling hmac v0.12.1
[INFO] [stderr]    Compiling sha2 v0.10.2
[INFO] [stderr]    Compiling dotenv v0.15.0
[INFO] [stderr]    Compiling hex v0.4.3
[INFO] [stderr]    Compiling tokio-tungstenite v0.16.1
[INFO] [stderr]    Compiling redis v0.21.5
[INFO] [stderr]    Compiling bannana-pho v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `TryStreamExt` and `future`
[INFO] [stdout]   --> src/main.rs:14:20
[INFO] [stdout]    |
[INFO] [stdout] 14 | use futures_util::{future, SinkExt, StreamExt, TryStreamExt};
[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: `client`
[INFO] [stdout]   --> src/main.rs:15:38
[INFO] [stdout]    |
[INFO] [stdout] 15 | use tokio_tungstenite::tungstenite::{client, Message};
[INFO] [stdout]    |                                      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `IDENTIFY`
[INFO] [stdout]   --> src/main.rs:17:34
[INFO] [stdout]    |
[INFO] [stdout] 17 | use crate::opcodes::{get_opcode, IDENTIFY, MessageData, OpCode, SocketMessage};
[INFO] [stdout]    |                                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Connection` and `RedisConnectionInfo`
[INFO] [stdout]   --> src/main.rs:23:21
[INFO] [stdout]    |
[INFO] [stdout] 23 | use redis::{Client, Connection, RedisConnectionInfo};
[INFO] [stdout]    |                     ^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde_json::Value::Array`
[INFO] [stdout]   --> src/main.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 25 | use serde_json::Value::Array;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::any::Any`
[INFO] [stdout]   --> src/opcodes.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::any::Any;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `num_traits::real::Real`
[INFO] [stdout]   --> src/opcodes.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use num_traits::real::Real;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde_json::Value`
[INFO] [stdout]   --> src/opcodes.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use serde_json::Value;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `HEARTBEAT_ACK` should have an upper camel case name
[INFO] [stdout]   --> src/opcodes.rs:42:5
[INFO] [stdout]    |
[INFO] [stdout] 42 |     HEARTBEAT_ACK = 5,
[INFO] [stdout]    |     ^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `HeartbeatAck`
[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 `HEARTBEAT_ACK` should have an upper camel case name
[INFO] [stdout]    --> src/opcodes.rs:116:5
[INFO] [stdout]     |
[INFO] [stdout] 116 |     HEARTBEAT_ACK {
[INFO] [stdout]     |     ^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `HeartbeatAck`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::any::Any`
[INFO] [stdout]  --> src/infoops.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::any::Any;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `num_traits::real::Real`
[INFO] [stdout]  --> src/infoops.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use num_traits::real::Real;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `CHANNEL_REQ` should have an upper camel case name
[INFO] [stdout]   --> src/infoops.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 |     CHANNEL_REQ = 0,
[INFO] [stdout]    |     ^^^^^^^^^^^ help: convert the identifier to upper camel case: `ChannelReq`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `CHANNEL_ASSIGN` should have an upper camel case name
[INFO] [stdout]   --> src/infoops.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 |     CHANNEL_ASSIGN = 1,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `ChannelAssign`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `CHANNEL_DESTROY` should have an upper camel case name
[INFO] [stdout]   --> src/infoops.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 |     CHANNEL_DESTROY = 2,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `ChannelDestroy`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `VST_CREATE` should have an upper camel case name
[INFO] [stdout]   --> src/infoops.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 |     VST_CREATE = 3,
[INFO] [stdout]    |     ^^^^^^^^^^ help: convert the identifier to upper camel case: `VstCreate`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `VST_DONE` should have an upper camel case name
[INFO] [stdout]   --> src/infoops.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 29 |     VST_DONE = 4,
[INFO] [stdout]    |     ^^^^^^^^ help: convert the identifier to upper camel case: `VstDone`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `VST_DESTROY` should have an upper camel case name
[INFO] [stdout]   --> src/infoops.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 33 |     VST_DESTROY= 5,
[INFO] [stdout]    |     ^^^^^^^^^^^ help: convert the identifier to upper camel case: `VstDestroy`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `VST_UPDATE` should have an upper camel case name
[INFO] [stdout]   --> src/infoops.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 36 |     VST_UPDATE = 6,
[INFO] [stdout]    |     ^^^^^^^^^^ help: convert the identifier to upper camel case: `VstUpdate`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `CHANNEL_REQ` should have an upper camel case name
[INFO] [stdout]   --> src/infoops.rs:45:12
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub struct CHANNEL_REQ {
[INFO] [stdout]    |            ^^^^^^^^^^^ help: convert the identifier to upper camel case: `ChannelReq`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `CHANNEL_ASSIGN` should have an upper camel case name
[INFO] [stdout]   --> src/infoops.rs:55:12
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub struct CHANNEL_ASSIGN {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `ChannelAssign`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `VST_CREATE` should have an upper camel case name
[INFO] [stdout]   --> src/infoops.rs:68:12
[INFO] [stdout]    |
[INFO] [stdout] 68 | pub struct VST_CREATE {
[INFO] [stdout]    |            ^^^^^^^^^^ help: convert the identifier to upper camel case: `VstCreate`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `VST_CREATE` should have an upper camel case name
[INFO] [stdout]   --> src/infoops.rs:84:5
[INFO] [stdout]    |
[INFO] [stdout] 84 |     VST_CREATE(VST_CREATE),
[INFO] [stdout]    |     ^^^^^^^^^^ help: convert the identifier to upper camel case: `VstCreate`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `CHANNEL_REQ` should have an upper camel case name
[INFO] [stdout]   --> src/infoops.rs:90:5
[INFO] [stdout]    |
[INFO] [stdout] 90 |     CHANNEL_REQ(CHANNEL_REQ),
[INFO] [stdout]    |     ^^^^^^^^^^^ help: convert the identifier to upper camel case: `ChannelReq`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `CHANNEL_ASSIGN` should have an upper camel case name
[INFO] [stdout]   --> src/infoops.rs:93:5
[INFO] [stdout]    |
[INFO] [stdout] 93 |     CHANNEL_ASSIGN {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `ChannelAssign`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `CHANNEL_DESTROY` should have an upper camel case name
[INFO] [stdout]    --> src/infoops.rs:106:5
[INFO] [stdout]     |
[INFO] [stdout] 106 |     CHANNEL_DESTROY {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `ChannelDestroy`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `VST_DONE` should have an upper camel case name
[INFO] [stdout]    --> src/infoops.rs:115:5
[INFO] [stdout]     |
[INFO] [stdout] 115 |     VST_DONE {
[INFO] [stdout]     |     ^^^^^^^^ help: convert the identifier to upper camel case: `VstDone`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `VST_DESTROY` should have an upper camel case name
[INFO] [stdout]    --> src/infoops.rs:131:5
[INFO] [stdout]     |
[INFO] [stdout] 131 |     VST_DESTROY {
[INFO] [stdout]     |     ^^^^^^^^^^^ help: convert the identifier to upper camel case: `VstDestroy`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `VST_UPDATE` should have an upper camel case name
[INFO] [stdout]    --> src/infoops.rs:137:5
[INFO] [stdout]     |
[INFO] [stdout] 137 |     VST_UPDATE {
[INFO] [stdout]     |     ^^^^^^^^^^ help: convert the identifier to upper camel case: `VstUpdate`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:86:9
[INFO] [stdout]    |
[INFO] [stdout] 86 |     let mut nonce: String = rand::thread_rng()
[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: unused variable: `err`
[INFO] [stdout]   --> src/main.rs:62:13
[INFO] [stdout]    |
[INFO] [stdout] 62 |             err => error!(target: "initial", "Error accepting connection from {}!", &peer),
[INFO] [stdout]    |             ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CHANNEL_ASSIGN` is never constructed
[INFO] [stdout]   --> src/infoops.rs:55:12
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub struct CHANNEL_ASSIGN {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/opcodes.rs:22:10
[INFO] [stdout]    |
[INFO] [stdout] 22 | #[derive(FromPrimitive, Serialize_repr, Deserialize_repr, PartialEq, Debug)]
[INFO] [stdout]    |          ^------------
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `FromPrimitive` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `_IMPL_NUM_FromPrimitive_FOR_OpCode`
[INFO] [stdout] 23 | #[repr(u8)]
[INFO] [stdout] 24 | pub enum OpCode {
[INFO] [stdout]    |          ------ `OpCode` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `FromPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `FromPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]    = note: this warning originates in the derive macro `FromPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/opcodes.rs:52:10
[INFO] [stdout]    |
[INFO] [stdout] 52 | #[derive(FromPrimitive, Deserialize, Serialize)]
[INFO] [stdout]    |          ^------------
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `FromPrimitive` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `_IMPL_NUM_FromPrimitive_FOR_ErrorCode`
[INFO] [stdout] 53 | pub enum ErrorCode {
[INFO] [stdout]    |          --------- `ErrorCode` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `FromPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `FromPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `FromPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/infoops.rs:10:10
[INFO] [stdout]    |
[INFO] [stdout] 10 | #[derive(FromPrimitive, Serialize_repr, Deserialize_repr, PartialEq, Debug)]
[INFO] [stdout]    |          ^------------
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `FromPrimitive` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `_IMPL_NUM_FromPrimitive_FOR_InfoType`
[INFO] [stdout] 11 | #[repr(u8)]
[INFO] [stdout] 12 | pub enum InfoType {
[INFO] [stdout]    |          -------- `InfoType` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `FromPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `FromPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `FromPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 1m 57s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: redis v0.21.5
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
[INFO] running `Command { std: "docker" "inspect" "a289a1511c8c4a59353911d77c0667b46170ee63bb13b36abc4bbc4832d39a86", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "a289a1511c8c4a59353911d77c0667b46170ee63bb13b36abc4bbc4832d39a86" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen" "--no-run" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling bannana-pho v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `TryStreamExt` and `future`
[INFO] [stdout]   --> src/main.rs:14:20
[INFO] [stdout]    |
[INFO] [stdout] 14 | use futures_util::{future, SinkExt, StreamExt, TryStreamExt};
[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: `client`
[INFO] [stdout]   --> src/main.rs:15:38
[INFO] [stdout]    |
[INFO] [stdout] 15 | use tokio_tungstenite::tungstenite::{client, Message};
[INFO] [stdout]    |                                      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `IDENTIFY`
[INFO] [stdout]   --> src/main.rs:17:34
[INFO] [stdout]    |
[INFO] [stdout] 17 | use crate::opcodes::{get_opcode, IDENTIFY, MessageData, OpCode, SocketMessage};
[INFO] [stdout]    |                                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Connection` and `RedisConnectionInfo`
[INFO] [stdout]   --> src/main.rs:23:21
[INFO] [stdout]    |
[INFO] [stdout] 23 | use redis::{Client, Connection, RedisConnectionInfo};
[INFO] [stdout]    |                     ^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde_json::Value::Array`
[INFO] [stdout]   --> src/main.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 25 | use serde_json::Value::Array;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::any::Any`
[INFO] [stdout]   --> src/opcodes.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::any::Any;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `num_traits::real::Real`
[INFO] [stdout]   --> src/opcodes.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use num_traits::real::Real;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde_json::Value`
[INFO] [stdout]   --> src/opcodes.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use serde_json::Value;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `HEARTBEAT_ACK` should have an upper camel case name
[INFO] [stdout]   --> src/opcodes.rs:42:5
[INFO] [stdout]    |
[INFO] [stdout] 42 |     HEARTBEAT_ACK = 5,
[INFO] [stdout]    |     ^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `HeartbeatAck`
[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 `HEARTBEAT_ACK` should have an upper camel case name
[INFO] [stdout]    --> src/opcodes.rs:116:5
[INFO] [stdout]     |
[INFO] [stdout] 116 |     HEARTBEAT_ACK {
[INFO] [stdout]     |     ^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `HeartbeatAck`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::any::Any`
[INFO] [stdout]  --> src/infoops.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::any::Any;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `num_traits::real::Real`
[INFO] [stdout]  --> src/infoops.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use num_traits::real::Real;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `CHANNEL_REQ` should have an upper camel case name
[INFO] [stdout]   --> src/infoops.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 |     CHANNEL_REQ = 0,
[INFO] [stdout]    |     ^^^^^^^^^^^ help: convert the identifier to upper camel case: `ChannelReq`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `CHANNEL_ASSIGN` should have an upper camel case name
[INFO] [stdout]   --> src/infoops.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 |     CHANNEL_ASSIGN = 1,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `ChannelAssign`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `CHANNEL_DESTROY` should have an upper camel case name
[INFO] [stdout]   --> src/infoops.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 |     CHANNEL_DESTROY = 2,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `ChannelDestroy`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `VST_CREATE` should have an upper camel case name
[INFO] [stdout]   --> src/infoops.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 |     VST_CREATE = 3,
[INFO] [stdout]    |     ^^^^^^^^^^ help: convert the identifier to upper camel case: `VstCreate`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `VST_DONE` should have an upper camel case name
[INFO] [stdout]   --> src/infoops.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 29 |     VST_DONE = 4,
[INFO] [stdout]    |     ^^^^^^^^ help: convert the identifier to upper camel case: `VstDone`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `VST_DESTROY` should have an upper camel case name
[INFO] [stdout]   --> src/infoops.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 33 |     VST_DESTROY= 5,
[INFO] [stdout]    |     ^^^^^^^^^^^ help: convert the identifier to upper camel case: `VstDestroy`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `VST_UPDATE` should have an upper camel case name
[INFO] [stdout]   --> src/infoops.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 36 |     VST_UPDATE = 6,
[INFO] [stdout]    |     ^^^^^^^^^^ help: convert the identifier to upper camel case: `VstUpdate`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `CHANNEL_REQ` should have an upper camel case name
[INFO] [stdout]   --> src/infoops.rs:45:12
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub struct CHANNEL_REQ {
[INFO] [stdout]    |            ^^^^^^^^^^^ help: convert the identifier to upper camel case: `ChannelReq`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `CHANNEL_ASSIGN` should have an upper camel case name
[INFO] [stdout]   --> src/infoops.rs:55:12
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub struct CHANNEL_ASSIGN {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `ChannelAssign`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `VST_CREATE` should have an upper camel case name
[INFO] [stdout]   --> src/infoops.rs:68:12
[INFO] [stdout]    |
[INFO] [stdout] 68 | pub struct VST_CREATE {
[INFO] [stdout]    |            ^^^^^^^^^^ help: convert the identifier to upper camel case: `VstCreate`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `VST_CREATE` should have an upper camel case name
[INFO] [stdout]   --> src/infoops.rs:84:5
[INFO] [stdout]    |
[INFO] [stdout] 84 |     VST_CREATE(VST_CREATE),
[INFO] [stdout]    |     ^^^^^^^^^^ help: convert the identifier to upper camel case: `VstCreate`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `CHANNEL_REQ` should have an upper camel case name
[INFO] [stdout]   --> src/infoops.rs:90:5
[INFO] [stdout]    |
[INFO] [stdout] 90 |     CHANNEL_REQ(CHANNEL_REQ),
[INFO] [stdout]    |     ^^^^^^^^^^^ help: convert the identifier to upper camel case: `ChannelReq`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `CHANNEL_ASSIGN` should have an upper camel case name
[INFO] [stdout]   --> src/infoops.rs:93:5
[INFO] [stdout]    |
[INFO] [stdout] 93 |     CHANNEL_ASSIGN {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `ChannelAssign`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `CHANNEL_DESTROY` should have an upper camel case name
[INFO] [stdout]    --> src/infoops.rs:106:5
[INFO] [stdout]     |
[INFO] [stdout] 106 |     CHANNEL_DESTROY {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `ChannelDestroy`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `VST_DONE` should have an upper camel case name
[INFO] [stdout]    --> src/infoops.rs:115:5
[INFO] [stdout]     |
[INFO] [stdout] 115 |     VST_DONE {
[INFO] [stdout]     |     ^^^^^^^^ help: convert the identifier to upper camel case: `VstDone`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `VST_DESTROY` should have an upper camel case name
[INFO] [stdout]    --> src/infoops.rs:131:5
[INFO] [stdout]     |
[INFO] [stdout] 131 |     VST_DESTROY {
[INFO] [stdout]     |     ^^^^^^^^^^^ help: convert the identifier to upper camel case: `VstDestroy`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `VST_UPDATE` should have an upper camel case name
[INFO] [stdout]    --> src/infoops.rs:137:5
[INFO] [stdout]     |
[INFO] [stdout] 137 |     VST_UPDATE {
[INFO] [stdout]     |     ^^^^^^^^^^ help: convert the identifier to upper camel case: `VstUpdate`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:86:9
[INFO] [stdout]    |
[INFO] [stdout] 86 |     let mut nonce: String = rand::thread_rng()
[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: unused variable: `err`
[INFO] [stdout]   --> src/main.rs:62:13
[INFO] [stdout]    |
[INFO] [stdout] 62 |             err => error!(target: "initial", "Error accepting connection from {}!", &peer),
[INFO] [stdout]    |             ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CHANNEL_ASSIGN` is never constructed
[INFO] [stdout]   --> src/infoops.rs:55:12
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub struct CHANNEL_ASSIGN {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/opcodes.rs:22:10
[INFO] [stdout]    |
[INFO] [stdout] 22 | #[derive(FromPrimitive, Serialize_repr, Deserialize_repr, PartialEq, Debug)]
[INFO] [stdout]    |          ^------------
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `FromPrimitive` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `_IMPL_NUM_FromPrimitive_FOR_OpCode`
[INFO] [stdout] 23 | #[repr(u8)]
[INFO] [stdout] 24 | pub enum OpCode {
[INFO] [stdout]    |          ------ `OpCode` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `FromPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `FromPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]    = note: this warning originates in the derive macro `FromPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/opcodes.rs:52:10
[INFO] [stdout]    |
[INFO] [stdout] 52 | #[derive(FromPrimitive, Deserialize, Serialize)]
[INFO] [stdout]    |          ^------------
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `FromPrimitive` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `_IMPL_NUM_FromPrimitive_FOR_ErrorCode`
[INFO] [stdout] 53 | pub enum ErrorCode {
[INFO] [stdout]    |          --------- `ErrorCode` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `FromPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `FromPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `FromPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/infoops.rs:10:10
[INFO] [stdout]    |
[INFO] [stdout] 10 | #[derive(FromPrimitive, Serialize_repr, Deserialize_repr, PartialEq, Debug)]
[INFO] [stdout]    |          ^------------
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `FromPrimitive` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `_IMPL_NUM_FromPrimitive_FOR_InfoType`
[INFO] [stdout] 11 | #[repr(u8)]
[INFO] [stdout] 12 | pub enum InfoType {
[INFO] [stdout]    |          -------- `InfoType` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `FromPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `FromPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `FromPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 1.91s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: redis v0.21.5
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
[INFO] running `Command { std: "docker" "inspect" "a289a1511c8c4a59353911d77c0667b46170ee63bb13b36abc4bbc4832d39a86", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "a289a1511c8c4a59353911d77c0667b46170ee63bb13b36abc4bbc4832d39a86" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen" "--release", kill_on_drop: false }`
[INFO] [stderr] warning: unused imports: `TryStreamExt` and `future`
[INFO] [stderr]   --> src/main.rs:14:20
[INFO] [stderr]    |
[INFO] [stderr] 14 | use futures_util::{future, SinkExt, StreamExt, TryStreamExt};
[INFO] [stderr]    |                    ^^^^^^                      ^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `client`
[INFO] [stderr]   --> src/main.rs:15:38
[INFO] [stderr]    |
[INFO] [stderr] 15 | use tokio_tungstenite::tungstenite::{client, Message};
[INFO] [stderr]    |                                      ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `IDENTIFY`
[INFO] [stderr]   --> src/main.rs:17:34
[INFO] [stderr]    |
[INFO] [stderr] 17 | use crate::opcodes::{get_opcode, IDENTIFY, MessageData, OpCode, SocketMessage};
[INFO] [stderr]    |                                  ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Connection` and `RedisConnectionInfo`
[INFO] [stderr]   --> src/main.rs:23:21
[INFO] [stderr]    |
[INFO] [stderr] 23 | use redis::{Client, Connection, RedisConnectionInfo};
[INFO] [stderr]    |                     ^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `serde_json::Value::Array`
[INFO] [stderr]   --> src/main.rs:25:5
[INFO] [stderr]    |
[INFO] [stderr] 25 | use serde_json::Value::Array;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::any::Any`
[INFO] [stderr]   --> src/opcodes.rs:13:5
[INFO] [stderr]    |
[INFO] [stderr] 13 | use std::any::Any;
[INFO] [stderr]    |     ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `num_traits::real::Real`
[INFO] [stderr]   --> src/opcodes.rs:14:5
[INFO] [stderr]    |
[INFO] [stderr] 14 | use num_traits::real::Real;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `serde_json::Value`
[INFO] [stderr]   --> src/opcodes.rs:16:5
[INFO] [stderr]    |
[INFO] [stderr] 16 | use serde_json::Value;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variant `HEARTBEAT_ACK` should have an upper camel case name
[INFO] [stderr]   --> src/opcodes.rs:42:5
[INFO] [stderr]    |
[INFO] [stderr] 42 |     HEARTBEAT_ACK = 5,
[INFO] [stderr]    |     ^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `HeartbeatAck`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variant `HEARTBEAT_ACK` should have an upper camel case name
[INFO] [stderr]    --> src/opcodes.rs:116:5
[INFO] [stderr]     |
[INFO] [stderr] 116 |     HEARTBEAT_ACK {
[INFO] [stderr]     |     ^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `HeartbeatAck`
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::any::Any`
[INFO] [stderr]  --> src/infoops.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use std::any::Any;
[INFO] [stderr]   |     ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `num_traits::real::Real`
[INFO] [stderr]  --> src/infoops.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use num_traits::real::Real;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variant `CHANNEL_REQ` should have an upper camel case name
[INFO] [stderr]   --> src/infoops.rs:14:5
[INFO] [stderr]    |
[INFO] [stderr] 14 |     CHANNEL_REQ = 0,
[INFO] [stderr]    |     ^^^^^^^^^^^ help: convert the identifier to upper camel case: `ChannelReq`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `CHANNEL_ASSIGN` should have an upper camel case name
[INFO] [stderr]   --> src/infoops.rs:17:5
[INFO] [stderr]    |
[INFO] [stderr] 17 |     CHANNEL_ASSIGN = 1,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `ChannelAssign`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `CHANNEL_DESTROY` should have an upper camel case name
[INFO] [stderr]   --> src/infoops.rs:21:5
[INFO] [stderr]    |
[INFO] [stderr] 21 |     CHANNEL_DESTROY = 2,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `ChannelDestroy`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `VST_CREATE` should have an upper camel case name
[INFO] [stderr]   --> src/infoops.rs:24:5
[INFO] [stderr]    |
[INFO] [stderr] 24 |     VST_CREATE = 3,
[INFO] [stderr]    |     ^^^^^^^^^^ help: convert the identifier to upper camel case: `VstCreate`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `VST_DONE` should have an upper camel case name
[INFO] [stderr]   --> src/infoops.rs:29:5
[INFO] [stderr]    |
[INFO] [stderr] 29 |     VST_DONE = 4,
[INFO] [stderr]    |     ^^^^^^^^ help: convert the identifier to upper camel case: `VstDone`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `VST_DESTROY` should have an upper camel case name
[INFO] [stderr]   --> src/infoops.rs:33:5
[INFO] [stderr]    |
[INFO] [stderr] 33 |     VST_DESTROY= 5,
[INFO] [stderr]    |     ^^^^^^^^^^^ help: convert the identifier to upper camel case: `VstDestroy`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `VST_UPDATE` should have an upper camel case name
[INFO] [stderr]   --> src/infoops.rs:36:5
[INFO] [stderr]    |
[INFO] [stderr] 36 |     VST_UPDATE = 6,
[INFO] [stderr]    |     ^^^^^^^^^^ help: convert the identifier to upper camel case: `VstUpdate`
[INFO] [stderr] 
[INFO] [stderr] warning: type `CHANNEL_REQ` should have an upper camel case name
[INFO] [stderr]   --> src/infoops.rs:45:12
[INFO] [stderr]    |
[INFO] [stderr] 45 | pub struct CHANNEL_REQ {
[INFO] [stderr]    |            ^^^^^^^^^^^ help: convert the identifier to upper camel case: `ChannelReq`
[INFO] [stderr] 
[INFO] [stderr] warning: type `CHANNEL_ASSIGN` should have an upper camel case name
[INFO] [stderr]   --> src/infoops.rs:55:12
[INFO] [stderr]    |
[INFO] [stderr] 55 | pub struct CHANNEL_ASSIGN {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `ChannelAssign`
[INFO] [stderr] 
[INFO] [stderr] warning: type `VST_CREATE` should have an upper camel case name
[INFO] [stderr]   --> src/infoops.rs:68:12
[INFO] [stderr]    |
[INFO] [stderr] 68 | pub struct VST_CREATE {
[INFO] [stderr]    |            ^^^^^^^^^^ help: convert the identifier to upper camel case: `VstCreate`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `VST_CREATE` should have an upper camel case name
[INFO] [stderr]   --> src/infoops.rs:84:5
[INFO] [stderr]    |
[INFO] [stderr] 84 |     VST_CREATE(VST_CREATE),
[INFO] [stderr]    |     ^^^^^^^^^^ help: convert the identifier to upper camel case: `VstCreate`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `CHANNEL_REQ` should have an upper camel case name
[INFO] [stderr]   --> src/infoops.rs:90:5
[INFO] [stderr]    |
[INFO] [stderr] 90 |     CHANNEL_REQ(CHANNEL_REQ),
[INFO] [stderr]    |     ^^^^^^^^^^^ help: convert the identifier to upper camel case: `ChannelReq`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `CHANNEL_ASSIGN` should have an upper camel case name
[INFO] [stderr]   --> src/infoops.rs:93:5
[INFO] [stderr]    |
[INFO] [stderr] 93 |     CHANNEL_ASSIGN {
[INFO] [stderr]    |     ^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `ChannelAssign`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `CHANNEL_DESTROY` should have an upper camel case name
[INFO] [stderr]    --> src/infoops.rs:106:5
[INFO] [stderr]     |
[INFO] [stderr] 106 |     CHANNEL_DESTROY {
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `ChannelDestroy`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `VST_DONE` should have an upper camel case name
[INFO] [stderr]    --> src/infoops.rs:115:5
[INFO] [stderr]     |
[INFO] [stderr] 115 |     VST_DONE {
[INFO] [stderr]     |     ^^^^^^^^ help: convert the identifier to upper camel case: `VstDone`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `VST_DESTROY` should have an upper camel case name
[INFO] [stderr]    --> src/infoops.rs:131:5
[INFO] [stderr]     |
[INFO] [stderr] 131 |     VST_DESTROY {
[INFO] [stderr]     |     ^^^^^^^^^^^ help: convert the identifier to upper camel case: `VstDestroy`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `VST_UPDATE` should have an upper camel case name
[INFO] [stderr]    --> src/infoops.rs:137:5
[INFO] [stderr]     |
[INFO] [stderr] 137 |     VST_UPDATE {
[INFO] [stderr]     |     ^^^^^^^^^^ help: convert the identifier to upper camel case: `VstUpdate`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/main.rs:86:9
[INFO] [stderr]    |
[INFO] [stderr] 86 |     let mut nonce: String = rand::thread_rng()
[INFO] [stderr]    |         ----^^^^^
[INFO] [stderr]    |         |
[INFO] [stderr]    |         help: remove this `mut`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `err`
[INFO] [stderr]   --> src/main.rs:62:13
[INFO] [stderr]    |
[INFO] [stderr] 62 |             err => error!(target: "initial", "Error accepting connection from {}!", &peer),
[INFO] [stderr]    |             ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: struct `CHANNEL_ASSIGN` is never constructed
[INFO] [stderr]   --> src/infoops.rs:55:12
[INFO] [stderr]    |
[INFO] [stderr] 55 | pub struct CHANNEL_ASSIGN {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]   --> src/opcodes.rs:22:10
[INFO] [stderr]    |
[INFO] [stderr] 22 | #[derive(FromPrimitive, Serialize_repr, Deserialize_repr, PartialEq, Debug)]
[INFO] [stderr]    |          ^------------
[INFO] [stderr]    |          |
[INFO] [stderr]    |          `FromPrimitive` is not local
[INFO] [stderr]    |          move the `impl` block outside of this constant `_IMPL_NUM_FromPrimitive_FOR_OpCode`
[INFO] [stderr] 23 | #[repr(u8)]
[INFO] [stderr] 24 | pub enum OpCode {
[INFO] [stderr]    |          ------ `OpCode` is not local
[INFO] [stderr]    |
[INFO] [stderr]    = note: the derive macro `FromPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]    = note: the derive macro `FromPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stderr]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stderr]    = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stderr]    = note: this warning originates in the derive macro `FromPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]   --> src/opcodes.rs:52:10
[INFO] [stderr]    |
[INFO] [stderr] 52 | #[derive(FromPrimitive, Deserialize, Serialize)]
[INFO] [stderr]    |          ^------------
[INFO] [stderr]    |          |
[INFO] [stderr]    |          `FromPrimitive` is not local
[INFO] [stderr]    |          move the `impl` block outside of this constant `_IMPL_NUM_FromPrimitive_FOR_ErrorCode`
[INFO] [stderr] 53 | pub enum ErrorCode {
[INFO] [stderr]    |          --------- `ErrorCode` is not local
[INFO] [stderr]    |
[INFO] [stderr]    = note: the derive macro `FromPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]    = note: the derive macro `FromPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stderr]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stderr]    = note: this warning originates in the derive macro `FromPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stderr]   --> src/infoops.rs:10:10
[INFO] [stderr]    |
[INFO] [stderr] 10 | #[derive(FromPrimitive, Serialize_repr, Deserialize_repr, PartialEq, Debug)]
[INFO] [stderr]    |          ^------------
[INFO] [stderr]    |          |
[INFO] [stderr]    |          `FromPrimitive` is not local
[INFO] [stderr]    |          move the `impl` block outside of this constant `_IMPL_NUM_FromPrimitive_FOR_InfoType`
[INFO] [stderr] 11 | #[repr(u8)]
[INFO] [stderr] 12 | pub enum InfoType {
[INFO] [stderr]    |          -------- `InfoType` is not local
[INFO] [stderr]    |
[INFO] [stderr]    = note: the derive macro `FromPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stderr]    = note: the derive macro `FromPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stderr]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stderr]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stderr]    = note: this warning originates in the derive macro `FromPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `bannana-pho` (bin "bannana-pho" test) generated 35 warnings (run `cargo fix --bin "bannana-pho" -p bannana-pho --tests` to apply 12 suggestions)
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 0.11s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: redis v0.21.5
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/release/deps/bannana_pho-a8378ae1545eeb80)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "a289a1511c8c4a59353911d77c0667b46170ee63bb13b36abc4bbc4832d39a86", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a289a1511c8c4a59353911d77c0667b46170ee63bb13b36abc4bbc4832d39a86", kill_on_drop: false }`
[INFO] [stdout] a289a1511c8c4a59353911d77c0667b46170ee63bb13b36abc4bbc4832d39a86
