[INFO] fetching crate aoe-djin 0.3.2...
[INFO] testing aoe-djin-0.3.2 against nightly-2024-10-28+rustflags=-Zrandomize-layout for randomize-layout
[INFO] extracting crate aoe-djin 0.3.2 into /workspace/builds/worker-7-tc2/source
[INFO] validating manifest of crates.io crate aoe-djin 0.3.2 on toolchain nightly-2024-10-28
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly-2024-10-28" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking crates.io crate aoe-djin 0.3.2
[INFO] removed 0 missing examples
[INFO] finished tweaking crates.io crate aoe-djin 0.3.2
[INFO] tweaked toml for crates.io crate aoe-djin 0.3.2 written to /workspace/builds/worker-7-tc2/source/Cargo.toml
[INFO] crate crates.io crate aoe-djin 0.3.2 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" "+nightly-2024-10-28" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:4a844ea9eb2546a2d2c7022eacef16ef2e8229c7fbb2c7d4d55a9ceca922f72d" "/opt/rustwide/cargo-home/bin/cargo" "+nightly-2024-10-28" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 1791c1d15104279a4b91120d1ee8ef11b10c6b4c751f42ecf32db4bbe4b9cced
[INFO] running `Command { std: "docker" "start" "-a" "1791c1d15104279a4b91120d1ee8ef11b10c6b4c751f42ecf32db4bbe4b9cced", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "1791c1d15104279a4b91120d1ee8ef11b10c6b4c751f42ecf32db4bbe4b9cced", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1791c1d15104279a4b91120d1ee8ef11b10c6b4c751f42ecf32db4bbe4b9cced", kill_on_drop: false }`
[INFO] [stdout] 1791c1d15104279a4b91120d1ee8ef11b10c6b4c751f42ecf32db4bbe4b9cced
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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 -Zrandomize-layout" "-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:4a844ea9eb2546a2d2c7022eacef16ef2e8229c7fbb2c7d4d55a9ceca922f72d" "/opt/rustwide/cargo-home/bin/cargo" "+nightly-2024-10-28" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] fca09ebf26f6ee98695824a83d2503c44f79fc829c6544d38eab63d740253dfe
[INFO] running `Command { std: "docker" "start" "-a" "fca09ebf26f6ee98695824a83d2503c44f79fc829c6544d38eab63d740253dfe", kill_on_drop: false }`
[INFO] [stderr]    Compiling autocfg v1.0.1
[INFO] [stderr]    Compiling libc v0.2.98
[INFO] [stderr]    Compiling memchr v2.4.0
[INFO] [stderr]    Compiling proc-macro2 v1.0.28
[INFO] [stderr]    Compiling adler v1.0.2
[INFO] [stderr]    Compiling cc v1.0.69
[INFO] [stderr]    Compiling crc32fast v1.2.1
[INFO] [stderr]    Compiling gimli v0.24.0
[INFO] [stderr]    Compiling unicode-xid v0.2.2
[INFO] [stderr]    Compiling version_check v0.9.3
[INFO] [stderr]    Compiling rustc-demangle v0.1.20
[INFO] [stderr]    Compiling syn v1.0.74
[INFO] [stderr]    Compiling eyre v0.6.5
[INFO] [stderr]    Compiling uuid v0.8.2
[INFO] [stderr]    Compiling byteorder v1.4.3
[INFO] [stderr]    Compiling indenter v0.3.3
[INFO] [stderr]    Compiling once_cell v1.8.0
[INFO] [stderr]    Compiling bytes v1.0.1
[INFO] [stderr]    Compiling error-chain v0.12.4
[INFO] [stderr]    Compiling miniz_oxide v0.4.4
[INFO] [stderr]    Compiling num-traits v0.2.14
[INFO] [stderr]    Compiling object v0.25.3
[INFO] [stderr]    Compiling backtrace v0.3.60
[INFO] [stderr]    Compiling quote v1.0.9
[INFO] [stderr]    Compiling flate2 v1.0.20
[INFO] [stderr]    Compiling addr2line v0.15.2
[INFO] [stderr]    Compiling djin-protocol-derive v3.3.1
[INFO] [stderr]    Compiling djin-protocol v3.3.0
[INFO] [stderr]    Compiling aoe-djin v0.3.2 (/opt/rustwide/workdir)
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/dat/mod.rs:31:10
[INFO] [stdout]    |
[INFO] [stdout] 31 | #[derive(Protocol, Debug, Clone, PartialEq)]
[INFO] [stdout]    |          -^^^^^^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `ResourceUsage` is not local
[INFO] [stdout]    |          `Parcel` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_ResourceUsage`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]    = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/dat/mod.rs:41:10
[INFO] [stdout]    |
[INFO] [stdout] 41 | #[derive(Protocol, Debug, Clone, PartialEq, PartialOrd)]
[INFO] [stdout]    |          -^^^^^^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `ResourceUsageTrigger` is not local
[INFO] [stdout]    |          `Parcel` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_ResourceUsageTrigger`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/dat/mod.rs:41:10
[INFO] [stdout]    |
[INFO] [stdout] 41 | #[derive(Protocol, Debug, Clone, PartialEq, PartialOrd)]
[INFO] [stdout]    |          -^^^^^^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `ResourceUsageTrigger` is not local
[INFO] [stdout]    |          `Enum` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `__impl_djin_protocol___Enum_FOR_ResourceUsageTrigger`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/dat/mod.rs:49:10
[INFO] [stdout]    |
[INFO] [stdout] 49 | #[derive(Protocol, Debug, Clone, PartialEq, PartialOrd)]
[INFO] [stdout]    |          -^^^^^^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `ResourceUsageType` is not local
[INFO] [stdout]    |          `Parcel` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_ResourceUsageType`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/dat/mod.rs:49:10
[INFO] [stdout]    |
[INFO] [stdout] 49 | #[derive(Protocol, Debug, Clone, PartialEq, PartialOrd)]
[INFO] [stdout]    |          -^^^^^^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `ResourceUsageType` is not local
[INFO] [stdout]    |          `Enum` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `__impl_djin_protocol___Enum_FOR_ResourceUsageType`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/dat/mod.rs:93:10
[INFO] [stdout]    |
[INFO] [stdout] 93 | #[derive(Protocol, Debug, Clone, PartialEq)]
[INFO] [stdout]    |          -^^^^^^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `GameVersion` is not local
[INFO] [stdout]    |          `Parcel` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_GameVersion`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/dat/mod.rs:99:10
[INFO] [stdout]    |
[INFO] [stdout] 99 | #[derive(Protocol, Debug, Clone, PartialEq)]
[INFO] [stdout]    |          -^^^^^^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `Misc` is not local
[INFO] [stdout]    |          `Parcel` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_Misc`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/dat/civilization.rs:9:10
[INFO] [stdout]   |
[INFO] [stdout] 9 | #[derive(Protocol, Debug, Clone, PartialEq)]
[INFO] [stdout]   |          -^^^^^^^
[INFO] [stdout]   |          |
[INFO] [stdout]   |          `Civilizations` is not local
[INFO] [stdout]   |          `Parcel` is not local
[INFO] [stdout]   |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_Civilizations`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/dat/civilization.rs:16:10
[INFO] [stdout]    |
[INFO] [stdout] 16 | #[derive(Protocol, Debug, Clone, PartialEq)]
[INFO] [stdout]    |          -^^^^^^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `Civilization` is not local
[INFO] [stdout]    |          `Parcel` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_Civilization`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/dat/civilization.rs:33:10
[INFO] [stdout]    |
[INFO] [stdout] 33 | #[derive(Protocol, Debug, Clone, PartialEq)]
[INFO] [stdout]    |          -^^^^^^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `Unit` is not local
[INFO] [stdout]    |          `Parcel` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_Unit`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/dat/civilization.rs:125:10
[INFO] [stdout]     |
[INFO] [stdout] 125 | #[derive(Protocol, Debug, Clone, PartialEq)]
[INFO] [stdout]     |          -^^^^^^^
[INFO] [stdout]     |          |
[INFO] [stdout]     |          `ResourceStorage` is not local
[INFO] [stdout]     |          `Parcel` is not local
[INFO] [stdout]     |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_ResourceStorage`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/dat/civilization.rs:128:10
[INFO] [stdout]     |
[INFO] [stdout] 128 | #[derive(Protocol, Debug, Clone, PartialEq)]
[INFO] [stdout]     |          -^^^^^^^
[INFO] [stdout]     |          |
[INFO] [stdout]     |          `DamageGraphic` is not local
[INFO] [stdout]     |          `Parcel` is not local
[INFO] [stdout]     |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_DamageGraphic`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/dat/civilization.rs:135:10
[INFO] [stdout]     |
[INFO] [stdout] 135 | #[derive(Protocol, Debug, Clone, PartialEq, PartialOrd)]
[INFO] [stdout]     |          -^^^^^^^
[INFO] [stdout]     |          |
[INFO] [stdout]     |          `UnitType` is not local
[INFO] [stdout]     |          `Parcel` is not local
[INFO] [stdout]     |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_UnitType`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/dat/civilization.rs:135:10
[INFO] [stdout]     |
[INFO] [stdout] 135 | #[derive(Protocol, Debug, Clone, PartialEq, PartialOrd)]
[INFO] [stdout]     |          -^^^^^^^
[INFO] [stdout]     |          |
[INFO] [stdout]     |          `UnitType` is not local
[INFO] [stdout]     |          `Enum` is not local
[INFO] [stdout]     |          move the `impl` block outside of this constant `__impl_djin_protocol___Enum_FOR_UnitType`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/dat/civilization.rs:174:10
[INFO] [stdout]     |
[INFO] [stdout] 174 | #[derive(Protocol, Debug, Clone, PartialEq)]
[INFO] [stdout]     |          -^^^^^^^
[INFO] [stdout]     |          |
[INFO] [stdout]     |          `DeadFish` is not local
[INFO] [stdout]     |          `Parcel` is not local
[INFO] [stdout]     |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_DeadFish`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/dat/civilization.rs:192:10
[INFO] [stdout]     |
[INFO] [stdout] 192 | #[derive(Protocol, Debug, Clone, PartialEq)]
[INFO] [stdout]     |          -^^^^^^^
[INFO] [stdout]     |          |
[INFO] [stdout]     |          `Bird` is not local
[INFO] [stdout]     |          `Parcel` is not local
[INFO] [stdout]     |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_Bird`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/dat/civilization.rs:209:10
[INFO] [stdout]     |
[INFO] [stdout] 209 | #[derive(Protocol, Debug, Clone, PartialEq)]
[INFO] [stdout]     |          -^^^^^^^
[INFO] [stdout]     |          |
[INFO] [stdout]     |          `Combatant` is not local
[INFO] [stdout]     |          `Parcel` is not local
[INFO] [stdout]     |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_Combatant`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/dat/civilization.rs:239:10
[INFO] [stdout]     |
[INFO] [stdout] 239 | #[derive(Protocol, Debug, Clone, PartialEq)]
[INFO] [stdout]     |          -^^^^^^^
[INFO] [stdout]     |          |
[INFO] [stdout]     |          `Projectile` is not local
[INFO] [stdout]     |          `Parcel` is not local
[INFO] [stdout]     |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_Projectile`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/dat/civilization.rs:249:10
[INFO] [stdout]     |
[INFO] [stdout] 249 | #[derive(Protocol, Debug, Clone, PartialEq)]
[INFO] [stdout]     |          -^^^^^^^
[INFO] [stdout]     |          |
[INFO] [stdout]     |          `Creatable` is not local
[INFO] [stdout]     |          `Parcel` is not local
[INFO] [stdout]     |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_Creatable`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/dat/civilization.rs:277:10
[INFO] [stdout]     |
[INFO] [stdout] 277 | #[derive(Protocol, Debug, Clone, PartialEq)]
[INFO] [stdout]     |          -^^^^^^^
[INFO] [stdout]     |          |
[INFO] [stdout]     |          `Building` is not local
[INFO] [stdout]     |          `Parcel` is not local
[INFO] [stdout]     |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_Building`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/dat/civilization.rs:309:10
[INFO] [stdout]     |
[INFO] [stdout] 309 | #[derive(Protocol, Debug, Clone, PartialEq)]
[INFO] [stdout]     |          -^^^^^^^
[INFO] [stdout]     |          |
[INFO] [stdout]     |          `Annexe` is not local
[INFO] [stdout]     |          `Parcel` is not local
[INFO] [stdout]     |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_Annexe`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/dat/civilization.rs:315:10
[INFO] [stdout]     |
[INFO] [stdout] 315 | #[derive(Protocol, Debug, Clone, PartialEq)]
[INFO] [stdout]     |          -^^^^^^^
[INFO] [stdout]     |          |
[INFO] [stdout]     |          `AttackOrArmor` is not local
[INFO] [stdout]     |          `Parcel` is not local
[INFO] [stdout]     |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_AttackOrArmor`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/dat/color.rs:1:10
[INFO] [stdout]   |
[INFO] [stdout] 1 | #[derive(Protocol, Debug, Clone, PartialEq, Eq)]
[INFO] [stdout]   |          -^^^^^^^
[INFO] [stdout]   |          |
[INFO] [stdout]   |          `ColorTable` is not local
[INFO] [stdout]   |          `Parcel` is not local
[INFO] [stdout]   |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_ColorTable`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/dat/color.rs:9:10
[INFO] [stdout]   |
[INFO] [stdout] 9 | #[derive(Protocol, Debug, Clone, PartialEq, Eq)]
[INFO] [stdout]   |          -^^^^^^^
[INFO] [stdout]   |          |
[INFO] [stdout]   |          `Color` is not local
[INFO] [stdout]   |          `Parcel` is not local
[INFO] [stdout]   |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_Color`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/dat/common.rs:3:10
[INFO] [stdout]   |
[INFO] [stdout] 3 | #[derive(Protocol, Debug, Clone)]
[INFO] [stdout]   |          -^^^^^^^
[INFO] [stdout]   |          |
[INFO] [stdout]   |          `DeString` is not local
[INFO] [stdout]   |          `Parcel` is not local
[INFO] [stdout]   |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_DeString`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/dat/effect.rs:3:10
[INFO] [stdout]   |
[INFO] [stdout] 3 | #[derive(Protocol, Debug, Clone, PartialEq)]
[INFO] [stdout]   |          -^^^^^^^
[INFO] [stdout]   |          |
[INFO] [stdout]   |          `Effects` is not local
[INFO] [stdout]   |          `Parcel` is not local
[INFO] [stdout]   |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_Effects`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/dat/effect.rs:10:10
[INFO] [stdout]    |
[INFO] [stdout] 10 | #[derive(Protocol, Debug, Clone, PartialEq)]
[INFO] [stdout]    |          -^^^^^^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `Effect` is not local
[INFO] [stdout]    |          `Parcel` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_Effect`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/dat/effect.rs:18:10
[INFO] [stdout]    |
[INFO] [stdout] 18 | #[derive(Protocol, Debug, Clone, PartialEq)]
[INFO] [stdout]    |          -^^^^^^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `EffectCommand` is not local
[INFO] [stdout]    |          `Parcel` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_EffectCommand`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/dat/random_map.rs:1:10
[INFO] [stdout]   |
[INFO] [stdout] 1 | #[derive(Protocol, Debug, Clone, PartialEq)]
[INFO] [stdout]   |          -^^^^^^^
[INFO] [stdout]   |          |
[INFO] [stdout]   |          `RandomMap` is not local
[INFO] [stdout]   |          `Parcel` is not local
[INFO] [stdout]   |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_RandomMap`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/dat/sound.rs:3:10
[INFO] [stdout]   |
[INFO] [stdout] 3 | #[derive(Protocol, Debug, Clone, PartialEq)]
[INFO] [stdout]   |          -^^^^^^^
[INFO] [stdout]   |          |
[INFO] [stdout]   |          `SoundTable` is not local
[INFO] [stdout]   |          `Parcel` is not local
[INFO] [stdout]   |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_SoundTable`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/dat/sound.rs:10:10
[INFO] [stdout]    |
[INFO] [stdout] 10 | #[derive(Protocol, Debug, Clone, PartialEq)]
[INFO] [stdout]    |          -^^^^^^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `Sound` is not local
[INFO] [stdout]    |          `Parcel` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_Sound`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/dat/sound.rs:21:10
[INFO] [stdout]    |
[INFO] [stdout] 21 | #[derive(Protocol, Debug, Clone, PartialEq)]
[INFO] [stdout]    |          -^^^^^^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `SoundItem` is not local
[INFO] [stdout]    |          `Parcel` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_SoundItem`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/dat/sprite.rs:3:10
[INFO] [stdout]   |
[INFO] [stdout] 3 | #[derive(Protocol, Debug, Clone, PartialEq)]
[INFO] [stdout]   |          -^^^^^^^
[INFO] [stdout]   |          |
[INFO] [stdout]   |          `SpriteTable` is not local
[INFO] [stdout]   |          `Parcel` is not local
[INFO] [stdout]   |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_SpriteTable`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/dat/sprite.rs:12:10
[INFO] [stdout]    |
[INFO] [stdout] 12 | #[derive(Protocol, Debug, Clone, PartialEq)]
[INFO] [stdout]    |          -^^^^^^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `Sprite` is not local
[INFO] [stdout]    |          `Parcel` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_Sprite`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/dat/sprite.rs:44:10
[INFO] [stdout]    |
[INFO] [stdout] 44 | #[derive(Protocol, Debug, Clone, PartialEq)]
[INFO] [stdout]    |          -^^^^^^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `SpriteDelta` is not local
[INFO] [stdout]    |          `Parcel` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_SpriteDelta`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/dat/sprite.rs:55:10
[INFO] [stdout]    |
[INFO] [stdout] 55 | #[derive(Protocol, Debug, Clone, PartialEq)]
[INFO] [stdout]    |          -^^^^^^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `AngleSound` is not local
[INFO] [stdout]    |          `Parcel` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_AngleSound`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/dat/sprite.rs:68:10
[INFO] [stdout]    |
[INFO] [stdout] 68 | #[derive(Protocol, Debug, Clone, PartialEq)]
[INFO] [stdout]    |          -^^^^^^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `SoundProp` is not local
[INFO] [stdout]    |          `Parcel` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_SoundProp`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/dat/tech.rs:6:10
[INFO] [stdout]   |
[INFO] [stdout] 6 | #[derive(Protocol, Debug, Clone, PartialEq, PartialOrd)]
[INFO] [stdout]   |          -^^^^^^^
[INFO] [stdout]   |          |
[INFO] [stdout]   |          `TechResourcesCost` is not local
[INFO] [stdout]   |          `Parcel` is not local
[INFO] [stdout]   |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_TechResourcesCost`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/dat/tech.rs:13:10
[INFO] [stdout]    |
[INFO] [stdout] 13 | #[derive(Protocol, Debug, Clone, PartialEq, PartialOrd)]
[INFO] [stdout]    |          -^^^^^^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `ResourceCostTrigger` is not local
[INFO] [stdout]    |          `Parcel` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_ResourceCostTrigger`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/dat/tech.rs:13:10
[INFO] [stdout]    |
[INFO] [stdout] 13 | #[derive(Protocol, Debug, Clone, PartialEq, PartialOrd)]
[INFO] [stdout]    |          -^^^^^^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `ResourceCostTrigger` is not local
[INFO] [stdout]    |          `Enum` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `__impl_djin_protocol___Enum_FOR_ResourceCostTrigger`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/dat/tech.rs:21:10
[INFO] [stdout]    |
[INFO] [stdout] 21 | #[derive(Protocol, Debug, Clone, PartialEq, PartialOrd)]
[INFO] [stdout]    |          -^^^^^^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `ResourceCostType` is not local
[INFO] [stdout]    |          `Parcel` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_ResourceCostType`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/dat/tech.rs:21:10
[INFO] [stdout]    |
[INFO] [stdout] 21 | #[derive(Protocol, Debug, Clone, PartialEq, PartialOrd)]
[INFO] [stdout]    |          -^^^^^^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `ResourceCostType` is not local
[INFO] [stdout]    |          `Enum` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `__impl_djin_protocol___Enum_FOR_ResourceCostType`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/dat/tech.rs:37:10
[INFO] [stdout]    |
[INFO] [stdout] 37 | #[derive(Protocol, Debug, Clone, PartialEq)]
[INFO] [stdout]    |          -^^^^^^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `Techs` is not local
[INFO] [stdout]    |          `Parcel` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_Techs`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/dat/tech.rs:44:10
[INFO] [stdout]    |
[INFO] [stdout] 44 | #[derive(Protocol, Debug, Clone, PartialEq)]
[INFO] [stdout]    |          -^^^^^^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `Tech` is not local
[INFO] [stdout]    |          `Parcel` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_Tech`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/dat/tech_tree.rs:4:10
[INFO] [stdout]   |
[INFO] [stdout] 4 | #[derive(Protocol, Debug, Clone, PartialEq)]
[INFO] [stdout]   |          -^^^^^^^
[INFO] [stdout]   |          |
[INFO] [stdout]   |          `TechTree` is not local
[INFO] [stdout]   |          `Parcel` is not local
[INFO] [stdout]   |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_TechTree`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/dat/tech_tree.rs:21:10
[INFO] [stdout]    |
[INFO] [stdout] 21 | #[derive(Protocol, Debug, Clone, PartialEq)]
[INFO] [stdout]    |          -^^^^^^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `TechTreeAge` is not local
[INFO] [stdout]    |          `Parcel` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_TechTreeAge`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/dat/tech_tree.rs:44:10
[INFO] [stdout]    |
[INFO] [stdout] 44 | #[derive(Protocol, Debug, Clone, PartialEq)]
[INFO] [stdout]    |          -^^^^^^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `BuildingConnection` is not local
[INFO] [stdout]    |          `Parcel` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_BuildingConnection`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/dat/tech_tree.rs:67:10
[INFO] [stdout]    |
[INFO] [stdout] 67 | #[derive(Protocol, Debug, Clone, PartialEq)]
[INFO] [stdout]    |          -^^^^^^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `UnitConnection` is not local
[INFO] [stdout]    |          `Parcel` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_UnitConnection`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/dat/tech_tree.rs:83:10
[INFO] [stdout]    |
[INFO] [stdout] 83 | #[derive(Protocol, Debug, Clone, PartialEq)]
[INFO] [stdout]    |          -^^^^^^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `ResearchConnection` is not local
[INFO] [stdout]    |          `Parcel` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_ResearchConnection`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/dat/tech_tree.rs:103:10
[INFO] [stdout]     |
[INFO] [stdout] 103 | #[derive(Protocol, Debug, Clone, PartialEq)]
[INFO] [stdout]     |          -^^^^^^^
[INFO] [stdout]     |          |
[INFO] [stdout]     |          `TechTreeCommon` is not local
[INFO] [stdout]     |          `Parcel` is not local
[INFO] [stdout]     |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_TechTreeCommon`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/dat/tech_tree.rs:114:10
[INFO] [stdout]     |
[INFO] [stdout] 114 | #[derive(Protocol, Debug, Clone, PartialEq, PartialOrd)]
[INFO] [stdout]     |          -^^^^^^^
[INFO] [stdout]     |          |
[INFO] [stdout]     |          `TechTreeMode` is not local
[INFO] [stdout]     |          `Parcel` is not local
[INFO] [stdout]     |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_TechTreeMode`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/dat/tech_tree.rs:114:10
[INFO] [stdout]     |
[INFO] [stdout] 114 | #[derive(Protocol, Debug, Clone, PartialEq, PartialOrd)]
[INFO] [stdout]     |          -^^^^^^^
[INFO] [stdout]     |          |
[INFO] [stdout]     |          `TechTreeMode` is not local
[INFO] [stdout]     |          `Enum` is not local
[INFO] [stdout]     |          move the `impl` block outside of this constant `__impl_djin_protocol___Enum_FOR_TechTreeMode`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/dat/tech_tree.rs:124:10
[INFO] [stdout]     |
[INFO] [stdout] 124 | #[derive(Protocol, Debug, Clone, PartialEq, PartialOrd)]
[INFO] [stdout]     |          -^^^^^^^
[INFO] [stdout]     |          |
[INFO] [stdout]     |          `TechTreeStatus` is not local
[INFO] [stdout]     |          `Parcel` is not local
[INFO] [stdout]     |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_TechTreeStatus`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/dat/tech_tree.rs:124:10
[INFO] [stdout]     |
[INFO] [stdout] 124 | #[derive(Protocol, Debug, Clone, PartialEq, PartialOrd)]
[INFO] [stdout]     |          -^^^^^^^
[INFO] [stdout]     |          |
[INFO] [stdout]     |          `TechTreeStatus` is not local
[INFO] [stdout]     |          `Enum` is not local
[INFO] [stdout]     |          move the `impl` block outside of this constant `__impl_djin_protocol___Enum_FOR_TechTreeStatus`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/dat/terrain.rs:5:10
[INFO] [stdout]   |
[INFO] [stdout] 5 | #[derive(Protocol, Debug, Clone, PartialEq)]
[INFO] [stdout]   |          -^^^^^^^
[INFO] [stdout]   |          |
[INFO] [stdout]   |          `TerrainHeader` is not local
[INFO] [stdout]   |          `Parcel` is not local
[INFO] [stdout]   |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_TerrainHeader`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/dat/terrain.rs:79:10
[INFO] [stdout]    |
[INFO] [stdout] 79 | #[derive(Protocol, Debug, Clone, PartialEq)]
[INFO] [stdout]    |          -^^^^^^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `TerrainPassGraphic` is not local
[INFO] [stdout]    |          `Parcel` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_TerrainPassGraphic`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/dat/terrain_block.rs:9:10
[INFO] [stdout]   |
[INFO] [stdout] 9 | #[derive(Protocol, Debug, Clone, PartialEq)]
[INFO] [stdout]   |          -^^^^^^^
[INFO] [stdout]   |          |
[INFO] [stdout]   |          `TerrainBlock` is not local
[INFO] [stdout]   |          `Parcel` is not local
[INFO] [stdout]   |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_TerrainBlock`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/dat/terrain_block.rs:54:10
[INFO] [stdout]    |
[INFO] [stdout] 54 | #[derive(Protocol, Debug, Clone, PartialEq)]
[INFO] [stdout]    |          -^^^^^^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `TerrainBorder` is not local
[INFO] [stdout]    |          `Parcel` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_TerrainBorder`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/dat/terrain_block.rs:62:10
[INFO] [stdout]    |
[INFO] [stdout] 62 | #[derive(Protocol, Debug, Clone, PartialEq)]
[INFO] [stdout]    |          -^^^^^^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `TileSize` is not local
[INFO] [stdout]    |          `Parcel` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_TileSize`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/dat/terrain_block.rs:69:10
[INFO] [stdout]    |
[INFO] [stdout] 69 | #[derive(Protocol, Debug, Clone, PartialEq)]
[INFO] [stdout]    |          -^^^^^^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `Terrain` is not local
[INFO] [stdout]    |          `Parcel` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_Terrain`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/dat/terrain_block.rs:119:10
[INFO] [stdout]     |
[INFO] [stdout] 119 | #[derive(Protocol, Debug, Clone, PartialEq)]
[INFO] [stdout]     |          -^^^^^^^
[INFO] [stdout]     |          |
[INFO] [stdout]     |          `FrameData` is not local
[INFO] [stdout]     |          `Parcel` is not local
[INFO] [stdout]     |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_FrameData`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/dat/unit.rs:1:10
[INFO] [stdout]   |
[INFO] [stdout] 1 | #[derive(Protocol, Debug, Clone, PartialEq)]
[INFO] [stdout]   |          -^^^^^^^
[INFO] [stdout]   |          |
[INFO] [stdout]   |          `Units` is not local
[INFO] [stdout]   |          `Parcel` is not local
[INFO] [stdout]   |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_Units`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/dat/unit.rs:8:10
[INFO] [stdout]   |
[INFO] [stdout] 8 | #[derive(Protocol, Debug, Clone, PartialEq)]
[INFO] [stdout]   |          -^^^^^^^
[INFO] [stdout]   |          |
[INFO] [stdout]   |          `UnitHeaders` is not local
[INFO] [stdout]   |          `Parcel` is not local
[INFO] [stdout]   |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_UnitHeaders`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/dat/unit.rs:15:10
[INFO] [stdout]    |
[INFO] [stdout] 15 | #[derive(Protocol, Debug, Clone, PartialEq)]
[INFO] [stdout]    |          -^^^^^^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `TaskList` is not local
[INFO] [stdout]    |          `Parcel` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_TaskList`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/dat/unit.rs:22:10
[INFO] [stdout]    |
[INFO] [stdout] 22 | #[derive(Protocol, Debug, Clone, PartialEq)]
[INFO] [stdout]    |          -^^^^^^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `Task` is not local
[INFO] [stdout]    |          `Parcel` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_Task`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 4.40s
[INFO] running `Command { std: "docker" "inspect" "fca09ebf26f6ee98695824a83d2503c44f79fc829c6544d38eab63d740253dfe", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "fca09ebf26f6ee98695824a83d2503c44f79fc829c6544d38eab63d740253dfe", kill_on_drop: false }`
[INFO] [stdout] fca09ebf26f6ee98695824a83d2503c44f79fc829c6544d38eab63d740253dfe
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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 -Zrandomize-layout" "-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:4a844ea9eb2546a2d2c7022eacef16ef2e8229c7fbb2c7d4d55a9ceca922f72d" "/opt/rustwide/cargo-home/bin/cargo" "+nightly-2024-10-28" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] b1d69c8ec49fb40647b434924984d82a183b07cc643c71e4c403379dde2d8566
[INFO] running `Command { std: "docker" "start" "-a" "b1d69c8ec49fb40647b434924984d82a183b07cc643c71e4c403379dde2d8566", kill_on_drop: false }`
[INFO] [stderr]    Compiling num-integer v0.1.44
[INFO] [stderr]    Compiling rustc-serialize v0.3.24
[INFO] [stderr]    Compiling num-iter v0.1.42
[INFO] [stderr]    Compiling rand v0.4.6
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/dat/mod.rs:31:10
[INFO] [stdout]    |
[INFO] [stdout] 31 | #[derive(Protocol, Debug, Clone, PartialEq)]
[INFO] [stdout]    |          -^^^^^^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `ResourceUsage` is not local
[INFO] [stdout]    |          `Parcel` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_ResourceUsage`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]    = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/dat/mod.rs:41:10
[INFO] [stdout]    |
[INFO] [stdout] 41 | #[derive(Protocol, Debug, Clone, PartialEq, PartialOrd)]
[INFO] [stdout]    |          -^^^^^^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `ResourceUsageTrigger` is not local
[INFO] [stdout]    |          `Parcel` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_ResourceUsageTrigger`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/dat/mod.rs:41:10
[INFO] [stdout]    |
[INFO] [stdout] 41 | #[derive(Protocol, Debug, Clone, PartialEq, PartialOrd)]
[INFO] [stdout]    |          -^^^^^^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `ResourceUsageTrigger` is not local
[INFO] [stdout]    |          `Enum` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `__impl_djin_protocol___Enum_FOR_ResourceUsageTrigger`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/dat/mod.rs:49:10
[INFO] [stdout]    |
[INFO] [stdout] 49 | #[derive(Protocol, Debug, Clone, PartialEq, PartialOrd)]
[INFO] [stdout]    |          -^^^^^^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `ResourceUsageType` is not local
[INFO] [stdout]    |          `Parcel` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_ResourceUsageType`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/dat/mod.rs:49:10
[INFO] [stdout]    |
[INFO] [stdout] 49 | #[derive(Protocol, Debug, Clone, PartialEq, PartialOrd)]
[INFO] [stdout]    |          -^^^^^^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `ResourceUsageType` is not local
[INFO] [stdout]    |          `Enum` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `__impl_djin_protocol___Enum_FOR_ResourceUsageType`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/dat/mod.rs:93:10
[INFO] [stdout]    |
[INFO] [stdout] 93 | #[derive(Protocol, Debug, Clone, PartialEq)]
[INFO] [stdout]    |          -^^^^^^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `GameVersion` is not local
[INFO] [stdout]    |          `Parcel` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_GameVersion`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/dat/mod.rs:99:10
[INFO] [stdout]    |
[INFO] [stdout] 99 | #[derive(Protocol, Debug, Clone, PartialEq)]
[INFO] [stdout]    |          -^^^^^^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `Misc` is not local
[INFO] [stdout]    |          `Parcel` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_Misc`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/dat/civilization.rs:9:10
[INFO] [stdout]   |
[INFO] [stdout] 9 | #[derive(Protocol, Debug, Clone, PartialEq)]
[INFO] [stdout]   |          -^^^^^^^
[INFO] [stdout]   |          |
[INFO] [stdout]   |          `Civilizations` is not local
[INFO] [stdout]   |          `Parcel` is not local
[INFO] [stdout]   |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_Civilizations`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/dat/civilization.rs:16:10
[INFO] [stdout]    |
[INFO] [stdout] 16 | #[derive(Protocol, Debug, Clone, PartialEq)]
[INFO] [stdout]    |          -^^^^^^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `Civilization` is not local
[INFO] [stdout]    |          `Parcel` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_Civilization`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/dat/civilization.rs:33:10
[INFO] [stdout]    |
[INFO] [stdout] 33 | #[derive(Protocol, Debug, Clone, PartialEq)]
[INFO] [stdout]    |          -^^^^^^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `Unit` is not local
[INFO] [stdout]    |          `Parcel` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_Unit`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/dat/civilization.rs:125:10
[INFO] [stdout]     |
[INFO] [stdout] 125 | #[derive(Protocol, Debug, Clone, PartialEq)]
[INFO] [stdout]     |          -^^^^^^^
[INFO] [stdout]     |          |
[INFO] [stdout]     |          `ResourceStorage` is not local
[INFO] [stdout]     |          `Parcel` is not local
[INFO] [stdout]     |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_ResourceStorage`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/dat/civilization.rs:128:10
[INFO] [stdout]     |
[INFO] [stdout] 128 | #[derive(Protocol, Debug, Clone, PartialEq)]
[INFO] [stdout]     |          -^^^^^^^
[INFO] [stdout]     |          |
[INFO] [stdout]     |          `DamageGraphic` is not local
[INFO] [stdout]     |          `Parcel` is not local
[INFO] [stdout]     |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_DamageGraphic`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/dat/civilization.rs:135:10
[INFO] [stdout]     |
[INFO] [stdout] 135 | #[derive(Protocol, Debug, Clone, PartialEq, PartialOrd)]
[INFO] [stdout]     |          -^^^^^^^
[INFO] [stdout]     |          |
[INFO] [stdout]     |          `UnitType` is not local
[INFO] [stdout]     |          `Parcel` is not local
[INFO] [stdout]     |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_UnitType`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/dat/civilization.rs:135:10
[INFO] [stdout]     |
[INFO] [stdout] 135 | #[derive(Protocol, Debug, Clone, PartialEq, PartialOrd)]
[INFO] [stdout]     |          -^^^^^^^
[INFO] [stdout]     |          |
[INFO] [stdout]     |          `UnitType` is not local
[INFO] [stdout]     |          `Enum` is not local
[INFO] [stdout]     |          move the `impl` block outside of this constant `__impl_djin_protocol___Enum_FOR_UnitType`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/dat/civilization.rs:174:10
[INFO] [stdout]     |
[INFO] [stdout] 174 | #[derive(Protocol, Debug, Clone, PartialEq)]
[INFO] [stdout]     |          -^^^^^^^
[INFO] [stdout]     |          |
[INFO] [stdout]     |          `DeadFish` is not local
[INFO] [stdout]     |          `Parcel` is not local
[INFO] [stdout]     |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_DeadFish`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/dat/civilization.rs:192:10
[INFO] [stdout]     |
[INFO] [stdout] 192 | #[derive(Protocol, Debug, Clone, PartialEq)]
[INFO] [stdout]     |          -^^^^^^^
[INFO] [stdout]     |          |
[INFO] [stdout]     |          `Bird` is not local
[INFO] [stdout]     |          `Parcel` is not local
[INFO] [stdout]     |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_Bird`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/dat/civilization.rs:209:10
[INFO] [stdout]     |
[INFO] [stdout] 209 | #[derive(Protocol, Debug, Clone, PartialEq)]
[INFO] [stdout]     |          -^^^^^^^
[INFO] [stdout]     |          |
[INFO] [stdout]     |          `Combatant` is not local
[INFO] [stdout]     |          `Parcel` is not local
[INFO] [stdout]     |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_Combatant`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/dat/civilization.rs:239:10
[INFO] [stdout]     |
[INFO] [stdout] 239 | #[derive(Protocol, Debug, Clone, PartialEq)]
[INFO] [stdout]     |          -^^^^^^^
[INFO] [stdout]     |          |
[INFO] [stdout]     |          `Projectile` is not local
[INFO] [stdout]     |          `Parcel` is not local
[INFO] [stdout]     |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_Projectile`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/dat/civilization.rs:249:10
[INFO] [stdout]     |
[INFO] [stdout] 249 | #[derive(Protocol, Debug, Clone, PartialEq)]
[INFO] [stdout]     |          -^^^^^^^
[INFO] [stdout]     |          |
[INFO] [stdout]     |          `Creatable` is not local
[INFO] [stdout]     |          `Parcel` is not local
[INFO] [stdout]     |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_Creatable`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/dat/civilization.rs:277:10
[INFO] [stdout]     |
[INFO] [stdout] 277 | #[derive(Protocol, Debug, Clone, PartialEq)]
[INFO] [stdout]     |          -^^^^^^^
[INFO] [stdout]     |          |
[INFO] [stdout]     |          `Building` is not local
[INFO] [stdout]     |          `Parcel` is not local
[INFO] [stdout]     |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_Building`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/dat/civilization.rs:309:10
[INFO] [stdout]     |
[INFO] [stdout] 309 | #[derive(Protocol, Debug, Clone, PartialEq)]
[INFO] [stdout]     |          -^^^^^^^
[INFO] [stdout]     |          |
[INFO] [stdout]     |          `Annexe` is not local
[INFO] [stdout]     |          `Parcel` is not local
[INFO] [stdout]     |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_Annexe`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/dat/civilization.rs:315:10
[INFO] [stdout]     |
[INFO] [stdout] 315 | #[derive(Protocol, Debug, Clone, PartialEq)]
[INFO] [stdout]     |          -^^^^^^^
[INFO] [stdout]     |          |
[INFO] [stdout]     |          `AttackOrArmor` is not local
[INFO] [stdout]     |          `Parcel` is not local
[INFO] [stdout]     |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_AttackOrArmor`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/dat/color.rs:1:10
[INFO] [stdout]   |
[INFO] [stdout] 1 | #[derive(Protocol, Debug, Clone, PartialEq, Eq)]
[INFO] [stdout]   |          -^^^^^^^
[INFO] [stdout]   |          |
[INFO] [stdout]   |          `ColorTable` is not local
[INFO] [stdout]   |          `Parcel` is not local
[INFO] [stdout]   |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_ColorTable`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/dat/color.rs:9:10
[INFO] [stdout]   |
[INFO] [stdout] 9 | #[derive(Protocol, Debug, Clone, PartialEq, Eq)]
[INFO] [stdout]   |          -^^^^^^^
[INFO] [stdout]   |          |
[INFO] [stdout]   |          `Color` is not local
[INFO] [stdout]   |          `Parcel` is not local
[INFO] [stdout]   |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_Color`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/dat/common.rs:3:10
[INFO] [stdout]   |
[INFO] [stdout] 3 | #[derive(Protocol, Debug, Clone)]
[INFO] [stdout]   |          -^^^^^^^
[INFO] [stdout]   |          |
[INFO] [stdout]   |          `DeString` is not local
[INFO] [stdout]   |          `Parcel` is not local
[INFO] [stdout]   |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_DeString`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/dat/effect.rs:3:10
[INFO] [stdout]   |
[INFO] [stdout] 3 | #[derive(Protocol, Debug, Clone, PartialEq)]
[INFO] [stdout]   |          -^^^^^^^
[INFO] [stdout]   |          |
[INFO] [stdout]   |          `Effects` is not local
[INFO] [stdout]   |          `Parcel` is not local
[INFO] [stdout]   |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_Effects`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/dat/effect.rs:10:10
[INFO] [stdout]    |
[INFO] [stdout] 10 | #[derive(Protocol, Debug, Clone, PartialEq)]
[INFO] [stdout]    |          -^^^^^^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `Effect` is not local
[INFO] [stdout]    |          `Parcel` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_Effect`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/dat/effect.rs:18:10
[INFO] [stdout]    |
[INFO] [stdout] 18 | #[derive(Protocol, Debug, Clone, PartialEq)]
[INFO] [stdout]    |          -^^^^^^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `EffectCommand` is not local
[INFO] [stdout]    |          `Parcel` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_EffectCommand`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/dat/random_map.rs:1:10
[INFO] [stdout]   |
[INFO] [stdout] 1 | #[derive(Protocol, Debug, Clone, PartialEq)]
[INFO] [stdout]   |          -^^^^^^^
[INFO] [stdout]   |          |
[INFO] [stdout]   |          `RandomMap` is not local
[INFO] [stdout]   |          `Parcel` is not local
[INFO] [stdout]   |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_RandomMap`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/dat/sound.rs:3:10
[INFO] [stdout]   |
[INFO] [stdout] 3 | #[derive(Protocol, Debug, Clone, PartialEq)]
[INFO] [stdout]   |          -^^^^^^^
[INFO] [stdout]   |          |
[INFO] [stdout]   |          `SoundTable` is not local
[INFO] [stdout]   |          `Parcel` is not local
[INFO] [stdout]   |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_SoundTable`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/dat/sound.rs:10:10
[INFO] [stdout]    |
[INFO] [stdout] 10 | #[derive(Protocol, Debug, Clone, PartialEq)]
[INFO] [stdout]    |          -^^^^^^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `Sound` is not local
[INFO] [stdout]    |          `Parcel` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_Sound`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/dat/sound.rs:21:10
[INFO] [stdout]    |
[INFO] [stdout] 21 | #[derive(Protocol, Debug, Clone, PartialEq)]
[INFO] [stdout]    |          -^^^^^^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `SoundItem` is not local
[INFO] [stdout]    |          `Parcel` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_SoundItem`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/dat/sprite.rs:3:10
[INFO] [stdout]   |
[INFO] [stdout] 3 | #[derive(Protocol, Debug, Clone, PartialEq)]
[INFO] [stdout]   |          -^^^^^^^
[INFO] [stdout]   |          |
[INFO] [stdout]   |          `SpriteTable` is not local
[INFO] [stdout]   |          `Parcel` is not local
[INFO] [stdout]   |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_SpriteTable`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/dat/sprite.rs:12:10
[INFO] [stdout]    |
[INFO] [stdout] 12 | #[derive(Protocol, Debug, Clone, PartialEq)]
[INFO] [stdout]    |          -^^^^^^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `Sprite` is not local
[INFO] [stdout]    |          `Parcel` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_Sprite`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/dat/sprite.rs:44:10
[INFO] [stdout]    |
[INFO] [stdout] 44 | #[derive(Protocol, Debug, Clone, PartialEq)]
[INFO] [stdout]    |          -^^^^^^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `SpriteDelta` is not local
[INFO] [stdout]    |          `Parcel` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_SpriteDelta`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/dat/sprite.rs:55:10
[INFO] [stdout]    |
[INFO] [stdout] 55 | #[derive(Protocol, Debug, Clone, PartialEq)]
[INFO] [stdout]    |          -^^^^^^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `AngleSound` is not local
[INFO] [stdout]    |          `Parcel` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_AngleSound`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/dat/sprite.rs:68:10
[INFO] [stdout]    |
[INFO] [stdout] 68 | #[derive(Protocol, Debug, Clone, PartialEq)]
[INFO] [stdout]    |          -^^^^^^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `SoundProp` is not local
[INFO] [stdout]    |          `Parcel` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_SoundProp`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/dat/tech.rs:6:10
[INFO] [stdout]   |
[INFO] [stdout] 6 | #[derive(Protocol, Debug, Clone, PartialEq, PartialOrd)]
[INFO] [stdout]   |          -^^^^^^^
[INFO] [stdout]   |          |
[INFO] [stdout]   |          `TechResourcesCost` is not local
[INFO] [stdout]   |          `Parcel` is not local
[INFO] [stdout]   |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_TechResourcesCost`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/dat/tech.rs:13:10
[INFO] [stdout]    |
[INFO] [stdout] 13 | #[derive(Protocol, Debug, Clone, PartialEq, PartialOrd)]
[INFO] [stdout]    |          -^^^^^^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `ResourceCostTrigger` is not local
[INFO] [stdout]    |          `Parcel` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_ResourceCostTrigger`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/dat/tech.rs:13:10
[INFO] [stdout]    |
[INFO] [stdout] 13 | #[derive(Protocol, Debug, Clone, PartialEq, PartialOrd)]
[INFO] [stdout]    |          -^^^^^^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `ResourceCostTrigger` is not local
[INFO] [stdout]    |          `Enum` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `__impl_djin_protocol___Enum_FOR_ResourceCostTrigger`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/dat/tech.rs:21:10
[INFO] [stdout]    |
[INFO] [stdout] 21 | #[derive(Protocol, Debug, Clone, PartialEq, PartialOrd)]
[INFO] [stdout]    |          -^^^^^^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `ResourceCostType` is not local
[INFO] [stdout]    |          `Parcel` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_ResourceCostType`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/dat/tech.rs:21:10
[INFO] [stdout]    |
[INFO] [stdout] 21 | #[derive(Protocol, Debug, Clone, PartialEq, PartialOrd)]
[INFO] [stdout]    |          -^^^^^^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `ResourceCostType` is not local
[INFO] [stdout]    |          `Enum` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `__impl_djin_protocol___Enum_FOR_ResourceCostType`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/dat/tech.rs:37:10
[INFO] [stdout]    |
[INFO] [stdout] 37 | #[derive(Protocol, Debug, Clone, PartialEq)]
[INFO] [stdout]    |          -^^^^^^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `Techs` is not local
[INFO] [stdout]    |          `Parcel` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_Techs`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/dat/tech.rs:44:10
[INFO] [stdout]    |
[INFO] [stdout] 44 | #[derive(Protocol, Debug, Clone, PartialEq)]
[INFO] [stdout]    |          -^^^^^^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `Tech` is not local
[INFO] [stdout]    |          `Parcel` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_Tech`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/dat/tech_tree.rs:4:10
[INFO] [stdout]   |
[INFO] [stdout] 4 | #[derive(Protocol, Debug, Clone, PartialEq)]
[INFO] [stdout]   |          -^^^^^^^
[INFO] [stdout]   |          |
[INFO] [stdout]   |          `TechTree` is not local
[INFO] [stdout]   |          `Parcel` is not local
[INFO] [stdout]   |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_TechTree`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/dat/tech_tree.rs:21:10
[INFO] [stdout]    |
[INFO] [stdout] 21 | #[derive(Protocol, Debug, Clone, PartialEq)]
[INFO] [stdout]    |          -^^^^^^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `TechTreeAge` is not local
[INFO] [stdout]    |          `Parcel` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_TechTreeAge`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/dat/tech_tree.rs:44:10
[INFO] [stdout]    |
[INFO] [stdout] 44 | #[derive(Protocol, Debug, Clone, PartialEq)]
[INFO] [stdout]    |          -^^^^^^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `BuildingConnection` is not local
[INFO] [stdout]    |          `Parcel` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_BuildingConnection`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/dat/tech_tree.rs:67:10
[INFO] [stdout]    |
[INFO] [stdout] 67 | #[derive(Protocol, Debug, Clone, PartialEq)]
[INFO] [stdout]    |          -^^^^^^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `UnitConnection` is not local
[INFO] [stdout]    |          `Parcel` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_UnitConnection`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/dat/tech_tree.rs:83:10
[INFO] [stdout]    |
[INFO] [stdout] 83 | #[derive(Protocol, Debug, Clone, PartialEq)]
[INFO] [stdout]    |          -^^^^^^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `ResearchConnection` is not local
[INFO] [stdout]    |          `Parcel` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_ResearchConnection`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/dat/tech_tree.rs:103:10
[INFO] [stdout]     |
[INFO] [stdout] 103 | #[derive(Protocol, Debug, Clone, PartialEq)]
[INFO] [stdout]     |          -^^^^^^^
[INFO] [stdout]     |          |
[INFO] [stdout]     |          `TechTreeCommon` is not local
[INFO] [stdout]     |          `Parcel` is not local
[INFO] [stdout]     |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_TechTreeCommon`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/dat/tech_tree.rs:114:10
[INFO] [stdout]     |
[INFO] [stdout] 114 | #[derive(Protocol, Debug, Clone, PartialEq, PartialOrd)]
[INFO] [stdout]     |          -^^^^^^^
[INFO] [stdout]     |          |
[INFO] [stdout]     |          `TechTreeMode` is not local
[INFO] [stdout]     |          `Parcel` is not local
[INFO] [stdout]     |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_TechTreeMode`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/dat/tech_tree.rs:114:10
[INFO] [stdout]     |
[INFO] [stdout] 114 | #[derive(Protocol, Debug, Clone, PartialEq, PartialOrd)]
[INFO] [stdout]     |          -^^^^^^^
[INFO] [stdout]     |          |
[INFO] [stdout]     |          `TechTreeMode` is not local
[INFO] [stdout]     |          `Enum` is not local
[INFO] [stdout]     |          move the `impl` block outside of this constant `__impl_djin_protocol___Enum_FOR_TechTreeMode`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/dat/tech_tree.rs:124:10
[INFO] [stdout]     |
[INFO] [stdout] 124 | #[derive(Protocol, Debug, Clone, PartialEq, PartialOrd)]
[INFO] [stdout]     |          -^^^^^^^
[INFO] [stdout]     |          |
[INFO] [stdout]     |          `TechTreeStatus` is not local
[INFO] [stdout]     |          `Parcel` is not local
[INFO] [stdout]     |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_TechTreeStatus`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/dat/tech_tree.rs:124:10
[INFO] [stdout]     |
[INFO] [stdout] 124 | #[derive(Protocol, Debug, Clone, PartialEq, PartialOrd)]
[INFO] [stdout]     |          -^^^^^^^
[INFO] [stdout]     |          |
[INFO] [stdout]     |          `TechTreeStatus` is not local
[INFO] [stdout]     |          `Enum` is not local
[INFO] [stdout]     |          move the `impl` block outside of this constant `__impl_djin_protocol___Enum_FOR_TechTreeStatus`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/dat/terrain.rs:5:10
[INFO] [stdout]   |
[INFO] [stdout] 5 | #[derive(Protocol, Debug, Clone, PartialEq)]
[INFO] [stdout]   |          -^^^^^^^
[INFO] [stdout]   |          |
[INFO] [stdout]   |          `TerrainHeader` is not local
[INFO] [stdout]   |          `Parcel` is not local
[INFO] [stdout]   |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_TerrainHeader`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/dat/terrain.rs:79:10
[INFO] [stdout]    |
[INFO] [stdout] 79 | #[derive(Protocol, Debug, Clone, PartialEq)]
[INFO] [stdout]    |          -^^^^^^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `TerrainPassGraphic` is not local
[INFO] [stdout]    |          `Parcel` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_TerrainPassGraphic`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/dat/terrain_block.rs:9:10
[INFO] [stdout]   |
[INFO] [stdout] 9 | #[derive(Protocol, Debug, Clone, PartialEq)]
[INFO] [stdout]   |          -^^^^^^^
[INFO] [stdout]   |          |
[INFO] [stdout]   |          `TerrainBlock` is not local
[INFO] [stdout]   |          `Parcel` is not local
[INFO] [stdout]   |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_TerrainBlock`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/dat/terrain_block.rs:54:10
[INFO] [stdout]    |
[INFO] [stdout] 54 | #[derive(Protocol, Debug, Clone, PartialEq)]
[INFO] [stdout]    |          -^^^^^^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `TerrainBorder` is not local
[INFO] [stdout]    |          `Parcel` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_TerrainBorder`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/dat/terrain_block.rs:62:10
[INFO] [stdout]    |
[INFO] [stdout] 62 | #[derive(Protocol, Debug, Clone, PartialEq)]
[INFO] [stdout]    |          -^^^^^^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `TileSize` is not local
[INFO] [stdout]    |          `Parcel` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_TileSize`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/dat/terrain_block.rs:69:10
[INFO] [stdout]    |
[INFO] [stdout] 69 | #[derive(Protocol, Debug, Clone, PartialEq)]
[INFO] [stdout]    |          -^^^^^^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `Terrain` is not local
[INFO] [stdout]    |          `Parcel` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_Terrain`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/dat/terrain_block.rs:119:10
[INFO] [stdout]     |
[INFO] [stdout] 119 | #[derive(Protocol, Debug, Clone, PartialEq)]
[INFO] [stdout]     |          -^^^^^^^
[INFO] [stdout]     |          |
[INFO] [stdout]     |          `FrameData` is not local
[INFO] [stdout]     |          `Parcel` is not local
[INFO] [stdout]     |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_FrameData`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/dat/unit.rs:1:10
[INFO] [stdout]   |
[INFO] [stdout] 1 | #[derive(Protocol, Debug, Clone, PartialEq)]
[INFO] [stdout]   |          -^^^^^^^
[INFO] [stdout]   |          |
[INFO] [stdout]   |          `Units` is not local
[INFO] [stdout]   |          `Parcel` is not local
[INFO] [stdout]   |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_Units`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/dat/unit.rs:8:10
[INFO] [stdout]   |
[INFO] [stdout] 8 | #[derive(Protocol, Debug, Clone, PartialEq)]
[INFO] [stdout]   |          -^^^^^^^
[INFO] [stdout]   |          |
[INFO] [stdout]   |          `UnitHeaders` is not local
[INFO] [stdout]   |          `Parcel` is not local
[INFO] [stdout]   |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_UnitHeaders`
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/dat/unit.rs:15:10
[INFO] [stdout]    |
[INFO] [stdout] 15 | #[derive(Protocol, Debug, Clone, PartialEq)]
[INFO] [stdout]    |          -^^^^^^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `TaskList` is not local
[INFO] [stdout]    |          `Parcel` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_TaskList`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/dat/unit.rs:22:10
[INFO] [stdout]    |
[INFO] [stdout] 22 | #[derive(Protocol, Debug, Clone, PartialEq)]
[INFO] [stdout]    |          -^^^^^^^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `Task` is not local
[INFO] [stdout]    |          `Parcel` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `__impl_djin_protocol___Parcel_FOR_Task`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Protocol` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Protocol` may come from an old version of the `djin_protocol_derive` crate, try updating your dependency with `cargo update -p djin_protocol_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Protocol` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0310]: the parameter type `T` may not live long enough
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-6f17d22bba15001f/rustc-serialize-0.3.24/src/serialize.rs:1155:5
[INFO] [stdout]      |
[INFO] [stdout] 1155 |     fn decode<D: Decoder>(d: &mut D) -> Result<Cow<'static, T>, D::Error> {
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |     |
[INFO] [stdout]      |     the parameter type `T` must be valid for the static lifetime...
[INFO] [stdout]      |     ...so that the type `T` will meet its required lifetime bounds...
[INFO] [stdout]      |
[INFO] [stdout] note: ...that is required by this bound
[INFO] [stdout]     --> /rustc/df4ca44d3fbc9301ee17f30f4d474e6ae4b05252/library/alloc/src/borrow.rs:179:30
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]      |
[INFO] [stdout] 1151 | impl<'a, T: ?Sized + 'static> Decodable for Cow<'a, T>
[INFO] [stdout]      |                    +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0310`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `rustc-serialize` (lib) due to 1 previous error
[INFO] running `Command { std: "docker" "inspect" "b1d69c8ec49fb40647b434924984d82a183b07cc643c71e4c403379dde2d8566", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b1d69c8ec49fb40647b434924984d82a183b07cc643c71e4c403379dde2d8566", kill_on_drop: false }`
[INFO] [stdout] b1d69c8ec49fb40647b434924984d82a183b07cc643c71e4c403379dde2d8566
