[INFO] fetching crate aoe-djin 0.3.2...
[INFO] testing aoe-djin-0.3.2 against nightly-2024-10-28 for randomize-layout
[INFO] extracting crate aoe-djin 0.3.2 into /workspace/builds/worker-7-tc1/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-tc1/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] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded num-integer v0.1.44
[INFO] [stderr]   Downloaded flate2 v1.0.20
[INFO] [stderr]   Downloaded indenter v0.3.3
[INFO] [stderr]   Downloaded spectral v0.6.0
[INFO] [stderr]   Downloaded num-iter v0.1.42
[INFO] [stderr]   Downloaded rustc-demangle v0.1.20
[INFO] [stderr]   Downloaded rustc-serialize v0.3.24
[INFO] [stderr]   Downloaded version_check v0.9.3
[INFO] [stderr]   Downloaded addr2line v0.15.2
[INFO] [stderr]   Downloaded bytes v1.0.1
[INFO] [stderr]   Downloaded memchr v2.4.0
[INFO] [stderr]   Downloaded backtrace v0.3.60
[INFO] [stderr]   Downloaded miniz_oxide v0.4.4
[INFO] [stderr]   Downloaded cc v1.0.69
[INFO] [stderr]   Downloaded uuid v0.8.2
[INFO] [stderr]   Downloaded proc-macro2 v1.0.28
[INFO] [stderr]   Downloaded eyre v0.6.5
[INFO] [stderr]   Downloaded once_cell v1.8.0
[INFO] [stderr]   Downloaded crc32fast v1.2.1
[INFO] [stderr]   Downloaded djin-protocol v3.3.0
[INFO] [stderr]   Downloaded object v0.25.3
[INFO] [stderr]   Downloaded syn v1.0.74
[INFO] [stderr]   Downloaded djin-protocol-derive v3.3.1
[INFO] [stderr]   Downloaded libc v0.2.98
[INFO] [stderr]   Downloaded gimli v0.24.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4a844ea9eb2546a2d2c7022eacef16ef2e8229c7fbb2c7d4d55a9ceca922f72d" "/opt/rustwide/cargo-home/bin/cargo" "+nightly-2024-10-28" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] d4c7a9bd5ae026eeecbfa21557f3d0601834305cc865f5094f505702ac77ffd3
[INFO] running `Command { std: "docker" "start" "-a" "d4c7a9bd5ae026eeecbfa21557f3d0601834305cc865f5094f505702ac77ffd3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "d4c7a9bd5ae026eeecbfa21557f3d0601834305cc865f5094f505702ac77ffd3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d4c7a9bd5ae026eeecbfa21557f3d0601834305cc865f5094f505702ac77ffd3", kill_on_drop: false }`
[INFO] [stdout] d4c7a9bd5ae026eeecbfa21557f3d0601834305cc865f5094f505702ac77ffd3
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4a844ea9eb2546a2d2c7022eacef16ef2e8229c7fbb2c7d4d55a9ceca922f72d" "/opt/rustwide/cargo-home/bin/cargo" "+nightly-2024-10-28" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 62711c80ec2ec4a9b50199a4f4e0199564c6d7d2627b46218fa455d30c12cab7
[INFO] running `Command { std: "docker" "start" "-a" "62711c80ec2ec4a9b50199a4f4e0199564c6d7d2627b46218fa455d30c12cab7", kill_on_drop: false }`
[INFO] [stderr]    Compiling autocfg v1.0.1
[INFO] [stderr]    Compiling memchr v2.4.0
[INFO] [stderr]    Compiling libc v0.2.98
[INFO] [stderr]    Compiling adler v1.0.2
[INFO] [stderr]    Compiling proc-macro2 v1.0.28
[INFO] [stderr]    Compiling cc v1.0.69
[INFO] [stderr]    Compiling version_check v0.9.3
[INFO] [stderr]    Compiling crc32fast v1.2.1
[INFO] [stderr]    Compiling unicode-xid v0.2.2
[INFO] [stderr]    Compiling gimli v0.24.0
[INFO] [stderr]    Compiling syn v1.0.74
[INFO] [stderr]    Compiling rustc-demangle v0.1.20
[INFO] [stderr]    Compiling eyre v0.6.5
[INFO] [stderr]    Compiling indenter v0.3.3
[INFO] [stderr]    Compiling byteorder v1.4.3
[INFO] [stderr]    Compiling once_cell v1.8.0
[INFO] [stderr]    Compiling uuid v0.8.2
[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 quote v1.0.9
[INFO] [stderr]    Compiling backtrace v0.3.60
[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.26s
[INFO] running `Command { std: "docker" "inspect" "62711c80ec2ec4a9b50199a4f4e0199564c6d7d2627b46218fa455d30c12cab7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "62711c80ec2ec4a9b50199a4f4e0199564c6d7d2627b46218fa455d30c12cab7", kill_on_drop: false }`
[INFO] [stdout] 62711c80ec2ec4a9b50199a4f4e0199564c6d7d2627b46218fa455d30c12cab7
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4a844ea9eb2546a2d2c7022eacef16ef2e8229c7fbb2c7d4d55a9ceca922f72d" "/opt/rustwide/cargo-home/bin/cargo" "+nightly-2024-10-28" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] eeb9556570a06de2d432019ccc1d4ad8bb95721a7e834251ebcd187d6a643eef
[INFO] running `Command { std: "docker" "start" "-a" "eeb9556570a06de2d432019ccc1d4ad8bb95721a7e834251ebcd187d6a643eef", 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" "eeb9556570a06de2d432019ccc1d4ad8bb95721a7e834251ebcd187d6a643eef", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "eeb9556570a06de2d432019ccc1d4ad8bb95721a7e834251ebcd187d6a643eef", kill_on_drop: false }`
[INFO] [stdout] eeb9556570a06de2d432019ccc1d4ad8bb95721a7e834251ebcd187d6a643eef
