[INFO] cloning repository https://github.com/sirpent-team/sirpent-rust
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/sirpent-team/sirpent-rust" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsirpent-team%2Fsirpent-rust", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsirpent-team%2Fsirpent-rust'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] a9a0c111f861d2e5c50131dc71e651d60a63463b
[INFO] checking sirpent-team/sirpent-rust against master#5518eaa946291f00471af8b254b2a1715f234882 for pr-120393
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsirpent-team%2Fsirpent-rust" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/sirpent-team/sirpent-rust on toolchain 5518eaa946291f00471af8b254b2a1715f234882
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+5518eaa946291f00471af8b254b2a1715f234882" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/sirpent-team/sirpent-rust
[INFO] finished tweaking git repo https://github.com/sirpent-team/sirpent-rust
[INFO] tweaked toml for git repo https://github.com/sirpent-team/sirpent-rust written to /workspace/builds/worker-6-tc1/source/Cargo.toml
[INFO] crate git repo https://github.com/sirpent-team/sirpent-rust 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" "+5518eaa946291f00471af8b254b2a1715f234882" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Updating git repository `https://github.com/carllerche/kabuki`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded iovec v0.1.0
[INFO] [stderr]   Downloaded rand v0.3.15
[INFO] [stderr]   Downloaded memchr v0.1.11
[INFO] [stderr]   Downloaded rustc-serialize v0.3.23
[INFO] [stderr]   Downloaded dtoa v0.4.1
[INFO] [stderr]   Downloaded dbghelp-sys v0.2.0
[INFO] [stderr]   Downloaded backtrace v0.3.0
[INFO] [stderr]   Downloaded cfg-if v0.1.0
[INFO] [stderr]   Downloaded rustc-demangle v0.1.4
[INFO] [stderr]   Downloaded tokio-timer v0.1.1
[INFO] [stderr]   Downloaded utf8-ranges v1.0.0
[INFO] [stderr]   Downloaded quote v0.3.15
[INFO] [stderr]   Downloaded unicode-xid v0.0.4
[INFO] [stderr]   Downloaded serde_codegen_internals v0.14.2
[INFO] [stderr]   Downloaded gcc v0.3.45
[INFO] [stderr]   Downloaded tokio-core v0.1.6
[INFO] [stderr]   Downloaded thread-id v3.0.0
[INFO] [stderr]   Downloaded utf8-ranges v0.1.3
[INFO] [stderr]   Downloaded serde v0.9.13
[INFO] [stderr]   Downloaded num_cpus v1.3.0
[INFO] [stderr]   Downloaded env_logger v0.4.2
[INFO] [stderr]   Downloaded cargo_metadata v0.1.2
[INFO] [stderr]   Downloaded libc v0.2.21
[INFO] [stderr]   Downloaded regex-syntax v0.4.0
[INFO] [stderr]   Downloaded num-traits v0.1.37
[INFO] [stderr]   Downloaded aho-corasick v0.5.3
[INFO] [stderr]   Downloaded unicode-normalization v0.1.4
[INFO] [stderr]   Downloaded syn v0.11.10
[INFO] [stderr]   Downloaded mio v0.6.6
[INFO] [stderr]   Downloaded tokio-io v0.1.1
[INFO] [stderr]   Downloaded regex v0.1.80
[INFO] [stderr]   Downloaded backtrace-sys v0.1.10
[INFO] [stderr]   Downloaded bytes v0.4.2
[INFO] [stderr]   Downloaded thread-id v2.0.0
[INFO] [stderr]   Downloaded log v0.3.7
[INFO] [stderr]   Downloaded env_logger v0.3.5
[INFO] [stderr]   Downloaded synom v0.11.3
[INFO] [stderr]   Downloaded clippy v0.0.122
[INFO] [stderr]   Downloaded regex v0.2.1
[INFO] [stderr]   Downloaded error-chain v0.9.0
[INFO] [stderr]   Downloaded serde_json v0.9.10
[INFO] [stderr]   Downloaded semver v0.6.0
[INFO] [stderr]   Downloaded aho-corasick v0.6.3
[INFO] [stderr]   Downloaded uuid v0.4.0
[INFO] [stderr]   Downloaded regex-syntax v0.3.9
[INFO] [stderr]   Downloaded thread_local v0.2.7
[INFO] [stderr]   Downloaded memchr v1.0.1
[INFO] [stderr]   Downloaded futures-mpsc v0.1.0
[INFO] [stderr]   Downloaded unreachable v0.1.1
[INFO] [stderr]   Downloaded matches v0.1.4
[INFO] [stderr]   Downloaded quine-mc_cluskey v0.2.4
[INFO] [stderr]   Downloaded futures v0.1.13
[INFO] [stderr]   Downloaded toml v0.2.1
[INFO] [stderr]   Downloaded futures-spawn v0.1.1
[INFO] [stderr]   Downloaded itoa v0.3.1
[INFO] [stderr]   Downloaded byteorder v1.0.0
[INFO] [stderr]   Downloaded thread_local v0.3.3
[INFO] [stderr]   Downloaded scoped-tls v0.1.0
[INFO] [stderr]   Downloaded slab v0.3.0
[INFO] [stderr]   Downloaded crossbeam v0.2.10
[INFO] [stderr]   Downloaded lazycell v0.4.0
[INFO] [stderr]   Downloaded net2 v0.2.27
[INFO] [stderr]   Downloaded futures-threadpool v0.1.0
[INFO] [stderr]   Downloaded comms v0.1.4
[INFO] [stderr]   Downloaded serde_derive v0.9.13
[INFO] [stderr]   Downloaded quickcheck v0.2.27
[INFO] [stderr]   Downloaded clippy_lints v0.0.122
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+5518eaa946291f00471af8b254b2a1715f234882" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 593021eeb063068c4fc93cfc1fb68cee39800d51a2bf41839dd8417d0c2e0079
[INFO] running `Command { std: "docker" "start" "-a" "593021eeb063068c4fc93cfc1fb68cee39800d51a2bf41839dd8417d0c2e0079", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "593021eeb063068c4fc93cfc1fb68cee39800d51a2bf41839dd8417d0c2e0079", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "593021eeb063068c4fc93cfc1fb68cee39800d51a2bf41839dd8417d0c2e0079", kill_on_drop: false }`
[INFO] [stdout] 593021eeb063068c4fc93cfc1fb68cee39800d51a2bf41839dd8417d0c2e0079
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+5518eaa946291f00471af8b254b2a1715f234882" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 96aa7b6cfbecc8fd8be780e5a92ca249004b3f348fcc0f1d9d499c385f2f3b80
[INFO] running `Command { std: "docker" "start" "-a" "96aa7b6cfbecc8fd8be780e5a92ca249004b3f348fcc0f1d9d499c385f2f3b80", kill_on_drop: false }`
[INFO] [stderr]     Checking libc v0.2.21
[INFO] [stderr]    Compiling winapi-build v0.1.1
[INFO] [stderr]     Checking log v0.3.7
[INFO] [stderr]     Checking winapi v0.2.8
[INFO] [stderr]     Checking futures v0.1.13
[INFO] [stderr]     Checking cfg-if v0.1.0
[INFO] [stderr]     Checking slab v0.3.0
[INFO] [stderr]     Checking byteorder v1.0.0
[INFO] [stderr]     Checking lazycell v0.4.0
[INFO] [stderr]    Compiling gcc v0.3.45
[INFO] [stderr]     Checking scoped-tls v0.1.0
[INFO] [stderr]    Compiling unicode-xid v0.0.4
[INFO] [stderr]     Checking void v1.0.2
[INFO] [stderr]    Compiling quote v0.3.15
[INFO] [stderr]    Compiling backtrace v0.3.0
[INFO] [stderr]     Checking utf8-ranges v1.0.0
[INFO] [stderr]     Checking crossbeam v0.2.10
[INFO] [stderr]     Checking unreachable v0.1.1
[INFO] [stderr]     Checking serde v0.9.13
[INFO] [stderr]     Checking rustc-demangle v0.1.4
[INFO] [stderr]     Checking regex-syntax v0.4.0
[INFO] [stderr]    Compiling synom v0.11.3
[INFO] [stderr]     Checking dtoa v0.4.1
[INFO] [stderr]     Checking utf8-ranges v0.1.3
[INFO] [stderr]     Checking num-traits v0.1.37
[INFO] [stderr]    Compiling kernel32-sys v0.2.2
[INFO] [stderr]    Compiling dbghelp-sys v0.2.0
[INFO] [stderr]     Checking itoa v0.3.1
[INFO] [stderr]     Checking regex-syntax v0.3.9
[INFO] [stderr]    Compiling syn v0.11.10
[INFO] [stderr]     Checking ansi_term v0.9.0
[INFO] [stderr]     Checking iovec v0.1.0
[INFO] [stderr]     Checking net2 v0.2.27
[INFO] [stderr]     Checking thread-id v3.0.0
[INFO] [stderr]     Checking memchr v1.0.1
[INFO] [stderr]     Checking rand v0.3.15
[INFO] [stderr]     Checking num_cpus v1.3.0
[INFO] [stderr]     Checking bytes v0.4.2
[INFO] [stderr]     Checking thread_local v0.3.3
[INFO] [stderr]     Checking aho-corasick v0.6.3
[INFO] [stderr]     Checking memchr v0.1.11
[INFO] [stderr]     Checking mio v0.6.6
[INFO] [stderr]     Checking thread-id v2.0.0
[INFO] [stderr]     Checking aho-corasick v0.5.3
[INFO] [stderr]     Checking thread_local v0.2.7
[INFO] [stderr]     Checking regex v0.2.1
[INFO] [stderr]    Compiling backtrace-sys v0.1.10
[INFO] [stderr]     Checking regex v0.1.80
[INFO] [stderr]     Checking tokio-io v0.1.1
[INFO] [stderr]     Checking tokio-timer v0.1.1
[INFO] [stderr]     Checking futures-mpsc v0.1.0
[INFO] [stderr]     Checking comms v0.1.4
[INFO] [stderr]     Checking tokio-core v0.1.6
[INFO] [stderr]    Compiling serde_codegen_internals v0.14.2
[INFO] [stderr]     Checking env_logger v0.4.2
[INFO] [stderr]     Checking env_logger v0.3.5
[INFO] [stderr]     Checking futures-spawn v0.1.1
[INFO] [stderr]    Compiling serde_derive v0.9.13
[INFO] [stderr]     Checking quickcheck v0.2.27
[INFO] [stderr]     Checking futures-threadpool v0.1.0
[INFO] [stderr]     Checking kabuki v0.0.1 (https://github.com/carllerche/kabuki?rev=4cc9aa77b7a59890b8cbfd276a067be015ed54f7#4cc9aa77)
[INFO] [stderr]     Checking serde_json v0.9.10
[INFO] [stderr]     Checking uuid v0.4.0
[INFO] [stderr]     Checking error-chain v0.9.0
[INFO] [stderr]     Checking sirpent v0.1.1 (/opt/rustwide/workdir)
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/errors.rs:1:1
[INFO] [stdout]    |
[INFO] [stdout] 1  | / error_chain! {
[INFO] [stdout] 2  | |     // The type defined for this error. These are the conventional
[INFO] [stdout] 3  | |     // and recommended names, but they can be arbitrarily chosen.
[INFO] [stdout] 4  | |     //
[INFO] [stdout] ...  |
[INFO] [stdout] 34 | |     }
[INFO] [stdout] 35 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout]    = note: this warning originates in the macro `error_chain_processed` which comes from the expansion of the macro `error_chain` (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]   --> src/engine/mod.rs:27:14
[INFO] [stdout]    |
[INFO] [stdout] 27 |     rng: Box<Rng>,
[INFO] [stdout]    |              ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 27 |     rng: Box<dyn Rng>,
[INFO] [stdout]    |              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/state/snake.rs:93:33
[INFO] [stdout]    |
[INFO] [stdout] 93 |         fn shrink(&self) -> Box<Iterator<Item = Snake>> {
[INFO] [stdout]    |                                 ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 93 |         fn shrink(&self) -> Box<dyn Iterator<Item = Snake>> {
[INFO] [stdout]    |                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/engine/mod.rs:34:25
[INFO] [stdout]    |
[INFO] [stdout] 34 |     pub fn new(rng: Box<Rng>, grid: Grid) -> Self {
[INFO] [stdout]    |                         ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 34 |     pub fn new(rng: Box<dyn Rng>, grid: Grid) -> Self {
[INFO] [stdout]    |                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/actors/handshake.rs:35:59
[INFO] [stdout]    |
[INFO] [stdout] 35 |     fn transmit<I>(client: MsgClient<I>, msg: Msg) -> Box<Future<Item = MsgClient<I>, Error = ()>>
[INFO] [stdout]    |                                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 35 |     fn transmit<I>(client: MsgClient<I>, msg: Msg) -> Box<dyn Future<Item = MsgClient<I>, Error = ()>>
[INFO] [stdout]    |                                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/actors/handshake.rs:44:26
[INFO] [stdout]    |
[INFO] [stdout] 44 |                   -> Box<Future<Item = (Msg, MsgClient<I>), Error = ()>>
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 44 |                   -> Box<dyn Future<Item = (Msg, MsgClient<I>), Error = ()>>
[INFO] [stdout]    |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/actors/handshake.rs:58:34
[INFO] [stdout]    |
[INFO] [stdout] 58 |                           -> Box<Future<Item = MsgClient<String>, Error = ()>> {
[INFO] [stdout]    |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 58 |                           -> Box<dyn Future<Item = MsgClient<String>, Error = ()>> {
[INFO] [stdout]    |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/errors.rs:1:1
[INFO] [stdout]    |
[INFO] [stdout] 1  | / error_chain! {
[INFO] [stdout] 2  | |     // The type defined for this error. These are the conventional
[INFO] [stdout] 3  | |     // and recommended names, but they can be arbitrarily chosen.
[INFO] [stdout] 4  | |     //
[INFO] [stdout] ...  |
[INFO] [stdout] 34 | |     }
[INFO] [stdout] 35 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout]    = note: this warning originates in the macro `error_chain_processed` which comes from the expansion of the macro `error_chain` (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]   --> src/actors/handshake.rs:78:23
[INFO] [stdout]    |
[INFO] [stdout] 78 |     type Future = Box<Future<Item = Self::Response, Error = Self::Error>>;
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 78 |     type Future = Box<dyn Future<Item = Self::Response, Error = Self::Error>>;
[INFO] [stdout]    |                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/actors/game.rs:30:25
[INFO] [stdout]    |
[INFO] [stdout] 30 |                  -> Box<Future<Item = (MsgRoom<String>, mpsc::Sender<Msg>), Error = ()>> {
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 30 |                  -> Box<dyn Future<Item = (MsgRoom<String>, mpsc::Sender<Msg>), Error = ()>> {
[INFO] [stdout]    |                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/actors/game.rs:41:17
[INFO] [stdout]    |
[INFO] [stdout] 41 |          -> Box<Future<Item = (HashMap<String, Direction>, MsgRoom<String>), Error = ()>> {
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 41 |          -> Box<dyn Future<Item = (HashMap<String, Direction>, MsgRoom<String>), Error = ()>> {
[INFO] [stdout]    |                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/engine/mod.rs:27:14
[INFO] [stdout]    |
[INFO] [stdout] 27 |     rng: Box<Rng>,
[INFO] [stdout]    |              ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 27 |     rng: Box<dyn Rng>,
[INFO] [stdout]    |              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/actors/game.rs:56:22
[INFO] [stdout]    |
[INFO] [stdout] 56 |               -> Box<Future<Item = (Game, MsgRoom<String>, mpsc::Sender<Msg>), Error = ()>> {
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 56 |               -> Box<dyn Future<Item = (Game, MsgRoom<String>, mpsc::Sender<Msg>), Error = ()>> {
[INFO] [stdout]    |                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/actors/game.rs:76:21
[INFO] [stdout]    |
[INFO] [stdout] 76 |                -> Box<Future<Item = (Game,
[INFO] [stdout]    |  _____________________^
[INFO] [stdout] 77 | |                                    MsgRoom<String>,
[INFO] [stdout] 78 | |                                    mpsc::Sender<Msg>,
[INFO] [stdout] 79 | |                                    Milliseconds,
[INFO] [stdout] 80 | |                                    tokio_timer::Timer),
[INFO] [stdout] 81 | |                            Error = ()>> {
[INFO] [stdout]    | |______________________________________^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 76 |              -> Box<dyn Future<Item = (Game,
[INFO] [stdout]    |                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/actors/game.rs:101:23
[INFO] [stdout]     |
[INFO] [stdout] 101 |                -> Box<Future<Item = (Game, MsgRoom<String>, mpsc::Sender<Msg>), Error = ()>> {
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 101 |                -> Box<dyn Future<Item = (Game, MsgRoom<String>, mpsc::Sender<Msg>), Error = ()>> {
[INFO] [stdout]     |                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/actors/game.rs:117:23
[INFO] [stdout]     |
[INFO] [stdout] 117 |     type Future = Box<Future<Item = Self::Response, Error = Self::Error>>;
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 117 |     type Future = Box<dyn Future<Item = Self::Response, Error = Self::Error>>;
[INFO] [stdout]     |                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/engine/mod.rs:34:25
[INFO] [stdout]    |
[INFO] [stdout] 34 |     pub fn new(rng: Box<Rng>, grid: Grid) -> Self {
[INFO] [stdout]    |                         ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 34 |     pub fn new(rng: Box<dyn Rng>, grid: Grid) -> Self {
[INFO] [stdout]    |                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/actors/handshake.rs:35:59
[INFO] [stdout]    |
[INFO] [stdout] 35 |     fn transmit<I>(client: MsgClient<I>, msg: Msg) -> Box<Future<Item = MsgClient<I>, Error = ()>>
[INFO] [stdout]    |                                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 35 |     fn transmit<I>(client: MsgClient<I>, msg: Msg) -> Box<dyn Future<Item = MsgClient<I>, Error = ()>>
[INFO] [stdout]    |                                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/actors/handshake.rs:44:26
[INFO] [stdout]    |
[INFO] [stdout] 44 |                   -> Box<Future<Item = (Msg, MsgClient<I>), Error = ()>>
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 44 |                   -> Box<dyn Future<Item = (Msg, MsgClient<I>), Error = ()>>
[INFO] [stdout]    |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/actors/handshake.rs:58:34
[INFO] [stdout]    |
[INFO] [stdout] 58 |                           -> Box<Future<Item = MsgClient<String>, Error = ()>> {
[INFO] [stdout]    |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 58 |                           -> Box<dyn Future<Item = MsgClient<String>, Error = ()>> {
[INFO] [stdout]    |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/actors/handshake.rs:78:23
[INFO] [stdout]    |
[INFO] [stdout] 78 |     type Future = Box<Future<Item = Self::Response, Error = Self::Error>>;
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 78 |     type Future = Box<dyn Future<Item = Self::Response, Error = Self::Error>>;
[INFO] [stdout]    |                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/actors/game.rs:30:25
[INFO] [stdout]    |
[INFO] [stdout] 30 |                  -> Box<Future<Item = (MsgRoom<String>, mpsc::Sender<Msg>), Error = ()>> {
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 30 |                  -> Box<dyn Future<Item = (MsgRoom<String>, mpsc::Sender<Msg>), Error = ()>> {
[INFO] [stdout]    |                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/actors/game.rs:41:17
[INFO] [stdout]    |
[INFO] [stdout] 41 |          -> Box<Future<Item = (HashMap<String, Direction>, MsgRoom<String>), Error = ()>> {
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 41 |          -> Box<dyn Future<Item = (HashMap<String, Direction>, MsgRoom<String>), Error = ()>> {
[INFO] [stdout]    |                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/actors/game.rs:56:22
[INFO] [stdout]    |
[INFO] [stdout] 56 |               -> Box<Future<Item = (Game, MsgRoom<String>, mpsc::Sender<Msg>), Error = ()>> {
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 56 |               -> Box<dyn Future<Item = (Game, MsgRoom<String>, mpsc::Sender<Msg>), Error = ()>> {
[INFO] [stdout]    |                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/actors/game.rs:76:21
[INFO] [stdout]    |
[INFO] [stdout] 76 |                -> Box<Future<Item = (Game,
[INFO] [stdout]    |  _____________________^
[INFO] [stdout] 77 | |                                    MsgRoom<String>,
[INFO] [stdout] 78 | |                                    mpsc::Sender<Msg>,
[INFO] [stdout] 79 | |                                    Milliseconds,
[INFO] [stdout] 80 | |                                    tokio_timer::Timer),
[INFO] [stdout] 81 | |                            Error = ()>> {
[INFO] [stdout]    | |______________________________________^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 76 |              -> Box<dyn Future<Item = (Game,
[INFO] [stdout]    |                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/actors/game.rs:101:23
[INFO] [stdout]     |
[INFO] [stdout] 101 |                -> Box<Future<Item = (Game, MsgRoom<String>, mpsc::Sender<Msg>), Error = ()>> {
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 101 |                -> Box<dyn Future<Item = (Game, MsgRoom<String>, mpsc::Sender<Msg>), Error = ()>> {
[INFO] [stdout]     |                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/actors/game.rs:117:23
[INFO] [stdout]     |
[INFO] [stdout] 117 |     type Future = Box<Future<Item = Self::Response, Error = Self::Error>>;
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 117 |     type Future = Box<dyn Future<Item = Self::Response, Error = Self::Error>>;
[INFO] [stdout]     |                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/actors/handshake.rs:90:104
[INFO] [stdout]    |
[INFO] [stdout] 90 | ...n(move |(msg, unnamed_client)| -> Box<Future<Item = (MsgClient<String>, ClientKind), Error = ()>> {
[INFO] [stdout]    |                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 90 |             Self::receive(unnamed_client, timeout, timer).and_then(move |(msg, unnamed_client)| -> Box<dyn Future<Item = (MsgClient<String>, ClientKind), Error = ()>> {
[INFO] [stdout]    |                                                                                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::cause`: replaced by Error::source, which can support downcasting
[INFO] [stdout]   --> src/errors.rs:1:1
[INFO] [stdout]    |
[INFO] [stdout] 1  | / error_chain! {
[INFO] [stdout] 2  | |     // The type defined for this error. These are the conventional
[INFO] [stdout] 3  | |     // and recommended names, but they can be arbitrarily chosen.
[INFO] [stdout] 4  | |     //
[INFO] [stdout] ...  |
[INFO] [stdout] 34 | |     }
[INFO] [stdout] 35 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `error_chain_processed` which comes from the expansion of the macro `error_chain` (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]   --> src/actors/handshake.rs:90:104
[INFO] [stdout]    |
[INFO] [stdout] 90 | ...n(move |(msg, unnamed_client)| -> Box<Future<Item = (MsgClient<String>, ClientKind), Error = ()>> {
[INFO] [stdout]    |                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 90 |             Self::receive(unnamed_client, timeout, timer).and_then(move |(msg, unnamed_client)| -> Box<dyn Future<Item = (MsgClient<String>, ClientKind), Error = ()>> {
[INFO] [stdout]    |                                                                                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::cause`: replaced by Error::source, which can support downcasting
[INFO] [stdout]   --> src/errors.rs:1:1
[INFO] [stdout]    |
[INFO] [stdout] 1  | / error_chain! {
[INFO] [stdout] 2  | |     // The type defined for this error. These are the conventional
[INFO] [stdout] 3  | |     // and recommended names, but they can be arbitrarily chosen.
[INFO] [stdout] 4  | |     //
[INFO] [stdout] ...  |
[INFO] [stdout] 34 | |     }
[INFO] [stdout] 35 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `error_chain_processed` which comes from the expansion of the macro `error_chain` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `timeout`
[INFO] [stdout]   --> src/actors/game.rs:39:10
[INFO] [stdout]    |
[INFO] [stdout] 39 |          timeout: Milliseconds,
[INFO] [stdout]    |          ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_timeout`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `timer`
[INFO] [stdout]   --> src/actors/game.rs:40:10
[INFO] [stdout]    |
[INFO] [stdout] 40 |          timer: &tokio_timer::Timer)
[INFO] [stdout]    |          ^^^^^ help: if this is intentional, prefix it with an underscore: `_timer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `timeout`
[INFO] [stdout]   --> src/actors/game.rs:39:10
[INFO] [stdout]    |
[INFO] [stdout] 39 |          timeout: Milliseconds,
[INFO] [stdout]    |          ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_timeout`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `timer`
[INFO] [stdout]   --> src/actors/game.rs:40:10
[INFO] [stdout]    |
[INFO] [stdout] 40 |          timer: &tokio_timer::Timer)
[INFO] [stdout]    |          ^^^^^ help: if this is intentional, prefix it with an underscore: `_timer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 17 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `random_cells_within_bounds_prop` is never used
[INFO] [stdout]    --> src/state/grids/triangle.rs:198:8
[INFO] [stdout]     |
[INFO] [stdout] 198 |     fn random_cells_within_bounds_prop(g: TriangleGrid) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `random_cells_within_bounds` is never used
[INFO] [stdout]    --> src/state/grids/triangle.rs:210:8
[INFO] [stdout]     |
[INFO] [stdout] 210 |     fn random_cells_within_bounds() {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]  --> examples/grid_trait_object.rs:8:24
[INFO] [stdout]   |
[INFO] [stdout] 8 |     fn has_edge(&self, &Self::N, &Self::N) -> bool;
[INFO] [stdout]   |                        ^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: &Self::N`
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]   = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout]   = note: `#[warn(anonymous_parameters)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]  --> examples/grid_trait_object.rs:8:34
[INFO] [stdout]   |
[INFO] [stdout] 8 |     fn has_edge(&self, &Self::N, &Self::N) -> bool;
[INFO] [stdout]   |                                  ^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: &Self::N`
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]   = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition
[INFO] [stdout]  --> examples/grid_trait_object.rs:9:21
[INFO] [stdout]   |
[INFO] [stdout] 9 |     fn edges(&self, &Self::N) -> Vec<Self::E>;
[INFO] [stdout]   |                     ^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: &Self::N`
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018!
[INFO] [stdout]   = note: for more information, see issue #41686 <https://github.com/rust-lang/rust/issues/41686>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> examples/grid_trait_object.rs:44:31
[INFO] [stdout]    |
[INFO] [stdout] 44 | fn get_edges<N, E>(graph: Box<Graph<N = N, E = E>>) -> bool
[INFO] [stdout]    |                               ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 44 | fn get_edges<N, E>(graph: Box<dyn Graph<N = N, E = E>>) -> bool
[INFO] [stdout]    |                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::str`
[INFO] [stdout]   --> src/main.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use std::str;
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 20 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::str`
[INFO] [stdout]   --> src/main.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use std::str;
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:106:18
[INFO] [stdout]     |
[INFO] [stdout] 106 |           -> Box<Future<Item = (), Error = ()>> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 106 |           -> Box<dyn Future<Item = (), Error = ()>> {
[INFO] [stdout]     |                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:133:27
[INFO] [stdout]     |
[INFO] [stdout] 133 |               add_rx: Box<Stream<Item = Vec<MsgClient<String>>, Error = ()>>,
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 133 |               add_rx: Box<dyn Stream<Item = Vec<MsgClient<String>>, Error = ()>>,
[INFO] [stdout]     |                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:138:22
[INFO] [stdout]     |
[INFO] [stdout] 138 |               -> Box<Future<Item = (), Error = ()>> {
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 138 |               -> Box<dyn Future<Item = (), Error = ()>> {
[INFO] [stdout]     |                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:106:18
[INFO] [stdout]     |
[INFO] [stdout] 106 |           -> Box<Future<Item = (), Error = ()>> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 106 |           -> Box<dyn Future<Item = (), Error = ()>> {
[INFO] [stdout]     |                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:133:27
[INFO] [stdout]     |
[INFO] [stdout] 133 |               add_rx: Box<Stream<Item = Vec<MsgClient<String>>, Error = ()>>,
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 133 |               add_rx: Box<dyn Stream<Item = Vec<MsgClient<String>>, Error = ()>>,
[INFO] [stdout]     |                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/main.rs:138:22
[INFO] [stdout]     |
[INFO] [stdout] 138 |               -> Box<Future<Item = (), Error = ()>> {
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 138 |               -> Box<dyn Future<Item = (), Error = ()>> {
[INFO] [stdout]     |                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> examples/grid_trait_object.rs:40:38
[INFO] [stdout]    |
[INFO] [stdout] 40 |     let obj = Box::new(graph) as Box<Graph<N = Node, E = Edge>>;
[INFO] [stdout]    |                                      ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 40 |     let obj = Box::new(graph) as Box<dyn Graph<N = Node, E = Edge>>;
[INFO] [stdout]    |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 5 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 4 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 4 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 6.97s
[INFO] running `Command { std: "docker" "inspect" "96aa7b6cfbecc8fd8be780e5a92ca249004b3f348fcc0f1d9d499c385f2f3b80", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "96aa7b6cfbecc8fd8be780e5a92ca249004b3f348fcc0f1d9d499c385f2f3b80", kill_on_drop: false }`
[INFO] [stdout] 96aa7b6cfbecc8fd8be780e5a92ca249004b3f348fcc0f1d9d499c385f2f3b80
[INFO] checking sirpent-team/sirpent-rust against try#7622c0f807a4e13c4db886a1681bf343795692df+rustflags=-Dnon_local_definitions for pr-120393
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsirpent-team%2Fsirpent-rust" "/workspace/builds/worker-6-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc2/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/sirpent-team/sirpent-rust on toolchain 7622c0f807a4e13c4db886a1681bf343795692df
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+7622c0f807a4e13c4db886a1681bf343795692df" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/sirpent-team/sirpent-rust
[INFO] finished tweaking git repo https://github.com/sirpent-team/sirpent-rust
[INFO] tweaked toml for git repo https://github.com/sirpent-team/sirpent-rust written to /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] crate git repo https://github.com/sirpent-team/sirpent-rust 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" "+7622c0f807a4e13c4db886a1681bf343795692df" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+7622c0f807a4e13c4db886a1681bf343795692df" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 33eec1e273582d682df9fc7f4f32b2ed63d2916651a0a06701e919e67fc77e2e
[INFO] running `Command { std: "docker" "start" "-a" "33eec1e273582d682df9fc7f4f32b2ed63d2916651a0a06701e919e67fc77e2e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "33eec1e273582d682df9fc7f4f32b2ed63d2916651a0a06701e919e67fc77e2e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "33eec1e273582d682df9fc7f4f32b2ed63d2916651a0a06701e919e67fc77e2e", kill_on_drop: false }`
[INFO] [stdout] 33eec1e273582d682df9fc7f4f32b2ed63d2916651a0a06701e919e67fc77e2e
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -Dnon_local_definitions" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+7622c0f807a4e13c4db886a1681bf343795692df" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] e6940825ec98724f05cc013bd72a22bef1b0571dff6b0ac21d41c464dd236b8f
[INFO] running `Command { std: "docker" "start" "-a" "e6940825ec98724f05cc013bd72a22bef1b0571dff6b0ac21d41c464dd236b8f", kill_on_drop: false }`
[INFO] [stderr]     Checking libc v0.2.21
[INFO] [stderr]    Compiling winapi-build v0.1.1
[INFO] [stderr]     Checking winapi v0.2.8
[INFO] [stderr]     Checking log v0.3.7
[INFO] [stderr]     Checking cfg-if v0.1.0
[INFO] [stderr]     Checking futures v0.1.13
[INFO] [stderr]     Checking slab v0.3.0
[INFO] [stderr]     Checking byteorder v1.0.0
[INFO] [stderr]    Compiling gcc v0.3.45
[INFO] [stderr]     Checking lazycell v0.4.0
[INFO] [stderr]     Checking scoped-tls v0.1.0
[INFO] [stderr]     Checking void v1.0.2
[INFO] [stderr]    Compiling unicode-xid v0.0.4
[INFO] [stderr]    Compiling quote v0.3.15
[INFO] [stderr]    Compiling backtrace v0.3.0
[INFO] [stderr]     Checking crossbeam v0.2.10
[INFO] [stderr]     Checking serde v0.9.13
[INFO] [stderr]     Checking regex-syntax v0.4.0
[INFO] [stderr]     Checking utf8-ranges v1.0.0
[INFO] [stderr]     Checking rustc-demangle v0.1.4
[INFO] [stderr]     Checking unreachable v0.1.1
[INFO] [stderr]    Compiling synom v0.11.3
[INFO] [stderr]     Checking num-traits v0.1.37
[INFO] [stderr]     Checking regex-syntax v0.3.9
[INFO] [stderr]    Compiling kernel32-sys v0.2.2
[INFO] [stderr]    Compiling dbghelp-sys v0.2.0
[INFO] [stderr]     Checking utf8-ranges v0.1.3
[INFO] [stderr]     Checking dtoa v0.4.1
[INFO] [stderr]     Checking itoa v0.3.1
[INFO] [stderr]    Compiling syn v0.11.10
[INFO] [stderr]     Checking ansi_term v0.9.0
[INFO] [stderr]     Checking iovec v0.1.0
[INFO] [stderr]     Checking net2 v0.2.27
[INFO] [stderr]     Checking thread-id v3.0.0
[INFO] [stderr]     Checking memchr v1.0.1
[INFO] [stderr]     Checking memchr v0.1.11
[INFO] [stderr]     Checking thread_local v0.3.3
[INFO] [stderr]     Checking bytes v0.4.2
[INFO] [stderr]     Checking num_cpus v1.3.0
[INFO] [stderr]     Checking aho-corasick v0.6.3
[INFO] [stderr]     Checking thread-id v2.0.0
[INFO] [stderr]     Checking rand v0.3.15
[INFO] [stderr]     Checking aho-corasick v0.5.3
[INFO] [stderr]     Checking thread_local v0.2.7
[INFO] [stderr]     Checking mio v0.6.6
[INFO] [stderr]    Compiling backtrace-sys v0.1.10
[INFO] [stderr]     Checking regex v0.2.1
[INFO] [stderr]     Checking regex v0.1.80
[INFO] [stderr]     Checking tokio-io v0.1.1
[INFO] [stderr]     Checking tokio-timer v0.1.1
[INFO] [stderr]     Checking futures-mpsc v0.1.0
[INFO] [stderr]    Compiling serde_codegen_internals v0.14.2
[INFO] [stderr]     Checking comms v0.1.4
[INFO] [stderr]     Checking tokio-core v0.1.6
[INFO] [stderr]    Compiling serde_derive v0.9.13
[INFO] [stderr]     Checking futures-spawn v0.1.1
[INFO] [stderr]     Checking env_logger v0.4.2
[INFO] [stderr]     Checking futures-threadpool v0.1.0
[INFO] [stderr]     Checking env_logger v0.3.5
[INFO] [stderr]     Checking kabuki v0.0.1 (https://github.com/carllerche/kabuki?rev=4cc9aa77b7a59890b8cbfd276a067be015ed54f7#4cc9aa77)
[INFO] [stderr]     Checking quickcheck v0.2.27
[INFO] [stderr]     Checking uuid v0.4.0
[INFO] [stderr]     Checking serde_json v0.9.10
[INFO] [stderr]     Checking error-chain v0.9.0
[INFO] [stderr]     Checking sirpent v0.1.1 (/opt/rustwide/workdir)
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/errors.rs:1:1
[INFO] [stdout]    |
[INFO] [stdout] 1  | / error_chain! {
[INFO] [stdout] 2  | |     // The type defined for this error. These are the conventional
[INFO] [stdout] 3  | |     // and recommended names, but they can be arbitrarily chosen.
[INFO] [stdout] 4  | |     //
[INFO] [stdout] ...  |
[INFO] [stdout] 34 | |     }
[INFO] [stdout] 35 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout]    = note: this warning originates in the macro `error_chain_processed` which comes from the expansion of the macro `error_chain` (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]   --> src/engine/mod.rs:27:14
[INFO] [stdout]    |
[INFO] [stdout] 27 |     rng: Box<Rng>,
[INFO] [stdout]    |              ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 27 |     rng: Box<dyn Rng>,
[INFO] [stdout]    |              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/state/snake.rs:93:33
[INFO] [stdout]    |
[INFO] [stdout] 93 |         fn shrink(&self) -> Box<Iterator<Item = Snake>> {
[INFO] [stdout]    |                                 ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 93 |         fn shrink(&self) -> Box<dyn Iterator<Item = Snake>> {
[INFO] [stdout]    |                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/errors.rs:1:1
[INFO] [stdout]    |
[INFO] [stdout] 1  | / error_chain! {
[INFO] [stdout] 2  | |     // The type defined for this error. These are the conventional
[INFO] [stdout] 3  | |     // and recommended names, but they can be arbitrarily chosen.
[INFO] [stdout] 4  | |     //
[INFO] [stdout] ...  |
[INFO] [stdout] 34 | |     }
[INFO] [stdout] 35 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout]    = note: this warning originates in the macro `error_chain_processed` which comes from the expansion of the macro `error_chain` (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]   --> src/engine/mod.rs:27:14
[INFO] [stdout]    |
[INFO] [stdout] 27 |     rng: Box<Rng>,
[INFO] [stdout]    |              ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 27 |     rng: Box<dyn Rng>,
[INFO] [stdout]    |              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/engine/mod.rs:34:25
[INFO] [stdout]    |
[INFO] [stdout] 34 |     pub fn new(rng: Box<Rng>, grid: Grid) -> Self {
[INFO] [stdout]    |                         ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 34 |     pub fn new(rng: Box<dyn Rng>, grid: Grid) -> Self {
[INFO] [stdout]    |                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/engine/mod.rs:34:25
[INFO] [stdout]    |
[INFO] [stdout] 34 |     pub fn new(rng: Box<Rng>, grid: Grid) -> Self {
[INFO] [stdout]    |                         ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 34 |     pub fn new(rng: Box<dyn Rng>, grid: Grid) -> Self {
[INFO] [stdout]    |                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/actors/handshake.rs:35:59
[INFO] [stdout]    |
[INFO] [stdout] 35 |     fn transmit<I>(client: MsgClient<I>, msg: Msg) -> Box<Future<Item = MsgClient<I>, Error = ()>>
[INFO] [stdout]    |                                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 35 |     fn transmit<I>(client: MsgClient<I>, msg: Msg) -> Box<dyn Future<Item = MsgClient<I>, Error = ()>>
[INFO] [stdout]    |                                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/actors/handshake.rs:44:26
[INFO] [stdout]    |
[INFO] [stdout] 44 |                   -> Box<Future<Item = (Msg, MsgClient<I>), Error = ()>>
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 44 |                   -> Box<dyn Future<Item = (Msg, MsgClient<I>), Error = ()>>
[INFO] [stdout]    |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/actors/handshake.rs:58:34
[INFO] [stdout]    |
[INFO] [stdout] 58 |                           -> Box<Future<Item = MsgClient<String>, Error = ()>> {
[INFO] [stdout]    |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 58 |                           -> Box<dyn Future<Item = MsgClient<String>, Error = ()>> {
[INFO] [stdout]    |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/actors/handshake.rs:78:23
[INFO] [stdout]    |
[INFO] [stdout] 78 |     type Future = Box<Future<Item = Self::Response, Error = Self::Error>>;
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 78 |     type Future = Box<dyn Future<Item = Self::Response, Error = Self::Error>>;
[INFO] [stdout]    |                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/actors/game.rs:30:25
[INFO] [stdout]    |
[INFO] [stdout] 30 |                  -> Box<Future<Item = (MsgRoom<String>, mpsc::Sender<Msg>), Error = ()>> {
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 30 |                  -> Box<dyn Future<Item = (MsgRoom<String>, mpsc::Sender<Msg>), Error = ()>> {
[INFO] [stdout]    |                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/actors/game.rs:41:17
[INFO] [stdout]    |
[INFO] [stdout] 41 |          -> Box<Future<Item = (HashMap<String, Direction>, MsgRoom<String>), Error = ()>> {
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 41 |          -> Box<dyn Future<Item = (HashMap<String, Direction>, MsgRoom<String>), Error = ()>> {
[INFO] [stdout]    |                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/actors/game.rs:56:22
[INFO] [stdout]    |
[INFO] [stdout] 56 |               -> Box<Future<Item = (Game, MsgRoom<String>, mpsc::Sender<Msg>), Error = ()>> {
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 56 |               -> Box<dyn Future<Item = (Game, MsgRoom<String>, mpsc::Sender<Msg>), Error = ()>> {
[INFO] [stdout]    |                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/actors/game.rs:76:21
[INFO] [stdout]    |
[INFO] [stdout] 76 |                -> Box<Future<Item = (Game,
[INFO] [stdout]    |  _____________________^
[INFO] [stdout] 77 | |                                    MsgRoom<String>,
[INFO] [stdout] 78 | |                                    mpsc::Sender<Msg>,
[INFO] [stdout] 79 | |                                    Milliseconds,
[INFO] [stdout] 80 | |                                    tokio_timer::Timer),
[INFO] [stdout] 81 | |                            Error = ()>> {
[INFO] [stdout]    | |______________________________________^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 76 |              -> Box<dyn Future<Item = (Game,
[INFO] [stdout]    |                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/actors/game.rs:101:23
[INFO] [stdout]     |
[INFO] [stdout] 101 |                -> Box<Future<Item = (Game, MsgRoom<String>, mpsc::Sender<Msg>), Error = ()>> {
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 101 |                -> Box<dyn Future<Item = (Game, MsgRoom<String>, mpsc::Sender<Msg>), Error = ()>> {
[INFO] [stdout]     |                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/actors/game.rs:117:23
[INFO] [stdout]     |
[INFO] [stdout] 117 |     type Future = Box<Future<Item = Self::Response, Error = Self::Error>>;
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 117 |     type Future = Box<dyn Future<Item = Self::Response, Error = Self::Error>>;
[INFO] [stdout]     |                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/actors/handshake.rs:35:59
[INFO] [stdout]    |
[INFO] [stdout] 35 |     fn transmit<I>(client: MsgClient<I>, msg: Msg) -> Box<Future<Item = MsgClient<I>, Error = ()>>
[INFO] [stdout]    |                                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 35 |     fn transmit<I>(client: MsgClient<I>, msg: Msg) -> Box<dyn Future<Item = MsgClient<I>, Error = ()>>
[INFO] [stdout]    |                                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/actors/handshake.rs:44:26
[INFO] [stdout]    |
[INFO] [stdout] 44 |                   -> Box<Future<Item = (Msg, MsgClient<I>), Error = ()>>
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 44 |                   -> Box<dyn Future<Item = (Msg, MsgClient<I>), Error = ()>>
[INFO] [stdout]    |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/actors/handshake.rs:58:34
[INFO] [stdout]    |
[INFO] [stdout] 58 |                           -> Box<Future<Item = MsgClient<String>, Error = ()>> {
[INFO] [stdout]    |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 58 |                           -> Box<dyn Future<Item = MsgClient<String>, Error = ()>> {
[INFO] [stdout]    |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/actors/handshake.rs:78:23
[INFO] [stdout]    |
[INFO] [stdout] 78 |     type Future = Box<Future<Item = Self::Response, Error = Self::Error>>;
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 78 |     type Future = Box<dyn Future<Item = Self::Response, Error = Self::Error>>;
[INFO] [stdout]    |                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/actors/game.rs:30:25
[INFO] [stdout]    |
[INFO] [stdout] 30 |                  -> Box<Future<Item = (MsgRoom<String>, mpsc::Sender<Msg>), Error = ()>> {
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 30 |                  -> Box<dyn Future<Item = (MsgRoom<String>, mpsc::Sender<Msg>), Error = ()>> {
[INFO] [stdout]    |                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/actors/game.rs:41:17
[INFO] [stdout]    |
[INFO] [stdout] 41 |          -> Box<Future<Item = (HashMap<String, Direction>, MsgRoom<String>), Error = ()>> {
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 41 |          -> Box<dyn Future<Item = (HashMap<String, Direction>, MsgRoom<String>), Error = ()>> {
[INFO] [stdout]    |                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/actors/game.rs:56:22
[INFO] [stdout]    |
[INFO] [stdout] 56 |               -> Box<Future<Item = (Game, MsgRoom<String>, mpsc::Sender<Msg>), Error = ()>> {
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 56 |               -> Box<dyn Future<Item = (Game, MsgRoom<String>, mpsc::Sender<Msg>), Error = ()>> {
[INFO] [stdout]    |                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/actors/game.rs:76:21
[INFO] [stdout]    |
[INFO] [stdout] 76 |                -> Box<Future<Item = (Game,
[INFO] [stdout]    |  _____________________^
[INFO] [stdout] 77 | |                                    MsgRoom<String>,
[INFO] [stdout] 78 | |                                    mpsc::Sender<Msg>,
[INFO] [stdout] 79 | |                                    Milliseconds,
[INFO] [stdout] 80 | |                                    tokio_timer::Timer),
[INFO] [stdout] 81 | |                            Error = ()>> {
[INFO] [stdout]    | |______________________________________^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 76 |              -> Box<dyn Future<Item = (Game,
[INFO] [stdout]    |                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/actors/game.rs:101:23
[INFO] [stdout]     |
[INFO] [stdout] 101 |                -> Box<Future<Item = (Game, MsgRoom<String>, mpsc::Sender<Msg>), Error = ()>> {
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 101 |                -> Box<dyn Future<Item = (Game, MsgRoom<String>, mpsc::Sender<Msg>), Error = ()>> {
[INFO] [stdout]     |                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/actors/game.rs:117:23
[INFO] [stdout]     |
[INFO] [stdout] 117 |     type Future = Box<Future<Item = Self::Response, Error = Self::Error>>;
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 117 |     type Future = Box<dyn Future<Item = Self::Response, Error = Self::Error>>;
[INFO] [stdout]     |                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/actors/handshake.rs:90:104
[INFO] [stdout]    |
[INFO] [stdout] 90 | ...n(move |(msg, unnamed_client)| -> Box<Future<Item = (MsgClient<String>, ClientKind), Error = ()>> {
[INFO] [stdout]    |                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 90 |             Self::receive(unnamed_client, timeout, timer).and_then(move |(msg, unnamed_client)| -> Box<dyn Future<Item = (MsgClient<String>, ClientKind), Error = ()>> {
[INFO] [stdout]    |                                                                                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/actors/handshake.rs:90:104
[INFO] [stdout]    |
[INFO] [stdout] 90 | ...n(move |(msg, unnamed_client)| -> Box<Future<Item = (MsgClient<String>, ClientKind), Error = ()>> {
[INFO] [stdout]    |                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 90 |             Self::receive(unnamed_client, timeout, timer).and_then(move |(msg, unnamed_client)| -> Box<dyn Future<Item = (MsgClient<String>, ClientKind), Error = ()>> {
[INFO] [stdout]    |                                                                                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::cause`: replaced by Error::source, which can support downcasting
[INFO] [stdout]   --> src/errors.rs:1:1
[INFO] [stdout]    |
[INFO] [stdout] 1  | / error_chain! {
[INFO] [stdout] 2  | |     // The type defined for this error. These are the conventional
[INFO] [stdout] 3  | |     // and recommended names, but they can be arbitrarily chosen.
[INFO] [stdout] 4  | |     //
[INFO] [stdout] ...  |
[INFO] [stdout] 34 | |     }
[INFO] [stdout] 35 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `error_chain_processed` which comes from the expansion of the macro `error_chain` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::cause`: replaced by Error::source, which can support downcasting
[INFO] [stdout]   --> src/errors.rs:1:1
[INFO] [stdout]    |
[INFO] [stdout] 1  | / error_chain! {
[INFO] [stdout] 2  | |     // The type defined for this error. These are the conventional
[INFO] [stdout] 3  | |     // and recommended names, but they can be arbitrarily chosen.
[INFO] [stdout] 4  | |     //
[INFO] [stdout] ...  |
[INFO] [stdout] 34 | |     }
[INFO] [stdout] 35 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `error_chain_processed` which comes from the expansion of the macro `error_chain` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `timeout`
[INFO] [stdout]   --> src/actors/game.rs:39:10
[INFO] [stdout]    |
[INFO] [stdout] 39 |          timeout: Milliseconds,
[INFO] [stdout]    |          ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_timeout`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `timer`
[INFO] [stdout]   --> src/actors/game.rs:40:10
[INFO] [stdout]    |
[INFO] [stdout] 40 |          timer: &tokio_timer::Timer)
[INFO] [stdout]    |          ^^^^^ help: if this is intentional, prefix it with an underscore: `_timer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: non-local `impl` definition, they should be avoided as they go against expectation
[INFO] [stdout]  --> src/state/game.rs:6:35
[INFO] [stdout]   |
[INFO] [stdout] 6 | #[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
[INFO] [stdout]   |                                   ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = help: move this `impl` block outside the of the current constant `_IMPL_SERIALIZE_FOR_GameState`
[INFO] [stdout]   = note: an `impl` definition is non-local if it is nested inside an item and neither the type nor the trait are at the same nesting level as the `impl` block
[INFO] [stdout]   = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[INFO] [stdout]   = note: requested on the command line with `-D non-local-definitions`
[INFO] [stdout]   = note: this error originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: non-local `impl` definition, they should be avoided as they go against expectation
[INFO] [stdout]  --> src/state/game.rs:6:46
[INFO] [stdout]   |
[INFO] [stdout] 6 | #[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
[INFO] [stdout]   |                                              ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = help: move this `impl` block outside the of the current constant `_IMPL_DESERIALIZE_FOR_GameState`
[INFO] [stdout]   = note: an `impl` definition is non-local if it is nested inside an item and neither the type nor the trait are at the same nesting level as the `impl` block
[INFO] [stdout]   = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[INFO] [stdout]   = note: this error originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: non-local `impl` definition, they should be avoided as they go against expectation
[INFO] [stdout]   --> src/state/game.rs:23:44
[INFO] [stdout]    |
[INFO] [stdout] 23 | #[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
[INFO] [stdout]    |                                            ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: move this `impl` block outside the of the current constant `_IMPL_SERIALIZE_FOR_RoundState`
[INFO] [stdout]    = note: an `impl` definition is non-local if it is nested inside an item and neither the type nor the trait are at the same nesting level as the `impl` block
[INFO] [stdout]    = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[INFO] [stdout]    = note: this error originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: non-local `impl` definition, they should be avoided as they go against expectation
[INFO] [stdout]   --> src/state/game.rs:23:55
[INFO] [stdout]    |
[INFO] [stdout] 23 | #[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
[INFO] [stdout]    |                                                       ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: move this `impl` block outside the of the current constant `_IMPL_DESERIALIZE_FOR_RoundState`
[INFO] [stdout]    = note: an `impl` definition is non-local if it is nested inside an item and neither the type nor the trait are at the same nesting level as the `impl` block
[INFO] [stdout]    = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[INFO] [stdout]    = note: this error originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: non-local `impl` definition, they should be avoided as they go against expectation
[INFO] [stdout]  --> src/state/snake.rs:4:45
[INFO] [stdout]   |
[INFO] [stdout] 4 | #[derive(PartialEq, Eq, Clone, Hash, Debug, Serialize, Deserialize)]
[INFO] [stdout]   |                                             ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = help: move this `impl` block outside the of the current constant `_IMPL_SERIALIZE_FOR_Snake`
[INFO] [stdout]   = note: an `impl` definition is non-local if it is nested inside an item and neither the type nor the trait are at the same nesting level as the `impl` block
[INFO] [stdout]   = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[INFO] [stdout]   = note: this error originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: non-local `impl` definition, they should be avoided as they go against expectation
[INFO] [stdout]  --> src/state/snake.rs:4:56
[INFO] [stdout]   |
[INFO] [stdout] 4 | #[derive(PartialEq, Eq, Clone, Hash, Debug, Serialize, Deserialize)]
[INFO] [stdout]   |                                                        ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = help: move this `impl` block outside the of the current constant `_IMPL_DESERIALIZE_FOR_Snake`
[INFO] [stdout]   = note: an `impl` definition is non-local if it is nested inside an item and neither the type nor the trait are at the same nesting level as the `impl` block
[INFO] [stdout]   = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[INFO] [stdout]   = note: this error originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: non-local `impl` definition, they should be avoided as they go against expectation
[INFO] [stdout]   --> src/state/snake.rs:60:35
[INFO] [stdout]    |
[INFO] [stdout] 60 | #[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
[INFO] [stdout]    |                                   ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: move this `impl` block outside the of the current constant `_IMPL_SERIALIZE_FOR_CauseOfDeath`
[INFO] [stdout]    = note: an `impl` definition is non-local if it is nested inside an item and neither the type nor the trait are at the same nesting level as the `impl` block
[INFO] [stdout]    = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[INFO] [stdout]    = note: this error originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: non-local `impl` definition, they should be avoided as they go against expectation
[INFO] [stdout]   --> src/state/snake.rs:60:46
[INFO] [stdout]    |
[INFO] [stdout] 60 | #[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
[INFO] [stdout]    |                                              ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: move this `impl` block outside the of the current constant `_IMPL_DESERIALIZE_FOR_CauseOfDeath`
[INFO] [stdout]    = note: an `impl` definition is non-local if it is nested inside an item and neither the type nor the trait are at the same nesting level as the `impl` block
[INFO] [stdout]    = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[INFO] [stdout]    = note: this error originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: non-local `impl` definition, they should be avoided as they go against expectation
[INFO] [stdout]   --> src/state/grids/traits.rs:33:35
[INFO] [stdout]    |
[INFO] [stdout] 33 | #[derive(PartialEq, Clone, Debug, Serialize, Deserialize)]
[INFO] [stdout]    |                                   ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: move this `impl` block outside the of the current constant `_IMPL_SERIALIZE_FOR_GridEnum`
[INFO] [stdout]    = note: an `impl` definition is non-local if it is nested inside an item and neither the type nor the trait are at the same nesting level as the `impl` block
[INFO] [stdout]    = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[INFO] [stdout]    = note: this error originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: non-local `impl` definition, they should be avoided as they go against expectation
[INFO] [stdout]   --> src/state/grids/traits.rs:33:46
[INFO] [stdout]    |
[INFO] [stdout] 33 | #[derive(PartialEq, Clone, Debug, Serialize, Deserialize)]
[INFO] [stdout]    |                                              ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: move this `impl` block outside the of the current constant `_IMPL_DESERIALIZE_FOR_GridEnum`
[INFO] [stdout]    = note: an `impl` definition is non-local if it is nested inside an item and neither the type nor the trait are at the same nesting level as the `impl` block
[INFO] [stdout]    = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[INFO] [stdout]    = note: this error originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: non-local `impl` definition, they should be avoided as they go against expectation
[INFO] [stdout]  --> src/state/grids/square.rs:5:51
[INFO] [stdout]   |
[INFO] [stdout] 5 | #[derive(PartialEq, Eq, Clone, Copy, Hash, Debug, Serialize, Deserialize)]
[INFO] [stdout]   |                                                   ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = help: move this `impl` block outside the of the current constant `_IMPL_SERIALIZE_FOR_SquareDirection`
[INFO] [stdout]   = note: an `impl` definition is non-local if it is nested inside an item and neither the type nor the trait are at the same nesting level as the `impl` block
[INFO] [stdout]   = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[INFO] [stdout]   = note: this error originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: non-local `impl` definition, they should be avoided as they go against expectation
[INFO] [stdout]  --> src/state/grids/square.rs:5:62
[INFO] [stdout]   |
[INFO] [stdout] 5 | #[derive(PartialEq, Eq, Clone, Copy, Hash, Debug, Serialize, Deserialize)]
[INFO] [stdout]   |                                                              ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = help: move this `impl` block outside the of the current constant `_IMPL_DESERIALIZE_FOR_SquareDirection`
[INFO] [stdout]   = note: an `impl` definition is non-local if it is nested inside an item and neither the type nor the trait are at the same nesting level as the `impl` block
[INFO] [stdout]   = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[INFO] [stdout]   = note: this error originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `timeout`
[INFO] [stdout]   --> src/actors/game.rs:39:10
[INFO] [stdout]    |
[INFO] [stdout] 39 |          timeout: Milliseconds,
[INFO] [stdout]    |          ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_timeout`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `timer`
[INFO] [stdout]   --> src/actors/game.rs:40:10
[INFO] [stdout]    |
[INFO] [stdout] 40 |          timer: &tokio_timer::Timer)
[INFO] [stdout]    |          ^^^^^ help: if this is intentional, prefix it with an underscore: `_timer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: non-local `impl` definition, they should be avoided as they go against expectation
[INFO] [stdout]   --> src/state/grids/square.rs:24:51
[INFO] [stdout]    |
[INFO] [stdout] 24 | #[derive(PartialEq, Eq, Clone, Copy, Hash, Debug, Serialize, Deserialize)]
[INFO] [stdout]    |                                                   ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: move this `impl` block outside the of the current constant `_IMPL_SERIALIZE_FOR_SquareVector`
[INFO] [stdout]    = note: an `impl` definition is non-local if it is nested inside an item and neither the type nor the trait are at the same nesting level as the `impl` block
[INFO] [stdout]    = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[INFO] [stdout]    = note: this error originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: non-local `impl` definition, they should be avoided as they go against expectation
[INFO] [stdout]   --> src/state/grids/square.rs:24:62
[INFO] [stdout]    |
[INFO] [stdout] 24 | #[derive(PartialEq, Eq, Clone, Copy, Hash, Debug, Serialize, Deserialize)]
[INFO] [stdout]    |                                                              ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: move this `impl` block outside the of the current constant `_IMPL_DESERIALIZE_FOR_SquareVector`
[INFO] [stdout]    = note: an `impl` definition is non-local if it is nested inside an item and neither the type nor the trait are at the same nesting level as the `impl` block
[INFO] [stdout]    = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[INFO] [stdout]    = note: this error originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: non-local `impl` definition, they should be avoided as they go against expectation
[INFO] [stdout]   --> src/state/grids/square.rs:76:51
[INFO] [stdout]    |
[INFO] [stdout] 76 | #[derive(PartialEq, Eq, Clone, Copy, Hash, Debug, Serialize, Deserialize)]
[INFO] [stdout]    |                                                   ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: move this `impl` block outside the of the current constant `_IMPL_SERIALIZE_FOR_SquareGrid`
[INFO] [stdout]    = note: an `impl` definition is non-local if it is nested inside an item and neither the type nor the trait are at the same nesting level as the `impl` block
[INFO] [stdout]    = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[INFO] [stdout]    = note: this error originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: non-local `impl` definition, they should be avoided as they go against expectation
[INFO] [stdout]   --> src/state/grids/square.rs:76:62
[INFO] [stdout]    |
[INFO] [stdout] 76 | #[derive(PartialEq, Eq, Clone, Copy, Hash, Debug, Serialize, Deserialize)]
[INFO] [stdout]    |                                                              ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: move this `impl` block outside the of the current constant `_IMPL_DESERIALIZE_FOR_SquareGrid`
[INFO] [stdout]    = note: an `impl` definition is non-local if it is nested inside an item and neither the type nor the trait are at the same nesting level as the `impl` block
[INFO] [stdout]    = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[INFO] [stdout]    = note: this error originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: non-local `impl` definition, they should be avoided as they go against expectation
[INFO] [stdout]  --> src/state/grids/hexagon.rs:6:51
[INFO] [stdout]   |
[INFO] [stdout] 6 | #[derive(PartialEq, Eq, Clone, Copy, Hash, Debug, Serialize, Deserialize)]
[INFO] [stdout]   |                                                   ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = help: move this `impl` block outside the of the current constant `_IMPL_SERIALIZE_FOR_HexagonDirection`
[INFO] [stdout]   = note: an `impl` definition is non-local if it is nested inside an item and neither the type nor the trait are at the same nesting level as the `impl` block
[INFO] [stdout]   = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[INFO] [stdout]   = note: this error originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: non-local `impl` definition, they should be avoided as they go against expectation
[INFO] [stdout]  --> src/state/grids/hexagon.rs:6:62
[INFO] [stdout]   |
[INFO] [stdout] 6 | #[derive(PartialEq, Eq, Clone, Copy, Hash, Debug, Serialize, Deserialize)]
[INFO] [stdout]   |                                                              ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = help: move this `impl` block outside the of the current constant `_IMPL_DESERIALIZE_FOR_HexagonDirection`
[INFO] [stdout]   = note: an `impl` definition is non-local if it is nested inside an item and neither the type nor the trait are at the same nesting level as the `impl` block
[INFO] [stdout]   = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[INFO] [stdout]   = note: this error originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: non-local `impl` definition, they should be avoided as they go against expectation
[INFO] [stdout]   --> src/state/grids/hexagon.rs:33:51
[INFO] [stdout]    |
[INFO] [stdout] 33 | #[derive(PartialEq, Eq, Clone, Copy, Hash, Debug, Serialize, Deserialize)]
[INFO] [stdout]    |                                                   ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: move this `impl` block outside the of the current constant `_IMPL_SERIALIZE_FOR_HexagonVector`
[INFO] [stdout]    = note: an `impl` definition is non-local if it is nested inside an item and neither the type nor the trait are at the same nesting level as the `impl` block
[INFO] [stdout]    = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[INFO] [stdout]    = note: this error originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: non-local `impl` definition, they should be avoided as they go against expectation
[INFO] [stdout]   --> src/state/grids/hexagon.rs:33:62
[INFO] [stdout]    |
[INFO] [stdout] 33 | #[derive(PartialEq, Eq, Clone, Copy, Hash, Debug, Serialize, Deserialize)]
[INFO] [stdout]    |                                                              ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: move this `impl` block outside the of the current constant `_IMPL_DESERIALIZE_FOR_HexagonVector`
[INFO] [stdout]    = note: an `impl` definition is non-local if it is nested inside an item and neither the type nor the trait are at the same nesting level as the `impl` block
[INFO] [stdout]    = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[INFO] [stdout]    = note: this error originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: non-local `impl` definition, they should be avoided as they go against expectation
[INFO] [stdout]   --> src/state/grids/hexagon.rs:98:51
[INFO] [stdout]    |
[INFO] [stdout] 98 | #[derive(PartialEq, Eq, Clone, Copy, Hash, Debug, Serialize, Deserialize)]
[INFO] [stdout]    |                                                   ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: move this `impl` block outside the of the current constant `_IMPL_SERIALIZE_FOR_HexagonGrid`
[INFO] [stdout]    = note: an `impl` definition is non-local if it is nested inside an item and neither the type nor the trait are at the same nesting level as the `impl` block
[INFO] [stdout]    = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[INFO] [stdout]    = note: this error originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: non-local `impl` definition, they should be avoided as they go against expectation
[INFO] [stdout]   --> src/state/grids/hexagon.rs:98:62
[INFO] [stdout]    |
[INFO] [stdout] 98 | #[derive(PartialEq, Eq, Clone, Copy, Hash, Debug, Serialize, Deserialize)]
[INFO] [stdout]    |                                                              ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: move this `impl` block outside the of the current constant `_IMPL_DESERIALIZE_FOR_HexagonGrid`
[INFO] [stdout]    = note: an `impl` definition is non-local if it is nested inside an item and neither the type nor the trait are at the same nesting level as the `impl` block
[INFO] [stdout]    = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[INFO] [stdout]    = note: this error originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: non-local `impl` definition, they should be avoided as they go against expectation
[INFO] [stdout]  --> src/state/grids/triangle.rs:5:51
[INFO] [stdout]   |
[INFO] [stdout] 5 | #[derive(PartialEq, Eq, Clone, Copy, Hash, Debug, Serialize, Deserialize)]
[INFO] [stdout]   |                                                   ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = help: move this `impl` block outside the of the current constant `_IMPL_SERIALIZE_FOR_TriangleDirection`
[INFO] [stdout]   = note: an `impl` definition is non-local if it is nested inside an item and neither the type nor the trait are at the same nesting level as the `impl` block
[INFO] [stdout]   = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[INFO] [stdout]   = note: this error originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: non-local `impl` definition, they should be avoided as they go against expectation
[INFO] [stdout]  --> src/state/grids/triangle.rs:5:62
[INFO] [stdout]   |
[INFO] [stdout] 5 | #[derive(PartialEq, Eq, Clone, Copy, Hash, Debug, Serialize, Deserialize)]
[INFO] [stdout]   |                                                              ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = help: move this `impl` block outside the of the current constant `_IMPL_DESERIALIZE_FOR_TriangleDirection`
[INFO] [stdout]   = note: an `impl` definition is non-local if it is nested inside an item and neither the type nor the trait are at the same nesting level as the `impl` block
[INFO] [stdout]   = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[INFO] [stdout]   = note: this error originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: non-local `impl` definition, they should be avoided as they go against expectation
[INFO] [stdout]   --> src/state/grids/triangle.rs:21:51
[INFO] [stdout]    |
[INFO] [stdout] 21 | #[derive(PartialEq, Eq, Clone, Copy, Hash, Debug, Serialize, Deserialize)]
[INFO] [stdout]    |                                                   ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: move this `impl` block outside the of the current constant `_IMPL_SERIALIZE_FOR_TriangleVector`
[INFO] [stdout]    = note: an `impl` definition is non-local if it is nested inside an item and neither the type nor the trait are at the same nesting level as the `impl` block
[INFO] [stdout]    = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[INFO] [stdout]    = note: this error originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: non-local `impl` definition, they should be avoided as they go against expectation
[INFO] [stdout]   --> src/state/grids/triangle.rs:21:62
[INFO] [stdout]    |
[INFO] [stdout] 21 | #[derive(PartialEq, Eq, Clone, Copy, Hash, Debug, Serialize, Deserialize)]
[INFO] [stdout]    |                                                              ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: move this `impl` block outside the of the current constant `_IMPL_DESERIALIZE_FOR_TriangleVector`
[INFO] [stdout]    = note: an `impl` definition is non-local if it is nested inside an item and neither the type nor the trait are at the same nesting level as the `impl` block
[INFO] [stdout]    = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[INFO] [stdout]    = note: this error originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: non-local `impl` definition, they should be avoided as they go against expectation
[INFO] [stdout]   --> src/state/grids/triangle.rs:96:51
[INFO] [stdout]    |
[INFO] [stdout] 96 | #[derive(PartialEq, Eq, Clone, Copy, Hash, Debug, Serialize, Deserialize)]
[INFO] [stdout]    |                                                   ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: move this `impl` block outside the of the current constant `_IMPL_SERIALIZE_FOR_TriangleGrid`
[INFO] [stdout]    = note: an `impl` definition is non-local if it is nested inside an item and neither the type nor the trait are at the same nesting level as the `impl` block
[INFO] [stdout]    = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[INFO] [stdout]    = note: this error originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: non-local `impl` definition, they should be avoided as they go against expectation
[INFO] [stdout]   --> src/state/grids/triangle.rs:96:62
[INFO] [stdout]    |
[INFO] [stdout] 96 | #[derive(PartialEq, Eq, Clone, Copy, Hash, Debug, Serialize, Deserialize)]
[INFO] [stdout]    |                                                              ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: move this `impl` block outside the of the current constant `_IMPL_DESERIALIZE_FOR_TriangleGrid`
[INFO] [stdout]    = note: an `impl` definition is non-local if it is nested inside an item and neither the type nor the trait are at the same nesting level as the `impl` block
[INFO] [stdout]    = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[INFO] [stdout]    = note: this error originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: non-local `impl` definition, they should be avoided as they go against expectation
[INFO] [stdout]   --> src/net/mod.rs:18:41
[INFO] [stdout]    |
[INFO] [stdout] 18 | #[derive(PartialEq, Clone, Copy, Debug, Serialize, Deserialize)]
[INFO] [stdout]    |                                         ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: move this `impl` block outside the of the current constant `_IMPL_SERIALIZE_FOR_ClientKind`
[INFO] [stdout]    = note: an `impl` definition is non-local if it is nested inside an item and neither the type nor the trait are at the same nesting level as the `impl` block
[INFO] [stdout]    = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[INFO] [stdout]    = note: this error originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: non-local `impl` definition, they should be avoided as they go against expectation
[INFO] [stdout]   --> src/net/mod.rs:18:52
[INFO] [stdout]    |
[INFO] [stdout] 18 | #[derive(PartialEq, Clone, Copy, Debug, Serialize, Deserialize)]
[INFO] [stdout]    |                                                    ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: move this `impl` block outside the of the current constant `_IMPL_DESERIALIZE_FOR_ClientKind`
[INFO] [stdout]    = note: an `impl` definition is non-local if it is nested inside an item and neither the type nor the trait are at the same nesting level as the `impl` block
[INFO] [stdout]    = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[INFO] [stdout]    = note: this error originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: non-local `impl` definition, they should be avoided as they go against expectation
[INFO] [stdout]   --> src/net/msg.rs:11:35
[INFO] [stdout]    |
[INFO] [stdout] 11 | #[derive(PartialEq, Clone, Debug, Serialize, Deserialize)]
[INFO] [stdout]    |                                   ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: move this `impl` block outside the of the current constant `_IMPL_SERIALIZE_FOR_Msg`
[INFO] [stdout]    = note: an `impl` definition is non-local if it is nested inside an item and neither the type nor the trait are at the same nesting level as the `impl` block
[INFO] [stdout]    = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[INFO] [stdout]    = note: this error originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: non-local `impl` definition, they should be avoided as they go against expectation
[INFO] [stdout]   --> src/net/msg.rs:11:46
[INFO] [stdout]    |
[INFO] [stdout] 11 | #[derive(PartialEq, Clone, Debug, Serialize, Deserialize)]
[INFO] [stdout]    |                                              ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: move this `impl` block outside the of the current constant `_IMPL_DESERIALIZE_FOR_Msg`
[INFO] [stdout]    = note: an `impl` definition is non-local if it is nested inside an item and neither the type nor the trait are at the same nesting level as the `impl` block
[INFO] [stdout]    = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[INFO] [stdout]    = note: this error originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `random_cells_within_bounds_prop` is never used
[INFO] [stdout]    --> src/state/grids/triangle.rs:198:8
[INFO] [stdout]     |
[INFO] [stdout] 198 |     fn random_cells_within_bounds_prop(g: TriangleGrid) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `random_cells_within_bounds` is never used
[INFO] [stdout]    --> src/state/grids/triangle.rs:210:8
[INFO] [stdout]     |
[INFO] [stdout] 210 |     fn random_cells_within_bounds() {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: non-local `impl` definition, they should be avoided as they go against expectation
[INFO] [stdout]  --> src/state/game.rs:6:35
[INFO] [stdout]   |
[INFO] [stdout] 6 | #[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
[INFO] [stdout]   |                                   ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = help: move this `impl` block outside the of the current constant `_IMPL_SERIALIZE_FOR_GameState`
[INFO] [stdout]   = note: an `impl` definition is non-local if it is nested inside an item and neither the type nor the trait are at the same nesting level as the `impl` block
[INFO] [stdout]   = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[INFO] [stdout]   = note: requested on the command line with `-D non-local-definitions`
[INFO] [stdout]   = note: this error originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: non-local `impl` definition, they should be avoided as they go against expectation
[INFO] [stdout]  --> src/state/game.rs:6:46
[INFO] [stdout]   |
[INFO] [stdout] 6 | #[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
[INFO] [stdout]   |                                              ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = help: move this `impl` block outside the of the current constant `_IMPL_DESERIALIZE_FOR_GameState`
[INFO] [stdout]   = note: an `impl` definition is non-local if it is nested inside an item and neither the type nor the trait are at the same nesting level as the `impl` block
[INFO] [stdout]   = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[INFO] [stdout]   = note: this error originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 32 previous errors; 17 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: non-local `impl` definition, they should be avoided as they go against expectation
[INFO] [stdout]   --> src/state/game.rs:23:44
[INFO] [stdout]    |
[INFO] [stdout] 23 | #[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
[INFO] [stdout]    |                                            ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: move this `impl` block outside the of the current constant `_IMPL_SERIALIZE_FOR_RoundState`
[INFO] [stdout]    = note: an `impl` definition is non-local if it is nested inside an item and neither the type nor the trait are at the same nesting level as the `impl` block
[INFO] [stdout]    = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[INFO] [stdout]    = note: this error originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: non-local `impl` definition, they should be avoided as they go against expectation
[INFO] [stdout]   --> src/state/game.rs:23:55
[INFO] [stdout]    |
[INFO] [stdout] 23 | #[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
[INFO] [stdout]    |                                                       ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: move this `impl` block outside the of the current constant `_IMPL_DESERIALIZE_FOR_RoundState`
[INFO] [stdout]    = note: an `impl` definition is non-local if it is nested inside an item and neither the type nor the trait are at the same nesting level as the `impl` block
[INFO] [stdout]    = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[INFO] [stdout]    = note: this error originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: non-local `impl` definition, they should be avoided as they go against expectation
[INFO] [stdout]  --> src/state/snake.rs:4:45
[INFO] [stdout]   |
[INFO] [stdout] 4 | #[derive(PartialEq, Eq, Clone, Hash, Debug, Serialize, Deserialize)]
[INFO] [stdout]   |                                             ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = help: move this `impl` block outside the of the current constant `_IMPL_SERIALIZE_FOR_Snake`
[INFO] [stdout]   = note: an `impl` definition is non-local if it is nested inside an item and neither the type nor the trait are at the same nesting level as the `impl` block
[INFO] [stdout]   = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[INFO] [stdout]   = note: this error originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: non-local `impl` definition, they should be avoided as they go against expectation
[INFO] [stdout]  --> src/state/snake.rs:4:56
[INFO] [stdout]   |
[INFO] [stdout] 4 | #[derive(PartialEq, Eq, Clone, Hash, Debug, Serialize, Deserialize)]
[INFO] [stdout]   |                                                        ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = help: move this `impl` block outside the of the current constant `_IMPL_DESERIALIZE_FOR_Snake`
[INFO] [stdout]   = note: an `impl` definition is non-local if it is nested inside an item and neither the type nor the trait are at the same nesting level as the `impl` block
[INFO] [stdout]   = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[INFO] [stdout]   = note: this error originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: non-local `impl` definition, they should be avoided as they go against expectation
[INFO] [stdout]   --> src/state/snake.rs:60:35
[INFO] [stdout]    |
[INFO] [stdout] 60 | #[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
[INFO] [stdout]    |                                   ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: move this `impl` block outside the of the current constant `_IMPL_SERIALIZE_FOR_CauseOfDeath`
[INFO] [stdout]    = note: an `impl` definition is non-local if it is nested inside an item and neither the type nor the trait are at the same nesting level as the `impl` block
[INFO] [stdout]    = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[INFO] [stdout]    = note: this error originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: non-local `impl` definition, they should be avoided as they go against expectation
[INFO] [stdout]   --> src/state/snake.rs:60:46
[INFO] [stdout]    |
[INFO] [stdout] 60 | #[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
[INFO] [stdout]    |                                              ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: move this `impl` block outside the of the current constant `_IMPL_DESERIALIZE_FOR_CauseOfDeath`
[INFO] [stdout]    = note: an `impl` definition is non-local if it is nested inside an item and neither the type nor the trait are at the same nesting level as the `impl` block
[INFO] [stdout]    = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[INFO] [stdout]    = note: this error originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: non-local `impl` definition, they should be avoided as they go against expectation
[INFO] [stdout]   --> src/state/grids/traits.rs:33:35
[INFO] [stdout]    |
[INFO] [stdout] 33 | #[derive(PartialEq, Clone, Debug, Serialize, Deserialize)]
[INFO] [stdout]    |                                   ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: move this `impl` block outside the of the current constant `_IMPL_SERIALIZE_FOR_GridEnum`
[INFO] [stdout]    = note: an `impl` definition is non-local if it is nested inside an item and neither the type nor the trait are at the same nesting level as the `impl` block
[INFO] [stdout]    = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[INFO] [stdout]    = note: this error originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: non-local `impl` definition, they should be avoided as they go against expectation
[INFO] [stdout]   --> src/state/grids/traits.rs:33:46
[INFO] [stdout]    |
[INFO] [stdout] 33 | #[derive(PartialEq, Clone, Debug, Serialize, Deserialize)]
[INFO] [stdout]    |                                              ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: move this `impl` block outside the of the current constant `_IMPL_DESERIALIZE_FOR_GridEnum`
[INFO] [stdout]    = note: an `impl` definition is non-local if it is nested inside an item and neither the type nor the trait are at the same nesting level as the `impl` block
[INFO] [stdout]    = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[INFO] [stdout]    = note: this error originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: non-local `impl` definition, they should be avoided as they go against expectation
[INFO] [stdout]  --> src/state/grids/square.rs:5:51
[INFO] [stdout]   |
[INFO] [stdout] 5 | #[derive(PartialEq, Eq, Clone, Copy, Hash, Debug, Serialize, Deserialize)]
[INFO] [stdout]   |                                                   ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = help: move this `impl` block outside the of the current constant `_IMPL_SERIALIZE_FOR_SquareDirection`
[INFO] [stdout]   = note: an `impl` definition is non-local if it is nested inside an item and neither the type nor the trait are at the same nesting level as the `impl` block
[INFO] [stdout]   = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[INFO] [stdout]   = note: this error originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: non-local `impl` definition, they should be avoided as they go against expectation
[INFO] [stdout]  --> src/state/grids/square.rs:5:62
[INFO] [stdout]   |
[INFO] [stdout] 5 | #[derive(PartialEq, Eq, Clone, Copy, Hash, Debug, Serialize, Deserialize)]
[INFO] [stdout]   |                                                              ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = help: move this `impl` block outside the of the current constant `_IMPL_DESERIALIZE_FOR_SquareDirection`
[INFO] [stdout]   = note: an `impl` definition is non-local if it is nested inside an item and neither the type nor the trait are at the same nesting level as the `impl` block
[INFO] [stdout]   = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[INFO] [stdout]   = note: this error originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: non-local `impl` definition, they should be avoided as they go against expectation
[INFO] [stdout]   --> src/state/grids/square.rs:24:51
[INFO] [stdout]    |
[INFO] [stdout] 24 | #[derive(PartialEq, Eq, Clone, Copy, Hash, Debug, Serialize, Deserialize)]
[INFO] [stdout]    |                                                   ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: move this `impl` block outside the of the current constant `_IMPL_SERIALIZE_FOR_SquareVector`
[INFO] [stdout]    = note: an `impl` definition is non-local if it is nested inside an item and neither the type nor the trait are at the same nesting level as the `impl` block
[INFO] [stdout]    = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[INFO] [stdout]    = note: this error originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: non-local `impl` definition, they should be avoided as they go against expectation
[INFO] [stdout]   --> src/state/grids/square.rs:24:62
[INFO] [stdout]    |
[INFO] [stdout] 24 | #[derive(PartialEq, Eq, Clone, Copy, Hash, Debug, Serialize, Deserialize)]
[INFO] [stdout]    |                                                              ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: move this `impl` block outside the of the current constant `_IMPL_DESERIALIZE_FOR_SquareVector`
[INFO] [stdout]    = note: an `impl` definition is non-local if it is nested inside an item and neither the type nor the trait are at the same nesting level as the `impl` block
[INFO] [stdout]    = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[INFO] [stdout]    = note: this error originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: non-local `impl` definition, they should be avoided as they go against expectation
[INFO] [stdout]   --> src/state/grids/square.rs:76:51
[INFO] [stdout]    |
[INFO] [stdout] 76 | #[derive(PartialEq, Eq, Clone, Copy, Hash, Debug, Serialize, Deserialize)]
[INFO] [stdout]    |                                                   ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: move this `impl` block outside the of the current constant `_IMPL_SERIALIZE_FOR_SquareGrid`
[INFO] [stdout]    = note: an `impl` definition is non-local if it is nested inside an item and neither the type nor the trait are at the same nesting level as the `impl` block
[INFO] [stdout]    = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[INFO] [stdout]    = note: this error originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: non-local `impl` definition, they should be avoided as they go against expectation
[INFO] [stdout]   --> src/state/grids/square.rs:76:62
[INFO] [stdout]    |
[INFO] [stdout] 76 | #[derive(PartialEq, Eq, Clone, Copy, Hash, Debug, Serialize, Deserialize)]
[INFO] [stdout]    |                                                              ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: move this `impl` block outside the of the current constant `_IMPL_DESERIALIZE_FOR_SquareGrid`
[INFO] [stdout]    = note: an `impl` definition is non-local if it is nested inside an item and neither the type nor the trait are at the same nesting level as the `impl` block
[INFO] [stdout]    = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[INFO] [stdout]    = note: this error originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: non-local `impl` definition, they should be avoided as they go against expectation
[INFO] [stdout]  --> src/state/grids/hexagon.rs:6:51
[INFO] [stdout]   |
[INFO] [stdout] 6 | #[derive(PartialEq, Eq, Clone, Copy, Hash, Debug, Serialize, Deserialize)]
[INFO] [stdout]   |                                                   ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = help: move this `impl` block outside the of the current constant `_IMPL_SERIALIZE_FOR_HexagonDirection`
[INFO] [stdout]   = note: an `impl` definition is non-local if it is nested inside an item and neither the type nor the trait are at the same nesting level as the `impl` block
[INFO] [stdout]   = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[INFO] [stdout]   = note: this error originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: non-local `impl` definition, they should be avoided as they go against expectation
[INFO] [stdout]  --> src/state/grids/hexagon.rs:6:62
[INFO] [stdout]   |
[INFO] [stdout] 6 | #[derive(PartialEq, Eq, Clone, Copy, Hash, Debug, Serialize, Deserialize)]
[INFO] [stdout]   |                                                              ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = help: move this `impl` block outside the of the current constant `_IMPL_DESERIALIZE_FOR_HexagonDirection`
[INFO] [stdout]   = note: an `impl` definition is non-local if it is nested inside an item and neither the type nor the trait are at the same nesting level as the `impl` block
[INFO] [stdout]   = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[INFO] [stdout]   = note: this error originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: non-local `impl` definition, they should be avoided as they go against expectation
[INFO] [stdout]   --> src/state/grids/hexagon.rs:33:51
[INFO] [stdout]    |
[INFO] [stdout] 33 | #[derive(PartialEq, Eq, Clone, Copy, Hash, Debug, Serialize, Deserialize)]
[INFO] [stdout]    |                                                   ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: move this `impl` block outside the of the current constant `_IMPL_SERIALIZE_FOR_HexagonVector`
[INFO] [stdout]    = note: an `impl` definition is non-local if it is nested inside an item and neither the type nor the trait are at the same nesting level as the `impl` block
[INFO] [stdout]    = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[INFO] [stdout]    = note: this error originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: non-local `impl` definition, they should be avoided as they go against expectation
[INFO] [stdout]   --> src/state/grids/hexagon.rs:33:62
[INFO] [stdout]    |
[INFO] [stdout] 33 | #[derive(PartialEq, Eq, Clone, Copy, Hash, Debug, Serialize, Deserialize)]
[INFO] [stdout]    |                                                              ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: move this `impl` block outside the of the current constant `_IMPL_DESERIALIZE_FOR_HexagonVector`
[INFO] [stdout]    = note: an `impl` definition is non-local if it is nested inside an item and neither the type nor the trait are at the same nesting level as the `impl` block
[INFO] [stdout]    = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[INFO] [stdout]    = note: this error originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: non-local `impl` definition, they should be avoided as they go against expectation
[INFO] [stdout]   --> src/state/grids/hexagon.rs:98:51
[INFO] [stdout]    |
[INFO] [stdout] 98 | #[derive(PartialEq, Eq, Clone, Copy, Hash, Debug, Serialize, Deserialize)]
[INFO] [stdout]    |                                                   ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: move this `impl` block outside the of the current constant `_IMPL_SERIALIZE_FOR_HexagonGrid`
[INFO] [stdout]    = note: an `impl` definition is non-local if it is nested inside an item and neither the type nor the trait are at the same nesting level as the `impl` block
[INFO] [stdout]    = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[INFO] [stdout]    = note: this error originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: non-local `impl` definition, they should be avoided as they go against expectation
[INFO] [stdout]   --> src/state/grids/hexagon.rs:98:62
[INFO] [stdout]    |
[INFO] [stdout] 98 | #[derive(PartialEq, Eq, Clone, Copy, Hash, Debug, Serialize, Deserialize)]
[INFO] [stdout]    |                                                              ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: move this `impl` block outside the of the current constant `_IMPL_DESERIALIZE_FOR_HexagonGrid`
[INFO] [stdout]    = note: an `impl` definition is non-local if it is nested inside an item and neither the type nor the trait are at the same nesting level as the `impl` block
[INFO] [stdout]    = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[INFO] [stdout]    = note: this error originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: non-local `impl` definition, they should be avoided as they go against expectation
[INFO] [stdout]  --> src/state/grids/triangle.rs:5:51
[INFO] [stdout]   |
[INFO] [stdout] 5 | #[derive(PartialEq, Eq, Clone, Copy, Hash, Debug, Serialize, Deserialize)]
[INFO] [stdout]   |                                                   ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = help: move this `impl` block outside the of the current constant `_IMPL_SERIALIZE_FOR_TriangleDirection`
[INFO] [stdout]   = note: an `impl` definition is non-local if it is nested inside an item and neither the type nor the trait are at the same nesting level as the `impl` block
[INFO] [stdout]   = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[INFO] [stdout]   = note: this error originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: non-local `impl` definition, they should be avoided as they go against expectation
[INFO] [stdout]  --> src/state/grids/triangle.rs:5:62
[INFO] [stdout]   |
[INFO] [stdout] 5 | #[derive(PartialEq, Eq, Clone, Copy, Hash, Debug, Serialize, Deserialize)]
[INFO] [stdout]   |                                                              ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = help: move this `impl` block outside the of the current constant `_IMPL_DESERIALIZE_FOR_TriangleDirection`
[INFO] [stdout]   = note: an `impl` definition is non-local if it is nested inside an item and neither the type nor the trait are at the same nesting level as the `impl` block
[INFO] [stdout]   = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[INFO] [stdout]   = note: this error originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: non-local `impl` definition, they should be avoided as they go against expectation
[INFO] [stdout]   --> src/state/grids/triangle.rs:21:51
[INFO] [stdout]    |
[INFO] [stdout] 21 | #[derive(PartialEq, Eq, Clone, Copy, Hash, Debug, Serialize, Deserialize)]
[INFO] [stdout]    |                                                   ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: move this `impl` block outside the of the current constant `_IMPL_SERIALIZE_FOR_TriangleVector`
[INFO] [stdout]    = note: an `impl` definition is non-local if it is nested inside an item and neither the type nor the trait are at the same nesting level as the `impl` block
[INFO] [stdout]    = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[INFO] [stdout]    = note: this error originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `sirpent` (lib) due to 33 previous errors; 17 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] error: non-local `impl` definition, they should be avoided as they go against expectation
[INFO] [stdout]   --> src/state/grids/triangle.rs:21:62
[INFO] [stdout]    |
[INFO] [stdout] 21 | #[derive(PartialEq, Eq, Clone, Copy, Hash, Debug, Serialize, Deserialize)]
[INFO] [stdout]    |                                                              ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: move this `impl` block outside the of the current constant `_IMPL_DESERIALIZE_FOR_TriangleVector`
[INFO] [stdout]    = note: an `impl` definition is non-local if it is nested inside an item and neither the type nor the trait are at the same nesting level as the `impl` block
[INFO] [stdout]    = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[INFO] [stdout]    = note: this error originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: non-local `impl` definition, they should be avoided as they go against expectation
[INFO] [stdout]   --> src/state/grids/triangle.rs:96:51
[INFO] [stdout]    |
[INFO] [stdout] 96 | #[derive(PartialEq, Eq, Clone, Copy, Hash, Debug, Serialize, Deserialize)]
[INFO] [stdout]    |                                                   ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: move this `impl` block outside the of the current constant `_IMPL_SERIALIZE_FOR_TriangleGrid`
[INFO] [stdout]    = note: an `impl` definition is non-local if it is nested inside an item and neither the type nor the trait are at the same nesting level as the `impl` block
[INFO] [stdout]    = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[INFO] [stdout]    = note: this error originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: non-local `impl` definition, they should be avoided as they go against expectation
[INFO] [stdout]   --> src/state/grids/triangle.rs:96:62
[INFO] [stdout]    |
[INFO] [stdout] 96 | #[derive(PartialEq, Eq, Clone, Copy, Hash, Debug, Serialize, Deserialize)]
[INFO] [stdout]    |                                                              ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: move this `impl` block outside the of the current constant `_IMPL_DESERIALIZE_FOR_TriangleGrid`
[INFO] [stdout]    = note: an `impl` definition is non-local if it is nested inside an item and neither the type nor the trait are at the same nesting level as the `impl` block
[INFO] [stdout]    = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[INFO] [stdout]    = note: this error originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: non-local `impl` definition, they should be avoided as they go against expectation
[INFO] [stdout]   --> src/net/mod.rs:18:41
[INFO] [stdout]    |
[INFO] [stdout] 18 | #[derive(PartialEq, Clone, Copy, Debug, Serialize, Deserialize)]
[INFO] [stdout]    |                                         ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: move this `impl` block outside the of the current constant `_IMPL_SERIALIZE_FOR_ClientKind`
[INFO] [stdout]    = note: an `impl` definition is non-local if it is nested inside an item and neither the type nor the trait are at the same nesting level as the `impl` block
[INFO] [stdout]    = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[INFO] [stdout]    = note: this error originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: non-local `impl` definition, they should be avoided as they go against expectation
[INFO] [stdout]   --> src/net/mod.rs:18:52
[INFO] [stdout]    |
[INFO] [stdout] 18 | #[derive(PartialEq, Clone, Copy, Debug, Serialize, Deserialize)]
[INFO] [stdout]    |                                                    ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: move this `impl` block outside the of the current constant `_IMPL_DESERIALIZE_FOR_ClientKind`
[INFO] [stdout]    = note: an `impl` definition is non-local if it is nested inside an item and neither the type nor the trait are at the same nesting level as the `impl` block
[INFO] [stdout]    = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[INFO] [stdout]    = note: this error originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: non-local `impl` definition, they should be avoided as they go against expectation
[INFO] [stdout]   --> src/net/msg.rs:11:35
[INFO] [stdout]    |
[INFO] [stdout] 11 | #[derive(PartialEq, Clone, Debug, Serialize, Deserialize)]
[INFO] [stdout]    |                                   ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: move this `impl` block outside the of the current constant `_IMPL_SERIALIZE_FOR_Msg`
[INFO] [stdout]    = note: an `impl` definition is non-local if it is nested inside an item and neither the type nor the trait are at the same nesting level as the `impl` block
[INFO] [stdout]    = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[INFO] [stdout]    = note: this error originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: non-local `impl` definition, they should be avoided as they go against expectation
[INFO] [stdout]   --> src/net/msg.rs:11:46
[INFO] [stdout]    |
[INFO] [stdout] 11 | #[derive(PartialEq, Clone, Debug, Serialize, Deserialize)]
[INFO] [stdout]    |                                              ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: move this `impl` block outside the of the current constant `_IMPL_DESERIALIZE_FOR_Msg`
[INFO] [stdout]    = note: an `impl` definition is non-local if it is nested inside an item and neither the type nor the trait are at the same nesting level as the `impl` block
[INFO] [stdout]    = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[INFO] [stdout]    = note: this error originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 32 previous errors; 20 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `sirpent` (lib test) due to 33 previous errors; 20 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "e6940825ec98724f05cc013bd72a22bef1b0571dff6b0ac21d41c464dd236b8f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e6940825ec98724f05cc013bd72a22bef1b0571dff6b0ac21d41c464dd236b8f", kill_on_drop: false }`
[INFO] [stdout] e6940825ec98724f05cc013bd72a22bef1b0571dff6b0ac21d41c464dd236b8f
