[INFO] cloning repository https://github.com/fakeNetflix/twitter-repo-rpc-perf
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/fakeNetflix/twitter-repo-rpc-perf" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FfakeNetflix%2Ftwitter-repo-rpc-perf", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FfakeNetflix%2Ftwitter-repo-rpc-perf'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 2de82b3705322f470fba44cd31135ad91e694d88
[INFO] checking fakeNetflix/twitter-repo-rpc-perf against master#6eda7419e71fdbc1185ed5be7e6bff1a474ab5cd for pr-153721
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FfakeNetflix%2Ftwitter-repo-rpc-perf" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/fakeNetflix/twitter-repo-rpc-perf
[INFO] finished tweaking git repo https://github.com/fakeNetflix/twitter-repo-rpc-perf
[INFO] tweaked toml for git repo https://github.com/fakeNetflix/twitter-repo-rpc-perf written to /workspace/builds/worker-6-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/fakeNetflix/twitter-repo-rpc-perf on toolchain 6eda7419e71fdbc1185ed5be7e6bff1a474ab5cd
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+6eda7419e71fdbc1185ed5be7e6bff1a474ab5cd" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/fakeNetflix/twitter-repo-rpc-perf 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" "+6eda7419e71fdbc1185ed5be7e6bff1a474ab5cd" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded rand_distr v0.2.1
[INFO] [stderr]   Downloaded rand_core v0.5.0
[INFO] [stderr]   Downloaded getrandom v0.1.7
[INFO] [stderr]   Downloaded rusttype v0.7.7
[INFO] [stderr]   Downloaded cast v0.2.2
[INFO] [stderr]   Downloaded rand_xoshiro v0.1.0
[INFO] [stderr]   Downloaded spin v0.5.0
[INFO] [stderr]   Downloaded hsl v0.1.1
[INFO] [stderr]   Downloaded criterion-plot v0.3.1
[INFO] [stderr]   Downloaded tinytemplate v1.0.2
[INFO] [stderr]   Downloaded csv-core v0.1.6
[INFO] [stderr]   Downloaded serde_derive v1.0.98
[INFO] [stderr]   Downloaded cc v1.0.38
[INFO] [stderr]   Downloaded evmap v4.2.3
[INFO] [stderr]   Downloaded toml v0.5.1
[INFO] [stderr]   Downloaded serde v1.0.98
[INFO] [stderr]   Downloaded criterion v0.2.11
[INFO] [stderr]   Downloaded itertools v0.8.0
[INFO] [stderr]   Downloaded chrono v0.4.7
[INFO] [stderr]   Downloaded syn v0.15.42
[INFO] [stderr]   Downloaded libc v0.2.60
[INFO] [stderr]   Downloaded bstr v0.2.6
[INFO] [stderr]   Downloaded csv v1.1.1
[INFO] [stderr]   Downloaded dejavu v2.37.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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:3e793bdf10248eb2ddbd6b0faebed8155c11b4589982e2893733958d93e8d540" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 4a7eaceb1016d1f90c0a4e0578fa6bfbd7db9cb112d0a48a7c37dc4f7117532e
[INFO] running `Command { std: "docker" "start" "4a7eaceb1016d1f90c0a4e0578fa6bfbd7db9cb112d0a48a7c37dc4f7117532e", 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" "4a7eaceb1016d1f90c0a4e0578fa6bfbd7db9cb112d0a48a7c37dc4f7117532e" "/opt/rustwide/cargo-home/bin/cargo" "+6eda7419e71fdbc1185ed5be7e6bff1a474ab5cd" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "4a7eaceb1016d1f90c0a4e0578fa6bfbd7db9cb112d0a48a7c37dc4f7117532e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "4a7eaceb1016d1f90c0a4e0578fa6bfbd7db9cb112d0a48a7c37dc4f7117532e" "/opt/rustwide/cargo-home/bin/cargo" "+6eda7419e71fdbc1185ed5be7e6bff1a474ab5cd" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.60
[INFO] [stderr]    Compiling autocfg v0.1.5
[INFO] [stderr]     Checking cfg-if v0.1.9
[INFO] [stderr]     Checking rand_core v0.4.0
[INFO] [stderr]    Compiling log v0.4.8
[INFO] [stderr]    Compiling serde v1.0.98
[INFO] [stderr]     Checking smallvec v0.6.10
[INFO] [stderr]    Compiling byteorder v1.3.2
[INFO] [stderr]     Checking lazy_static v1.3.0
[INFO] [stderr]     Checking stable_deref_trait v1.1.1
[INFO] [stderr]     Checking scopeguard v0.3.3
[INFO] [stderr]    Compiling arrayvec v0.4.11
[INFO] [stderr]     Checking nodrop v0.1.13
[INFO] [stderr]    Compiling bitflags v1.1.0
[INFO] [stderr]     Checking ppv-lite86 v0.2.5
[INFO] [stderr]    Compiling semver v0.9.0
[INFO] [stderr]     Checking hashbrown v0.3.1
[INFO] [stderr]     Checking crossbeam-utils v0.6.6
[INFO] [stderr]     Checking owning_ref v0.4.0
[INFO] [stderr]    Compiling syn v0.15.42
[INFO] [stderr]    Compiling memchr v2.2.1
[INFO] [stderr]    Compiling rand_chacha v0.1.1
[INFO] [stderr]     Checking rand_core v0.3.1
[INFO] [stderr]    Compiling rustc_version v0.2.3
[INFO] [stderr]    Compiling rand_pcg v0.1.2
[INFO] [stderr]    Compiling rand v0.6.5
[INFO] [stderr]     Checking rand_xorshift v0.1.1
[INFO] [stderr]     Checking rand_isaac v0.1.1
[INFO] [stderr]     Checking rand_hc v0.1.0
[INFO] [stderr]     Checking rand_jitter v0.1.4
[INFO] [stderr]     Checking lock_api v0.1.5
[INFO] [stderr]    Compiling num-traits v0.2.8
[INFO] [stderr]     Checking c2-chacha v0.2.2
[INFO] [stderr]    Compiling num-integer v0.1.41
[INFO] [stderr]    Compiling build_const v0.2.1
[INFO] [stderr]    Compiling ryu v1.0.0
[INFO] [stderr]     Checking evmap v4.2.3
[INFO] [stderr]     Checking scopeguard v1.0.0
[INFO] [stderr]     Checking unicode-width v0.1.5
[INFO] [stderr]    Compiling parking_lot_core v0.4.0
[INFO] [stderr]    Compiling memoffset v0.5.1
[INFO] [stderr]     Checking vec_map v0.8.1
[INFO] [stderr]    Compiling rayon-core v1.5.0
[INFO] [stderr]     Checking itoa v0.4.4
[INFO] [stderr]     Checking either v1.5.2
[INFO] [stderr]     Checking ansi_term v0.11.0
[INFO] [stderr]     Checking strsim v0.8.0
[INFO] [stderr]     Checking textwrap v0.11.0
[INFO] [stderr]     Checking regex-automata v0.1.8
[INFO] [stderr]     Checking crossbeam-queue v0.1.2
[INFO] [stderr]    Compiling num-iter v0.1.39
[INFO] [stderr]     Checking adler32 v1.0.3
[INFO] [stderr]     Checking cast v0.2.2
[INFO] [stderr]    Compiling crc v1.8.1
[INFO] [stderr]     Checking same-file v1.0.5
[INFO] [stderr]     Checking itertools v0.8.0
[INFO] [stderr]     Checking stb_truetype v0.2.6
[INFO] [stderr]     Checking rand_xoshiro v0.1.0
[INFO] [stderr]     Checking inflate v0.4.5
[INFO] [stderr]     Checking deflate v0.7.20
[INFO] [stderr]     Checking crossbeam-epoch v0.7.2
[INFO] [stderr]     Checking matches v0.1.8
[INFO] [stderr]     Checking unicode-normalization v0.1.8
[INFO] [stderr]     Checking dejavu v2.37.0
[INFO] [stderr]     Checking crossbeam-deque v0.6.3
[INFO] [stderr]     Checking walkdir v2.2.9
[INFO] [stderr]     Checking unicode-bidi v0.3.4
[INFO] [stderr]     Checking hsl v0.1.1
[INFO] [stderr]     Checking percent-encoding v1.0.1
[INFO] [stderr]     Checking slab v0.4.2
[INFO] [stderr]     Checking ascii v0.8.7
[INFO] [stderr]     Checking chunked_transfer v0.3.1
[INFO] [stderr]     Checking time v0.1.42
[INFO] [stderr]     Checking rand_os v0.1.3
[INFO] [stderr]     Checking getrandom v0.1.7
[INFO] [stderr]     Checking iovec v0.1.2
[INFO] [stderr]     Checking atty v0.2.13
[INFO] [stderr]     Checking num_cpus v1.10.1
[INFO] [stderr]     Checking net2 v0.2.33
[INFO] [stderr]     Checking clap v2.33.0
[INFO] [stderr]     Checking bytes v0.4.12
[INFO] [stderr]     Checking rand_core v0.5.0
[INFO] [stderr]     Checking logger v0.1.0 (/opt/rustwide/workdir/logger)
[INFO] [stderr]     Checking timer v0.1.2 (/opt/rustwide/workdir/timer)
[INFO] [stderr]     Checking buffer v0.1.0 (/opt/rustwide/workdir/buffer)
[INFO] [stderr]     Checking rand_chacha v0.2.1
[INFO] [stderr]     Checking mio v0.6.19
[INFO] [stderr]     Checking approx v0.3.2
[INFO] [stderr]     Checking ordered-float v1.0.2
[INFO] [stderr]     Checking csv-core v0.1.6
[INFO] [stderr]     Checking rayon v1.1.0
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&[u8]` instead of cloning the inner type
[INFO] [stdout]    --> buffer/src/lib.rs:225:32
[INFO] [stdout]     |
[INFO] [stdout] 225 |             let check = message.clone();
[INFO] [stdout]     |                                ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(suspicious_double_ref_op)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking rand v0.7.0
[INFO] [stderr]     Checking rusttype v0.7.7
[INFO] [stderr]     Checking criterion-plot v0.3.1
[INFO] [stderr]     Checking chrono v0.4.7
[INFO] [stderr]     Checking idna v0.1.5
[INFO] [stderr]     Checking png v0.14.1
[INFO] [stderr]     Checking parking_lot v0.7.1
[INFO] [stderr]     Checking url v1.7.2
[INFO] [stderr]    Compiling serde_derive v1.0.98
[INFO] [stderr]     Checking tiny_http v0.6.2
[INFO] [stderr]     Checking rand_distr v0.2.1
[INFO] [stderr]     Checking atomics v0.2.0 (/opt/rustwide/workdir/atomics)
[INFO] [stderr]     Checking serde_json v1.0.40
[INFO] [stderr]     Checking bstr v0.2.6
[INFO] [stderr]     Checking toml v0.5.1
[INFO] [stdout] warning: unused import: `self::atomic_i16::*`
[INFO] [stdout]   --> atomics/src/atomic_counter/mod.rs:18:9
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub use self::atomic_i16::*;
[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: `self::atomic_i32::*`
[INFO] [stdout]   --> atomics/src/atomic_counter/mod.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub use self::atomic_i32::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self::atomic_i64::*`
[INFO] [stdout]   --> atomics/src/atomic_counter/mod.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub use self::atomic_i64::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self::atomic_i8::*`
[INFO] [stdout]   --> atomics/src/atomic_counter/mod.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub use self::atomic_i8::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self::atomic_isize::*`
[INFO] [stdout]   --> atomics/src/atomic_counter/mod.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub use self::atomic_isize::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self::atomic_u16::*`
[INFO] [stdout]   --> atomics/src/atomic_counter/mod.rs:23:9
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub use self::atomic_u16::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self::atomic_u32::*`
[INFO] [stdout]   --> atomics/src/atomic_counter/mod.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub use self::atomic_u32::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self::atomic_u64::*`
[INFO] [stdout]   --> atomics/src/atomic_counter/mod.rs:25:9
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub use self::atomic_u64::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self::atomic_u8::*`
[INFO] [stdout]   --> atomics/src/atomic_counter/mod.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub use self::atomic_u8::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self::atomic_usize::*`
[INFO] [stdout]   --> atomics/src/atomic_counter/mod.rs:27:9
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub use self::atomic_usize::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self::atomic_i16::*`
[INFO] [stdout]   --> atomics/src/atomic_counter/mod.rs:18:9
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub use self::atomic_i16::*;
[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: `self::atomic_i32::*`
[INFO] [stdout]   --> atomics/src/atomic_counter/mod.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub use self::atomic_i32::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self::atomic_i64::*`
[INFO] [stdout]   --> atomics/src/atomic_counter/mod.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub use self::atomic_i64::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self::atomic_i8::*`
[INFO] [stdout]   --> atomics/src/atomic_counter/mod.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub use self::atomic_i8::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self::atomic_isize::*`
[INFO] [stdout]   --> atomics/src/atomic_counter/mod.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub use self::atomic_isize::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self::atomic_u16::*`
[INFO] [stdout]   --> atomics/src/atomic_counter/mod.rs:23:9
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub use self::atomic_u16::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self::atomic_u32::*`
[INFO] [stdout]   --> atomics/src/atomic_counter/mod.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub use self::atomic_u32::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self::atomic_u64::*`
[INFO] [stdout]   --> atomics/src/atomic_counter/mod.rs:25:9
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub use self::atomic_u64::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self::atomic_u8::*`
[INFO] [stdout]   --> atomics/src/atomic_counter/mod.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub use self::atomic_u8::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self::atomic_usize::*`
[INFO] [stdout]   --> atomics/src/atomic_counter/mod.rs:27:9
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub use self::atomic_usize::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::Atomic::<bool>::compare_and_swap`: Use `compare_exchange` or `compare_exchange_weak` instead
[INFO] [stdout]   --> atomics/src/atomic_primitive/atomic_bool.rs:50:20
[INFO] [stdout]    |
[INFO] [stdout] 50 |         self.inner.compare_and_swap(current, new, order)
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::Atomic::<i16>::compare_and_swap`: Use `compare_exchange` or `compare_exchange_weak` instead
[INFO] [stdout]   --> atomics/src/atomic_primitive/atomic_i16.rs:50:20
[INFO] [stdout]    |
[INFO] [stdout] 50 |         self.inner.compare_and_swap(current, new, order)
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::Atomic::<i32>::compare_and_swap`: Use `compare_exchange` or `compare_exchange_weak` instead
[INFO] [stdout]   --> atomics/src/atomic_primitive/atomic_i32.rs:50:20
[INFO] [stdout]    |
[INFO] [stdout] 50 |         self.inner.compare_and_swap(current, new, order)
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::Atomic::<i64>::compare_and_swap`: Use `compare_exchange` or `compare_exchange_weak` instead
[INFO] [stdout]   --> atomics/src/atomic_primitive/atomic_i64.rs:50:20
[INFO] [stdout]    |
[INFO] [stdout] 50 |         self.inner.compare_and_swap(current, new, order)
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::Atomic::<i8>::compare_and_swap`: Use `compare_exchange` or `compare_exchange_weak` instead
[INFO] [stdout]   --> atomics/src/atomic_primitive/atomic_i8.rs:50:20
[INFO] [stdout]    |
[INFO] [stdout] 50 |         self.inner.compare_and_swap(current, new, order)
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::Atomic::<isize>::compare_and_swap`: Use `compare_exchange` or `compare_exchange_weak` instead
[INFO] [stdout]   --> atomics/src/atomic_primitive/atomic_isize.rs:50:20
[INFO] [stdout]    |
[INFO] [stdout] 50 |         self.inner.compare_and_swap(current, new, order)
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::Atomic::<*mut T>::compare_and_swap`: Use `compare_exchange` or `compare_exchange_weak` instead
[INFO] [stdout]   --> atomics/src/atomic_primitive/atomic_ptr.rs:47:20
[INFO] [stdout]    |
[INFO] [stdout] 47 |         self.inner.compare_and_swap(current, new, order)
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::Atomic::<u16>::compare_and_swap`: Use `compare_exchange` or `compare_exchange_weak` instead
[INFO] [stdout]   --> atomics/src/atomic_primitive/atomic_u16.rs:50:20
[INFO] [stdout]    |
[INFO] [stdout] 50 |         self.inner.compare_and_swap(current, new, order)
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::Atomic::<u32>::compare_and_swap`: Use `compare_exchange` or `compare_exchange_weak` instead
[INFO] [stdout]   --> atomics/src/atomic_primitive/atomic_u32.rs:50:20
[INFO] [stdout]    |
[INFO] [stdout] 50 |         self.inner.compare_and_swap(current, new, order)
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::Atomic::<bool>::compare_and_swap`: Use `compare_exchange` or `compare_exchange_weak` instead
[INFO] [stdout]   --> atomics/src/atomic_primitive/atomic_bool.rs:50:20
[INFO] [stdout]    |
[INFO] [stdout] 50 |         self.inner.compare_and_swap(current, new, order)
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::Atomic::<u64>::compare_and_swap`: Use `compare_exchange` or `compare_exchange_weak` instead
[INFO] [stdout]   --> atomics/src/atomic_primitive/atomic_u64.rs:50:20
[INFO] [stdout]    |
[INFO] [stdout] 50 |         self.inner.compare_and_swap(current, new, order)
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::Atomic::<i16>::compare_and_swap`: Use `compare_exchange` or `compare_exchange_weak` instead
[INFO] [stdout]   --> atomics/src/atomic_primitive/atomic_i16.rs:50:20
[INFO] [stdout]    |
[INFO] [stdout] 50 |         self.inner.compare_and_swap(current, new, order)
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::Atomic::<i32>::compare_and_swap`: Use `compare_exchange` or `compare_exchange_weak` instead
[INFO] [stdout]   --> atomics/src/atomic_primitive/atomic_i32.rs:50:20
[INFO] [stdout]    |
[INFO] [stdout] 50 |         self.inner.compare_and_swap(current, new, order)
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::Atomic::<u8>::compare_and_swap`: Use `compare_exchange` or `compare_exchange_weak` instead
[INFO] [stdout]   --> atomics/src/atomic_primitive/atomic_u8.rs:50:20
[INFO] [stdout]    |
[INFO] [stdout] 50 |         self.inner.compare_and_swap(current, new, order)
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::Atomic::<i64>::compare_and_swap`: Use `compare_exchange` or `compare_exchange_weak` instead
[INFO] [stdout]   --> atomics/src/atomic_primitive/atomic_i64.rs:50:20
[INFO] [stdout]    |
[INFO] [stdout] 50 |         self.inner.compare_and_swap(current, new, order)
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::Atomic::<i8>::compare_and_swap`: Use `compare_exchange` or `compare_exchange_weak` instead
[INFO] [stdout]   --> atomics/src/atomic_primitive/atomic_i8.rs:50:20
[INFO] [stdout]    |
[INFO] [stdout] 50 |         self.inner.compare_and_swap(current, new, order)
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::Atomic::<usize>::compare_and_swap`: Use `compare_exchange` or `compare_exchange_weak` instead
[INFO] [stdout]   --> atomics/src/atomic_primitive/atomic_usize.rs:50:20
[INFO] [stdout]    |
[INFO] [stdout] 50 |         self.inner.compare_and_swap(current, new, order)
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::Atomic::<isize>::compare_and_swap`: Use `compare_exchange` or `compare_exchange_weak` instead
[INFO] [stdout]   --> atomics/src/atomic_primitive/atomic_isize.rs:50:20
[INFO] [stdout]    |
[INFO] [stdout] 50 |         self.inner.compare_and_swap(current, new, order)
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::Atomic::<*mut T>::compare_and_swap`: Use `compare_exchange` or `compare_exchange_weak` instead
[INFO] [stdout]   --> atomics/src/atomic_primitive/atomic_ptr.rs:47:20
[INFO] [stdout]    |
[INFO] [stdout] 47 |         self.inner.compare_and_swap(current, new, order)
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::Atomic::<u16>::compare_and_swap`: Use `compare_exchange` or `compare_exchange_weak` instead
[INFO] [stdout]   --> atomics/src/atomic_primitive/atomic_u16.rs:50:20
[INFO] [stdout]    |
[INFO] [stdout] 50 |         self.inner.compare_and_swap(current, new, order)
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::Atomic::<u32>::compare_and_swap`: Use `compare_exchange` or `compare_exchange_weak` instead
[INFO] [stdout]   --> atomics/src/atomic_primitive/atomic_u32.rs:50:20
[INFO] [stdout]    |
[INFO] [stdout] 50 |         self.inner.compare_and_swap(current, new, order)
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::Atomic::<u64>::compare_and_swap`: Use `compare_exchange` or `compare_exchange_weak` instead
[INFO] [stdout]   --> atomics/src/atomic_primitive/atomic_u64.rs:50:20
[INFO] [stdout]    |
[INFO] [stdout] 50 |         self.inner.compare_and_swap(current, new, order)
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::Atomic::<u8>::compare_and_swap`: Use `compare_exchange` or `compare_exchange_weak` instead
[INFO] [stdout]   --> atomics/src/atomic_primitive/atomic_u8.rs:50:20
[INFO] [stdout]    |
[INFO] [stdout] 50 |         self.inner.compare_and_swap(current, new, order)
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::Atomic::<usize>::compare_and_swap`: Use `compare_exchange` or `compare_exchange_weak` instead
[INFO] [stdout]   --> atomics/src/atomic_primitive/atomic_usize.rs:50:20
[INFO] [stdout]    |
[INFO] [stdout] 50 |         self.inner.compare_and_swap(current, new, order)
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]    --> atomics/src/atomic_primitive/atomic_usize.rs:166:12
[INFO] [stdout]     |
[INFO] [stdout] 166 |         if let Ok(value) = usize::try_from(value) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]     = help: consider replacing the `if let` with a `let`
[INFO] [stdout]     = note: `#[warn(irrefutable_let_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]    --> atomics/src/atomic_primitive/atomic_usize.rs:166:12
[INFO] [stdout]     |
[INFO] [stdout] 166 |         if let Ok(value) = usize::try_from(value) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]     = help: consider replacing the `if let` with a `let`
[INFO] [stdout]     = note: `#[warn(irrefutable_let_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking datastructures v0.4.0 (/opt/rustwide/workdir/datastructures)
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]   --> datastructures/src/lib.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub use crate::heatmap::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^ the name `Iter` in the type namespace is first re-exported here
[INFO] [stdout] 15 | pub use crate::histogram::*;
[INFO] [stdout]    |         ------------------- but the name `Iter` in the type namespace is also re-exported here
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(ambiguous_glob_reexports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]   --> datastructures/src/lib.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub use crate::heatmap::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^ the name `Iter` in the type namespace is first re-exported here
[INFO] [stdout] 15 | pub use crate::histogram::*;
[INFO] [stdout]    |         ------------------- but the name `Iter` in the type namespace is also re-exported here
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(ambiguous_glob_reexports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking metrics v0.4.0 (/opt/rustwide/workdir/metrics)
[INFO] [stderr]     Checking waterfall v0.4.0 (/opt/rustwide/workdir/waterfall)
[INFO] [stderr]     Checking ratelimiter v0.3.1 (/opt/rustwide/workdir/ratelimiter)
[INFO] [stderr]     Checking csv v1.1.1
[INFO] [stdout] warning: unexpected `cfg` condition value: `waterfall`
[INFO] [stdout]    --> metrics/src/recorder.rs:150:11
[INFO] [stdout]     |
[INFO] [stdout] 150 |     #[cfg(feature = "waterfall")]
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout]     |
[INFO] [stdout]     = note: no expected values for `feature`
[INFO] [stdout]     = help: consider adding `waterfall` as a feature in `Cargo.toml`
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]     = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around index expression
[INFO] [stdout]    --> waterfall/src/lib.rs:282:43
[INFO] [stdout]     |
[INFO] [stdout] 282 |                     self.buffer[(sy + y)][(sx + x)] = other.buffer[sy][sx];
[INFO] [stdout]     |                                           ^      ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 282 -                     self.buffer[(sy + y)][(sx + x)] = other.buffer[sy][sx];
[INFO] [stdout] 282 +                     self.buffer[(sy + y)][sx + x] = other.buffer[sy][sx];
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around index expression
[INFO] [stdout]    --> waterfall/src/lib.rs:282:33
[INFO] [stdout]     |
[INFO] [stdout] 282 |                     self.buffer[(sy + y)][(sx + x)] = other.buffer[sy][sx];
[INFO] [stdout]     |                                 ^      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 282 -                     self.buffer[(sy + y)][(sx + x)] = other.buffer[sy][sx];
[INFO] [stdout] 282 +                     self.buffer[sy + y][(sx + x)] = other.buffer[sy][sx];
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `waterfall`
[INFO] [stdout]    --> metrics/src/recorder.rs:150:11
[INFO] [stdout]     |
[INFO] [stdout] 150 |     #[cfg(feature = "waterfall")]
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^ help: remove the condition
[INFO] [stdout]     |
[INFO] [stdout]     = note: no expected values for `feature`
[INFO] [stdout]     = help: consider adding `waterfall` as a feature in `Cargo.toml`
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]     = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around index expression
[INFO] [stdout]    --> waterfall/src/lib.rs:282:43
[INFO] [stdout]     |
[INFO] [stdout] 282 |                     self.buffer[(sy + y)][(sx + x)] = other.buffer[sy][sx];
[INFO] [stdout]     |                                           ^      ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 282 -                     self.buffer[(sy + y)][(sx + x)] = other.buffer[sy][sx];
[INFO] [stdout] 282 +                     self.buffer[(sy + y)][sx + x] = other.buffer[sy][sx];
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around index expression
[INFO] [stdout]    --> waterfall/src/lib.rs:282:33
[INFO] [stdout]     |
[INFO] [stdout] 282 |                     self.buffer[(sy + y)][(sx + x)] = other.buffer[sy][sx];
[INFO] [stdout]     |                                 ^      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 282 -                     self.buffer[(sy + y)][(sx + x)] = other.buffer[sy][sx];
[INFO] [stdout] 282 +                     self.buffer[sy + y][(sx + x)] = other.buffer[sy][sx];
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking codec v0.2.0 (/opt/rustwide/workdir/codec)
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]   --> codec/src/echo/mod.rs:56:43
[INFO] [stdout]    |
[INFO] [stdout] 56 |         let crc_bytes: [u8; 4] = unsafe { transmute(crc_calc.to_be()) };
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: there's also `to_le_bytes` and `to_be_bytes` if you expect a particular byte order
[INFO] [stdout]    = note: `#[warn(unnecessary_transmutes)]` on by default
[INFO] [stdout] help: replace this with
[INFO] [stdout]    |
[INFO] [stdout] 56 -         let crc_bytes: [u8; 4] = unsafe { transmute(crc_calc.to_be()) };
[INFO] [stdout] 56 +         let crc_bytes: [u8; 4] = unsafe { u32::to_ne_bytes(crc_calc.to_be()) };
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking tinytemplate v1.0.2
[INFO] [stderr]     Checking criterion v0.2.11
[INFO] [stderr]     Checking rpc-perf v3.1.0-pre (/opt/rustwide/workdir/rpc-perf)
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> rpc-perf/src/config/general.rs:17:24
[INFO] [stdout]    |
[INFO] [stdout] 17 | #[derive(Clone, Debug, Deserialize)]
[INFO] [stdout]    |                        ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `default`, `rustls`, `tls`, and `webpki`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]    --> rpc-perf/src/config/general.rs:265:23
[INFO] [stdout]     |
[INFO] [stdout] 265 | #[derive(Copy, Clone, Deserialize, Debug)]
[INFO] [stdout]     |                       ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected values for `feature` are: `default`, `rustls`, `tls`, and `webpki`
[INFO] [stdout]     = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]     = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]     = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]    --> rpc-perf/src/config/general.rs:281:17
[INFO] [stdout]     |
[INFO] [stdout] 281 | #[derive(Clone, Deserialize, Debug)]
[INFO] [stdout]     |                 ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected values for `feature` are: `default`, `rustls`, `tls`, and `webpki`
[INFO] [stdout]     = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]     = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]     = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> rpc-perf/src/config/mod.rs:36:24
[INFO] [stdout]    |
[INFO] [stdout] 36 | #[derive(Clone, Debug, Deserialize)]
[INFO] [stdout]    |                        ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `default`, `rustls`, `tls`, and `webpki`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> rpc-perf/src/config/mod.rs:75:23
[INFO] [stdout]    |
[INFO] [stdout] 75 | #[derive(Copy, Clone, Deserialize, Debug)]
[INFO] [stdout]    |                       ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `default`, `rustls`, `tls`, and `webpki`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> rpc-perf/src/config/mod.rs:83:24
[INFO] [stdout]    |
[INFO] [stdout] 83 | #[derive(Clone, Debug, Deserialize)]
[INFO] [stdout]    |                        ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `default`, `rustls`, `tls`, and `webpki`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]    --> rpc-perf/src/config/mod.rs:192:24
[INFO] [stdout]     |
[INFO] [stdout] 192 | #[derive(Clone, Debug, Deserialize)]
[INFO] [stdout]     |                        ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected values for `feature` are: `default`, `rustls`, `tls`, and `webpki`
[INFO] [stdout]     = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]     = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]     = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]    --> rpc-perf/src/config/mod.rs:214:24
[INFO] [stdout]     |
[INFO] [stdout] 214 | #[derive(Clone, Debug, Deserialize)]
[INFO] [stdout]     |                        ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected values for `feature` are: `default`, `rustls`, `tls`, and `webpki`
[INFO] [stdout]     = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]     = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]     = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> rpc-perf/src/client/common.rs:39:16
[INFO] [stdout]    |
[INFO] [stdout] 39 |     codec: Box<Codec>,
[INFO] [stdout]    |                ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 39 |     codec: Box<dyn Codec>,
[INFO] [stdout]    |                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> rpc-perf/src/config/general.rs:17:24
[INFO] [stdout]    |
[INFO] [stdout] 17 | #[derive(Clone, Debug, Deserialize)]
[INFO] [stdout]    |                        ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `default`, `rustls`, `tls`, and `webpki`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> rpc-perf/src/client/plain_client.rs:64:41
[INFO] [stdout]    |
[INFO] [stdout] 64 |     fn session(&self, token: Token) -> &Session {
[INFO] [stdout]    |                                         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 64 |     fn session(&self, token: Token) -> &dyn Session {
[INFO] [stdout]    |                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> rpc-perf/src/client/mod.rs:90:41
[INFO] [stdout]    |
[INFO] [stdout] 90 |     fn session(&self, token: Token) -> &Session;
[INFO] [stdout]    |                                         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 90 |     fn session(&self, token: Token) -> &dyn Session;
[INFO] [stdout]    |                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]    --> rpc-perf/src/config/general.rs:265:23
[INFO] [stdout]     |
[INFO] [stdout] 265 | #[derive(Copy, Clone, Deserialize, Debug)]
[INFO] [stdout]     |                       ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected values for `feature` are: `default`, `rustls`, `tls`, and `webpki`
[INFO] [stdout]     = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]     = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]     = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]    --> rpc-perf/src/config/general.rs:281:17
[INFO] [stdout]     |
[INFO] [stdout] 281 | #[derive(Clone, Deserialize, Debug)]
[INFO] [stdout]     |                 ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected values for `feature` are: `default`, `rustls`, `tls`, and `webpki`
[INFO] [stdout]     = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]     = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]     = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> rpc-perf/src/config/mod.rs:36:24
[INFO] [stdout]    |
[INFO] [stdout] 36 | #[derive(Clone, Debug, Deserialize)]
[INFO] [stdout]    |                        ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `default`, `rustls`, `tls`, and `webpki`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> rpc-perf/src/client/plain_client.rs:68:53
[INFO] [stdout]    |
[INFO] [stdout] 68 |     fn session_mut(&mut self, token: Token) -> &mut Session {
[INFO] [stdout]    |                                                     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 68 |     fn session_mut(&mut self, token: Token) -> &mut dyn Session {
[INFO] [stdout]    |                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> rpc-perf/src/client/mod.rs:91:53
[INFO] [stdout]    |
[INFO] [stdout] 91 |     fn session_mut(&mut self, token: Token) -> &mut Session;
[INFO] [stdout]    |                                                     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 91 |     fn session_mut(&mut self, token: Token) -> &mut dyn Session;
[INFO] [stdout]    |                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> rpc-perf/src/config/mod.rs:75:23
[INFO] [stdout]    |
[INFO] [stdout] 75 | #[derive(Copy, Clone, Deserialize, Debug)]
[INFO] [stdout]    |                       ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `default`, `rustls`, `tls`, and `webpki`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> rpc-perf/src/config/mod.rs:83:24
[INFO] [stdout]    |
[INFO] [stdout] 83 | #[derive(Clone, Debug, Deserialize)]
[INFO] [stdout]    |                        ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `default`, `rustls`, `tls`, and `webpki`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]    --> rpc-perf/src/config/mod.rs:192:24
[INFO] [stdout]     |
[INFO] [stdout] 192 | #[derive(Clone, Debug, Deserialize)]
[INFO] [stdout]     |                        ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected values for `feature` are: `default`, `rustls`, `tls`, and `webpki`
[INFO] [stdout]     = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]     = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]     = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]    --> rpc-perf/src/config/mod.rs:214:24
[INFO] [stdout]     |
[INFO] [stdout] 214 | #[derive(Clone, Debug, Deserialize)]
[INFO] [stdout]     |                        ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected values for `feature` are: `default`, `rustls`, `tls`, and `webpki`
[INFO] [stdout]     = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]     = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]     = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> rpc-perf/src/client/common.rs:39:16
[INFO] [stdout]    |
[INFO] [stdout] 39 |     codec: Box<Codec>,
[INFO] [stdout]    |                ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 39 |     codec: Box<dyn Codec>,
[INFO] [stdout]    |                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> rpc-perf/src/client/plain_client.rs:64:41
[INFO] [stdout]    |
[INFO] [stdout] 64 |     fn session(&self, token: Token) -> &Session {
[INFO] [stdout]    |                                         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 64 |     fn session(&self, token: Token) -> &dyn Session {
[INFO] [stdout]    |                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> rpc-perf/src/client/mod.rs:90:41
[INFO] [stdout]    |
[INFO] [stdout] 90 |     fn session(&self, token: Token) -> &Session;
[INFO] [stdout]    |                                         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 90 |     fn session(&self, token: Token) -> &dyn Session;
[INFO] [stdout]    |                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> rpc-perf/src/client/plain_client.rs:68:53
[INFO] [stdout]    |
[INFO] [stdout] 68 |     fn session_mut(&mut self, token: Token) -> &mut Session {
[INFO] [stdout]    |                                                     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 68 |     fn session_mut(&mut self, token: Token) -> &mut dyn Session {
[INFO] [stdout]    |                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> rpc-perf/src/client/mod.rs:91:53
[INFO] [stdout]    |
[INFO] [stdout] 91 |     fn session_mut(&mut self, token: Token) -> &mut Session;
[INFO] [stdout]    |                                                     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 91 |     fn session_mut(&mut self, token: Token) -> &mut dyn Session;
[INFO] [stdout]    |                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> rpc-perf/src/main.rs:153:38
[INFO] [stdout]     |
[INFO] [stdout] 153 | fn make_client(id: usize, codec: Box<Codec>, _config: &Config) -> Box<Client> {
[INFO] [stdout]     |                                      ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 153 | fn make_client(id: usize, codec: Box<dyn Codec>, _config: &Config) -> Box<Client> {
[INFO] [stdout]     |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> rpc-perf/src/main.rs:153:71
[INFO] [stdout]     |
[INFO] [stdout] 153 | fn make_client(id: usize, codec: Box<Codec>, _config: &Config) -> Box<Client> {
[INFO] [stdout]     |                                                                       ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 153 | fn make_client(id: usize, codec: Box<Codec>, _config: &Config) -> Box<dyn Client> {
[INFO] [stdout]     |                                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> rpc-perf/src/client/common.rs:51:38
[INFO] [stdout]    |
[INFO] [stdout] 51 |     pub fn new(id: usize, codec: Box<Codec>) -> Self {
[INFO] [stdout]    |                                      ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 51 |     pub fn new(id: usize, codec: Box<dyn Codec>) -> Self {
[INFO] [stdout]    |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> rpc-perf/src/client/plain_client.rs:36:38
[INFO] [stdout]    |
[INFO] [stdout] 36 |     pub fn new(id: usize, codec: Box<Codec>) -> PlainClient {
[INFO] [stdout]    |                                      ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 36 |     pub fn new(id: usize, codec: Box<dyn Codec>) -> PlainClient {
[INFO] [stdout]    |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> rpc-perf/src/main.rs:153:38
[INFO] [stdout]     |
[INFO] [stdout] 153 | fn make_client(id: usize, codec: Box<Codec>, _config: &Config) -> Box<Client> {
[INFO] [stdout]     |                                      ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 153 | fn make_client(id: usize, codec: Box<dyn Codec>, _config: &Config) -> Box<Client> {
[INFO] [stdout]     |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> rpc-perf/src/main.rs:153:71
[INFO] [stdout]     |
[INFO] [stdout] 153 | fn make_client(id: usize, codec: Box<Codec>, _config: &Config) -> Box<Client> {
[INFO] [stdout]     |                                                                       ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 153 | fn make_client(id: usize, codec: Box<Codec>, _config: &Config) -> Box<dyn Client> {
[INFO] [stdout]     |                                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> rpc-perf/src/client/common.rs:51:38
[INFO] [stdout]    |
[INFO] [stdout] 51 |     pub fn new(id: usize, codec: Box<Codec>) -> Self {
[INFO] [stdout]    |                                      ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 51 |     pub fn new(id: usize, codec: Box<dyn Codec>) -> Self {
[INFO] [stdout]    |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> rpc-perf/src/client/plain_client.rs:36:38
[INFO] [stdout]    |
[INFO] [stdout] 36 |     pub fn new(id: usize, codec: Box<Codec>) -> PlainClient {
[INFO] [stdout]    |                                      ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 36 |     pub fn new(id: usize, codec: Box<dyn Codec>) -> PlainClient {
[INFO] [stdout]    |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> rpc-perf/src/main.rs:189:28
[INFO] [stdout]     |
[INFO] [stdout] 189 |         let mut codec: Box<Codec> = match config.protocol() {
[INFO] [stdout]     |                            ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 189 |         let mut codec: Box<dyn Codec> = match config.protocol() {
[INFO] [stdout]     |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> rpc-perf/src/main.rs:189:28
[INFO] [stdout]     |
[INFO] [stdout] 189 |         let mut codec: Box<Codec> = match config.protocol() {
[INFO] [stdout]     |                            ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 189 |         let mut codec: Box<dyn Codec> = match config.protocol() {
[INFO] [stdout]     |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `hitrate` is never read
[INFO] [stdout]   --> rpc-perf/src/config/mod.rs:89:5
[INFO] [stdout]    |
[INFO] [stdout] 85 | pub struct Keyspace {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 89 |     hitrate: Option<f64>,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Keyspace` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `tls_key`, `tls_cert`, and `tls_ca` are never read
[INFO] [stdout]   --> rpc-perf/src/config/general.rs:38:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct General {
[INFO] [stdout]    |            ------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 38 |     tls_key: Option<String>,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 39 |     tls_cert: Option<String>,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 40 |     tls_ca: Option<String>,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `General` 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: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> rpc-perf/src/config/mod.rs:36:24
[INFO] [stdout]    |
[INFO] [stdout] 36 | #[derive(Clone, Debug, Deserialize)]
[INFO] [stdout]    |                        ^----------
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        `Deserialize` is not local
[INFO] [stdout]    |                        move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Config`
[INFO] [stdout] 37 | #[serde(deny_unknown_fields)]
[INFO] [stdout] 38 | pub struct Config {
[INFO] [stdout]    |            ------ `Config` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_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 `Deserialize` (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]   --> rpc-perf/src/config/mod.rs:75:23
[INFO] [stdout]    |
[INFO] [stdout] 75 | #[derive(Copy, Clone, Deserialize, Debug)]
[INFO] [stdout]    |                       ^----------
[INFO] [stdout]    |                       |
[INFO] [stdout]    |                       `Deserialize` is not local
[INFO] [stdout]    |                       move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Action`
[INFO] [stdout] ...
[INFO] [stdout] 78 | pub enum Action {
[INFO] [stdout]    |          ------ `Action` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_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 `Deserialize` (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]   --> rpc-perf/src/config/mod.rs:83:24
[INFO] [stdout]    |
[INFO] [stdout] 83 | #[derive(Clone, Debug, Deserialize)]
[INFO] [stdout]    |                        ^----------
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        `Deserialize` is not local
[INFO] [stdout]    |                        move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Keyspace`
[INFO] [stdout] 84 | #[serde(deny_unknown_fields)]
[INFO] [stdout] 85 | pub struct Keyspace {
[INFO] [stdout]    |            -------- `Keyspace` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_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 `Deserialize` (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]    --> rpc-perf/src/config/mod.rs:192:24
[INFO] [stdout]     |
[INFO] [stdout] 192 | #[derive(Clone, Debug, Deserialize)]
[INFO] [stdout]     |                        ^----------
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        `Deserialize` is not local
[INFO] [stdout]     |                        move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Command`
[INFO] [stdout] 193 | #[serde(deny_unknown_fields)]
[INFO] [stdout] 194 | pub struct Command {
[INFO] [stdout]     |            ------- `Command` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_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 `Deserialize` (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]    --> rpc-perf/src/config/mod.rs:214:24
[INFO] [stdout]     |
[INFO] [stdout] 214 | #[derive(Clone, Debug, Deserialize)]
[INFO] [stdout]     |                        ^----------
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        `Deserialize` is not local
[INFO] [stdout]     |                        move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Value`
[INFO] [stdout] 215 | #[serde(deny_unknown_fields)]
[INFO] [stdout] 216 | struct Value {
[INFO] [stdout]     |        ----- `Value` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_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 `Deserialize` (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]   --> rpc-perf/src/config/general.rs:17:24
[INFO] [stdout]    |
[INFO] [stdout] 17 | #[derive(Clone, Debug, Deserialize)]
[INFO] [stdout]    |                        ^----------
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        `Deserialize` is not local
[INFO] [stdout]    |                        move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_General`
[INFO] [stdout] 18 | #[serde(deny_unknown_fields)]
[INFO] [stdout] 19 | pub struct General {
[INFO] [stdout]    |            ------- `General` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_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 `Deserialize` (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]    --> rpc-perf/src/config/general.rs:265:23
[INFO] [stdout]     |
[INFO] [stdout] 265 | #[derive(Copy, Clone, Deserialize, Debug)]
[INFO] [stdout]     |                       ^----------
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       `Deserialize` is not local
[INFO] [stdout]     |                       move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Protocol`
[INFO] [stdout] ...
[INFO] [stdout] 268 | pub enum Protocol {
[INFO] [stdout]     |          -------- `Protocol` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_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 `Deserialize` (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]    --> rpc-perf/src/config/general.rs:281:17
[INFO] [stdout]     |
[INFO] [stdout] 281 | #[derive(Clone, Deserialize, Debug)]
[INFO] [stdout]     |                 ^----------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_LevelDef`
[INFO] [stdout] ...
[INFO] [stdout] 285 | enum LevelDef {
[INFO] [stdout]     |      -------- `LevelDef` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_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 `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `hitrate` is never read
[INFO] [stdout]   --> rpc-perf/src/config/mod.rs:89:5
[INFO] [stdout]    |
[INFO] [stdout] 85 | pub struct Keyspace {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 89 |     hitrate: Option<f64>,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Keyspace` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `tls_key`, `tls_cert`, and `tls_ca` are never read
[INFO] [stdout]   --> rpc-perf/src/config/general.rs:38:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct General {
[INFO] [stdout]    |            ------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 38 |     tls_key: Option<String>,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 39 |     tls_cert: Option<String>,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 40 |     tls_ca: Option<String>,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `General` 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: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> rpc-perf/src/config/mod.rs:36:24
[INFO] [stdout]    |
[INFO] [stdout] 36 | #[derive(Clone, Debug, Deserialize)]
[INFO] [stdout]    |                        ^----------
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        `Deserialize` is not local
[INFO] [stdout]    |                        move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Config`
[INFO] [stdout] 37 | #[serde(deny_unknown_fields)]
[INFO] [stdout] 38 | pub struct Config {
[INFO] [stdout]    |            ------ `Config` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_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 `Deserialize` (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]   --> rpc-perf/src/config/mod.rs:75:23
[INFO] [stdout]    |
[INFO] [stdout] 75 | #[derive(Copy, Clone, Deserialize, Debug)]
[INFO] [stdout]    |                       ^----------
[INFO] [stdout]    |                       |
[INFO] [stdout]    |                       `Deserialize` is not local
[INFO] [stdout]    |                       move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Action`
[INFO] [stdout] ...
[INFO] [stdout] 78 | pub enum Action {
[INFO] [stdout]    |          ------ `Action` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_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 `Deserialize` (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]   --> rpc-perf/src/config/mod.rs:83:24
[INFO] [stdout]    |
[INFO] [stdout] 83 | #[derive(Clone, Debug, Deserialize)]
[INFO] [stdout]    |                        ^----------
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        `Deserialize` is not local
[INFO] [stdout]    |                        move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Keyspace`
[INFO] [stdout] 84 | #[serde(deny_unknown_fields)]
[INFO] [stdout] 85 | pub struct Keyspace {
[INFO] [stdout]    |            -------- `Keyspace` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_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 `Deserialize` (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]    --> rpc-perf/src/config/mod.rs:192:24
[INFO] [stdout]     |
[INFO] [stdout] 192 | #[derive(Clone, Debug, Deserialize)]
[INFO] [stdout]     |                        ^----------
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        `Deserialize` is not local
[INFO] [stdout]     |                        move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Command`
[INFO] [stdout] 193 | #[serde(deny_unknown_fields)]
[INFO] [stdout] 194 | pub struct Command {
[INFO] [stdout]     |            ------- `Command` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_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 `Deserialize` (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]    --> rpc-perf/src/config/mod.rs:214:24
[INFO] [stdout]     |
[INFO] [stdout] 214 | #[derive(Clone, Debug, Deserialize)]
[INFO] [stdout]     |                        ^----------
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        `Deserialize` is not local
[INFO] [stdout]     |                        move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Value`
[INFO] [stdout] 215 | #[serde(deny_unknown_fields)]
[INFO] [stdout] 216 | struct Value {
[INFO] [stdout]     |        ----- `Value` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_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 `Deserialize` (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]   --> rpc-perf/src/config/general.rs:17:24
[INFO] [stdout]    |
[INFO] [stdout] 17 | #[derive(Clone, Debug, Deserialize)]
[INFO] [stdout]    |                        ^----------
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        `Deserialize` is not local
[INFO] [stdout]    |                        move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_General`
[INFO] [stdout] 18 | #[serde(deny_unknown_fields)]
[INFO] [stdout] 19 | pub struct General {
[INFO] [stdout]    |            ------- `General` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_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 `Deserialize` (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]    --> rpc-perf/src/config/general.rs:265:23
[INFO] [stdout]     |
[INFO] [stdout] 265 | #[derive(Copy, Clone, Deserialize, Debug)]
[INFO] [stdout]     |                       ^----------
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       `Deserialize` is not local
[INFO] [stdout]     |                       move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Protocol`
[INFO] [stdout] ...
[INFO] [stdout] 268 | pub enum Protocol {
[INFO] [stdout]     |          -------- `Protocol` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_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 `Deserialize` (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]    --> rpc-perf/src/config/general.rs:281:17
[INFO] [stdout]     |
[INFO] [stdout] 281 | #[derive(Clone, Deserialize, Debug)]
[INFO] [stdout]     |                 ^----------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_LevelDef`
[INFO] [stdout] ...
[INFO] [stdout] 285 | enum LevelDef {
[INFO] [stdout]     |      -------- `LevelDef` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_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 `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]   --> codec/src/echo/mod.rs:56:43
[INFO] [stdout]    |
[INFO] [stdout] 56 |         let crc_bytes: [u8; 4] = unsafe { transmute(crc_calc.to_be()) };
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: there's also `to_le_bytes` and `to_be_bytes` if you expect a particular byte order
[INFO] [stdout]    = note: `#[warn(unnecessary_transmutes)]` on by default
[INFO] [stdout] help: replace this with
[INFO] [stdout]    |
[INFO] [stdout] 56 -         let crc_bytes: [u8; 4] = unsafe { transmute(crc_calc.to_be()) };
[INFO] [stdout] 56 +         let crc_bytes: [u8; 4] = unsafe { u32::to_ne_bytes(crc_calc.to_be()) };
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 22.63s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: criterion v0.2.11
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 5`
[INFO] running `Command { std: "docker" "inspect" "4a7eaceb1016d1f90c0a4e0578fa6bfbd7db9cb112d0a48a7c37dc4f7117532e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4a7eaceb1016d1f90c0a4e0578fa6bfbd7db9cb112d0a48a7c37dc4f7117532e", kill_on_drop: false }`
[INFO] [stdout] 4a7eaceb1016d1f90c0a4e0578fa6bfbd7db9cb112d0a48a7c37dc4f7117532e
