[INFO] cloning repository https://github.com/Ruddle/oxidator
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Ruddle/oxidator" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FRuddle%2Foxidator", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FRuddle%2Foxidator'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] ba77b3419a1c285fb6c63b2590bf138ce3ab661d
[INFO] checking Ruddle/oxidator against eca445e5ae4a6679cc27d3a09106ce245e13a5a6 for pr-162478
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FRuddle%2Foxidator" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/Ruddle/oxidator
[INFO] finished tweaking git repo https://github.com/Ruddle/oxidator
[INFO] tweaked toml for git repo https://github.com/Ruddle/oxidator written to /workspace/builds/worker-6-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Ruddle/oxidator on toolchain eca445e5ae4a6679cc27d3a09106ce245e13a5a6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+eca445e5ae4a6679cc27d3a09106ce245e13a5a6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Ruddle/oxidator 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" "+eca445e5ae4a6679cc27d3a09106ce245e13a5a6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded wayland-client v0.23.6
[INFO] [stderr]   Downloaded wayland-sys v0.23.6
[INFO] [stderr]   Downloaded filetime v0.2.8
[INFO] [stderr]   Downloaded x11-dl v2.18.5
[INFO] [stderr]   Downloaded fsevent v0.4.0
[INFO] [stderr]   Downloaded inotify-sys v0.1.3
[INFO] [stderr]   Downloaded chashmap v2.2.2
[INFO] [stderr]   Downloaded anymap v0.12.1
[INFO] [stderr]   Downloaded imgui-winit-support v0.2.1
[INFO] [stderr]   Downloaded fake-simd v0.1.2
[INFO] [stderr]   Downloaded bincode v1.2.1
[INFO] [stderr]   Downloaded gfx-auxil v0.1.0
[INFO] [stderr]   Downloaded stable_deref_trait v1.1.1
[INFO] [stderr]   Downloaded mio-extras v2.0.6
[INFO] [stderr]   Downloaded scoped_threadpool v0.1.9
[INFO] [stderr]   Downloaded digest v0.7.6
[INFO] [stderr]   Downloaded wio v0.2.2
[INFO] [stderr]   Downloaded core-video-sys v0.1.3
[INFO] [stderr]   Downloaded rendy-descriptor v0.5.1
[INFO] [stderr]   Downloaded owning_ref v0.3.3
[INFO] [stderr]   Downloaded enum_primitive v0.1.1
[INFO] [stderr]   Downloaded relevant v0.4.2
[INFO] [stderr]   Downloaded arrayref v0.3.6
[INFO] [stderr]   Downloaded winapi-build v0.1.1
[INFO] [stderr]   Downloaded autocfg v1.0.0
[INFO] [stderr]   Downloaded range-alloc v0.1.0
[INFO] [stderr]   Downloaded copyless v0.1.4
[INFO] [stderr]   Downloaded wayland-scanner v0.23.6
[INFO] [stderr]   Downloaded winapi-util v0.1.3
[INFO] [stderr]   Downloaded lazycell v1.2.1
[INFO] [stderr]   Downloaded spin_sleep v0.3.7
[INFO] [stderr]   Downloaded generic-array v0.9.0
[INFO] [stderr]   Downloaded wasm-bindgen-shared v0.2.58
[INFO] [stderr]   Downloaded shaderc v0.6.1
[INFO] [stderr]   Downloaded thread_local v1.0.1
[INFO] [stderr]   Downloaded block-buffer v0.3.3
[INFO] [stderr]   Downloaded ws2_32-sys v0.2.1
[INFO] [stderr]   Downloaded iovec v0.1.4
[INFO] [stderr]   Downloaded fxhash v0.2.1
[INFO] [stderr]   Downloaded gfx-backend-empty v0.4.0
[INFO] [stderr]   Downloaded typename_derive v0.1.4
[INFO] [stderr]   Downloaded cmake v0.1.42
[INFO] [stderr]   Downloaded itoa v0.4.5
[INFO] [stderr]   Downloaded num v0.2.1
[INFO] [stderr]   Downloaded png v0.11.0
[INFO] [stderr]   Downloaded byte-tools v0.2.0
[INFO] [stderr]   Downloaded tempfile v3.1.0
[INFO] [stderr]   Downloaded miniz_oxide v0.3.6
[INFO] [stderr]   Downloaded typename v0.1.2
[INFO] [stderr]   Downloaded inflate v0.3.4
[INFO] [stderr]   Downloaded base-62 v0.1.1
[INFO] [stderr]   Downloaded num-iter v0.1.40
[INFO] [stderr]   Downloaded hermit-abi v0.1.8
[INFO] [stderr]   Downloaded fuchsia-zircon-sys v0.3.3
[INFO] [stderr]   Downloaded dispatch v0.1.4
[INFO] [stderr]   Downloaded vec_map v0.6.0
[INFO] [stderr]   Downloaded storage-map v0.2.0
[INFO] [stderr]   Downloaded d3d12 v0.3.0
[INFO] [stderr]   Downloaded fsevent-sys v2.0.1
[INFO] [stderr]   Downloaded memchr v2.3.3
[INFO] [stderr]   Downloaded sha2 v0.7.1
[INFO] [stderr]   Downloaded crossbeam-channel v0.3.9
[INFO] [stderr]   Downloaded parking_lot v0.4.8
[INFO] [stderr]   Downloaded env_logger v0.7.1
[INFO] [stderr]   Downloaded num_cpus v1.12.0
[INFO] [stderr]   Downloaded num-integer v0.1.42
[INFO] [stderr]   Downloaded colorful v0.2.1
[INFO] [stderr]   Downloaded num-rational v0.1.42
[INFO] [stderr]   Downloaded termcolor v1.1.0
[INFO] [stderr]   Downloaded miow v0.2.1
[INFO] [stderr]   Downloaded humantime v1.3.0
[INFO] [stderr]   Downloaded parking_lot_core v0.2.14
[INFO] [stderr]   Downloaded gif v0.9.2
[INFO] [stderr]   Downloaded calloop v0.4.4
[INFO] [stderr]   Downloaded lock_api v0.3.3
[INFO] [stderr]   Downloaded rendy-memory v0.5.2
[INFO] [stderr]   Downloaded kernel32-sys v0.2.2
[INFO] [stderr]   Downloaded byteorder v1.3.4
[INFO] [stderr]   Downloaded inotify v0.7.0
[INFO] [stderr]   Downloaded fuchsia-zircon v0.3.3
[INFO] [stderr]   Downloaded wasm-bindgen-macro-support v0.2.58
[INFO] [stderr]   Downloaded getrandom v0.1.14
[INFO] [stderr]   Downloaded num-complex v0.2.4
[INFO] [stderr]   Downloaded wayland-commons v0.23.6
[INFO] [stderr]   Downloaded zerocopy v0.2.8
[INFO] [stderr]   Downloaded synstructure v0.10.2
[INFO] [stderr]   Downloaded crossbeam-queue v0.2.1
[INFO] [stderr]   Downloaded net2 v0.2.33
[INFO] [stderr]   Downloaded wasm-bindgen-backend v0.2.58
[INFO] [stderr]   Downloaded crossbeam-deque v0.7.3
[INFO] [stderr]   Downloaded noise v0.6.0
[INFO] [stderr]   Downloaded flate2 v1.0.13
[INFO] [stderr]   Downloaded backtrace v0.3.44
[INFO] [stderr]   Downloaded png v0.15.3
[INFO] [stderr]   Downloaded metal v0.17.1
[INFO] [stderr]   Downloaded hibitset v0.6.3
[INFO] [stderr]   Downloaded walkdir v2.3.1
[INFO] [stderr]   Downloaded proc-macro2 v1.0.8
[INFO] [stderr]   Downloaded crossbeam-utils v0.7.2
[INFO] [stderr]   Downloaded num-rational v0.2.3
[INFO] [stderr]   Downloaded x11 v2.18.2
[INFO] [stderr]   Downloaded gfx-backend-vulkan v0.4.2
[INFO] [stderr]   Downloaded wasi v0.9.0+wasi-snapshot-preview1
[INFO] [stderr]   Downloaded cc v1.0.50
[INFO] [stderr]   Downloaded num-traits v0.2.11
[INFO] [stderr]   Downloaded gfx-backend-dx11 v0.4.5
[INFO] [stderr]   Downloaded gfx-hal v0.4.1
[INFO] [stderr]   Downloaded cocoa v0.19.1
[INFO] [stderr]   Downloaded wgpu-native v0.4.3
[INFO] [stderr]   Downloaded js-sys v0.3.35
[INFO] [stderr]   Downloaded serde_json v1.0.48
[INFO] [stderr]   Downloaded serde_derive v1.0.104
[INFO] [stderr]   Downloaded rayon-core v1.7.0
[INFO] [stderr]   Downloaded crossbeam-epoch v0.8.2
[INFO] [stderr]   Downloaded image v0.18.0
[INFO] [stderr]   Downloaded aho-corasick v0.7.8
[INFO] [stderr]   Downloaded serde v1.0.104
[INFO] [stderr]   Downloaded notify v5.0.0-pre.1
[INFO] [stderr]   Downloaded rand v0.5.6
[INFO] [stderr]   Downloaded jpeg-decoder v0.1.18
[INFO] [stderr]   Downloaded regex v1.3.4
[INFO] [stderr]   Downloaded wasm-bindgen-macro v0.2.58
[INFO] [stderr]   Downloaded num-bigint v0.2.6
[INFO] [stderr]   Downloaded gfx-backend-dx12 v0.4.3
[INFO] [stderr]   Downloaded gfx-backend-metal v0.4.3
[INFO] [stderr]   Downloaded rand v0.7.3
[INFO] [stderr]   Downloaded smithay-client-toolkit v0.6.6
[INFO] [stderr]   Downloaded mio v0.6.21
[INFO] [stderr]   Downloaded wayland-protocols v0.23.6
[INFO] [stderr]   Downloaded regex-syntax v0.6.14
[INFO] [stderr]   Downloaded bumpalo v3.2.0
[INFO] [stderr]   Downloaded wasm-bindgen v0.2.58
[INFO] [stderr]   Downloaded rayon v1.3.0
[INFO] [stderr]   Downloaded syn v1.0.15
[INFO] [stderr]   Downloaded winit v0.20.0-alpha4
[INFO] [stderr]   Downloaded ash v0.29.0
[INFO] [stderr]   Downloaded libc v0.2.67
[INFO] [stderr]   Downloaded winapi v0.2.8
[INFO] [stderr]   Downloaded zerocopy-derive v0.1.4
[INFO] [stderr]   Downloaded obj-rs v0.5.0
[INFO] [stderr]   Downloaded spirv_cross v0.16.0
[INFO] [stderr]   Downloaded imgui-sys v0.2.0
[INFO] [stderr]   Downloaded shaderc-sys v0.6.1
[INFO] [stderr]   Downloaded glsl-to-spirv v0.1.7
[INFO] [stderr]   Downloaded imgui v0.2.1
[INFO] [stderr]   Downloaded wgpu v0.4.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:8683fc1fc2eb5c9ac98e0d076ab094b2ffac7f99da555d2b6a2e27f346de2ec7" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] cadcd33b57b32e68fbae07cc00757264be4097941caa49990fabae8c3d03825c
[INFO] running `Command { std: "docker" "start" "cadcd33b57b32e68fbae07cc00757264be4097941caa49990fabae8c3d03825c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "cadcd33b57b32e68fbae07cc00757264be4097941caa49990fabae8c3d03825c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "cadcd33b57b32e68fbae07cc00757264be4097941caa49990fabae8c3d03825c" "/opt/rustwide/cargo-home/bin/cargo" "+eca445e5ae4a6679cc27d3a09106ce245e13a5a6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "cadcd33b57b32e68fbae07cc00757264be4097941caa49990fabae8c3d03825c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "cadcd33b57b32e68fbae07cc00757264be4097941caa49990fabae8c3d03825c" "/opt/rustwide/cargo-home/bin/cargo" "+eca445e5ae4a6679cc27d3a09106ce245e13a5a6" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.67
[INFO] [stderr]    Compiling autocfg v1.0.0
[INFO] [stderr]     Checking cfg-if v0.1.10
[INFO] [stderr]     Checking lazy_static v1.4.0
[INFO] [stderr]    Compiling maybe-uninit v2.0.0
[INFO] [stderr]    Compiling bitflags v1.2.1
[INFO] [stderr]    Compiling semver-parser v0.7.0
[INFO] [stderr]    Compiling cc v1.0.50
[INFO] [stderr]    Compiling byteorder v1.3.4
[INFO] [stderr]    Compiling semver v0.9.0
[INFO] [stderr]    Compiling num-traits v0.2.11
[INFO] [stderr]    Compiling proc-macro2 v1.0.8
[INFO] [stderr]    Compiling log v0.4.8
[INFO] [stderr]    Compiling proc-macro2 v0.4.30
[INFO] [stderr]    Compiling rustc_version v0.2.3
[INFO] [stderr]    Compiling unicode-xid v0.2.0
[INFO] [stderr]    Compiling syn v1.0.15
[INFO] [stderr]    Compiling unicode-xid v0.1.0
[INFO] [stderr]     Checking smallvec v0.6.13
[INFO] [stderr]     Checking scopeguard v1.1.0
[INFO] [stderr]    Compiling num-integer v0.1.42
[INFO] [stderr]     Checking slab v0.4.2
[INFO] [stderr]    Compiling pkg-config v0.3.17
[INFO] [stderr]    Compiling crossbeam-utils v0.7.2
[INFO] [stderr]    Compiling xml-rs v0.8.0
[INFO] [stderr]     Checking iovec v0.1.4
[INFO] [stderr]     Checking raw-window-handle v0.3.3
[INFO] [stderr]     Checking net2 v0.2.33
[INFO] [stderr]    Compiling memoffset v0.5.3
[INFO] [stderr]    Compiling libloading v0.5.2
[INFO] [stderr]    Compiling quote v1.0.2
[INFO] [stderr]     Checking adler32 v1.0.4
[INFO] [stderr]    Compiling nix v0.14.1
[INFO] [stderr]    Compiling quote v0.6.13
[INFO] [stderr]     Checking arrayvec v0.5.1
[INFO] [stderr]    Compiling serde v1.0.104
[INFO] [stderr]    Compiling wayland-scanner v0.23.6
[INFO] [stderr]     Checking mio v0.6.21
[INFO] [stderr]     Checking approx v0.3.2
[INFO] [stderr]    Compiling parking_lot_core v0.6.2
[INFO] [stderr]    Compiling crossbeam-epoch v0.8.2
[INFO] [stderr]     Checking lazycell v1.2.1
[INFO] [stderr]     Checking void v1.0.2
[INFO] [stderr]     Checking dlib v0.4.1
[INFO] [stderr]    Compiling parking_lot v0.9.0
[INFO] [stderr]    Compiling num-bigint v0.2.6
[INFO] [stderr]    Compiling num-iter v0.1.40
[INFO] [stderr]    Compiling getrandom v0.1.14
[INFO] [stderr]     Checking wayland-sys v0.23.6
[INFO] [stderr]     Checking gfx-hal v0.4.1
[INFO] [stderr]     Checking ordered-float v1.0.2
[INFO] [stderr]     Checking lock_api v0.3.3
[INFO] [stderr]     Checking stb_truetype v0.3.1
[INFO] [stderr]    Compiling num-complex v0.2.4
[INFO] [stderr]     Checking mio-extras v2.0.6
[INFO] [stderr]    Compiling rayon-core v1.7.0
[INFO] [stderr]     Checking same-file v1.0.6
[INFO] [stderr]    Compiling syn v0.15.44
[INFO] [stderr]     Checking rusttype v0.8.2
[INFO] [stderr]     Checking walkdir v2.3.1
[INFO] [stderr]     Checking crossbeam-deque v0.7.3
[INFO] [stderr]     Checking crossbeam-queue v0.2.1
[INFO] [stderr]    Compiling x11 v2.18.2
[INFO] [stderr]    Compiling backtrace-sys v0.1.32
[INFO] [stderr]     Checking num_cpus v1.12.0
[INFO] [stderr]    Compiling num-rational v0.2.3
[INFO] [stderr]    Compiling memchr v2.3.3
[INFO] [stderr]     Checking ppv-lite86 v0.2.6
[INFO] [stderr]     Checking downcast-rs v1.1.1
[INFO] [stderr]     Checking c2-chacha v0.2.3
[INFO] [stderr]     Checking rand_core v0.5.1
[INFO] [stderr]     Checking rusttype v0.7.9
[INFO] [stderr]    Compiling wayland-client v0.23.6
[INFO] [stderr]    Compiling wayland-protocols v0.23.6
[INFO] [stderr]     Checking deflate v0.7.20
[INFO] [stderr]    Compiling x11-dl v2.18.5
[INFO] [stderr]    Compiling imgui-sys v0.2.0
[INFO] [stderr]     Checking line_drawing v0.7.0
[INFO] [stderr]     Checking relevant v0.4.2
[INFO] [stderr]     Checking shared_library v0.1.9
[INFO] [stderr]     Checking rand v0.4.6
[INFO] [stderr]    Compiling libm v0.1.4
[INFO] [stderr]     Checking either v1.5.3
[INFO] [stderr]    Compiling typenum v1.11.2
[INFO] [stderr]    Compiling crc32fast v1.2.0
[INFO] [stderr]     Checking atom v0.3.5
[INFO] [stderr]     Checking stable_deref_trait v1.1.1
[INFO] [stderr]     Checking xdg v2.2.0
[INFO] [stderr]    Compiling failure_derive v0.1.6
[INFO] [stderr]     Checking owning_ref v0.3.3
[INFO] [stderr]     Checking hibitset v0.6.3
[INFO] [stderr]     Checking parking_lot_core v0.2.14
[INFO] [stderr]     Checking rayon v1.3.0
[INFO] [stderr]     Checking andrew v0.2.1
[INFO] [stderr]     Checking ash v0.29.0
[INFO] [stderr]     Checking wayland-commons v0.23.6
[INFO] [stderr]     Checking calloop v0.4.4
[INFO] [stderr]     Checking rand_chacha v0.2.1
[INFO] [stderr]    Compiling synstructure v0.12.3
[INFO] [stderr]    Compiling synstructure v0.10.2
[INFO] [stderr]     Checking inflate v0.3.4
[INFO] [stderr]     Checking num-traits v0.1.43
[INFO] [stderr]     Checking memmap v0.7.0
[INFO] [stderr]     Checking rustc-demangle v0.1.16
[INFO] [stderr]     Checking lzw v0.10.0
[INFO] [stderr]     Checking colorful v0.2.1
[INFO] [stderr]     Checking rand_core v0.4.2
[INFO] [stderr]    Compiling ryu v1.0.2
[INFO] [stderr]     Checking color_quant v1.0.1
[INFO] [stderr]     Checking rendy-memory v0.5.2
[INFO] [stderr]     Checking rand_core v0.3.1
[INFO] [stderr]     Checking gif v0.9.2
[INFO] [stderr]     Checking backtrace v0.3.44
[INFO] [stderr]     Checking jpeg-decoder v0.1.18
[INFO] [stderr]    Compiling zerocopy-derive v0.1.4
[INFO] [stderr]     Checking enum_primitive v0.1.1
[INFO] [stderr]     Checking png v0.11.0
[INFO] [stderr]     Checking aho-corasick v0.7.8
[INFO] [stderr]    Compiling serde_derive v1.0.104
[INFO] [stderr]     Checking rand v0.7.3
[INFO] [stderr]     Checking parking_lot v0.4.8
[INFO] [stderr]     Checking rendy-descriptor v0.5.1
[INFO] [stderr]     Checking gfx-backend-empty v0.4.0
[INFO] [stderr]     Checking num-rational v0.1.42
[INFO] [stderr]     Checking inotify-sys v0.1.3
[INFO] [stderr]     Checking fxhash v0.2.1
[INFO] [stderr]     Checking crossbeam-utils v0.6.6
[INFO] [stderr]     Checking thread_local v1.0.1
[INFO] [stderr]     Checking regex-syntax v0.6.14
[INFO] [stderr]     Checking copyless v0.1.4
[INFO] [stderr]     Checking scoped_threadpool v0.1.9
[INFO] [stderr]     Checking quick-error v1.2.3
[INFO] [stderr]     Checking rawpointer v0.2.1
[INFO] [stderr]     Checking vec_map v0.8.1
[INFO] [stderr]     Checking instant v0.1.2
[INFO] [stderr]     Checking percent-encoding v2.1.0
[INFO] [stderr]     Checking crossbeam-channel v0.3.9
[INFO] [stderr]     Checking matrixmultiply v0.2.3
[INFO] [stderr]     Checking image v0.18.0
[INFO] [stderr]     Checking humantime v1.3.0
[INFO] [stderr]     Checking generic-array v0.13.2
[INFO] [stderr]     Checking inotify v0.7.0
[INFO] [stderr]     Checking chashmap v2.2.2
[INFO] [stderr]     Checking rand_distr v0.2.2
[INFO] [stderr]     Checking failure v0.1.6
[INFO] [stderr]     Checking zerocopy v0.2.8
[INFO] [stderr]    Compiling typename_derive v0.1.4
[INFO] [stderr]     Checking rand v0.5.6
[INFO] [stderr]     Checking gfx-backend-vulkan v0.4.2
[INFO] [stderr]     Checking regex v1.3.4
[INFO] [stderr]     Checking inflate v0.4.5
[INFO] [stderr]     Checking miniz_oxide v0.3.6
[INFO] [stderr]     Checking wgpu-native v0.4.3
[INFO] [stderr]     Checking filetime v0.2.8
[INFO] [stderr]     Checking atty v0.2.14
[INFO] [stderr]     Checking anymap v0.12.1
[INFO] [stderr]     Checking itoa v0.4.5
[INFO] [stderr]     Checking termcolor v1.1.0
[INFO] [stderr]     Checking vec_map v0.6.0
[INFO] [stderr]     Checking notify v5.0.0-pre.1
[INFO] [stderr]     Checking flate2 v1.0.13
[INFO] [stderr]     Checking env_logger v0.7.1
[INFO] [stderr]     Checking png v0.15.3
[INFO] [stderr]     Checking noise v0.6.0
[INFO] [stderr]     Checking typename v0.1.2
[INFO] [stderr]     Checking base-62 v0.1.1
[INFO] [stderr]     Checking spin_sleep v0.3.7
[INFO] [stderr]     Checking fnv v1.0.6
[INFO] [stderr]     Checking wgpu v0.4.0
[INFO] [stderr]     Checking imgui v0.2.1
[INFO] [stderr]     Checking bincode v1.2.1
[INFO] [stderr]     Checking serde_json v1.0.48
[INFO] [stderr]     Checking num v0.2.1
[INFO] [stderr]     Checking alga v0.9.2
[INFO] [stderr]     Checking obj-rs v0.5.0
[INFO] [stderr]     Checking nalgebra v0.19.0
[INFO] [stderr]     Checking smithay-client-toolkit v0.6.6
[INFO] [stderr]     Checking winit v0.20.0-alpha4
[INFO] [stderr]     Checking imgui-winit-support v0.2.1
[INFO] [stderr]     Checking oxidator v0.2.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]  --> src/botdef.rs:7:34
[INFO] [stdout]   |
[INFO] [stdout] 7 | #[derive(Clone, TypeName, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]   |                                  ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: expected values for `feature` are: `default`, `glsl-to-spirv`, `shaderc`, `use_glsl_to_spirv`, and `use_shaderc`
[INFO] [stdout]   = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]   = help: try referring to `Serialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]   = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]   = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout]   = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]  --> src/botdef.rs:7:45
[INFO] [stdout]   |
[INFO] [stdout] 7 | #[derive(Clone, TypeName, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]   |                                             ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: expected values for `feature` are: `default`, `glsl-to-spirv`, `shaderc`, `use_glsl_to_spirv`, and `use_shaderc`
[INFO] [stdout]   = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]   = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]   = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]   = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Vector4`
[INFO] [stdout]  --> src/client/mod.rs:3:56
[INFO] [stdout]   |
[INFO] [stdout] 3 | use na::{Isometry3, Matrix4, Point3, Vector2, Vector3, Vector4};
[INFO] [stdout]   |                                                        ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::botdef`
[INFO] [stdout]  --> src/client/game_state.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::botdef;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashSet`
[INFO] [stdout]  --> src/client/unit_part_gpu.rs:4:33
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::collections::{HashMap, HashSet};
[INFO] [stdout]   |                                 ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Path`
[INFO] [stdout]  --> src/client/unit_part_gpu.rs:5:17
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::model::*`
[INFO] [stdout]  --> src/client/unit_editor.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::model::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `gpu_obj::model_gpu::ModelGpu`
[INFO] [stdout]  --> src/client/unit_editor.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use gpu_obj::model_gpu::ModelGpu;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Vector2`
[INFO] [stdout]  --> src/client/unit_editor.rs:7:27
[INFO] [stdout]   |
[INFO] [stdout] 7 | use na::{Matrix4, Point3, Vector2, Vector3, Vector4};
[INFO] [stdout]   |                           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `HashMap` and `HashSet`
[INFO] [stdout]  --> src/client/unit_editor.rs:8:24
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::collections::{HashMap, HashSet};
[INFO] [stdout]   |                        ^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Path`
[INFO] [stdout]  --> src/client/unit_editor.rs:9:17
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BufReader`
[INFO] [stdout]    --> src/client/unit_editor.rs:228:23
[INFO] [stdout]     |
[INFO] [stdout] 228 |         use std::io::{BufReader, BufWriter};
[INFO] [stdout]     |                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BufWriter`
[INFO] [stdout]    --> src/client/unit_editor.rs:244:34
[INFO] [stdout]     |
[INFO] [stdout] 244 |         use std::io::{BufReader, BufWriter};
[INFO] [stdout]     |                                  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::BufReader`
[INFO] [stdout]    --> src/client/heightmap_editor.rs:328:13
[INFO] [stdout]     |
[INFO] [stdout] 328 |         use std::io::BufReader;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around pattern
[INFO] [stdout]   --> src/client/misc.rs:19:13
[INFO] [stdout]    |
[INFO] [stdout] 19 |         for (model_gpu_state) in self.unit_part_gpu.states.iter_mut() {
[INFO] [stdout]    |             ^               ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 19 -         for (model_gpu_state) in self.unit_part_gpu.states.iter_mut() {
[INFO] [stdout] 19 +         for model_gpu_state in self.unit_part_gpu.states.iter_mut() {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]    --> src/client/misc.rs:159:25
[INFO] [stdout]     |
[INFO] [stdout] 159 |                         (t * 2.0),
[INFO] [stdout]     |                         ^       ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 159 -                         (t * 2.0),
[INFO] [stdout] 159 +                         t * 2.0,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::botdef`
[INFO] [stdout]  --> src/client/play.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::botdef;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `imgui::*`
[INFO] [stdout]  --> src/client/play.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use imgui::*;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Isometry3`, `Vector2`, and `Vector4`
[INFO] [stdout]  --> src/client/play.rs:9:10
[INFO] [stdout]   |
[INFO] [stdout] 9 | use na::{Isometry3, Matrix4, Point3, Vector2, Vector3, Vector4};
[INFO] [stdout]   |          ^^^^^^^^^                   ^^^^^^^           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Duration` and `Instant`
[INFO] [stdout]   --> src/client/play.rs:10:17
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::time::{Duration, Instant};
[INFO] [stdout]    |                 ^^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::frame::Player`
[INFO] [stdout]  --> src/client/render.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::frame::Player;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `IsometryMatrix3`, `Matrix4`, `Vector2`, and `Vector4`
[INFO] [stdout]  --> src/client/render.rs:8:10
[INFO] [stdout]   |
[INFO] [stdout] 8 | use na::{IsometryMatrix3, Matrix4, Point3, Vector2, Vector3, Vector4};
[INFO] [stdout]   |          ^^^^^^^^^^^^^^^  ^^^^^^^          ^^^^^^^           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Duration`
[INFO] [stdout]  --> src/client/render.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::time::Duration;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `unit_part_gpu::UnitPartGpu`
[INFO] [stdout]   --> src/client/render.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use unit_part_gpu::UnitPartGpu;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashMap`
[INFO] [stdout]   --> src/client/mod.rs:34:24
[INFO] [stdout]    |
[INFO] [stdout] 34 | use std::collections::{HashMap, HashSet};
[INFO] [stdout]    |                        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PathBuf`
[INFO] [stdout]   --> src/client/mod.rs:35:23
[INFO] [stdout]    |
[INFO] [stdout] 35 | use std::path::{Path, PathBuf};
[INFO] [stdout]    |                       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Instant`
[INFO] [stdout]   --> src/client/mod.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 36 | use std::time::Instant;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BufferMapAsyncResult`, `Extent3d`, and `SwapChain`
[INFO] [stdout]   --> src/client/mod.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 38 | use wgpu::{BufferMapAsyncResult, Extent3d, SwapChain, TextureFormat};
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/client/mod.rs:154:10
[INFO] [stdout]     |
[INFO] [stdout] 154 |     ) -> (Self) {
[INFO] [stdout]     |          ^    ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 154 -     ) -> (Self) {
[INFO] [stdout] 154 +     ) -> Self {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Result`
[INFO] [stdout]    --> src/client/mod.rs:437:50
[INFO] [stdout]     |
[INFO] [stdout] 437 |             use notify::{watcher, RecursiveMode, Result};
[INFO] [stdout]     |                                                  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]    --> src/client/mod.rs:608:9
[INFO] [stdout]     |
[INFO] [stdout] 608 |         (this)
[INFO] [stdout]     |         ^    ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 608 -         (this)
[INFO] [stdout] 608 +         this
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around pattern
[INFO] [stdout]    --> src/client/mod.rs:927:25
[INFO] [stdout]     |
[INFO] [stdout] 927 |                     for (model_gpu_state) in self.unit_part_gpu.states.iter_mut() {
[INFO] [stdout]     |                         ^               ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 927 -                     for (model_gpu_state) in self.unit_part_gpu.states.iter_mut() {
[INFO] [stdout] 927 +                     for model_gpu_state in self.unit_part_gpu.states.iter_mut() {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Point3`
[INFO] [stdout]   --> src/frame.rs:10:10
[INFO] [stdout]    |
[INFO] [stdout] 10 | use na::{Point3, Vector3};
[INFO] [stdout]    |          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::unit`
[INFO] [stdout]   --> src/frame.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use crate::unit;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> src/frame.rs:19:34
[INFO] [stdout]    |
[INFO] [stdout] 19 | #[derive(Clone, TypeName, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]    |                                  ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `default`, `glsl-to-spirv`, `shaderc`, `use_glsl_to_spirv`, and `use_shaderc`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Serialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> src/frame.rs:19:45
[INFO] [stdout]    |
[INFO] [stdout] 19 | #[derive(Clone, TypeName, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]    |                                             ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `default`, `glsl-to-spirv`, `shaderc`, `use_glsl_to_spirv`, and `use_shaderc`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> src/frame.rs:41:24
[INFO] [stdout]    |
[INFO] [stdout] 41 | #[derive(Clone, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]    |                        ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `default`, `glsl-to-spirv`, `shaderc`, `use_glsl_to_spirv`, and `use_shaderc`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Serialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> src/frame.rs:41:35
[INFO] [stdout]    |
[INFO] [stdout] 41 | #[derive(Clone, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]    |                                   ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `default`, `glsl-to-spirv`, `shaderc`, `use_glsl_to_spirv`, and `use_shaderc`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> src/frame.rs:62:24
[INFO] [stdout]    |
[INFO] [stdout] 62 | #[derive(Clone, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]    |                        ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `default`, `glsl-to-spirv`, `shaderc`, `use_glsl_to_spirv`, and `use_shaderc`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Serialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> src/frame.rs:62:35
[INFO] [stdout]    |
[INFO] [stdout] 62 | #[derive(Clone, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]    |                                   ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `default`, `glsl-to-spirv`, `shaderc`, `use_glsl_to_spirv`, and `use_shaderc`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> src/frame.rs:95:24
[INFO] [stdout]    |
[INFO] [stdout] 95 | #[derive(Clone, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]    |                        ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `default`, `glsl-to-spirv`, `shaderc`, `use_glsl_to_spirv`, and `use_shaderc`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Serialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> src/frame.rs:95:35
[INFO] [stdout]    |
[INFO] [stdout] 95 | #[derive(Clone, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]    |                                   ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `default`, `glsl-to-spirv`, `shaderc`, `use_glsl_to_spirv`, and `use_shaderc`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]    --> src/frame.rs:101:24
[INFO] [stdout]     |
[INFO] [stdout] 101 | #[derive(Clone, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]     |                        ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected values for `feature` are: `default`, `glsl-to-spirv`, `shaderc`, `use_glsl_to_spirv`, and `use_shaderc`
[INFO] [stdout]     = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]     = help: try referring to `Serialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]     = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]    --> src/frame.rs:101:35
[INFO] [stdout]     |
[INFO] [stdout] 101 | #[derive(Clone, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]     |                                   ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected values for `feature` are: `default`, `glsl-to-spirv`, `shaderc`, `use_glsl_to_spirv`, and `use_shaderc`
[INFO] [stdout]     = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]     = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]     = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]    --> src/frame.rs:106:24
[INFO] [stdout]     |
[INFO] [stdout] 106 | #[derive(Clone, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]     |                        ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected values for `feature` are: `default`, `glsl-to-spirv`, `shaderc`, `use_glsl_to_spirv`, and `use_shaderc`
[INFO] [stdout]     = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]     = help: try referring to `Serialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]     = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]    --> src/frame.rs:106:35
[INFO] [stdout]     |
[INFO] [stdout] 106 | #[derive(Clone, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]     |                                   ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected values for `feature` are: `default`, `glsl-to-spirv`, `shaderc`, `use_glsl_to_spirv`, and `use_shaderc`
[INFO] [stdout]     = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]     = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]     = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Matrix4`
[INFO] [stdout]  --> src/frame_server/mod.rs:9:10
[INFO] [stdout]   |
[INFO] [stdout] 9 | use na::{Matrix4, Point3, Vector2, Vector3};
[INFO] [stdout]   |          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused label
[INFO] [stdout]    --> src/frame_server/mod.rs:393:25
[INFO] [stdout]     |
[INFO] [stdout] 393 |                         'bot_test: for kbot_id in kbots_in_proximity.iter() {
[INFO] [stdout]     |                         ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_labels)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> src/frame_server/mod.rs:452:10
[INFO] [stdout]     |
[INFO] [stdout] 452 |         };
[INFO] [stdout]     |          ^ help: remove this semicolon
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(redundant_semicolons)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::slice`
[INFO] [stdout]  --> src/glsl.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::slice;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]   --> src/gpu_obj/arrow_gpu.rs:45:95
[INFO] [stdout]    |
[INFO] [stdout] 45 |         let pipeline = Self::create_pipeline(device, main_bind_group_layout, format).unwrap();;
[INFO] [stdout]    |                                                                                               ^ help: remove this semicolon
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/gpu_obj/arrow_gpu.rs:208:23
[INFO] [stdout]     |
[INFO] [stdout] 208 |             Err(x) => log::error!("{}", x),
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: `#[warn(semicolon_in_expressions_from_non_local_macros)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stdout]     = note: this warning originates in the macro `log::error` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::model`
[INFO] [stdout]  --> src/gpu_obj/blit_texture.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::model;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/gpu_obj/blit_texture.rs:254:23
[INFO] [stdout]     |
[INFO] [stdout] 254 |             Err(x) => log::error!("{}", x),
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `log::error` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::model`
[INFO] [stdout]  --> src/gpu_obj/explosion.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::model;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BigEndian` and `ReadBytesExt`
[INFO] [stdout]    --> src/gpu_obj/explosion.rs:312:25
[INFO] [stdout]     |
[INFO] [stdout] 312 |         use byteorder::{BigEndian, ReadBytesExt};
[INFO] [stdout]     |                         ^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/gpu_obj/explosion.rs:372:23
[INFO] [stdout]     |
[INFO] [stdout] 372 |             Err(x) => log::error!("{}", x),
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `log::error` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::slice`
[INFO] [stdout]   --> src/gpu_obj/glsl_compiler.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 23 | use std::slice;
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::model`
[INFO] [stdout]  --> src/gpu_obj/health_bar.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::model;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/gpu_obj/health_bar.rs:150:23
[INFO] [stdout]     |
[INFO] [stdout] 150 |             Err(x) => log::error!("{}", x),
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `log::error` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/gpu_obj/heightmap_gpu.rs:904:23
[INFO] [stdout]     |
[INFO] [stdout] 904 |             Err(x) => log::error!("{}", x),
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `log::error` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::model`
[INFO] [stdout]  --> src/gpu_obj/line.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::model;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]   --> src/gpu_obj/line.rs:29:95
[INFO] [stdout]    |
[INFO] [stdout] 29 |         let pipeline = Self::create_pipeline(device, main_bind_group_layout, format).unwrap();;
[INFO] [stdout]    |                                                                                               ^ help: remove this semicolon
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/gpu_obj/line.rs:145:23
[INFO] [stdout]     |
[INFO] [stdout] 145 |             Err(x) => log::error!("{}", x),
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `log::error` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]   --> src/gpu_obj/model_gpu.rs:46:95
[INFO] [stdout]    |
[INFO] [stdout] 46 |         let pipeline = Self::create_pipeline(device, main_bind_group_layout, format).unwrap();;
[INFO] [stdout]    |                                                                                               ^ help: remove this semicolon
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/gpu_obj/model_gpu.rs:261:23
[INFO] [stdout]     |
[INFO] [stdout] 261 |             Err(x) => log::error!("{}", x),
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `log::error` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/gpu_obj/post_fx.rs:168:23
[INFO] [stdout]     |
[INFO] [stdout] 168 |             Err(x) => log::error!("{}", x),
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `log::error` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/gpu_obj/post_fxaa.rs:174:23
[INFO] [stdout]     |
[INFO] [stdout] 174 |             Err(x) => log::error!("{}", x),
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `log::error` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/gpu_obj/texture_view_bicopy.rs:164:23
[INFO] [stdout]     |
[INFO] [stdout] 164 |             Err(x) => log::error!("{}", x),
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `log::error` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BindGroup` and `RenderPass`
[INFO] [stdout]  --> src/gpu_obj/trait_gpu.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | use wgpu::{BindGroup, BindGroupLayout, RenderPass, TextureFormat};
[INFO] [stdout]   |            ^^^^^^^^^                   ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::model`
[INFO] [stdout]  --> src/gpu_obj/unit_icon.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::model;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]   --> src/gpu_obj/unit_icon.rs:29:95
[INFO] [stdout]    |
[INFO] [stdout] 29 |         let pipeline = Self::create_pipeline(device, main_bind_group_layout, format).unwrap();;
[INFO] [stdout]    |                                                                                               ^ help: remove this semicolon
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/gpu_obj/unit_icon.rs:140:23
[INFO] [stdout]     |
[INFO] [stdout] 140 |             Err(x) => log::error!("{}", x),
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `log::error` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]   --> src/gpu_obj/water.rs:62:27
[INFO] [stdout]    |
[INFO] [stdout] 62 |                 .unwrap();;
[INFO] [stdout]    |                           ^ help: remove this semicolon
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/gpu_obj/water.rs:222:23
[INFO] [stdout]     |
[INFO] [stdout] 222 |             Err(x) => log::error!("{}", x),
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `log::error` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]  --> src/heightmap_phy.rs:4:24
[INFO] [stdout]   |
[INFO] [stdout] 4 | #[derive(Clone, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]   |                        ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: expected values for `feature` are: `default`, `glsl-to-spirv`, `shaderc`, `use_glsl_to_spirv`, and `use_shaderc`
[INFO] [stdout]   = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]   = help: try referring to `Serialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]   = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]   = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]  --> src/heightmap_phy.rs:4:35
[INFO] [stdout]   |
[INFO] [stdout] 4 | #[derive(Clone, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]   |                                   ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: expected values for `feature` are: `default`, `glsl-to-spirv`, `shaderc`, `use_glsl_to_spirv`, and `use_shaderc`
[INFO] [stdout]   = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]   = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]   = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]   = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]  --> src/heightmap_phy.rs:8:24
[INFO] [stdout]   |
[INFO] [stdout] 8 | #[derive(Clone, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]   |                        ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: expected values for `feature` are: `default`, `glsl-to-spirv`, `shaderc`, `use_glsl_to_spirv`, and `use_shaderc`
[INFO] [stdout]   = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]   = help: try referring to `Serialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]   = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]   = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]  --> src/heightmap_phy.rs:8:35
[INFO] [stdout]   |
[INFO] [stdout] 8 | #[derive(Clone, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]   |                                   ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: expected values for `feature` are: `default`, `glsl-to-spirv`, `shaderc`, `use_glsl_to_spirv`, and `use_shaderc`
[INFO] [stdout]   = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]   = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]   = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]   = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> src/heightmap_phy.rs:15:24
[INFO] [stdout]    |
[INFO] [stdout] 15 | #[derive(Clone, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]    |                        ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `default`, `glsl-to-spirv`, `shaderc`, `use_glsl_to_spirv`, and `use_shaderc`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Serialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> src/heightmap_phy.rs:15:35
[INFO] [stdout]    |
[INFO] [stdout] 15 | #[derive(Clone, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]    |                                   ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `default`, `glsl-to-spirv`, `shaderc`, `use_glsl_to_spirv`, and `use_shaderc`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::unit`
[INFO] [stdout]  --> src/mobile.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::unit;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `PathBuf` and `Path`
[INFO] [stdout]  --> src/mobile.rs:7:17
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                 ^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> src/mobile.rs:11:34
[INFO] [stdout]    |
[INFO] [stdout] 11 | #[derive(Clone, TypeName, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]    |                                  ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `default`, `glsl-to-spirv`, `shaderc`, `use_glsl_to_spirv`, and `use_shaderc`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Serialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> src/mobile.rs:11:45
[INFO] [stdout]    |
[INFO] [stdout] 11 | #[derive(Clone, TypeName, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]    |                                             ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `default`, `glsl-to-spirv`, `shaderc`, `use_glsl_to_spirv`, and `use_shaderc`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> src/mobile.rs:18:30
[INFO] [stdout]    |
[INFO] [stdout] 18 | #[derive(Clone, Copy, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]    |                              ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `default`, `glsl-to-spirv`, `shaderc`, `use_glsl_to_spirv`, and `use_shaderc`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Serialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> src/mobile.rs:18:41
[INFO] [stdout]    |
[INFO] [stdout] 18 | #[derive(Clone, Copy, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]    |                                         ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `default`, `glsl-to-spirv`, `shaderc`, `use_glsl_to_spirv`, and `use_shaderc`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/mobile.rs:37:20
[INFO] [stdout]    |
[INFO] [stdout] 37 |         let diff = (other - self);
[INFO] [stdout]    |                    ^            ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 37 -         let diff = (other - self);
[INFO] [stdout] 37 +         let diff = other - self;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]    --> src/mobile.rs:107:34
[INFO] [stdout]     |
[INFO] [stdout] 107 | #[derive(Clone, TypeName, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]     |                                  ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected values for `feature` are: `default`, `glsl-to-spirv`, `shaderc`, `use_glsl_to_spirv`, and `use_shaderc`
[INFO] [stdout]     = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]     = help: try referring to `Serialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]     = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]    --> src/mobile.rs:107:45
[INFO] [stdout]     |
[INFO] [stdout] 107 | #[derive(Clone, TypeName, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]     |                                             ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected values for `feature` are: `default`, `glsl-to-spirv`, `shaderc`, `use_glsl_to_spirv`, and `use_shaderc`
[INFO] [stdout]     = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]     = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]     = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]    --> src/mobile.rs:114:34
[INFO] [stdout]     |
[INFO] [stdout] 114 | #[derive(Clone, TypeName, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]     |                                  ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected values for `feature` are: `default`, `glsl-to-spirv`, `shaderc`, `use_glsl_to_spirv`, and `use_shaderc`
[INFO] [stdout]     = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]     = help: try referring to `Serialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]     = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]    --> src/mobile.rs:114:45
[INFO] [stdout]     |
[INFO] [stdout] 114 | #[derive(Clone, TypeName, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]     |                                             ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected values for `feature` are: `default`, `glsl-to-spirv`, `shaderc`, `use_glsl_to_spirv`, and `use_shaderc`
[INFO] [stdout]     = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]     = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]     = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]    --> src/mobile.rs:193:34
[INFO] [stdout]     |
[INFO] [stdout] 193 | #[derive(Clone, TypeName, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]     |                                  ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected values for `feature` are: `default`, `glsl-to-spirv`, `shaderc`, `use_glsl_to_spirv`, and `use_shaderc`
[INFO] [stdout]     = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]     = help: try referring to `Serialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]     = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]    --> src/mobile.rs:193:45
[INFO] [stdout]     |
[INFO] [stdout] 193 | #[derive(Clone, TypeName, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]     |                                             ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected values for `feature` are: `default`, `glsl-to-spirv`, `shaderc`, `use_glsl_to_spirv`, and `use_shaderc`
[INFO] [stdout]     = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]     = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]     = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]    --> src/mobile.rs:242:24
[INFO] [stdout]     |
[INFO] [stdout] 242 | #[derive(Clone, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]     |                        ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected values for `feature` are: `default`, `glsl-to-spirv`, `shaderc`, `use_glsl_to_spirv`, and `use_shaderc`
[INFO] [stdout]     = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]     = help: try referring to `Serialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]     = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]    --> src/mobile.rs:242:35
[INFO] [stdout]     |
[INFO] [stdout] 242 | #[derive(Clone, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]     |                                   ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected values for `feature` are: `default`, `glsl-to-spirv`, `shaderc`, `use_glsl_to_spirv`, and `use_shaderc`
[INFO] [stdout]     = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]     = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]     = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::unit`
[INFO] [stdout]  --> src/moddef.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::unit;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]  --> src/moddef.rs:9:34
[INFO] [stdout]   |
[INFO] [stdout] 9 | #[derive(Clone, TypeName, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]   |                                  ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: expected values for `feature` are: `default`, `glsl-to-spirv`, `shaderc`, `use_glsl_to_spirv`, and `use_shaderc`
[INFO] [stdout]   = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]   = help: try referring to `Serialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]   = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]   = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]  --> src/moddef.rs:9:45
[INFO] [stdout]   |
[INFO] [stdout] 9 | #[derive(Clone, TypeName, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]   |                                             ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: expected values for `feature` are: `default`, `glsl-to-spirv`, `shaderc`, `use_glsl_to_spirv`, and `use_shaderc`
[INFO] [stdout]   = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]   = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]   = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]   = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::prelude::*`
[INFO] [stdout]  --> src/net_client.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::io::prelude::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::BufReader`
[INFO] [stdout]  --> src/net_client.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::io::BufReader;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::net::TcpListener`
[INFO] [stdout]  --> src/net_client.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::net::TcpListener;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::client::*`
[INFO] [stdout]  --> src/unit.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use super::client::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::model::*`
[INFO] [stdout]  --> src/unit.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::model::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::utils::FileTree`
[INFO] [stdout]  --> src/unit.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::utils::FileTree;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `gpu_obj::model_gpu::ModelGpu`
[INFO] [stdout]  --> src/unit.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use gpu_obj::model_gpu::ModelGpu;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Vector2` and `Vector3`
[INFO] [stdout]  --> src/unit.rs:6:27
[INFO] [stdout]   |
[INFO] [stdout] 6 | use na::{Matrix4, Point3, Vector2, Vector3};
[INFO] [stdout]   |                           ^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `HashMap` and `HashSet`
[INFO] [stdout]  --> src/unit.rs:8:24
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::collections::{HashMap, HashSet};
[INFO] [stdout]   |                        ^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Path`
[INFO] [stdout]  --> src/unit.rs:9:17
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> src/unit.rs:11:35
[INFO] [stdout]    |
[INFO] [stdout] 11 | #[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
[INFO] [stdout]    |                                   ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `default`, `glsl-to-spirv`, `shaderc`, `use_glsl_to_spirv`, and `use_shaderc`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Serialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> src/unit.rs:11:46
[INFO] [stdout]    |
[INFO] [stdout] 11 | #[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
[INFO] [stdout]    |                                              ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `default`, `glsl-to-spirv`, `shaderc`, `use_glsl_to_spirv`, and `use_shaderc`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> src/unit.rs:18:35
[INFO] [stdout]    |
[INFO] [stdout] 18 | #[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
[INFO] [stdout]    |                                   ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `default`, `glsl-to-spirv`, `shaderc`, `use_glsl_to_spirv`, and `use_shaderc`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Serialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> src/unit.rs:18:46
[INFO] [stdout]    |
[INFO] [stdout] 18 | #[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
[INFO] [stdout]    |                                              ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `default`, `glsl-to-spirv`, `shaderc`, `use_glsl_to_spirv`, and `use_shaderc`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> src/unit.rs:23:35
[INFO] [stdout]    |
[INFO] [stdout] 23 | #[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
[INFO] [stdout]    |                                   ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `default`, `glsl-to-spirv`, `shaderc`, `use_glsl_to_spirv`, and `use_shaderc`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Serialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> src/unit.rs:23:46
[INFO] [stdout]    |
[INFO] [stdout] 23 | #[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
[INFO] [stdout]    |                                              ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `default`, `glsl-to-spirv`, `shaderc`, `use_glsl_to_spirv`, and `use_shaderc`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> src/unit.rs:45:55
[INFO] [stdout]    |
[INFO] [stdout] 45 | #[derive(Debug, Clone, typename::TypeName, PartialEq, Serialize, Deserialize)]
[INFO] [stdout]    |                                                       ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `default`, `glsl-to-spirv`, `shaderc`, `use_glsl_to_spirv`, and `use_shaderc`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Serialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> src/unit.rs:45:66
[INFO] [stdout]    |
[INFO] [stdout] 45 | #[derive(Debug, Clone, typename::TypeName, PartialEq, Serialize, Deserialize)]
[INFO] [stdout]    |                                                                  ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `default`, `glsl-to-spirv`, `shaderc`, `use_glsl_to_spirv`, and `use_shaderc`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `IsometryMatrix3`, `Point3`, `Vector2`, and `Vector4`
[INFO] [stdout]  --> src/utils.rs:2:10
[INFO] [stdout]   |
[INFO] [stdout] 2 | use na::{IsometryMatrix3, Matrix4, Point3, Vector2, Vector3, Vector4};
[INFO] [stdout]   |          ^^^^^^^^^^^^^^^           ^^^^^^  ^^^^^^^           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashMap`
[INFO] [stdout]  --> src/utils.rs:6:24
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::collections::{HashMap, HashSet};
[INFO] [stdout]   |                        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> src/utils.rs:42:10
[INFO] [stdout]    |
[INFO] [stdout] 42 | #[derive(Serialize, Deserialize)]
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `default`, `glsl-to-spirv`, `shaderc`, `use_glsl_to_spirv`, and `use_shaderc`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Serialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> src/utils.rs:42:21
[INFO] [stdout]    |
[INFO] [stdout] 42 | #[derive(Serialize, Deserialize)]
[INFO] [stdout]    |                     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `default`, `glsl-to-spirv`, `shaderc`, `use_glsl_to_spirv`, and `use_shaderc`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DirEntry`
[INFO] [stdout]    --> src/utils.rs:134:21
[INFO] [stdout]     |
[INFO] [stdout] 134 | use std::fs::{self, DirEntry};
[INFO] [stdout]     |                     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io`
[INFO] [stdout]    --> src/utils.rs:135:5
[INFO] [stdout]     |
[INFO] [stdout] 135 | use std::io;
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Path`
[INFO] [stdout]    --> src/utils.rs:136:17
[INFO] [stdout]     |
[INFO] [stdout] 136 | use std::path::{Path, PathBuf};
[INFO] [stdout]     |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BigEndian` and `ReadBytesExt`
[INFO] [stdout]    --> src/utils.rs:177:25
[INFO] [stdout]     |
[INFO] [stdout] 177 |         use byteorder::{BigEndian, ReadBytesExt};
[INFO] [stdout]     |                         ^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::f32::MIN_POSITIVE`: replaced by the `MIN_POSITIVE` associated constant on `f32`
[INFO] [stdout]    --> src/frame_server/mod.rs:116:49
[INFO] [stdout]     |
[INFO] [stdout] 116 |                     m.con_completed = std::f32::MIN_POSITIVE;
[INFO] [stdout]     |                                                 ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]  --> src/botdef.rs:7:34
[INFO] [stdout]   |
[INFO] [stdout] 7 | #[derive(Clone, TypeName, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]   |                                  ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: expected values for `feature` are: `default`, `glsl-to-spirv`, `shaderc`, `use_glsl_to_spirv`, and `use_shaderc`
[INFO] [stdout]   = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]   = help: try referring to `Serialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]   = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]   = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout]   = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]  --> src/botdef.rs:7:45
[INFO] [stdout]   |
[INFO] [stdout] 7 | #[derive(Clone, TypeName, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]   |                                             ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: expected values for `feature` are: `default`, `glsl-to-spirv`, `shaderc`, `use_glsl_to_spirv`, and `use_shaderc`
[INFO] [stdout]   = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]   = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]   = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]   = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Vector4`
[INFO] [stdout]  --> src/client/mod.rs:3:56
[INFO] [stdout]   |
[INFO] [stdout] 3 | use na::{Isometry3, Matrix4, Point3, Vector2, Vector3, Vector4};
[INFO] [stdout]   |                                                        ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::botdef`
[INFO] [stdout]  --> src/client/game_state.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::botdef;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashSet`
[INFO] [stdout]  --> src/client/unit_part_gpu.rs:4:33
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::collections::{HashMap, HashSet};
[INFO] [stdout]   |                                 ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Path`
[INFO] [stdout]  --> src/client/unit_part_gpu.rs:5:17
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::model::*`
[INFO] [stdout]  --> src/client/unit_editor.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::model::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `gpu_obj::model_gpu::ModelGpu`
[INFO] [stdout]  --> src/client/unit_editor.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use gpu_obj::model_gpu::ModelGpu;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Vector2`
[INFO] [stdout]  --> src/client/unit_editor.rs:7:27
[INFO] [stdout]   |
[INFO] [stdout] 7 | use na::{Matrix4, Point3, Vector2, Vector3, Vector4};
[INFO] [stdout]   |                           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `HashMap` and `HashSet`
[INFO] [stdout]  --> src/client/unit_editor.rs:8:24
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::collections::{HashMap, HashSet};
[INFO] [stdout]   |                        ^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Path`
[INFO] [stdout]  --> src/client/unit_editor.rs:9:17
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BufReader`
[INFO] [stdout]    --> src/client/unit_editor.rs:228:23
[INFO] [stdout]     |
[INFO] [stdout] 228 |         use std::io::{BufReader, BufWriter};
[INFO] [stdout]     |                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BufWriter`
[INFO] [stdout]    --> src/client/unit_editor.rs:244:34
[INFO] [stdout]     |
[INFO] [stdout] 244 |         use std::io::{BufReader, BufWriter};
[INFO] [stdout]     |                                  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::BufReader`
[INFO] [stdout]    --> src/client/heightmap_editor.rs:328:13
[INFO] [stdout]     |
[INFO] [stdout] 328 |         use std::io::BufReader;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around pattern
[INFO] [stdout]   --> src/client/misc.rs:19:13
[INFO] [stdout]    |
[INFO] [stdout] 19 |         for (model_gpu_state) in self.unit_part_gpu.states.iter_mut() {
[INFO] [stdout]    |             ^               ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 19 -         for (model_gpu_state) in self.unit_part_gpu.states.iter_mut() {
[INFO] [stdout] 19 +         for model_gpu_state in self.unit_part_gpu.states.iter_mut() {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]    --> src/client/misc.rs:159:25
[INFO] [stdout]     |
[INFO] [stdout] 159 |                         (t * 2.0),
[INFO] [stdout]     |                         ^       ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 159 -                         (t * 2.0),
[INFO] [stdout] 159 +                         t * 2.0,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::botdef`
[INFO] [stdout]  --> src/client/play.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::botdef;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `imgui::*`
[INFO] [stdout]  --> src/client/play.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use imgui::*;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Isometry3`, `Vector2`, and `Vector4`
[INFO] [stdout]  --> src/client/play.rs:9:10
[INFO] [stdout]   |
[INFO] [stdout] 9 | use na::{Isometry3, Matrix4, Point3, Vector2, Vector3, Vector4};
[INFO] [stdout]   |          ^^^^^^^^^                   ^^^^^^^           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Duration` and `Instant`
[INFO] [stdout]   --> src/client/play.rs:10:17
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::time::{Duration, Instant};
[INFO] [stdout]    |                 ^^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::frame::Player`
[INFO] [stdout]  --> src/client/render.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::frame::Player;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `IsometryMatrix3`, `Matrix4`, `Vector2`, and `Vector4`
[INFO] [stdout]  --> src/client/render.rs:8:10
[INFO] [stdout]   |
[INFO] [stdout] 8 | use na::{IsometryMatrix3, Matrix4, Point3, Vector2, Vector3, Vector4};
[INFO] [stdout]   |          ^^^^^^^^^^^^^^^  ^^^^^^^          ^^^^^^^           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Duration`
[INFO] [stdout]  --> src/client/render.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::time::Duration;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `unit_part_gpu::UnitPartGpu`
[INFO] [stdout]   --> src/client/render.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use unit_part_gpu::UnitPartGpu;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashMap`
[INFO] [stdout]   --> src/client/mod.rs:34:24
[INFO] [stdout]    |
[INFO] [stdout] 34 | use std::collections::{HashMap, HashSet};
[INFO] [stdout]    |                        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PathBuf`
[INFO] [stdout]   --> src/client/mod.rs:35:23
[INFO] [stdout]    |
[INFO] [stdout] 35 | use std::path::{Path, PathBuf};
[INFO] [stdout]    |                       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Instant`
[INFO] [stdout]   --> src/client/mod.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 36 | use std::time::Instant;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BufferMapAsyncResult`, `Extent3d`, and `SwapChain`
[INFO] [stdout]   --> src/client/mod.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 38 | use wgpu::{BufferMapAsyncResult, Extent3d, SwapChain, TextureFormat};
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/client/mod.rs:154:10
[INFO] [stdout]     |
[INFO] [stdout] 154 |     ) -> (Self) {
[INFO] [stdout]     |          ^    ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 154 -     ) -> (Self) {
[INFO] [stdout] 154 +     ) -> Self {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Result`
[INFO] [stdout]    --> src/client/mod.rs:437:50
[INFO] [stdout]     |
[INFO] [stdout] 437 |             use notify::{watcher, RecursiveMode, Result};
[INFO] [stdout]     |                                                  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]    --> src/client/mod.rs:608:9
[INFO] [stdout]     |
[INFO] [stdout] 608 |         (this)
[INFO] [stdout]     |         ^    ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 608 -         (this)
[INFO] [stdout] 608 +         this
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around pattern
[INFO] [stdout]    --> src/client/mod.rs:927:25
[INFO] [stdout]     |
[INFO] [stdout] 927 |                     for (model_gpu_state) in self.unit_part_gpu.states.iter_mut() {
[INFO] [stdout]     |                         ^               ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 927 -                     for (model_gpu_state) in self.unit_part_gpu.states.iter_mut() {
[INFO] [stdout] 927 +                     for model_gpu_state in self.unit_part_gpu.states.iter_mut() {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Point3`
[INFO] [stdout]   --> src/frame.rs:10:10
[INFO] [stdout]    |
[INFO] [stdout] 10 | use na::{Point3, Vector3};
[INFO] [stdout]    |          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::unit`
[INFO] [stdout]   --> src/frame.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use crate::unit;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> src/frame.rs:19:34
[INFO] [stdout]    |
[INFO] [stdout] 19 | #[derive(Clone, TypeName, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]    |                                  ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `default`, `glsl-to-spirv`, `shaderc`, `use_glsl_to_spirv`, and `use_shaderc`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Serialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> src/frame.rs:19:45
[INFO] [stdout]    |
[INFO] [stdout] 19 | #[derive(Clone, TypeName, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]    |                                             ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `default`, `glsl-to-spirv`, `shaderc`, `use_glsl_to_spirv`, and `use_shaderc`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> src/frame.rs:41:24
[INFO] [stdout]    |
[INFO] [stdout] 41 | #[derive(Clone, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]    |                        ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `default`, `glsl-to-spirv`, `shaderc`, `use_glsl_to_spirv`, and `use_shaderc`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Serialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> src/frame.rs:41:35
[INFO] [stdout]    |
[INFO] [stdout] 41 | #[derive(Clone, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]    |                                   ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `default`, `glsl-to-spirv`, `shaderc`, `use_glsl_to_spirv`, and `use_shaderc`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> src/frame.rs:62:24
[INFO] [stdout]    |
[INFO] [stdout] 62 | #[derive(Clone, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]    |                        ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `default`, `glsl-to-spirv`, `shaderc`, `use_glsl_to_spirv`, and `use_shaderc`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Serialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> src/frame.rs:62:35
[INFO] [stdout]    |
[INFO] [stdout] 62 | #[derive(Clone, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]    |                                   ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `default`, `glsl-to-spirv`, `shaderc`, `use_glsl_to_spirv`, and `use_shaderc`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> src/frame.rs:95:24
[INFO] [stdout]    |
[INFO] [stdout] 95 | #[derive(Clone, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]    |                        ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `default`, `glsl-to-spirv`, `shaderc`, `use_glsl_to_spirv`, and `use_shaderc`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Serialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> src/frame.rs:95:35
[INFO] [stdout]    |
[INFO] [stdout] 95 | #[derive(Clone, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]    |                                   ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `default`, `glsl-to-spirv`, `shaderc`, `use_glsl_to_spirv`, and `use_shaderc`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]    --> src/frame.rs:101:24
[INFO] [stdout]     |
[INFO] [stdout] 101 | #[derive(Clone, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]     |                        ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected values for `feature` are: `default`, `glsl-to-spirv`, `shaderc`, `use_glsl_to_spirv`, and `use_shaderc`
[INFO] [stdout]     = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]     = help: try referring to `Serialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]     = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]    --> src/frame.rs:101:35
[INFO] [stdout]     |
[INFO] [stdout] 101 | #[derive(Clone, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]     |                                   ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected values for `feature` are: `default`, `glsl-to-spirv`, `shaderc`, `use_glsl_to_spirv`, and `use_shaderc`
[INFO] [stdout]     = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]     = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]     = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]    --> src/frame.rs:106:24
[INFO] [stdout]     |
[INFO] [stdout] 106 | #[derive(Clone, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]     |                        ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected values for `feature` are: `default`, `glsl-to-spirv`, `shaderc`, `use_glsl_to_spirv`, and `use_shaderc`
[INFO] [stdout]     = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]     = help: try referring to `Serialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]     = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]    --> src/frame.rs:106:35
[INFO] [stdout]     |
[INFO] [stdout] 106 | #[derive(Clone, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]     |                                   ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected values for `feature` are: `default`, `glsl-to-spirv`, `shaderc`, `use_glsl_to_spirv`, and `use_shaderc`
[INFO] [stdout]     = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]     = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]     = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Matrix4`
[INFO] [stdout]  --> src/frame_server/mod.rs:9:10
[INFO] [stdout]   |
[INFO] [stdout] 9 | use na::{Matrix4, Point3, Vector2, Vector3};
[INFO] [stdout]   |          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused label
[INFO] [stdout]    --> src/frame_server/mod.rs:393:25
[INFO] [stdout]     |
[INFO] [stdout] 393 |                         'bot_test: for kbot_id in kbots_in_proximity.iter() {
[INFO] [stdout]     |                         ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_labels)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> src/frame_server/mod.rs:452:10
[INFO] [stdout]     |
[INFO] [stdout] 452 |         };
[INFO] [stdout]     |          ^ help: remove this semicolon
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(redundant_semicolons)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::slice`
[INFO] [stdout]  --> src/glsl.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::slice;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]   --> src/gpu_obj/arrow_gpu.rs:45:95
[INFO] [stdout]    |
[INFO] [stdout] 45 |         let pipeline = Self::create_pipeline(device, main_bind_group_layout, format).unwrap();;
[INFO] [stdout]    |                                                                                               ^ help: remove this semicolon
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/gpu_obj/arrow_gpu.rs:208:23
[INFO] [stdout]     |
[INFO] [stdout] 208 |             Err(x) => log::error!("{}", x),
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: `#[warn(semicolon_in_expressions_from_non_local_macros)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stdout]     = note: this warning originates in the macro `log::error` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::model`
[INFO] [stdout]  --> src/gpu_obj/blit_texture.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::model;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/gpu_obj/blit_texture.rs:254:23
[INFO] [stdout]     |
[INFO] [stdout] 254 |             Err(x) => log::error!("{}", x),
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `log::error` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::model`
[INFO] [stdout]  --> src/gpu_obj/explosion.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::model;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BigEndian` and `ReadBytesExt`
[INFO] [stdout]    --> src/gpu_obj/explosion.rs:312:25
[INFO] [stdout]     |
[INFO] [stdout] 312 |         use byteorder::{BigEndian, ReadBytesExt};
[INFO] [stdout]     |                         ^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/gpu_obj/explosion.rs:372:23
[INFO] [stdout]     |
[INFO] [stdout] 372 |             Err(x) => log::error!("{}", x),
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `log::error` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::slice`
[INFO] [stdout]   --> src/gpu_obj/glsl_compiler.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 23 | use std::slice;
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::model`
[INFO] [stdout]  --> src/gpu_obj/health_bar.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::model;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/gpu_obj/health_bar.rs:150:23
[INFO] [stdout]     |
[INFO] [stdout] 150 |             Err(x) => log::error!("{}", x),
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `log::error` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/gpu_obj/heightmap_gpu.rs:904:23
[INFO] [stdout]     |
[INFO] [stdout] 904 |             Err(x) => log::error!("{}", x),
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `log::error` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::model`
[INFO] [stdout]  --> src/gpu_obj/line.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::model;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]   --> src/gpu_obj/line.rs:29:95
[INFO] [stdout]    |
[INFO] [stdout] 29 |         let pipeline = Self::create_pipeline(device, main_bind_group_layout, format).unwrap();;
[INFO] [stdout]    |                                                                                               ^ help: remove this semicolon
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/gpu_obj/line.rs:145:23
[INFO] [stdout]     |
[INFO] [stdout] 145 |             Err(x) => log::error!("{}", x),
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `log::error` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]   --> src/gpu_obj/model_gpu.rs:46:95
[INFO] [stdout]    |
[INFO] [stdout] 46 |         let pipeline = Self::create_pipeline(device, main_bind_group_layout, format).unwrap();;
[INFO] [stdout]    |                                                                                               ^ help: remove this semicolon
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/gpu_obj/model_gpu.rs:261:23
[INFO] [stdout]     |
[INFO] [stdout] 261 |             Err(x) => log::error!("{}", x),
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `log::error` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/gpu_obj/post_fx.rs:168:23
[INFO] [stdout]     |
[INFO] [stdout] 168 |             Err(x) => log::error!("{}", x),
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `log::error` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/gpu_obj/post_fxaa.rs:174:23
[INFO] [stdout]     |
[INFO] [stdout] 174 |             Err(x) => log::error!("{}", x),
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `log::error` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/gpu_obj/texture_view_bicopy.rs:164:23
[INFO] [stdout]     |
[INFO] [stdout] 164 |             Err(x) => log::error!("{}", x),
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `log::error` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BindGroup` and `RenderPass`
[INFO] [stdout]  --> src/gpu_obj/trait_gpu.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | use wgpu::{BindGroup, BindGroupLayout, RenderPass, TextureFormat};
[INFO] [stdout]   |            ^^^^^^^^^                   ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::model`
[INFO] [stdout]  --> src/gpu_obj/unit_icon.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::model;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]   --> src/gpu_obj/unit_icon.rs:29:95
[INFO] [stdout]    |
[INFO] [stdout] 29 |         let pipeline = Self::create_pipeline(device, main_bind_group_layout, format).unwrap();;
[INFO] [stdout]    |                                                                                               ^ help: remove this semicolon
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/gpu_obj/unit_icon.rs:140:23
[INFO] [stdout]     |
[INFO] [stdout] 140 |             Err(x) => log::error!("{}", x),
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `log::error` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]   --> src/gpu_obj/water.rs:62:27
[INFO] [stdout]    |
[INFO] [stdout] 62 |                 .unwrap();;
[INFO] [stdout]    |                           ^ help: remove this semicolon
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/gpu_obj/water.rs:222:23
[INFO] [stdout]     |
[INFO] [stdout] 222 |             Err(x) => log::error!("{}", x),
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `log::error` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]  --> src/heightmap_phy.rs:4:24
[INFO] [stdout]   |
[INFO] [stdout] 4 | #[derive(Clone, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]   |                        ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: expected values for `feature` are: `default`, `glsl-to-spirv`, `shaderc`, `use_glsl_to_spirv`, and `use_shaderc`
[INFO] [stdout]   = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]   = help: try referring to `Serialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]   = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]   = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]  --> src/heightmap_phy.rs:4:35
[INFO] [stdout]   |
[INFO] [stdout] 4 | #[derive(Clone, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]   |                                   ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: expected values for `feature` are: `default`, `glsl-to-spirv`, `shaderc`, `use_glsl_to_spirv`, and `use_shaderc`
[INFO] [stdout]   = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]   = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]   = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]   = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]  --> src/heightmap_phy.rs:8:24
[INFO] [stdout]   |
[INFO] [stdout] 8 | #[derive(Clone, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]   |                        ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: expected values for `feature` are: `default`, `glsl-to-spirv`, `shaderc`, `use_glsl_to_spirv`, and `use_shaderc`
[INFO] [stdout]   = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]   = help: try referring to `Serialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]   = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]   = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]  --> src/heightmap_phy.rs:8:35
[INFO] [stdout]   |
[INFO] [stdout] 8 | #[derive(Clone, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]   |                                   ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: expected values for `feature` are: `default`, `glsl-to-spirv`, `shaderc`, `use_glsl_to_spirv`, and `use_shaderc`
[INFO] [stdout]   = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]   = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]   = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]   = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> src/heightmap_phy.rs:15:24
[INFO] [stdout]    |
[INFO] [stdout] 15 | #[derive(Clone, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]    |                        ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `default`, `glsl-to-spirv`, `shaderc`, `use_glsl_to_spirv`, and `use_shaderc`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Serialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> src/heightmap_phy.rs:15:35
[INFO] [stdout]    |
[INFO] [stdout] 15 | #[derive(Clone, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]    |                                   ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `default`, `glsl-to-spirv`, `shaderc`, `use_glsl_to_spirv`, and `use_shaderc`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::unit`
[INFO] [stdout]  --> src/mobile.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::unit;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `PathBuf` and `Path`
[INFO] [stdout]  --> src/mobile.rs:7:17
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                 ^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> src/mobile.rs:11:34
[INFO] [stdout]    |
[INFO] [stdout] 11 | #[derive(Clone, TypeName, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]    |                                  ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `default`, `glsl-to-spirv`, `shaderc`, `use_glsl_to_spirv`, and `use_shaderc`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Serialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> src/mobile.rs:11:45
[INFO] [stdout]    |
[INFO] [stdout] 11 | #[derive(Clone, TypeName, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]    |                                             ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `default`, `glsl-to-spirv`, `shaderc`, `use_glsl_to_spirv`, and `use_shaderc`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> src/mobile.rs:18:30
[INFO] [stdout]    |
[INFO] [stdout] 18 | #[derive(Clone, Copy, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]    |                              ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `default`, `glsl-to-spirv`, `shaderc`, `use_glsl_to_spirv`, and `use_shaderc`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Serialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> src/mobile.rs:18:41
[INFO] [stdout]    |
[INFO] [stdout] 18 | #[derive(Clone, Copy, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]    |                                         ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `default`, `glsl-to-spirv`, `shaderc`, `use_glsl_to_spirv`, and `use_shaderc`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/mobile.rs:37:20
[INFO] [stdout]    |
[INFO] [stdout] 37 |         let diff = (other - self);
[INFO] [stdout]    |                    ^            ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 37 -         let diff = (other - self);
[INFO] [stdout] 37 +         let diff = other - self;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]    --> src/mobile.rs:107:34
[INFO] [stdout]     |
[INFO] [stdout] 107 | #[derive(Clone, TypeName, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]     |                                  ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected values for `feature` are: `default`, `glsl-to-spirv`, `shaderc`, `use_glsl_to_spirv`, and `use_shaderc`
[INFO] [stdout]     = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]     = help: try referring to `Serialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]     = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]    --> src/mobile.rs:107:45
[INFO] [stdout]     |
[INFO] [stdout] 107 | #[derive(Clone, TypeName, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]     |                                             ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected values for `feature` are: `default`, `glsl-to-spirv`, `shaderc`, `use_glsl_to_spirv`, and `use_shaderc`
[INFO] [stdout]     = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]     = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]     = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]    --> src/mobile.rs:114:34
[INFO] [stdout]     |
[INFO] [stdout] 114 | #[derive(Clone, TypeName, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]     |                                  ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected values for `feature` are: `default`, `glsl-to-spirv`, `shaderc`, `use_glsl_to_spirv`, and `use_shaderc`
[INFO] [stdout]     = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]     = help: try referring to `Serialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]     = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]    --> src/mobile.rs:114:45
[INFO] [stdout]     |
[INFO] [stdout] 114 | #[derive(Clone, TypeName, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]     |                                             ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected values for `feature` are: `default`, `glsl-to-spirv`, `shaderc`, `use_glsl_to_spirv`, and `use_shaderc`
[INFO] [stdout]     = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]     = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]     = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]    --> src/mobile.rs:193:34
[INFO] [stdout]     |
[INFO] [stdout] 193 | #[derive(Clone, TypeName, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]     |                                  ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected values for `feature` are: `default`, `glsl-to-spirv`, `shaderc`, `use_glsl_to_spirv`, and `use_shaderc`
[INFO] [stdout]     = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]     = help: try referring to `Serialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]     = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]    --> src/mobile.rs:193:45
[INFO] [stdout]     |
[INFO] [stdout] 193 | #[derive(Clone, TypeName, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]     |                                             ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected values for `feature` are: `default`, `glsl-to-spirv`, `shaderc`, `use_glsl_to_spirv`, and `use_shaderc`
[INFO] [stdout]     = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]     = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]     = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]    --> src/mobile.rs:242:24
[INFO] [stdout]     |
[INFO] [stdout] 242 | #[derive(Clone, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]     |                        ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected values for `feature` are: `default`, `glsl-to-spirv`, `shaderc`, `use_glsl_to_spirv`, and `use_shaderc`
[INFO] [stdout]     = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]     = help: try referring to `Serialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]     = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]    --> src/mobile.rs:242:35
[INFO] [stdout]     |
[INFO] [stdout] 242 | #[derive(Clone, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]     |                                   ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected values for `feature` are: `default`, `glsl-to-spirv`, `shaderc`, `use_glsl_to_spirv`, and `use_shaderc`
[INFO] [stdout]     = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]     = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]     = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::unit`
[INFO] [stdout]  --> src/moddef.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::unit;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]  --> src/moddef.rs:9:34
[INFO] [stdout]   |
[INFO] [stdout] 9 | #[derive(Clone, TypeName, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]   |                                  ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: expected values for `feature` are: `default`, `glsl-to-spirv`, `shaderc`, `use_glsl_to_spirv`, and `use_shaderc`
[INFO] [stdout]   = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]   = help: try referring to `Serialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]   = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]   = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]  --> src/moddef.rs:9:45
[INFO] [stdout]   |
[INFO] [stdout] 9 | #[derive(Clone, TypeName, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]   |                                             ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: expected values for `feature` are: `default`, `glsl-to-spirv`, `shaderc`, `use_glsl_to_spirv`, and `use_shaderc`
[INFO] [stdout]   = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]   = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]   = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]   = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::prelude::*`
[INFO] [stdout]  --> src/net_client.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::io::prelude::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::BufReader`
[INFO] [stdout]  --> src/net_client.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::io::BufReader;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::net::TcpListener`
[INFO] [stdout]  --> src/net_client.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::net::TcpListener;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::client::*`
[INFO] [stdout]  --> src/unit.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use super::client::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::model::*`
[INFO] [stdout]  --> src/unit.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::model::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::utils::FileTree`
[INFO] [stdout]  --> src/unit.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::utils::FileTree;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `gpu_obj::model_gpu::ModelGpu`
[INFO] [stdout]  --> src/unit.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use gpu_obj::model_gpu::ModelGpu;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Vector2` and `Vector3`
[INFO] [stdout]  --> src/unit.rs:6:27
[INFO] [stdout]   |
[INFO] [stdout] 6 | use na::{Matrix4, Point3, Vector2, Vector3};
[INFO] [stdout]   |                           ^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `HashMap` and `HashSet`
[INFO] [stdout]  --> src/unit.rs:8:24
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::collections::{HashMap, HashSet};
[INFO] [stdout]   |                        ^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Path`
[INFO] [stdout]  --> src/unit.rs:9:17
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> src/unit.rs:11:35
[INFO] [stdout]    |
[INFO] [stdout] 11 | #[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
[INFO] [stdout]    |                                   ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `default`, `glsl-to-spirv`, `shaderc`, `use_glsl_to_spirv`, and `use_shaderc`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Serialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> src/unit.rs:11:46
[INFO] [stdout]    |
[INFO] [stdout] 11 | #[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
[INFO] [stdout]    |                                              ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `default`, `glsl-to-spirv`, `shaderc`, `use_glsl_to_spirv`, and `use_shaderc`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> src/unit.rs:18:35
[INFO] [stdout]    |
[INFO] [stdout] 18 | #[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
[INFO] [stdout]    |                                   ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `default`, `glsl-to-spirv`, `shaderc`, `use_glsl_to_spirv`, and `use_shaderc`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Serialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> src/unit.rs:18:46
[INFO] [stdout]    |
[INFO] [stdout] 18 | #[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
[INFO] [stdout]    |                                              ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `default`, `glsl-to-spirv`, `shaderc`, `use_glsl_to_spirv`, and `use_shaderc`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> src/unit.rs:23:35
[INFO] [stdout]    |
[INFO] [stdout] 23 | #[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
[INFO] [stdout]    |                                   ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `default`, `glsl-to-spirv`, `shaderc`, `use_glsl_to_spirv`, and `use_shaderc`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Serialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> src/unit.rs:23:46
[INFO] [stdout]    |
[INFO] [stdout] 23 | #[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
[INFO] [stdout]    |                                              ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `default`, `glsl-to-spirv`, `shaderc`, `use_glsl_to_spirv`, and `use_shaderc`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> src/unit.rs:45:55
[INFO] [stdout]    |
[INFO] [stdout] 45 | #[derive(Debug, Clone, typename::TypeName, PartialEq, Serialize, Deserialize)]
[INFO] [stdout]    |                                                       ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `default`, `glsl-to-spirv`, `shaderc`, `use_glsl_to_spirv`, and `use_shaderc`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Serialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> src/unit.rs:45:66
[INFO] [stdout]    |
[INFO] [stdout] 45 | #[derive(Debug, Clone, typename::TypeName, PartialEq, Serialize, Deserialize)]
[INFO] [stdout]    |                                                                  ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `default`, `glsl-to-spirv`, `shaderc`, `use_glsl_to_spirv`, and `use_shaderc`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `IsometryMatrix3`, `Point3`, `Vector2`, and `Vector4`
[INFO] [stdout]  --> src/utils.rs:2:10
[INFO] [stdout]   |
[INFO] [stdout] 2 | use na::{IsometryMatrix3, Matrix4, Point3, Vector2, Vector3, Vector4};
[INFO] [stdout]   |          ^^^^^^^^^^^^^^^           ^^^^^^  ^^^^^^^           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashMap`
[INFO] [stdout]  --> src/utils.rs:6:24
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::collections::{HashMap, HashSet};
[INFO] [stdout]   |                        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> src/utils.rs:42:10
[INFO] [stdout]    |
[INFO] [stdout] 42 | #[derive(Serialize, Deserialize)]
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `default`, `glsl-to-spirv`, `shaderc`, `use_glsl_to_spirv`, and `use_shaderc`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Serialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> src/utils.rs:42:21
[INFO] [stdout]    |
[INFO] [stdout] 42 | #[derive(Serialize, Deserialize)]
[INFO] [stdout]    |                     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `default`, `glsl-to-spirv`, `shaderc`, `use_glsl_to_spirv`, and `use_shaderc`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DirEntry`
[INFO] [stdout]    --> src/utils.rs:134:21
[INFO] [stdout]     |
[INFO] [stdout] 134 | use std::fs::{self, DirEntry};
[INFO] [stdout]     |                     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io`
[INFO] [stdout]    --> src/utils.rs:135:5
[INFO] [stdout]     |
[INFO] [stdout] 135 | use std::io;
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Path`
[INFO] [stdout]    --> src/utils.rs:136:17
[INFO] [stdout]     |
[INFO] [stdout] 136 | use std::path::{Path, PathBuf};
[INFO] [stdout]     |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BigEndian` and `ReadBytesExt`
[INFO] [stdout]    --> src/utils.rs:177:25
[INFO] [stdout]     |
[INFO] [stdout] 177 |         use byteorder::{BigEndian, ReadBytesExt};
[INFO] [stdout]     |                         ^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::f32::MIN_POSITIVE`: replaced by the `MIN_POSITIVE` associated constant on `f32`
[INFO] [stdout]    --> src/frame_server/mod.rs:116:49
[INFO] [stdout]     |
[INFO] [stdout] 116 |                     m.con_completed = std::f32::MIN_POSITIVE;
[INFO] [stdout]     |                                                 ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::prelude`
[INFO] [stdout]    --> src/client/unit_editor.rs:227:13
[INFO] [stdout]     |
[INFO] [stdout] 227 |         use std::io::prelude::*;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::prelude`
[INFO] [stdout]    --> src/client/unit_editor.rs:243:13
[INFO] [stdout]     |
[INFO] [stdout] 243 |         use std::io::prelude::*;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::prelude`
[INFO] [stdout]    --> src/client/heightmap_editor.rs:327:13
[INFO] [stdout]     |
[INFO] [stdout] 327 |         use std::io::prelude::*;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `id`
[INFO] [stdout]    --> src/client/unit_editor.rs:104:21
[INFO] [stdout]     |
[INFO] [stdout] 104 |                     id,
[INFO] [stdout]     |                     ^^ help: try ignoring the field: `id: _`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `radius`
[INFO] [stdout]    --> src/client/unit_editor.rs:106:21
[INFO] [stdout]     |
[INFO] [stdout] 106 |                     radius,
[INFO] [stdout]     |                     ^^^^^^ help: try ignoring the field: `radius: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `metal_cost`
[INFO] [stdout]    --> src/client/unit_editor.rs:115:21
[INFO] [stdout]     |
[INFO] [stdout] 115 |                     metal_cost,
[INFO] [stdout]     |                     ^^^^^^^^^^ help: try ignoring the field: `metal_cost: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `part_tree`
[INFO] [stdout]    --> src/client/unit_editor.rs:116:21
[INFO] [stdout]     |
[INFO] [stdout] 116 |                     part_tree,
[INFO] [stdout]     |                     ^^^^^^^^^ help: try ignoring the field: `part_tree: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/client/unit_editor.rs:236:13
[INFO] [stdout]     |
[INFO] [stdout] 236 |         let mut buf_w = BufWriter::new(file);
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/client/unit_editor.rs:251:13
[INFO] [stdout]     |
[INFO] [stdout] 251 |         let mut buf_r = BufReader::new(file);
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `deleter`
[INFO] [stdout]    --> src/client/unit_editor.rs:290:25
[INFO] [stdout]     |
[INFO] [stdout] 290 |                     let deleter = unit_editor.botdef.part_tree.remove_node(part_tree.id);
[INFO] [stdout]     |                         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_deleter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/client/unit_editor.rs:492:46
[INFO] [stdout]     |
[INFO] [stdout] 492 |                         ModelGpuState::Error(e) => {
[INFO] [stdout]     |                                              ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/client/unit_editor.rs:583:51
[INFO] [stdout]     |
[INFO] [stdout] 583 |                         Some(ModelGpuState::Error(e)) => {
[INFO] [stdout]     |                                                   ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/client/heightmap_editor.rs:336:13
[INFO] [stdout]     |
[INFO] [stdout] 336 |         let mut buf_w = BufWriter::new(file);
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `encoder`
[INFO] [stdout]    --> src/client/misc.rs:127:63
[INFO] [stdout]     |
[INFO] [stdout] 127 |     pub fn upload_to_gpu(&mut self, view_proj: &Matrix4<f32>, encoder: &mut wgpu::CommandEncoder) {
[INFO] [stdout]     |                                                               ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_encoder`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/client/play.rs:70:21
[INFO] [stdout]    |
[INFO] [stdout] 70 |                 let mut moddef = crate::moddef::ModDef {
[INFO] [stdout]    |                     ----^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `delta_sim_sec`
[INFO] [stdout]    --> src/client/play.rs:114:9
[INFO] [stdout]     |
[INFO] [stdout] 114 |         delta_sim_sec: f32,
[INFO] [stdout]     |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_delta_sim_sec`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `encoder`
[INFO] [stdout]    --> src/client/play.rs:115:9
[INFO] [stdout]     |
[INFO] [stdout] 115 |         encoder: &mut wgpu::CommandEncoder,
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_encoder`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> src/client/render.rs:87:17
[INFO] [stdout]    |
[INFO] [stdout] 87 |                 _ => {
[INFO] [stdout]    |                 ^ no value can reach this
[INFO] [stdout]    |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]   --> src/client/render.rs:87:17
[INFO] [stdout]    |
[INFO] [stdout] 44 | /                 RenderEvent::ChangeMode {
[INFO] [stdout] 45 | |                     from,
[INFO] [stdout] 46 | |                     to: MainMode::MapEditor,
[INFO] [stdout] 47 | |                 } => {
[INFO] [stdout]    | |_________________- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 53 | /                 RenderEvent::ChangeMode {
[INFO] [stdout] 54 | |                     from,
[INFO] [stdout] 55 | |                     to: MainMode::Play,
[INFO] [stdout] 56 | |                 } => {
[INFO] [stdout]    | |_________________- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 60 | /                 RenderEvent::ChangeMode {
[INFO] [stdout] 61 | |                     from,
[INFO] [stdout] 62 | |                     to: MainMode::Home,
[INFO] [stdout] 63 | |                 } => {
[INFO] [stdout]    | |_________________- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 77 | /                 RenderEvent::ChangeMode {
[INFO] [stdout] 78 | |                     from,
[INFO] [stdout] 79 | |                     to: MainMode::MultiplayerLobby,
[INFO] [stdout] 80 | |                 } => {}
[INFO] [stdout]    | |_________________- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 87 |                   _ => {
[INFO] [stdout]    |                   ^ ...and 1 other patterns collectively make this unreachable
[INFO] [stdout]    = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::prelude`
[INFO] [stdout]    --> src/client/unit_editor.rs:227:13
[INFO] [stdout]     |
[INFO] [stdout] 227 |         use std::io::prelude::*;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::prelude`
[INFO] [stdout]    --> src/client/unit_editor.rs:243:13
[INFO] [stdout]     |
[INFO] [stdout] 243 |         use std::io::prelude::*;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::prelude`
[INFO] [stdout]    --> src/client/heightmap_editor.rs:327:13
[INFO] [stdout]     |
[INFO] [stdout] 327 |         use std::io::prelude::*;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/client/render.rs:142:21
[INFO] [stdout]     |
[INFO] [stdout] 142 |                 let mut generic_gpu = ModelGpu::new(
[INFO] [stdout]     |                     ----^^^^^^^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/client/render.rs:149:21
[INFO] [stdout]     |
[INFO] [stdout] 149 |                 let mut generic_gpu_state_new = unit_part_gpu::ModelGpuState::Ready(generic_gpu);
[INFO] [stdout]     |                     ----^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `d`
[INFO] [stdout]    --> src/client/render.rs:298:42
[INFO] [stdout]     |
[INFO] [stdout] 298 | ...                   .filter(|(n, d)| *n != "total")
[INFO] [stdout]     |                                    ^ help: if this is intentional, prefix it with an underscore: `_d`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `d`
[INFO] [stdout]    --> src/client/render.rs:274:42
[INFO] [stdout]     |
[INFO] [stdout] 274 | ...                   .filter(|(n, d)| *n != "frame_time")
[INFO] [stdout]     |                                    ^ help: if this is intentional, prefix it with an underscore: `_d`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `from`
[INFO] [stdout]   --> src/client/render.rs:45:21
[INFO] [stdout]    |
[INFO] [stdout] 45 |                     from,
[INFO] [stdout]    |                     ^^^^ help: try ignoring the field: `from: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `from`
[INFO] [stdout]   --> src/client/render.rs:54:21
[INFO] [stdout]    |
[INFO] [stdout] 54 |                     from,
[INFO] [stdout]    |                     ^^^^ help: try ignoring the field: `from: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `from`
[INFO] [stdout]   --> src/client/render.rs:61:21
[INFO] [stdout]    |
[INFO] [stdout] 61 |                     from,
[INFO] [stdout]    |                     ^^^^ help: try ignoring the field: `from: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `from`
[INFO] [stdout]   --> src/client/render.rs:78:21
[INFO] [stdout]    |
[INFO] [stdout] 78 |                     from,
[INFO] [stdout]    |                     ^^^^ help: try ignoring the field: `from: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `from`
[INFO] [stdout]   --> src/client/render.rs:82:21
[INFO] [stdout]    |
[INFO] [stdout] 82 |                     from,
[INFO] [stdout]    |                     ^^^^ help: try ignoring the field: `from: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `can_be_built`
[INFO] [stdout]    --> src/client/render.rs:405:29
[INFO] [stdout]     |
[INFO] [stdout] 405 |                         let can_be_built: Vec<_> = self
[INFO] [stdout]     |                             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_can_be_built`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `id`
[INFO] [stdout]    --> src/client/unit_editor.rs:104:21
[INFO] [stdout]     |
[INFO] [stdout] 104 |                     id,
[INFO] [stdout]     |                     ^^ help: try ignoring the field: `id: _`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `radius`
[INFO] [stdout]    --> src/client/unit_editor.rs:106:21
[INFO] [stdout]     |
[INFO] [stdout] 106 |                     radius,
[INFO] [stdout]     |                     ^^^^^^ help: try ignoring the field: `radius: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `metal_cost`
[INFO] [stdout]    --> src/client/unit_editor.rs:115:21
[INFO] [stdout]     |
[INFO] [stdout] 115 |                     metal_cost,
[INFO] [stdout]     |                     ^^^^^^^^^^ help: try ignoring the field: `metal_cost: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `part_tree`
[INFO] [stdout]    --> src/client/unit_editor.rs:116:21
[INFO] [stdout]     |
[INFO] [stdout] 116 |                     part_tree,
[INFO] [stdout]     |                     ^^^^^^^^^ help: try ignoring the field: `part_tree: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/client/unit_editor.rs:236:13
[INFO] [stdout]     |
[INFO] [stdout] 236 |         let mut buf_w = BufWriter::new(file);
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/client/unit_editor.rs:251:13
[INFO] [stdout]     |
[INFO] [stdout] 251 |         let mut buf_r = BufReader::new(file);
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `deleter`
[INFO] [stdout]    --> src/client/unit_editor.rs:290:25
[INFO] [stdout]     |
[INFO] [stdout] 290 |                     let deleter = unit_editor.botdef.part_tree.remove_node(part_tree.id);
[INFO] [stdout]     |                         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_deleter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/client/unit_editor.rs:492:46
[INFO] [stdout]     |
[INFO] [stdout] 492 |                         ModelGpuState::Error(e) => {
[INFO] [stdout]     |                                              ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/client/unit_editor.rs:583:51
[INFO] [stdout]     |
[INFO] [stdout] 583 |                         Some(ModelGpuState::Error(e)) => {
[INFO] [stdout]     |                                                   ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/client/heightmap_editor.rs:336:13
[INFO] [stdout]     |
[INFO] [stdout] 336 |         let mut buf_w = BufWriter::new(file);
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `id`
[INFO] [stdout]   --> src/frame_server/mod.rs:98:21
[INFO] [stdout]    |
[INFO] [stdout] 98 |                     id,
[INFO] [stdout]    |                     ^^ help: try ignoring the field: `id: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `encoder`
[INFO] [stdout]    --> src/client/misc.rs:127:63
[INFO] [stdout]     |
[INFO] [stdout] 127 |     pub fn upload_to_gpu(&mut self, view_proj: &Matrix4<f32>, encoder: &mut wgpu::CommandEncoder) {
[INFO] [stdout]     |                                                               ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_encoder`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `id`
[INFO] [stdout]    --> src/frame_server/mod.rs:131:21
[INFO] [stdout]     |
[INFO] [stdout] 131 |                     id,
[INFO] [stdout]     |                     ^^ help: try ignoring the field: `id: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/client/play.rs:70:21
[INFO] [stdout]    |
[INFO] [stdout] 70 |                 let mut moddef = crate::moddef::ModDef {
[INFO] [stdout]    |                     ----^^^^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `delta_sim_sec`
[INFO] [stdout]    --> src/client/play.rs:114:9
[INFO] [stdout]     |
[INFO] [stdout] 114 |         delta_sim_sec: f32,
[INFO] [stdout]     |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_delta_sim_sec`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `encoder`
[INFO] [stdout]    --> src/client/play.rs:115:9
[INFO] [stdout]     |
[INFO] [stdout] 115 |         encoder: &mut wgpu::CommandEncoder,
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_encoder`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> src/client/render.rs:87:17
[INFO] [stdout]    |
[INFO] [stdout] 87 |                 _ => {
[INFO] [stdout]    |                 ^ no value can reach this
[INFO] [stdout]    |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]   --> src/client/render.rs:87:17
[INFO] [stdout]    |
[INFO] [stdout] 44 | /                 RenderEvent::ChangeMode {
[INFO] [stdout] 45 | |                     from,
[INFO] [stdout] 46 | |                     to: MainMode::MapEditor,
[INFO] [stdout] 47 | |                 } => {
[INFO] [stdout]    | |_________________- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 53 | /                 RenderEvent::ChangeMode {
[INFO] [stdout] 54 | |                     from,
[INFO] [stdout] 55 | |                     to: MainMode::Play,
[INFO] [stdout] 56 | |                 } => {
[INFO] [stdout]    | |_________________- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 60 | /                 RenderEvent::ChangeMode {
[INFO] [stdout] 61 | |                     from,
[INFO] [stdout] 62 | |                     to: MainMode::Home,
[INFO] [stdout] 63 | |                 } => {
[INFO] [stdout]    | |_________________- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 77 | /                 RenderEvent::ChangeMode {
[INFO] [stdout] 78 | |                     from,
[INFO] [stdout] 79 | |                     to: MainMode::MultiplayerLobby,
[INFO] [stdout] 80 | |                 } => {}
[INFO] [stdout]    | |_________________- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 87 |                   _ => {
[INFO] [stdout]    |                   ^ ...and 1 other patterns collectively make this unreachable
[INFO] [stdout]    = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/frame_server/mod.rs:650:9
[INFO] [stdout]     |
[INFO] [stdout] 650 |     let mut resources_surplus = FnvHashMap::<Id<Player>, ResourceSurplus>::default();
[INFO] [stdout]     |         ----^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `arrows`
[INFO] [stdout]    --> src/frame_server/mod.rs:261:5
[INFO] [stdout]     |
[INFO] [stdout] 261 |     arrows: &mut Vec<Arrow>,
[INFO] [stdout]     |     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_arrows`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `to`
[INFO] [stdout]    --> src/frame_server/mod.rs:598:9
[INFO] [stdout]     |
[INFO] [stdout] 598 |         to,
[INFO] [stdout]     |         ^^ help: try ignoring the field: `to: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `from`
[INFO] [stdout]    --> src/frame_server/mod.rs:600:9
[INFO] [stdout]     |
[INFO] [stdout] 600 |         from,
[INFO] [stdout]     |         ^^^^ help: try ignoring the field: `from: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `resources_surplus`
[INFO] [stdout]    --> src/frame_server/mod.rs:650:9
[INFO] [stdout]     |
[INFO] [stdout] 650 |     let mut resources_surplus = FnvHashMap::<Id<Player>, ResourceSurplus>::default();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_resources_surplus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `from`
[INFO] [stdout]    --> src/frame_server/mod.rs:654:9
[INFO] [stdout]     |
[INFO] [stdout] 654 |         from,
[INFO] [stdout]     |         ^^^^ help: try ignoring the field: `from: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/client/render.rs:142:21
[INFO] [stdout]     |
[INFO] [stdout] 142 |                 let mut generic_gpu = ModelGpu::new(
[INFO] [stdout]     |                     ----^^^^^^^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/client/render.rs:149:21
[INFO] [stdout]     |
[INFO] [stdout] 149 |                 let mut generic_gpu_state_new = unit_part_gpu::ModelGpuState::Ready(generic_gpu);
[INFO] [stdout]     |                     ----^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `d`
[INFO] [stdout]    --> src/client/render.rs:298:42
[INFO] [stdout]     |
[INFO] [stdout] 298 | ...                   .filter(|(n, d)| *n != "total")
[INFO] [stdout]     |                                    ^ help: if this is intentional, prefix it with an underscore: `_d`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `d`
[INFO] [stdout]    --> src/client/render.rs:274:42
[INFO] [stdout]     |
[INFO] [stdout] 274 | ...                   .filter(|(n, d)| *n != "frame_time")
[INFO] [stdout]     |                                    ^ help: if this is intentional, prefix it with an underscore: `_d`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `from`
[INFO] [stdout]   --> src/client/render.rs:45:21
[INFO] [stdout]    |
[INFO] [stdout] 45 |                     from,
[INFO] [stdout]    |                     ^^^^ help: try ignoring the field: `from: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `from`
[INFO] [stdout]   --> src/client/render.rs:54:21
[INFO] [stdout]    |
[INFO] [stdout] 54 |                     from,
[INFO] [stdout]    |                     ^^^^ help: try ignoring the field: `from: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `from`
[INFO] [stdout]   --> src/client/render.rs:61:21
[INFO] [stdout]    |
[INFO] [stdout] 61 |                     from,
[INFO] [stdout]    |                     ^^^^ help: try ignoring the field: `from: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `from`
[INFO] [stdout]   --> src/client/render.rs:78:21
[INFO] [stdout]    |
[INFO] [stdout] 78 |                     from,
[INFO] [stdout]    |                     ^^^^ help: try ignoring the field: `from: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `from`
[INFO] [stdout]   --> src/client/render.rs:82:21
[INFO] [stdout]    |
[INFO] [stdout] 82 |                     from,
[INFO] [stdout]    |                     ^^^^ help: try ignoring the field: `from: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `can_be_built`
[INFO] [stdout]    --> src/client/render.rs:405:29
[INFO] [stdout]     |
[INFO] [stdout] 405 |                         let can_be_built: Vec<_> = self
[INFO] [stdout]     |                             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_can_be_built`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start`
[INFO] [stdout]    --> src/gpu_obj/heightmap_gpu.rs:188:13
[INFO] [stdout]     |
[INFO] [stdout] 188 |         let start = std::time::Instant::now();
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_start`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `update_left` is never read
[INFO] [stdout]    --> src/gpu_obj/heightmap_gpu.rs:774:13
[INFO] [stdout]     |
[INFO] [stdout] 774 |             update_left -= update_to_do;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]   --> src/gpu_obj/heightmap_helper.rs:33:10
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub fn z(x: f32, y: f32) -> f32 {
[INFO] [stdout]    |          ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]   --> src/gpu_obj/heightmap_helper.rs:33:18
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub fn z(x: f32, y: f32) -> f32 {
[INFO] [stdout]    |                  ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device`
[INFO] [stdout]    --> src/gpu_obj/post_fx.rs:144:50
[INFO] [stdout]     |
[INFO] [stdout] 144 |     pub fn render(&self, rpass: &mut RenderPass, device: &Device, main_bind_group: &BindGroup) {
[INFO] [stdout]     |                                                  ^^^^^^ help: if this is intentional, prefix it with an underscore: `_device`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device`
[INFO] [stdout]    --> src/gpu_obj/post_fxaa.rs:151:50
[INFO] [stdout]     |
[INFO] [stdout] 151 |     pub fn render(&self, rpass: &mut RenderPass, device: &Device, main_bind_group: &BindGroup) {
[INFO] [stdout]     |                                                  ^^^^^^ help: if this is intentional, prefix it with an underscore: `_device`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device`
[INFO] [stdout]    --> src/gpu_obj/texture_view_bicopy.rs:141:50
[INFO] [stdout]     |
[INFO] [stdout] 141 |     pub fn render(&self, rpass: &mut RenderPass, device: &Device, main_bind_group: &BindGroup) {
[INFO] [stdout]     |                                                  ^^^^^^ help: if this is intentional, prefix it with an underscore: `_device`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `vertex_size`
[INFO] [stdout]    --> src/gpu_obj/water.rs:146:13
[INFO] [stdout]     |
[INFO] [stdout] 146 |         let vertex_size = std::mem::size_of::<model::Vertex>();
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_vertex_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `id`
[INFO] [stdout]   --> src/frame_server/mod.rs:98:21
[INFO] [stdout]    |
[INFO] [stdout] 98 |                     id,
[INFO] [stdout]    |                     ^^ help: try ignoring the field: `id: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `id`
[INFO] [stdout]    --> src/frame_server/mod.rs:131:21
[INFO] [stdout]     |
[INFO] [stdout] 131 |                     id,
[INFO] [stdout]     |                     ^^ help: try ignoring the field: `id: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `j`
[INFO] [stdout]   --> src/heightmap_phy.rs:35:13
[INFO] [stdout]    |
[INFO] [stdout] 35 |         for j in 0..height {
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_j`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/heightmap_phy.rs:36:17
[INFO] [stdout]    |
[INFO] [stdout] 36 |             for i in 0..width {
[INFO] [stdout]    |                 ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]   --> src/manager.rs:89:79
[INFO] [stdout]    |
[INFO] [stdout] 89 | ...                   frame::FrameEventFromPlayer::ReplaceFrame(x) => false,
[INFO] [stdout]    |                                                                 ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `max`
[INFO] [stdout]   --> src/mobile.rs:35:13
[INFO] [stdout]    |
[INFO] [stdout] 35 |         let max = other + cone_angle;
[INFO] [stdout]    |             ^^^ help: if this is intentional, prefix it with an underscore: `_max`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `min`
[INFO] [stdout]   --> src/mobile.rs:36:13
[INFO] [stdout]    |
[INFO] [stdout] 36 |         let min = other - cone_angle;
[INFO] [stdout]    |             ^^^ help: if this is intentional, prefix it with an underscore: `_min`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/frame_server/mod.rs:650:9
[INFO] [stdout]     |
[INFO] [stdout] 650 |     let mut resources_surplus = FnvHashMap::<Id<Player>, ResourceSurplus>::default();
[INFO] [stdout]     |         ----^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `arrows`
[INFO] [stdout]    --> src/frame_server/mod.rs:261:5
[INFO] [stdout]     |
[INFO] [stdout] 261 |     arrows: &mut Vec<Arrow>,
[INFO] [stdout]     |     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_arrows`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `to`
[INFO] [stdout]    --> src/frame_server/mod.rs:598:9
[INFO] [stdout]     |
[INFO] [stdout] 598 |         to,
[INFO] [stdout]     |         ^^ help: try ignoring the field: `to: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `from`
[INFO] [stdout]    --> src/frame_server/mod.rs:600:9
[INFO] [stdout]     |
[INFO] [stdout] 600 |         from,
[INFO] [stdout]     |         ^^^^ help: try ignoring the field: `from: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `resources_surplus`
[INFO] [stdout]    --> src/frame_server/mod.rs:650:9
[INFO] [stdout]     |
[INFO] [stdout] 650 |     let mut resources_surplus = FnvHashMap::<Id<Player>, ResourceSurplus>::default();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_resources_surplus`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `from`
[INFO] [stdout]    --> src/frame_server/mod.rs:654:9
[INFO] [stdout]     |
[INFO] [stdout] 654 |         from,
[INFO] [stdout]     |         ^^^^ help: try ignoring the field: `from: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start`
[INFO] [stdout]    --> src/gpu_obj/heightmap_gpu.rs:188:13
[INFO] [stdout]     |
[INFO] [stdout] 188 |         let start = std::time::Instant::now();
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_start`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `update_left` is never read
[INFO] [stdout]    --> src/gpu_obj/heightmap_gpu.rs:774:13
[INFO] [stdout]     |
[INFO] [stdout] 774 |             update_left -= update_to_do;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]   --> src/gpu_obj/heightmap_helper.rs:33:10
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub fn z(x: f32, y: f32) -> f32 {
[INFO] [stdout]    |          ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]   --> src/gpu_obj/heightmap_helper.rs:33:18
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub fn z(x: f32, y: f32) -> f32 {
[INFO] [stdout]    |                  ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device`
[INFO] [stdout]    --> src/gpu_obj/post_fx.rs:144:50
[INFO] [stdout]     |
[INFO] [stdout] 144 |     pub fn render(&self, rpass: &mut RenderPass, device: &Device, main_bind_group: &BindGroup) {
[INFO] [stdout]     |                                                  ^^^^^^ help: if this is intentional, prefix it with an underscore: `_device`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device`
[INFO] [stdout]    --> src/gpu_obj/post_fxaa.rs:151:50
[INFO] [stdout]     |
[INFO] [stdout] 151 |     pub fn render(&self, rpass: &mut RenderPass, device: &Device, main_bind_group: &BindGroup) {
[INFO] [stdout]     |                                                  ^^^^^^ help: if this is intentional, prefix it with an underscore: `_device`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device`
[INFO] [stdout]    --> src/gpu_obj/texture_view_bicopy.rs:141:50
[INFO] [stdout]     |
[INFO] [stdout] 141 |     pub fn render(&self, rpass: &mut RenderPass, device: &Device, main_bind_group: &BindGroup) {
[INFO] [stdout]     |                                                  ^^^^^^ help: if this is intentional, prefix it with an underscore: `_device`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `vertex_size`
[INFO] [stdout]    --> src/gpu_obj/water.rs:146:13
[INFO] [stdout]     |
[INFO] [stdout] 146 |         let vertex_size = std::mem::size_of::<model::Vertex>();
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_vertex_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `frame_server`
[INFO] [stdout]   --> src/main.rs:58:9
[INFO] [stdout]    |
[INFO] [stdout] 58 |     let frame_server =
[INFO] [stdout]    |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_frame_server`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `manager`
[INFO] [stdout]   --> src/main.rs:64:9
[INFO] [stdout]    |
[INFO] [stdout] 64 |     let manager = manager::Manager::new(
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_manager`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `watcher` is never read
[INFO] [stdout]    --> src/client/mod.rs:134:5
[INFO] [stdout]     |
[INFO] [stdout]  84 | pub struct App {
[INFO] [stdout]     |            --- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 134 |     watcher: notify::RecommendedWatcher,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NEAR` is never used
[INFO] [stdout]  --> src/client/camera.rs:6:7
[INFO] [stdout]   |
[INFO] [stdout] 6 | const NEAR: f32 = 1.0;
[INFO] [stdout]   |       ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `path_get_mut` is never used
[INFO] [stdout]   --> src/client/unit_part_gpu.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl UnitPartGpu {
[INFO] [stdout]    | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub fn path_get_mut(&mut self, path: PathBuf) -> Option<&mut ModelGpuState> {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `map_path` is never read
[INFO] [stdout]   --> src/client/heightmap_editor.rs:18:9
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct State {
[INFO] [stdout]    |            ----- field in this struct
[INFO] [stdout] 18 |     pub map_path: String,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `x1` and `y1` are never read
[INFO] [stdout]  --> src/client/input_state.rs:7:34
[INFO] [stdout]   |
[INFO] [stdout] 7 |     Dragging { x0: u32, y0: u32, x1: u32, y1: u32 },
[INFO] [stdout]   |     --------                     ^^       ^^
[INFO] [stdout]   |     |
[INFO] [stdout]   |     fields in this variant
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Drag` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Move`, `Guard`, and `Attack` are never constructed
[INFO] [stdout]   --> src/client/uitool.rs:7:5
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub enum UiTool {
[INFO] [stdout]    |          ------ variants in this enum
[INFO] [stdout]  6 |     None,
[INFO] [stdout]  7 |     Move,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]  8 |     Repair,
[INFO] [stdout]  9 |     Guard,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 10 |     Attack,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `UiTool` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FrameUpdate` is never constructed
[INFO] [stdout]    --> src/frame.rs:102:12
[INFO] [stdout]     |
[INFO] [stdout] 102 | pub struct FrameUpdate {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `energy` is never read
[INFO] [stdout]    --> src/frame_server/mod.rs:616:9
[INFO] [stdout]     |
[INFO] [stdout] 614 |     struct ResourceUsagePropMax {
[INFO] [stdout]     |            -------------------- field in this struct
[INFO] [stdout] 615 |         metal: f64,
[INFO] [stdout] 616 |         energy: f64,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `metal` and `energy` are never read
[INFO] [stdout]    --> src/frame_server/mod.rs:646:9
[INFO] [stdout]     |
[INFO] [stdout] 645 |     struct ResourceSurplus {
[INFO] [stdout]     |            --------------- fields in this struct
[INFO] [stdout] 646 |         metal: f64,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 647 |         energy: f64,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `noise_texture` is never read
[INFO] [stdout]   --> src/gpu_obj/blit_texture.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub struct BlitTextureGpu {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 12 |     noise_texture: Texture,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `str_to_shader_stage` is never used
[INFO] [stdout]   --> src/gpu_obj/glsl_compiler.rs:11:4
[INFO] [stdout]    |
[INFO] [stdout] 11 | fn str_to_shader_stage(str: &str) -> ShaderStage {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `z` is never used
[INFO] [stdout]   --> src/gpu_obj/heightmap_helper.rs:33:8
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub fn z(x: f32, y: f32) -> f32 {
[INFO] [stdout]    |        ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_texels` is never used
[INFO] [stdout]   --> src/gpu_obj/heightmap_helper.rs:47:8
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub fn create_texels(width: u32, height: u32, t: f32) -> Vec<f32> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]  --> src/gpu_obj/imgui_wgpu.rs:9:16
[INFO] [stdout]   |
[INFO] [stdout] 9 |     BadTexture(TextureId),
[INFO] [stdout]   |     ---------- ^^^^^^^^^
[INFO] [stdout]   |     |
[INFO] [stdout]   |     field in this variant
[INFO] [stdout]   |
[INFO] [stdout]   = note: `RendererError` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]   |
[INFO] [stdout] 9 -     BadTexture(TextureId),
[INFO] [stdout] 9 +     BadTexture(()),
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `update_instance` is never used
[INFO] [stdout]    --> src/gpu_obj/model_gpu.rs:209:12
[INFO] [stdout]     |
[INFO] [stdout]  16 | impl ModelGpu {
[INFO] [stdout]     | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 209 |     pub fn update_instance(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `HeightMapPhyUsize` is never used
[INFO] [stdout]   --> src/heightmap_phy.rs:22:7
[INFO] [stdout]    |
[INFO] [stdout] 22 | trait HeightMapPhyUsize {
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `bind_state` is never read
[INFO] [stdout]   --> src/net_client.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct NetClientInfo {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] 19 |     bind_state: BindState,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `NetClientInfo` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ID_CHARS` is never used
[INFO] [stdout]   --> src/utils.rs:28:7
[INFO] [stdout]    |
[INFO] [stdout] 28 | const ID_CHARS: [char; 62] = [
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ID_SIZE` is never used
[INFO] [stdout]   --> src/utils.rs:34:7
[INFO] [stdout]    |
[INFO] [stdout] 34 | const ID_SIZE: usize = 5;
[INFO] [stdout]    |       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `IdBase` is never used
[INFO] [stdout]   --> src/utils.rs:36:7
[INFO] [stdout]    |
[INFO] [stdout] 36 | trait IdBase {
[INFO] [stdout]    |       ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rand_id_unsafe` is never used
[INFO] [stdout]    --> src/utils.rs:112:8
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub fn rand_id_unsafe() -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `pop_set` is never used
[INFO] [stdout]    --> src/utils.rs:121:8
[INFO] [stdout]     |
[INFO] [stdout] 121 | pub fn pop_set<T: Clone + Eq + std::hash::Hash>(set: &mut HashSet<T>) -> T {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/botdef.rs:7:34
[INFO] [stdout]   |
[INFO] [stdout] 7 | #[derive(Clone, TypeName, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]   |                                  ^--------
[INFO] [stdout]   |                                  |
[INFO] [stdout]   |                                  `Serialize` is not local
[INFO] [stdout]   |                                  move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_BotDef`
[INFO] [stdout] 8 | pub struct BotDef {
[INFO] [stdout]   |            ------ `BotDef` is not local
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]   = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/botdef.rs:7:45
[INFO] [stdout]   |
[INFO] [stdout] 7 | #[derive(Clone, TypeName, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]   |                                             ^----------
[INFO] [stdout]   |                                             |
[INFO] [stdout]   |                                             `Deserialize` is not local
[INFO] [stdout]   |                                             move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_BotDef`
[INFO] [stdout] 8 | pub struct BotDef {
[INFO] [stdout]   |            ------ `BotDef` is not local
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> src/client/mod.rs:863:13
[INFO] [stdout]     |
[INFO] [stdout] 863 |             std::mem::replace(to_update, Some(Vector3::new(vec[0], vec[1], vec[2])));
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 863 |             let _ = std::mem::replace(to_update, Some(Vector3::new(vec[0], vec[1], vec[2])));
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> src/client/mod.rs:865:13
[INFO] [stdout]     |
[INFO] [stdout] 865 |             std::mem::replace(to_update, None);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 865 |             let _ = std::mem::replace(to_update, None);
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `j`
[INFO] [stdout]   --> src/heightmap_phy.rs:35:13
[INFO] [stdout]    |
[INFO] [stdout] 35 |         for j in 0..height {
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_j`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/heightmap_phy.rs:36:17
[INFO] [stdout]    |
[INFO] [stdout] 36 |             for i in 0..width {
[INFO] [stdout]    |                 ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/client/unit_editor.rs:237:9
[INFO] [stdout]     |
[INFO] [stdout] 237 |         serde_json::to_writer_pretty(buf_w, bot_def);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 237 |         let _ = serde_json::to_writer_pretty(buf_w, bot_def);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over an `Option`. This is more readably written as an `if let` statement
[INFO] [stdout]    --> src/client/unit_editor.rs:270:37
[INFO] [stdout]     |
[INFO] [stdout] 270 |                     for node_mut in unit_editor.botdef.part_tree.find_node_mut(node.id) {
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(for_loops_over_fallibles)]` on by default
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]     |
[INFO] [stdout] 270 -                     for node_mut in unit_editor.botdef.part_tree.find_node_mut(node.id) {
[INFO] [stdout] 270 +                     while let Some(node_mut) = unit_editor.botdef.part_tree.find_node_mut(node.id) {
[INFO] [stdout]     |
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]     |
[INFO] [stdout] 270 -                     for node_mut in unit_editor.botdef.part_tree.find_node_mut(node.id) {
[INFO] [stdout] 270 +                     if let Some(node_mut) = unit_editor.botdef.part_tree.find_node_mut(node.id) {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over a `&mut Option`. This is more readably written as an `if let` statement
[INFO] [stdout]    --> src/client/unit_editor.rs:271:35
[INFO] [stdout]     |
[INFO] [stdout] 271 |                         for pm in &mut node_mut.placed_mesh {
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]     |
[INFO] [stdout] 271 -                         for pm in &mut node_mut.placed_mesh {
[INFO] [stdout] 271 +                         while let Some(pm) = &mut node_mut.placed_mesh {
[INFO] [stdout]     |
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]     |
[INFO] [stdout] 271 -                         for pm in &mut node_mut.placed_mesh {
[INFO] [stdout] 271 +                         if let Some(pm) = &mut node_mut.placed_mesh {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/client/heightmap_editor.rs:337:9
[INFO] [stdout]     |
[INFO] [stdout] 337 |         serde_json::to_writer_pretty(buf_w, &heightmap_gpu.phy.data);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 337 |         let _ = serde_json::to_writer_pretty(buf_w, &heightmap_gpu.phy.data);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over an `Option`. This is more readably written as an `if let` statement
[INFO] [stdout]    --> src/client/misc.rs:504:41
[INFO] [stdout]     |
[INFO] [stdout] 504 | ...                   self.game_state.frame_zero.kbots.get(&id_builded)
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]     |
[INFO] [stdout] 503 -                                     for target_kbot in
[INFO] [stdout] 504 -                                         self.game_state.frame_zero.kbots.get(&id_builded)
[INFO] [stdout] 503 +                                     while let Some(target_kbot) = self.game_state.frame_zero.kbots.get(&id_builded)
[INFO] [stdout]     |
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]     |
[INFO] [stdout] 503 -                                     for target_kbot in
[INFO] [stdout] 504 -                                         self.game_state.frame_zero.kbots.get(&id_builded)
[INFO] [stdout] 503 +                                     if let Some(target_kbot) = self.game_state.frame_zero.kbots.get(&id_builded)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over an `Option`. This is more readably written as an `if let` statement
[INFO] [stdout]    --> src/client/misc.rs:518:41
[INFO] [stdout]     |
[INFO] [stdout] 518 | ...                   self.game_state.frame_zero.kbots.get(&id_builded)
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]     |
[INFO] [stdout] 517 -                                     for target_kbot in
[INFO] [stdout] 518 -                                         self.game_state.frame_zero.kbots.get(&id_builded)
[INFO] [stdout] 517 +                                     while let Some(target_kbot) = self.game_state.frame_zero.kbots.get(&id_builded)
[INFO] [stdout]     |
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]     |
[INFO] [stdout] 517 -                                     for target_kbot in
[INFO] [stdout] 518 -                                         self.game_state.frame_zero.kbots.get(&id_builded)
[INFO] [stdout] 517 +                                     if let Some(target_kbot) = self.game_state.frame_zero.kbots.get(&id_builded)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> src/client/render.rs:150:17
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 std::mem::replace(generic_gpu_state, generic_gpu_state_new);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let _ = std::mem::replace(generic_gpu_state, generic_gpu_state_new);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/frame.rs:19:34
[INFO] [stdout]    |
[INFO] [stdout] 19 | #[derive(Clone, TypeName, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]    |                                  ^--------
[INFO] [stdout]    |                                  |
[INFO] [stdout]    |                                  `Serialize` is not local
[INFO] [stdout]    |                                  move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_Player`
[INFO] [stdout] 20 | pub struct Player {
[INFO] [stdout]    |            ------ `Player` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/frame.rs:19:45
[INFO] [stdout]    |
[INFO] [stdout] 19 | #[derive(Clone, TypeName, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]    |                                             ^----------
[INFO] [stdout]    |                                             |
[INFO] [stdout]    |                                             `Deserialize` is not local
[INFO] [stdout]    |                                             move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Player`
[INFO] [stdout] 20 | pub struct Player {
[INFO] [stdout]    |            ------ `Player` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/frame.rs:41:24
[INFO] [stdout]    |
[INFO] [stdout] 41 | #[derive(Clone, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]    |                        ^--------
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        `Serialize` is not local
[INFO] [stdout]    |                        move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_FrameEventFromPlayer`
[INFO] [stdout] 42 | pub enum FrameEventFromPlayer {
[INFO] [stdout]    |          -------------------- `FrameEventFromPlayer` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]   --> src/manager.rs:89:79
[INFO] [stdout]    |
[INFO] [stdout] 89 | ...                   frame::FrameEventFromPlayer::ReplaceFrame(x) => false,
[INFO] [stdout]    |                                                                 ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/frame.rs:41:35
[INFO] [stdout]    |
[INFO] [stdout] 41 | #[derive(Clone, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]    |                                   ^----------
[INFO] [stdout]    |                                   |
[INFO] [stdout]    |                                   `Deserialize` is not local
[INFO] [stdout]    |                                   move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_FrameEventFromPlayer`
[INFO] [stdout] 42 | pub enum FrameEventFromPlayer {
[INFO] [stdout]    |          -------------------- `FrameEventFromPlayer` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/frame.rs:62:24
[INFO] [stdout]    |
[INFO] [stdout] 62 | #[derive(Clone, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]    |                        ^--------
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        `Serialize` is not local
[INFO] [stdout]    |                        move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_ProfilerMap`
[INFO] [stdout] 63 | pub struct ProfilerMap {
[INFO] [stdout]    |            ----------- `ProfilerMap` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/frame.rs:62:35
[INFO] [stdout]    |
[INFO] [stdout] 62 | #[derive(Clone, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]    |                                   ^----------
[INFO] [stdout]    |                                   |
[INFO] [stdout]    |                                   `Deserialize` is not local
[INFO] [stdout]    |                                   move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_ProfilerMap`
[INFO] [stdout] 63 | pub struct ProfilerMap {
[INFO] [stdout]    |            ----------- `ProfilerMap` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/frame.rs:95:24
[INFO] [stdout]    |
[INFO] [stdout] 95 | #[derive(Clone, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]    |                        ^--------
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        `Serialize` is not local
[INFO] [stdout]    |                        move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_DataToComputeNextFrame`
[INFO] [stdout] 96 | pub struct DataToComputeNextFrame {
[INFO] [stdout]    |            ---------------------- `DataToComputeNextFrame` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/frame.rs:95:35
[INFO] [stdout]    |
[INFO] [stdout] 95 | #[derive(Clone, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]    |                                   ^----------
[INFO] [stdout]    |                                   |
[INFO] [stdout]    |                                   `Deserialize` is not local
[INFO] [stdout]    |                                   move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_DataToComputeNextFrame`
[INFO] [stdout] 96 | pub struct DataToComputeNextFrame {
[INFO] [stdout]    |            ---------------------- `DataToComputeNextFrame` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/frame.rs:101:24
[INFO] [stdout]     |
[INFO] [stdout] 101 | #[derive(Clone, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]     |                        ^--------
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        `Serialize` is not local
[INFO] [stdout]     |                        move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_FrameUpdate`
[INFO] [stdout] 102 | pub struct FrameUpdate {
[INFO] [stdout]     |            ----------- `FrameUpdate` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/frame.rs:101:35
[INFO] [stdout]     |
[INFO] [stdout] 101 | #[derive(Clone, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]     |                                   ^----------
[INFO] [stdout]     |                                   |
[INFO] [stdout]     |                                   `Deserialize` is not local
[INFO] [stdout]     |                                   move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_FrameUpdate`
[INFO] [stdout] 102 | pub struct FrameUpdate {
[INFO] [stdout]     |            ----------- `FrameUpdate` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/frame.rs:106:24
[INFO] [stdout]     |
[INFO] [stdout] 106 | #[derive(Clone, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]     |                        ^--------
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        `Serialize` is not local
[INFO] [stdout]     |                        move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_Frame`
[INFO] [stdout] 107 | pub struct Frame {
[INFO] [stdout]     |            ----- `Frame` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/frame.rs:106:35
[INFO] [stdout]     |
[INFO] [stdout] 106 | #[derive(Clone, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]     |                                   ^----------
[INFO] [stdout]     |                                   |
[INFO] [stdout]     |                                   `Deserialize` is not local
[INFO] [stdout]     |                                   move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Frame`
[INFO] [stdout] 107 | pub struct Frame {
[INFO] [stdout]     |            ----- `Frame` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over an `Option`. This is more readably written as an `if let` statement
[INFO] [stdout]    --> src/frame_server/mod.rs:120:37
[INFO] [stdout]     |
[INFO] [stdout] 120 |                         for kbot in frame.kbots.get_mut(selected_raw_id) {
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]     |
[INFO] [stdout] 120 -                         for kbot in frame.kbots.get_mut(selected_raw_id) {
[INFO] [stdout] 120 +                         while let Some(kbot) = frame.kbots.get_mut(selected_raw_id) {
[INFO] [stdout]     |
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]     |
[INFO] [stdout] 120 -                         for kbot in frame.kbots.get_mut(selected_raw_id) {
[INFO] [stdout] 120 +                         if let Some(kbot) = frame.kbots.get_mut(selected_raw_id) {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over an `Option`. This is more readably written as an `if let` statement
[INFO] [stdout]    --> src/frame_server/mod.rs:136:37
[INFO] [stdout]     |
[INFO] [stdout] 136 |                         for kbot in frame.kbots.get_mut(selected_raw_id) {
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]     |
[INFO] [stdout] 136 -                         for kbot in frame.kbots.get_mut(selected_raw_id) {
[INFO] [stdout] 136 +                         while let Some(kbot) = frame.kbots.get_mut(selected_raw_id) {
[INFO] [stdout]     |
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]     |
[INFO] [stdout] 136 -                         for kbot in frame.kbots.get_mut(selected_raw_id) {
[INFO] [stdout] 136 +                         if let Some(kbot) = frame.kbots.get_mut(selected_raw_id) {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> src/frame_server/mod.rs:275:9
[INFO] [stdout]     |
[INFO] [stdout] 275 |         std::mem::replace(grid, vec![Vec::<Id<KBot>>::new(); grid_w * grid_h]);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 275 |         let _ = std::mem::replace(grid, vec![Vec::<Id<KBot>>::new(); grid_w * grid_h]);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> src/frame_server/mod.rs:319:13
[INFO] [stdout]     |
[INFO] [stdout] 319 |             std::mem::replace(small_grid, vec![Vec::<Id<KBot>>::new(); grid_w * grid_h]);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 319 |             let _ = std::mem::replace(small_grid, vec![Vec::<Id<KBot>>::new(); grid_w * grid_h]);
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> src/gpu_obj/arrow_gpu.rs:194:9
[INFO] [stdout]     |
[INFO] [stdout] 194 |         std::mem::replace(&mut self.instance_buf, temp_buf);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 194 |         let _ = std::mem::replace(&mut self.instance_buf, temp_buf);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> src/gpu_obj/blit_texture.rs:235:9
[INFO] [stdout]     |
[INFO] [stdout] 235 |         std::mem::replace(&mut self.instance_buf, temp_buf);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 235 |         let _ = std::mem::replace(&mut self.instance_buf, temp_buf);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> src/gpu_obj/explosion.rs:353:9
[INFO] [stdout]     |
[INFO] [stdout] 353 |         std::mem::replace(&mut self.instance_buf, temp_buf);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 353 |         let _ = std::mem::replace(&mut self.instance_buf, temp_buf);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> src/gpu_obj/health_bar.rs:136:9
[INFO] [stdout]     |
[INFO] [stdout] 136 |         std::mem::replace(&mut self.instance_buf, temp_buf);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 136 |         let _ = std::mem::replace(&mut self.instance_buf, temp_buf);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> src/gpu_obj/line.rs:131:9
[INFO] [stdout]     |
[INFO] [stdout] 131 |         std::mem::replace(&mut self.instance_buf, temp_buf);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 131 |         let _ = std::mem::replace(&mut self.instance_buf, temp_buf);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> src/gpu_obj/model_gpu.rs:195:9
[INFO] [stdout]     |
[INFO] [stdout] 195 |         std::mem::replace(&mut self.instance_buf, temp_buf);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 195 |         let _ = std::mem::replace(&mut self.instance_buf, temp_buf);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> src/gpu_obj/model_gpu.rs:205:9
[INFO] [stdout]     |
[INFO] [stdout] 205 |         std::mem::replace(&mut self.instance_buf, temp_buf);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 205 |         let _ = std::mem::replace(&mut self.instance_buf, temp_buf);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `max`
[INFO] [stdout]   --> src/mobile.rs:35:13
[INFO] [stdout]    |
[INFO] [stdout] 35 |         let max = other + cone_angle;
[INFO] [stdout]    |             ^^^ help: if this is intentional, prefix it with an underscore: `_max`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `min`
[INFO] [stdout]   --> src/mobile.rs:36:13
[INFO] [stdout]    |
[INFO] [stdout] 36 |         let min = other - cone_angle;
[INFO] [stdout]    |             ^^^ help: if this is intentional, prefix it with an underscore: `_min`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> src/gpu_obj/unit_icon.rs:126:9
[INFO] [stdout]     |
[INFO] [stdout] 126 |         std::mem::replace(&mut self.instance_buf, temp_buf);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 126 |         let _ = std::mem::replace(&mut self.instance_buf, temp_buf);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/heightmap_phy.rs:4:24
[INFO] [stdout]   |
[INFO] [stdout] 4 | #[derive(Clone, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]   |                        ^--------
[INFO] [stdout]   |                        |
[INFO] [stdout]   |                        `Serialize` is not local
[INFO] [stdout]   |                        move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_Data`
[INFO] [stdout] 5 | pub struct Data {
[INFO] [stdout]   |            ---- `Data` is not local
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/heightmap_phy.rs:4:35
[INFO] [stdout]   |
[INFO] [stdout] 4 | #[derive(Clone, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]   |                                   ^----------
[INFO] [stdout]   |                                   |
[INFO] [stdout]   |                                   `Deserialize` is not local
[INFO] [stdout]   |                                   move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Data`
[INFO] [stdout] 5 | pub struct Data {
[INFO] [stdout]   |            ---- `Data` is not local
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/heightmap_phy.rs:8:24
[INFO] [stdout]   |
[INFO] [stdout] 8 | #[derive(Clone, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]   |                        ^--------
[INFO] [stdout]   |                        |
[INFO] [stdout]   |                        `Serialize` is not local
[INFO] [stdout]   |                        move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_HeightmapPhy`
[INFO] [stdout] 9 | pub struct HeightmapPhy {
[INFO] [stdout]   |            ------------ `HeightmapPhy` is not local
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/heightmap_phy.rs:8:35
[INFO] [stdout]   |
[INFO] [stdout] 8 | #[derive(Clone, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]   |                                   ^----------
[INFO] [stdout]   |                                   |
[INFO] [stdout]   |                                   `Deserialize` is not local
[INFO] [stdout]   |                                   move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_HeightmapPhy`
[INFO] [stdout] 9 | pub struct HeightmapPhy {
[INFO] [stdout]   |            ------------ `HeightmapPhy` is not local
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/heightmap_phy.rs:15:24
[INFO] [stdout]    |
[INFO] [stdout] 15 | #[derive(Clone, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]    |                        ^--------
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        `Serialize` is not local
[INFO] [stdout]    |                        move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_MetalSpot`
[INFO] [stdout] 16 | pub struct MetalSpot {
[INFO] [stdout]    |            --------- `MetalSpot` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/heightmap_phy.rs:15:35
[INFO] [stdout]    |
[INFO] [stdout] 15 | #[derive(Clone, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]    |                                   ^----------
[INFO] [stdout]    |                                   |
[INFO] [stdout]    |                                   `Deserialize` is not local
[INFO] [stdout]    |                                   move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_MetalSpot`
[INFO] [stdout] 16 | pub struct MetalSpot {
[INFO] [stdout]    |            --------- `MetalSpot` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/mobile.rs:11:34
[INFO] [stdout]    |
[INFO] [stdout] 11 | #[derive(Clone, TypeName, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]    |                                  ^--------
[INFO] [stdout]    |                                  |
[INFO] [stdout]    |                                  `Serialize` is not local
[INFO] [stdout]    |                                  move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_ExplosionEvent`
[INFO] [stdout] 12 | pub struct ExplosionEvent {
[INFO] [stdout]    |            -------------- `ExplosionEvent` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/mobile.rs:11:45
[INFO] [stdout]    |
[INFO] [stdout] 11 | #[derive(Clone, TypeName, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]    |                                             ^----------
[INFO] [stdout]    |                                             |
[INFO] [stdout]    |                                             `Deserialize` is not local
[INFO] [stdout]    |                                             move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_ExplosionEvent`
[INFO] [stdout] 12 | pub struct ExplosionEvent {
[INFO] [stdout]    |            -------------- `ExplosionEvent` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/mobile.rs:18:30
[INFO] [stdout]    |
[INFO] [stdout] 18 | #[derive(Clone, Copy, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]    |                              ^--------
[INFO] [stdout]    |                              |
[INFO] [stdout]    |                              `Serialize` is not local
[INFO] [stdout]    |                              move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_Angle`
[INFO] [stdout] 19 | pub struct Angle {
[INFO] [stdout]    |            ----- `Angle` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/mobile.rs:18:41
[INFO] [stdout]    |
[INFO] [stdout] 18 | #[derive(Clone, Copy, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]    |                                         ^----------
[INFO] [stdout]    |                                         |
[INFO] [stdout]    |                                         `Deserialize` is not local
[INFO] [stdout]    |                                         move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Angle`
[INFO] [stdout] 19 | pub struct Angle {
[INFO] [stdout]    |            ----- `Angle` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/mobile.rs:107:34
[INFO] [stdout]     |
[INFO] [stdout] 107 | #[derive(Clone, TypeName, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]     |                                  ^--------
[INFO] [stdout]     |                                  |
[INFO] [stdout]     |                                  `Serialize` is not local
[INFO] [stdout]     |                                  move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_Command`
[INFO] [stdout] 108 | pub enum Command {
[INFO] [stdout]     |          ------- `Command` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/mobile.rs:107:45
[INFO] [stdout]     |
[INFO] [stdout] 107 | #[derive(Clone, TypeName, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]     |                                             ^----------
[INFO] [stdout]     |                                             |
[INFO] [stdout]     |                                             `Deserialize` is not local
[INFO] [stdout]     |                                             move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Command`
[INFO] [stdout] 108 | pub enum Command {
[INFO] [stdout]     |          ------- `Command` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/mobile.rs:114:34
[INFO] [stdout]     |
[INFO] [stdout] 114 | #[derive(Clone, TypeName, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]     |                                  ^--------
[INFO] [stdout]     |                                  |
[INFO] [stdout]     |                                  `Serialize` is not local
[INFO] [stdout]     |                                  move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_KBot`
[INFO] [stdout] 115 | pub struct KBot {
[INFO] [stdout]     |            ---- `KBot` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/mobile.rs:114:45
[INFO] [stdout]     |
[INFO] [stdout] 114 | #[derive(Clone, TypeName, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]     |                                             ^----------
[INFO] [stdout]     |                                             |
[INFO] [stdout]     |                                             `Deserialize` is not local
[INFO] [stdout]     |                                             move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_KBot`
[INFO] [stdout] 115 | pub struct KBot {
[INFO] [stdout]     |            ---- `KBot` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/mobile.rs:193:34
[INFO] [stdout]     |
[INFO] [stdout] 193 | #[derive(Clone, TypeName, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]     |                                  ^--------
[INFO] [stdout]     |                                  |
[INFO] [stdout]     |                                  `Serialize` is not local
[INFO] [stdout]     |                                  move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_KinematicProjectile`
[INFO] [stdout] 194 | pub struct KinematicProjectile {
[INFO] [stdout]     |            ------------------- `KinematicProjectile` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/mobile.rs:193:45
[INFO] [stdout]     |
[INFO] [stdout] 193 | #[derive(Clone, TypeName, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]     |                                             ^----------
[INFO] [stdout]     |                                             |
[INFO] [stdout]     |                                             `Deserialize` is not local
[INFO] [stdout]     |                                             move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_KinematicProjectile`
[INFO] [stdout] 194 | pub struct KinematicProjectile {
[INFO] [stdout]     |            ------------------- `KinematicProjectile` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/mobile.rs:242:24
[INFO] [stdout]     |
[INFO] [stdout] 242 | #[derive(Clone, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]     |                        ^--------
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        `Serialize` is not local
[INFO] [stdout]     |                        move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_Arrow`
[INFO] [stdout] 243 | pub struct Arrow {
[INFO] [stdout]     |            ----- `Arrow` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/mobile.rs:242:35
[INFO] [stdout]     |
[INFO] [stdout] 242 | #[derive(Clone, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]     |                                   ^----------
[INFO] [stdout]     |                                   |
[INFO] [stdout]     |                                   `Deserialize` is not local
[INFO] [stdout]     |                                   move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Arrow`
[INFO] [stdout] 243 | pub struct Arrow {
[INFO] [stdout]     |            ----- `Arrow` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/moddef.rs:9:34
[INFO] [stdout]    |
[INFO] [stdout]  9 | #[derive(Clone, TypeName, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]    |                                  ^--------
[INFO] [stdout]    |                                  |
[INFO] [stdout]    |                                  `Serialize` is not local
[INFO] [stdout]    |                                  move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_ModDef`
[INFO] [stdout] 10 | pub struct ModDef {
[INFO] [stdout]    |            ------ `ModDef` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/moddef.rs:9:45
[INFO] [stdout]    |
[INFO] [stdout]  9 | #[derive(Clone, TypeName, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]    |                                             ^----------
[INFO] [stdout]    |                                             |
[INFO] [stdout]    |                                             `Deserialize` is not local
[INFO] [stdout]    |                                             move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_ModDef`
[INFO] [stdout] 10 | pub struct ModDef {
[INFO] [stdout]    |            ------ `ModDef` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/unit.rs:11:35
[INFO] [stdout]    |
[INFO] [stdout] 11 | #[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
[INFO] [stdout]    |                                   ^--------
[INFO] [stdout]    |                                   |
[INFO] [stdout]    |                                   `Serialize` is not local
[INFO] [stdout]    |                                   move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_PlacedMesh`
[INFO] [stdout] 12 | pub struct PlacedMesh {
[INFO] [stdout]    |            ---------- `PlacedMesh` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/unit.rs:11:46
[INFO] [stdout]    |
[INFO] [stdout] 11 | #[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
[INFO] [stdout]    |                                              ^----------
[INFO] [stdout]    |                                              |
[INFO] [stdout]    |                                              `Deserialize` is not local
[INFO] [stdout]    |                                              move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_PlacedMesh`
[INFO] [stdout] 12 | pub struct PlacedMesh {
[INFO] [stdout]    |            ---------- `PlacedMesh` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/unit.rs:18:35
[INFO] [stdout]    |
[INFO] [stdout] 18 | #[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
[INFO] [stdout]    |                                   ^--------
[INFO] [stdout]    |                                   |
[INFO] [stdout]    |                                   `Serialize` is not local
[INFO] [stdout]    |                                   move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_PlacedCollider`
[INFO] [stdout] 19 | pub enum PlacedCollider {
[INFO] [stdout]    |          -------------- `PlacedCollider` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/unit.rs:18:46
[INFO] [stdout]    |
[INFO] [stdout] 18 | #[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
[INFO] [stdout]    |                                              ^----------
[INFO] [stdout]    |                                              |
[INFO] [stdout]    |                                              `Deserialize` is not local
[INFO] [stdout]    |                                              move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_PlacedCollider`
[INFO] [stdout] 19 | pub enum PlacedCollider {
[INFO] [stdout]    |          -------------- `PlacedCollider` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/unit.rs:23:35
[INFO] [stdout]    |
[INFO] [stdout] 23 | #[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
[INFO] [stdout]    |                                   ^--------
[INFO] [stdout]    |                                   |
[INFO] [stdout]    |                                   `Serialize` is not local
[INFO] [stdout]    |                                   move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_Joint`
[INFO] [stdout] 24 | pub enum Joint {
[INFO] [stdout]    |          ----- `Joint` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/unit.rs:23:46
[INFO] [stdout]    |
[INFO] [stdout] 23 | #[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
[INFO] [stdout]    |                                              ^----------
[INFO] [stdout]    |                                              |
[INFO] [stdout]    |                                              `Deserialize` is not local
[INFO] [stdout]    |                                              move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Joint`
[INFO] [stdout] 24 | pub enum Joint {
[INFO] [stdout]    |          ----- `Joint` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]   --> src/unit.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 41 |         std::mem::replace(self, next);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 41 |         let _ = std::mem::replace(self, next);
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/unit.rs:45:55
[INFO] [stdout]    |
[INFO] [stdout] 45 | #[derive(Debug, Clone, typename::TypeName, PartialEq, Serialize, Deserialize)]
[INFO] [stdout]    |                                                       ^--------
[INFO] [stdout]    |                                                       |
[INFO] [stdout]    |                                                       `Serialize` is not local
[INFO] [stdout]    |                                                       move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_PartTree`
[INFO] [stdout] 46 | pub struct PartTree {
[INFO] [stdout]    |            -------- `PartTree` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/unit.rs:45:66
[INFO] [stdout]    |
[INFO] [stdout] 45 | #[derive(Debug, Clone, typename::TypeName, PartialEq, Serialize, Deserialize)]
[INFO] [stdout]    |                                                                  ^----------
[INFO] [stdout]    |                                                                  |
[INFO] [stdout]    |                                                                  `Deserialize` is not local
[INFO] [stdout]    |                                                                  move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_PartTree`
[INFO] [stdout] 46 | pub struct PartTree {
[INFO] [stdout]    |            -------- `PartTree` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/unit.rs:70:17
[INFO] [stdout]    |
[INFO] [stdout] 70 |     pub fn iter(&self) -> PartTreeIter {
[INFO] [stdout]    |                 ^^^^^     ^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 70 |     pub fn iter(&self) -> PartTreeIter<'_> {
[INFO] [stdout]    |                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/utils.rs:42:10
[INFO] [stdout]    |
[INFO] [stdout] 42 | #[derive(Serialize, Deserialize)]
[INFO] [stdout]    |          ^--------
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `Serialize` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_Id`
[INFO] [stdout] 43 | pub struct Id<T> {
[INFO] [stdout]    |            -- `Id` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/utils.rs:42:21
[INFO] [stdout]    |
[INFO] [stdout] 42 | #[derive(Serialize, Deserialize)]
[INFO] [stdout]    |                     ^----------
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     `Deserialize` is not local
[INFO] [stdout]    |                     move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Id`
[INFO] [stdout] 43 | pub struct Id<T> {
[INFO] [stdout]    |            -- `Id` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]   --> src/utils.rs:65:35
[INFO] [stdout]    |
[INFO] [stdout] 65 |         let x: [u8; 8] = unsafe { std::mem::transmute(self.value.to_le()) };
[INFO] [stdout]    |                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: there's also `to_le_bytes` and `to_be_bytes` if you expect a particular byte order
[INFO] [stdout]    = note: `#[warn(unnecessary_transmutes)]` on by default
[INFO] [stdout] help: replace this with
[INFO] [stdout]    |
[INFO] [stdout] 65 -         let x: [u8; 8] = unsafe { std::mem::transmute(self.value.to_le()) };
[INFO] [stdout] 65 +         let x: [u8; 8] = unsafe { u64::to_ne_bytes(self.value.to_le()) };
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `frame_server`
[INFO] [stdout]   --> src/main.rs:58:9
[INFO] [stdout]    |
[INFO] [stdout] 58 |     let frame_server =
[INFO] [stdout]    |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_frame_server`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `manager`
[INFO] [stdout]   --> src/main.rs:64:9
[INFO] [stdout]    |
[INFO] [stdout] 64 |     let manager = manager::Manager::new(
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_manager`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `watcher` is never read
[INFO] [stdout]    --> src/client/mod.rs:134:5
[INFO] [stdout]     |
[INFO] [stdout]  84 | pub struct App {
[INFO] [stdout]     |            --- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 134 |     watcher: notify::RecommendedWatcher,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NEAR` is never used
[INFO] [stdout]  --> src/client/camera.rs:6:7
[INFO] [stdout]   |
[INFO] [stdout] 6 | const NEAR: f32 = 1.0;
[INFO] [stdout]   |       ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `path_get_mut` is never used
[INFO] [stdout]   --> src/client/unit_part_gpu.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl UnitPartGpu {
[INFO] [stdout]    | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub fn path_get_mut(&mut self, path: PathBuf) -> Option<&mut ModelGpuState> {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `map_path` is never read
[INFO] [stdout]   --> src/client/heightmap_editor.rs:18:9
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct State {
[INFO] [stdout]    |            ----- field in this struct
[INFO] [stdout] 18 |     pub map_path: String,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `x1` and `y1` are never read
[INFO] [stdout]  --> src/client/input_state.rs:7:34
[INFO] [stdout]   |
[INFO] [stdout] 7 |     Dragging { x0: u32, y0: u32, x1: u32, y1: u32 },
[INFO] [stdout]   |     --------                     ^^       ^^
[INFO] [stdout]   |     |
[INFO] [stdout]   |     fields in this variant
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Drag` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Move`, `Guard`, and `Attack` are never constructed
[INFO] [stdout]   --> src/client/uitool.rs:7:5
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub enum UiTool {
[INFO] [stdout]    |          ------ variants in this enum
[INFO] [stdout]  6 |     None,
[INFO] [stdout]  7 |     Move,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]  8 |     Repair,
[INFO] [stdout]  9 |     Guard,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 10 |     Attack,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `UiTool` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FrameUpdate` is never constructed
[INFO] [stdout]    --> src/frame.rs:102:12
[INFO] [stdout]     |
[INFO] [stdout] 102 | pub struct FrameUpdate {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `energy` is never read
[INFO] [stdout]    --> src/frame_server/mod.rs:616:9
[INFO] [stdout]     |
[INFO] [stdout] 614 |     struct ResourceUsagePropMax {
[INFO] [stdout]     |            -------------------- field in this struct
[INFO] [stdout] 615 |         metal: f64,
[INFO] [stdout] 616 |         energy: f64,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `metal` and `energy` are never read
[INFO] [stdout]    --> src/frame_server/mod.rs:646:9
[INFO] [stdout]     |
[INFO] [stdout] 645 |     struct ResourceSurplus {
[INFO] [stdout]     |            --------------- fields in this struct
[INFO] [stdout] 646 |         metal: f64,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 647 |         energy: f64,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `noise_texture` is never read
[INFO] [stdout]   --> src/gpu_obj/blit_texture.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub struct BlitTextureGpu {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 12 |     noise_texture: Texture,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `str_to_shader_stage` is never used
[INFO] [stdout]   --> src/gpu_obj/glsl_compiler.rs:11:4
[INFO] [stdout]    |
[INFO] [stdout] 11 | fn str_to_shader_stage(str: &str) -> ShaderStage {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `z` is never used
[INFO] [stdout]   --> src/gpu_obj/heightmap_helper.rs:33:8
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub fn z(x: f32, y: f32) -> f32 {
[INFO] [stdout]    |        ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_texels` is never used
[INFO] [stdout]   --> src/gpu_obj/heightmap_helper.rs:47:8
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub fn create_texels(width: u32, height: u32, t: f32) -> Vec<f32> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]  --> src/gpu_obj/imgui_wgpu.rs:9:16
[INFO] [stdout]   |
[INFO] [stdout] 9 |     BadTexture(TextureId),
[INFO] [stdout]   |     ---------- ^^^^^^^^^
[INFO] [stdout]   |     |
[INFO] [stdout]   |     field in this variant
[INFO] [stdout]   |
[INFO] [stdout]   = note: `RendererError` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]   |
[INFO] [stdout] 9 -     BadTexture(TextureId),
[INFO] [stdout] 9 +     BadTexture(()),
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `update_instance` is never used
[INFO] [stdout]    --> src/gpu_obj/model_gpu.rs:209:12
[INFO] [stdout]     |
[INFO] [stdout]  16 | impl ModelGpu {
[INFO] [stdout]     | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 209 |     pub fn update_instance(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `HeightMapPhyUsize` is never used
[INFO] [stdout]   --> src/heightmap_phy.rs:22:7
[INFO] [stdout]    |
[INFO] [stdout] 22 | trait HeightMapPhyUsize {
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `bind_state` is never read
[INFO] [stdout]   --> src/net_client.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct NetClientInfo {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] 19 |     bind_state: BindState,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `NetClientInfo` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ID_CHARS` is never used
[INFO] [stdout]   --> src/utils.rs:28:7
[INFO] [stdout]    |
[INFO] [stdout] 28 | const ID_CHARS: [char; 62] = [
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ID_SIZE` is never used
[INFO] [stdout]   --> src/utils.rs:34:7
[INFO] [stdout]    |
[INFO] [stdout] 34 | const ID_SIZE: usize = 5;
[INFO] [stdout]    |       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `IdBase` is never used
[INFO] [stdout]   --> src/utils.rs:36:7
[INFO] [stdout]    |
[INFO] [stdout] 36 | trait IdBase {
[INFO] [stdout]    |       ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rand_id_unsafe` is never used
[INFO] [stdout]    --> src/utils.rs:112:8
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub fn rand_id_unsafe() -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `pop_set` is never used
[INFO] [stdout]    --> src/utils.rs:121:8
[INFO] [stdout]     |
[INFO] [stdout] 121 | pub fn pop_set<T: Clone + Eq + std::hash::Hash>(set: &mut HashSet<T>) -> T {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/botdef.rs:7:34
[INFO] [stdout]   |
[INFO] [stdout] 7 | #[derive(Clone, TypeName, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]   |                                  ^--------
[INFO] [stdout]   |                                  |
[INFO] [stdout]   |                                  `Serialize` is not local
[INFO] [stdout]   |                                  move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_BotDef`
[INFO] [stdout] 8 | pub struct BotDef {
[INFO] [stdout]   |            ------ `BotDef` is not local
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]   = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/botdef.rs:7:45
[INFO] [stdout]   |
[INFO] [stdout] 7 | #[derive(Clone, TypeName, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]   |                                             ^----------
[INFO] [stdout]   |                                             |
[INFO] [stdout]   |                                             `Deserialize` is not local
[INFO] [stdout]   |                                             move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_BotDef`
[INFO] [stdout] 8 | pub struct BotDef {
[INFO] [stdout]   |            ------ `BotDef` is not local
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> src/client/mod.rs:863:13
[INFO] [stdout]     |
[INFO] [stdout] 863 |             std::mem::replace(to_update, Some(Vector3::new(vec[0], vec[1], vec[2])));
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 863 |             let _ = std::mem::replace(to_update, Some(Vector3::new(vec[0], vec[1], vec[2])));
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> src/client/mod.rs:865:13
[INFO] [stdout]     |
[INFO] [stdout] 865 |             std::mem::replace(to_update, None);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 865 |             let _ = std::mem::replace(to_update, None);
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/client/unit_editor.rs:237:9
[INFO] [stdout]     |
[INFO] [stdout] 237 |         serde_json::to_writer_pretty(buf_w, bot_def);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 237 |         let _ = serde_json::to_writer_pretty(buf_w, bot_def);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over an `Option`. This is more readably written as an `if let` statement
[INFO] [stdout]    --> src/client/unit_editor.rs:270:37
[INFO] [stdout]     |
[INFO] [stdout] 270 |                     for node_mut in unit_editor.botdef.part_tree.find_node_mut(node.id) {
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(for_loops_over_fallibles)]` on by default
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]     |
[INFO] [stdout] 270 -                     for node_mut in unit_editor.botdef.part_tree.find_node_mut(node.id) {
[INFO] [stdout] 270 +                     while let Some(node_mut) = unit_editor.botdef.part_tree.find_node_mut(node.id) {
[INFO] [stdout]     |
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]     |
[INFO] [stdout] 270 -                     for node_mut in unit_editor.botdef.part_tree.find_node_mut(node.id) {
[INFO] [stdout] 270 +                     if let Some(node_mut) = unit_editor.botdef.part_tree.find_node_mut(node.id) {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over a `&mut Option`. This is more readably written as an `if let` statement
[INFO] [stdout]    --> src/client/unit_editor.rs:271:35
[INFO] [stdout]     |
[INFO] [stdout] 271 |                         for pm in &mut node_mut.placed_mesh {
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]     |
[INFO] [stdout] 271 -                         for pm in &mut node_mut.placed_mesh {
[INFO] [stdout] 271 +                         while let Some(pm) = &mut node_mut.placed_mesh {
[INFO] [stdout]     |
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]     |
[INFO] [stdout] 271 -                         for pm in &mut node_mut.placed_mesh {
[INFO] [stdout] 271 +                         if let Some(pm) = &mut node_mut.placed_mesh {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/client/heightmap_editor.rs:337:9
[INFO] [stdout]     |
[INFO] [stdout] 337 |         serde_json::to_writer_pretty(buf_w, &heightmap_gpu.phy.data);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 337 |         let _ = serde_json::to_writer_pretty(buf_w, &heightmap_gpu.phy.data);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over an `Option`. This is more readably written as an `if let` statement
[INFO] [stdout]    --> src/client/misc.rs:504:41
[INFO] [stdout]     |
[INFO] [stdout] 504 | ...                   self.game_state.frame_zero.kbots.get(&id_builded)
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]     |
[INFO] [stdout] 503 -                                     for target_kbot in
[INFO] [stdout] 504 -                                         self.game_state.frame_zero.kbots.get(&id_builded)
[INFO] [stdout] 503 +                                     while let Some(target_kbot) = self.game_state.frame_zero.kbots.get(&id_builded)
[INFO] [stdout]     |
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]     |
[INFO] [stdout] 503 -                                     for target_kbot in
[INFO] [stdout] 504 -                                         self.game_state.frame_zero.kbots.get(&id_builded)
[INFO] [stdout] 503 +                                     if let Some(target_kbot) = self.game_state.frame_zero.kbots.get(&id_builded)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over an `Option`. This is more readably written as an `if let` statement
[INFO] [stdout]    --> src/client/misc.rs:518:41
[INFO] [stdout]     |
[INFO] [stdout] 518 | ...                   self.game_state.frame_zero.kbots.get(&id_builded)
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]     |
[INFO] [stdout] 517 -                                     for target_kbot in
[INFO] [stdout] 518 -                                         self.game_state.frame_zero.kbots.get(&id_builded)
[INFO] [stdout] 517 +                                     while let Some(target_kbot) = self.game_state.frame_zero.kbots.get(&id_builded)
[INFO] [stdout]     |
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]     |
[INFO] [stdout] 517 -                                     for target_kbot in
[INFO] [stdout] 518 -                                         self.game_state.frame_zero.kbots.get(&id_builded)
[INFO] [stdout] 517 +                                     if let Some(target_kbot) = self.game_state.frame_zero.kbots.get(&id_builded)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> src/client/render.rs:150:17
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 std::mem::replace(generic_gpu_state, generic_gpu_state_new);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let _ = std::mem::replace(generic_gpu_state, generic_gpu_state_new);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/frame.rs:19:34
[INFO] [stdout]    |
[INFO] [stdout] 19 | #[derive(Clone, TypeName, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]    |                                  ^--------
[INFO] [stdout]    |                                  |
[INFO] [stdout]    |                                  `Serialize` is not local
[INFO] [stdout]    |                                  move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_Player`
[INFO] [stdout] 20 | pub struct Player {
[INFO] [stdout]    |            ------ `Player` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/frame.rs:19:45
[INFO] [stdout]    |
[INFO] [stdout] 19 | #[derive(Clone, TypeName, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]    |                                             ^----------
[INFO] [stdout]    |                                             |
[INFO] [stdout]    |                                             `Deserialize` is not local
[INFO] [stdout]    |                                             move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Player`
[INFO] [stdout] 20 | pub struct Player {
[INFO] [stdout]    |            ------ `Player` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/frame.rs:41:24
[INFO] [stdout]    |
[INFO] [stdout] 41 | #[derive(Clone, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]    |                        ^--------
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        `Serialize` is not local
[INFO] [stdout]    |                        move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_FrameEventFromPlayer`
[INFO] [stdout] 42 | pub enum FrameEventFromPlayer {
[INFO] [stdout]    |          -------------------- `FrameEventFromPlayer` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/frame.rs:41:35
[INFO] [stdout]    |
[INFO] [stdout] 41 | #[derive(Clone, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]    |                                   ^----------
[INFO] [stdout]    |                                   |
[INFO] [stdout]    |                                   `Deserialize` is not local
[INFO] [stdout]    |                                   move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_FrameEventFromPlayer`
[INFO] [stdout] 42 | pub enum FrameEventFromPlayer {
[INFO] [stdout]    |          -------------------- `FrameEventFromPlayer` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/frame.rs:62:24
[INFO] [stdout]    |
[INFO] [stdout] 62 | #[derive(Clone, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]    |                        ^--------
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        `Serialize` is not local
[INFO] [stdout]    |                        move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_ProfilerMap`
[INFO] [stdout] 63 | pub struct ProfilerMap {
[INFO] [stdout]    |            ----------- `ProfilerMap` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/frame.rs:62:35
[INFO] [stdout]    |
[INFO] [stdout] 62 | #[derive(Clone, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]    |                                   ^----------
[INFO] [stdout]    |                                   |
[INFO] [stdout]    |                                   `Deserialize` is not local
[INFO] [stdout]    |                                   move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_ProfilerMap`
[INFO] [stdout] 63 | pub struct ProfilerMap {
[INFO] [stdout]    |            ----------- `ProfilerMap` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/frame.rs:95:24
[INFO] [stdout]    |
[INFO] [stdout] 95 | #[derive(Clone, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]    |                        ^--------
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        `Serialize` is not local
[INFO] [stdout]    |                        move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_DataToComputeNextFrame`
[INFO] [stdout] 96 | pub struct DataToComputeNextFrame {
[INFO] [stdout]    |            ---------------------- `DataToComputeNextFrame` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/frame.rs:95:35
[INFO] [stdout]    |
[INFO] [stdout] 95 | #[derive(Clone, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]    |                                   ^----------
[INFO] [stdout]    |                                   |
[INFO] [stdout]    |                                   `Deserialize` is not local
[INFO] [stdout]    |                                   move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_DataToComputeNextFrame`
[INFO] [stdout] 96 | pub struct DataToComputeNextFrame {
[INFO] [stdout]    |            ---------------------- `DataToComputeNextFrame` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/frame.rs:101:24
[INFO] [stdout]     |
[INFO] [stdout] 101 | #[derive(Clone, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]     |                        ^--------
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        `Serialize` is not local
[INFO] [stdout]     |                        move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_FrameUpdate`
[INFO] [stdout] 102 | pub struct FrameUpdate {
[INFO] [stdout]     |            ----------- `FrameUpdate` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/frame.rs:101:35
[INFO] [stdout]     |
[INFO] [stdout] 101 | #[derive(Clone, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]     |                                   ^----------
[INFO] [stdout]     |                                   |
[INFO] [stdout]     |                                   `Deserialize` is not local
[INFO] [stdout]     |                                   move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_FrameUpdate`
[INFO] [stdout] 102 | pub struct FrameUpdate {
[INFO] [stdout]     |            ----------- `FrameUpdate` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/frame.rs:106:24
[INFO] [stdout]     |
[INFO] [stdout] 106 | #[derive(Clone, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]     |                        ^--------
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        `Serialize` is not local
[INFO] [stdout]     |                        move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_Frame`
[INFO] [stdout] 107 | pub struct Frame {
[INFO] [stdout]     |            ----- `Frame` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/frame.rs:106:35
[INFO] [stdout]     |
[INFO] [stdout] 106 | #[derive(Clone, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]     |                                   ^----------
[INFO] [stdout]     |                                   |
[INFO] [stdout]     |                                   `Deserialize` is not local
[INFO] [stdout]     |                                   move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Frame`
[INFO] [stdout] 107 | pub struct Frame {
[INFO] [stdout]     |            ----- `Frame` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over an `Option`. This is more readably written as an `if let` statement
[INFO] [stdout]    --> src/frame_server/mod.rs:120:37
[INFO] [stdout]     |
[INFO] [stdout] 120 |                         for kbot in frame.kbots.get_mut(selected_raw_id) {
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]     |
[INFO] [stdout] 120 -                         for kbot in frame.kbots.get_mut(selected_raw_id) {
[INFO] [stdout] 120 +                         while let Some(kbot) = frame.kbots.get_mut(selected_raw_id) {
[INFO] [stdout]     |
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]     |
[INFO] [stdout] 120 -                         for kbot in frame.kbots.get_mut(selected_raw_id) {
[INFO] [stdout] 120 +                         if let Some(kbot) = frame.kbots.get_mut(selected_raw_id) {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over an `Option`. This is more readably written as an `if let` statement
[INFO] [stdout]    --> src/frame_server/mod.rs:136:37
[INFO] [stdout]     |
[INFO] [stdout] 136 |                         for kbot in frame.kbots.get_mut(selected_raw_id) {
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]     |
[INFO] [stdout] 136 -                         for kbot in frame.kbots.get_mut(selected_raw_id) {
[INFO] [stdout] 136 +                         while let Some(kbot) = frame.kbots.get_mut(selected_raw_id) {
[INFO] [stdout]     |
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]     |
[INFO] [stdout] 136 -                         for kbot in frame.kbots.get_mut(selected_raw_id) {
[INFO] [stdout] 136 +                         if let Some(kbot) = frame.kbots.get_mut(selected_raw_id) {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> src/frame_server/mod.rs:275:9
[INFO] [stdout]     |
[INFO] [stdout] 275 |         std::mem::replace(grid, vec![Vec::<Id<KBot>>::new(); grid_w * grid_h]);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 275 |         let _ = std::mem::replace(grid, vec![Vec::<Id<KBot>>::new(); grid_w * grid_h]);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> src/frame_server/mod.rs:319:13
[INFO] [stdout]     |
[INFO] [stdout] 319 |             std::mem::replace(small_grid, vec![Vec::<Id<KBot>>::new(); grid_w * grid_h]);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 319 |             let _ = std::mem::replace(small_grid, vec![Vec::<Id<KBot>>::new(); grid_w * grid_h]);
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> src/gpu_obj/arrow_gpu.rs:194:9
[INFO] [stdout]     |
[INFO] [stdout] 194 |         std::mem::replace(&mut self.instance_buf, temp_buf);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 194 |         let _ = std::mem::replace(&mut self.instance_buf, temp_buf);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> src/gpu_obj/blit_texture.rs:235:9
[INFO] [stdout]     |
[INFO] [stdout] 235 |         std::mem::replace(&mut self.instance_buf, temp_buf);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 235 |         let _ = std::mem::replace(&mut self.instance_buf, temp_buf);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> src/gpu_obj/explosion.rs:353:9
[INFO] [stdout]     |
[INFO] [stdout] 353 |         std::mem::replace(&mut self.instance_buf, temp_buf);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 353 |         let _ = std::mem::replace(&mut self.instance_buf, temp_buf);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> src/gpu_obj/health_bar.rs:136:9
[INFO] [stdout]     |
[INFO] [stdout] 136 |         std::mem::replace(&mut self.instance_buf, temp_buf);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 136 |         let _ = std::mem::replace(&mut self.instance_buf, temp_buf);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> src/gpu_obj/line.rs:131:9
[INFO] [stdout]     |
[INFO] [stdout] 131 |         std::mem::replace(&mut self.instance_buf, temp_buf);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 131 |         let _ = std::mem::replace(&mut self.instance_buf, temp_buf);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> src/gpu_obj/model_gpu.rs:195:9
[INFO] [stdout]     |
[INFO] [stdout] 195 |         std::mem::replace(&mut self.instance_buf, temp_buf);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 195 |         let _ = std::mem::replace(&mut self.instance_buf, temp_buf);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> src/gpu_obj/model_gpu.rs:205:9
[INFO] [stdout]     |
[INFO] [stdout] 205 |         std::mem::replace(&mut self.instance_buf, temp_buf);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 205 |         let _ = std::mem::replace(&mut self.instance_buf, temp_buf);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]    --> src/gpu_obj/unit_icon.rs:126:9
[INFO] [stdout]     |
[INFO] [stdout] 126 |         std::mem::replace(&mut self.instance_buf, temp_buf);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 126 |         let _ = std::mem::replace(&mut self.instance_buf, temp_buf);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/heightmap_phy.rs:4:24
[INFO] [stdout]   |
[INFO] [stdout] 4 | #[derive(Clone, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]   |                        ^--------
[INFO] [stdout]   |                        |
[INFO] [stdout]   |                        `Serialize` is not local
[INFO] [stdout]   |                        move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_Data`
[INFO] [stdout] 5 | pub struct Data {
[INFO] [stdout]   |            ---- `Data` is not local
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/heightmap_phy.rs:4:35
[INFO] [stdout]   |
[INFO] [stdout] 4 | #[derive(Clone, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]   |                                   ^----------
[INFO] [stdout]   |                                   |
[INFO] [stdout]   |                                   `Deserialize` is not local
[INFO] [stdout]   |                                   move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Data`
[INFO] [stdout] 5 | pub struct Data {
[INFO] [stdout]   |            ---- `Data` is not local
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/heightmap_phy.rs:8:24
[INFO] [stdout]   |
[INFO] [stdout] 8 | #[derive(Clone, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]   |                        ^--------
[INFO] [stdout]   |                        |
[INFO] [stdout]   |                        `Serialize` is not local
[INFO] [stdout]   |                        move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_HeightmapPhy`
[INFO] [stdout] 9 | pub struct HeightmapPhy {
[INFO] [stdout]   |            ------------ `HeightmapPhy` is not local
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/heightmap_phy.rs:8:35
[INFO] [stdout]   |
[INFO] [stdout] 8 | #[derive(Clone, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]   |                                   ^----------
[INFO] [stdout]   |                                   |
[INFO] [stdout]   |                                   `Deserialize` is not local
[INFO] [stdout]   |                                   move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_HeightmapPhy`
[INFO] [stdout] 9 | pub struct HeightmapPhy {
[INFO] [stdout]   |            ------------ `HeightmapPhy` is not local
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/heightmap_phy.rs:15:24
[INFO] [stdout]    |
[INFO] [stdout] 15 | #[derive(Clone, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]    |                        ^--------
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        `Serialize` is not local
[INFO] [stdout]    |                        move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_MetalSpot`
[INFO] [stdout] 16 | pub struct MetalSpot {
[INFO] [stdout]    |            --------- `MetalSpot` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/heightmap_phy.rs:15:35
[INFO] [stdout]    |
[INFO] [stdout] 15 | #[derive(Clone, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]    |                                   ^----------
[INFO] [stdout]    |                                   |
[INFO] [stdout]    |                                   `Deserialize` is not local
[INFO] [stdout]    |                                   move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_MetalSpot`
[INFO] [stdout] 16 | pub struct MetalSpot {
[INFO] [stdout]    |            --------- `MetalSpot` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/mobile.rs:11:34
[INFO] [stdout]    |
[INFO] [stdout] 11 | #[derive(Clone, TypeName, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]    |                                  ^--------
[INFO] [stdout]    |                                  |
[INFO] [stdout]    |                                  `Serialize` is not local
[INFO] [stdout]    |                                  move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_ExplosionEvent`
[INFO] [stdout] 12 | pub struct ExplosionEvent {
[INFO] [stdout]    |            -------------- `ExplosionEvent` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/mobile.rs:11:45
[INFO] [stdout]    |
[INFO] [stdout] 11 | #[derive(Clone, TypeName, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]    |                                             ^----------
[INFO] [stdout]    |                                             |
[INFO] [stdout]    |                                             `Deserialize` is not local
[INFO] [stdout]    |                                             move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_ExplosionEvent`
[INFO] [stdout] 12 | pub struct ExplosionEvent {
[INFO] [stdout]    |            -------------- `ExplosionEvent` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/mobile.rs:18:30
[INFO] [stdout]    |
[INFO] [stdout] 18 | #[derive(Clone, Copy, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]    |                              ^--------
[INFO] [stdout]    |                              |
[INFO] [stdout]    |                              `Serialize` is not local
[INFO] [stdout]    |                              move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_Angle`
[INFO] [stdout] 19 | pub struct Angle {
[INFO] [stdout]    |            ----- `Angle` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/mobile.rs:18:41
[INFO] [stdout]    |
[INFO] [stdout] 18 | #[derive(Clone, Copy, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]    |                                         ^----------
[INFO] [stdout]    |                                         |
[INFO] [stdout]    |                                         `Deserialize` is not local
[INFO] [stdout]    |                                         move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Angle`
[INFO] [stdout] 19 | pub struct Angle {
[INFO] [stdout]    |            ----- `Angle` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/mobile.rs:107:34
[INFO] [stdout]     |
[INFO] [stdout] 107 | #[derive(Clone, TypeName, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]     |                                  ^--------
[INFO] [stdout]     |                                  |
[INFO] [stdout]     |                                  `Serialize` is not local
[INFO] [stdout]     |                                  move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_Command`
[INFO] [stdout] 108 | pub enum Command {
[INFO] [stdout]     |          ------- `Command` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/mobile.rs:107:45
[INFO] [stdout]     |
[INFO] [stdout] 107 | #[derive(Clone, TypeName, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]     |                                             ^----------
[INFO] [stdout]     |                                             |
[INFO] [stdout]     |                                             `Deserialize` is not local
[INFO] [stdout]     |                                             move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Command`
[INFO] [stdout] 108 | pub enum Command {
[INFO] [stdout]     |          ------- `Command` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/mobile.rs:114:34
[INFO] [stdout]     |
[INFO] [stdout] 114 | #[derive(Clone, TypeName, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]     |                                  ^--------
[INFO] [stdout]     |                                  |
[INFO] [stdout]     |                                  `Serialize` is not local
[INFO] [stdout]     |                                  move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_KBot`
[INFO] [stdout] 115 | pub struct KBot {
[INFO] [stdout]     |            ---- `KBot` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/mobile.rs:114:45
[INFO] [stdout]     |
[INFO] [stdout] 114 | #[derive(Clone, TypeName, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]     |                                             ^----------
[INFO] [stdout]     |                                             |
[INFO] [stdout]     |                                             `Deserialize` is not local
[INFO] [stdout]     |                                             move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_KBot`
[INFO] [stdout] 115 | pub struct KBot {
[INFO] [stdout]     |            ---- `KBot` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/mobile.rs:193:34
[INFO] [stdout]     |
[INFO] [stdout] 193 | #[derive(Clone, TypeName, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]     |                                  ^--------
[INFO] [stdout]     |                                  |
[INFO] [stdout]     |                                  `Serialize` is not local
[INFO] [stdout]     |                                  move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_KinematicProjectile`
[INFO] [stdout] 194 | pub struct KinematicProjectile {
[INFO] [stdout]     |            ------------------- `KinematicProjectile` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/mobile.rs:193:45
[INFO] [stdout]     |
[INFO] [stdout] 193 | #[derive(Clone, TypeName, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]     |                                             ^----------
[INFO] [stdout]     |                                             |
[INFO] [stdout]     |                                             `Deserialize` is not local
[INFO] [stdout]     |                                             move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_KinematicProjectile`
[INFO] [stdout] 194 | pub struct KinematicProjectile {
[INFO] [stdout]     |            ------------------- `KinematicProjectile` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/mobile.rs:242:24
[INFO] [stdout]     |
[INFO] [stdout] 242 | #[derive(Clone, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]     |                        ^--------
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        `Serialize` is not local
[INFO] [stdout]     |                        move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_Arrow`
[INFO] [stdout] 243 | pub struct Arrow {
[INFO] [stdout]     |            ----- `Arrow` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/mobile.rs:242:35
[INFO] [stdout]     |
[INFO] [stdout] 242 | #[derive(Clone, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]     |                                   ^----------
[INFO] [stdout]     |                                   |
[INFO] [stdout]     |                                   `Deserialize` is not local
[INFO] [stdout]     |                                   move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Arrow`
[INFO] [stdout] 243 | pub struct Arrow {
[INFO] [stdout]     |            ----- `Arrow` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/moddef.rs:9:34
[INFO] [stdout]    |
[INFO] [stdout]  9 | #[derive(Clone, TypeName, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]    |                                  ^--------
[INFO] [stdout]    |                                  |
[INFO] [stdout]    |                                  `Serialize` is not local
[INFO] [stdout]    |                                  move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_ModDef`
[INFO] [stdout] 10 | pub struct ModDef {
[INFO] [stdout]    |            ------ `ModDef` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/moddef.rs:9:45
[INFO] [stdout]    |
[INFO] [stdout]  9 | #[derive(Clone, TypeName, Debug, Serialize, Deserialize, PartialEq)]
[INFO] [stdout]    |                                             ^----------
[INFO] [stdout]    |                                             |
[INFO] [stdout]    |                                             `Deserialize` is not local
[INFO] [stdout]    |                                             move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_ModDef`
[INFO] [stdout] 10 | pub struct ModDef {
[INFO] [stdout]    |            ------ `ModDef` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/unit.rs:11:35
[INFO] [stdout]    |
[INFO] [stdout] 11 | #[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
[INFO] [stdout]    |                                   ^--------
[INFO] [stdout]    |                                   |
[INFO] [stdout]    |                                   `Serialize` is not local
[INFO] [stdout]    |                                   move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_PlacedMesh`
[INFO] [stdout] 12 | pub struct PlacedMesh {
[INFO] [stdout]    |            ---------- `PlacedMesh` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/unit.rs:11:46
[INFO] [stdout]    |
[INFO] [stdout] 11 | #[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
[INFO] [stdout]    |                                              ^----------
[INFO] [stdout]    |                                              |
[INFO] [stdout]    |                                              `Deserialize` is not local
[INFO] [stdout]    |                                              move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_PlacedMesh`
[INFO] [stdout] 12 | pub struct PlacedMesh {
[INFO] [stdout]    |            ---------- `PlacedMesh` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/unit.rs:18:35
[INFO] [stdout]    |
[INFO] [stdout] 18 | #[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
[INFO] [stdout]    |                                   ^--------
[INFO] [stdout]    |                                   |
[INFO] [stdout]    |                                   `Serialize` is not local
[INFO] [stdout]    |                                   move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_PlacedCollider`
[INFO] [stdout] 19 | pub enum PlacedCollider {
[INFO] [stdout]    |          -------------- `PlacedCollider` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/unit.rs:18:46
[INFO] [stdout]    |
[INFO] [stdout] 18 | #[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
[INFO] [stdout]    |                                              ^----------
[INFO] [stdout]    |                                              |
[INFO] [stdout]    |                                              `Deserialize` is not local
[INFO] [stdout]    |                                              move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_PlacedCollider`
[INFO] [stdout] 19 | pub enum PlacedCollider {
[INFO] [stdout]    |          -------------- `PlacedCollider` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/unit.rs:23:35
[INFO] [stdout]    |
[INFO] [stdout] 23 | #[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
[INFO] [stdout]    |                                   ^--------
[INFO] [stdout]    |                                   |
[INFO] [stdout]    |                                   `Serialize` is not local
[INFO] [stdout]    |                                   move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_Joint`
[INFO] [stdout] 24 | pub enum Joint {
[INFO] [stdout]    |          ----- `Joint` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/unit.rs:23:46
[INFO] [stdout]    |
[INFO] [stdout] 23 | #[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
[INFO] [stdout]    |                                              ^----------
[INFO] [stdout]    |                                              |
[INFO] [stdout]    |                                              `Deserialize` is not local
[INFO] [stdout]    |                                              move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Joint`
[INFO] [stdout] 24 | pub enum Joint {
[INFO] [stdout]    |          ----- `Joint` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::mem::replace` that must be used
[INFO] [stdout]   --> src/unit.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 41 |         std::mem::replace(self, next);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: if you don't need the old value, you can just assign the new value directly
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 41 |         let _ = std::mem::replace(self, next);
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/unit.rs:45:55
[INFO] [stdout]    |
[INFO] [stdout] 45 | #[derive(Debug, Clone, typename::TypeName, PartialEq, Serialize, Deserialize)]
[INFO] [stdout]    |                                                       ^--------
[INFO] [stdout]    |                                                       |
[INFO] [stdout]    |                                                       `Serialize` is not local
[INFO] [stdout]    |                                                       move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_PartTree`
[INFO] [stdout] 46 | pub struct PartTree {
[INFO] [stdout]    |            -------- `PartTree` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/unit.rs:45:66
[INFO] [stdout]    |
[INFO] [stdout] 45 | #[derive(Debug, Clone, typename::TypeName, PartialEq, Serialize, Deserialize)]
[INFO] [stdout]    |                                                                  ^----------
[INFO] [stdout]    |                                                                  |
[INFO] [stdout]    |                                                                  `Deserialize` is not local
[INFO] [stdout]    |                                                                  move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_PartTree`
[INFO] [stdout] 46 | pub struct PartTree {
[INFO] [stdout]    |            -------- `PartTree` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/unit.rs:70:17
[INFO] [stdout]    |
[INFO] [stdout] 70 |     pub fn iter(&self) -> PartTreeIter {
[INFO] [stdout]    |                 ^^^^^     ^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 70 |     pub fn iter(&self) -> PartTreeIter<'_> {
[INFO] [stdout]    |                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/utils.rs:42:10
[INFO] [stdout]    |
[INFO] [stdout] 42 | #[derive(Serialize, Deserialize)]
[INFO] [stdout]    |          ^--------
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `Serialize` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_Id`
[INFO] [stdout] 43 | pub struct Id<T> {
[INFO] [stdout]    |            -- `Id` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/utils.rs:42:21
[INFO] [stdout]    |
[INFO] [stdout] 42 | #[derive(Serialize, Deserialize)]
[INFO] [stdout]    |                     ^----------
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     `Deserialize` is not local
[INFO] [stdout]    |                     move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Id`
[INFO] [stdout] 43 | pub struct Id<T> {
[INFO] [stdout]    |            -- `Id` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]   --> src/utils.rs:65:35
[INFO] [stdout]    |
[INFO] [stdout] 65 |         let x: [u8; 8] = unsafe { std::mem::transmute(self.value.to_le()) };
[INFO] [stdout]    |                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: there's also `to_le_bytes` and `to_be_bytes` if you expect a particular byte order
[INFO] [stdout]    = note: `#[warn(unnecessary_transmutes)]` on by default
[INFO] [stdout] help: replace this with
[INFO] [stdout]    |
[INFO] [stdout] 65 -         let x: [u8; 8] = unsafe { std::mem::transmute(self.value.to_le()) };
[INFO] [stdout] 65 +         let x: [u8; 8] = unsafe { u64::to_ne_bytes(self.value.to_le()) };
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] warning: unused dependency `flate2`
[INFO] [stderr]   --> Cargo.toml:11:1
[INFO] [stderr]    |
[INFO] [stderr] 11 | flate2 = "1.0"
[INFO] [stderr]    | ^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `flate2`
[INFO] [stderr] warning: `oxidator` (manifest) generated 1 warning
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 20s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: gfx-backend-vulkan v0.4.2, oxidator v0.2.0 (/opt/rustwide/workdir), relevant v0.4.2, rendy-memory v0.5.2
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
[INFO] running `Command { std: "docker" "inspect" "cadcd33b57b32e68fbae07cc00757264be4097941caa49990fabae8c3d03825c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "cadcd33b57b32e68fbae07cc00757264be4097941caa49990fabae8c3d03825c", kill_on_drop: false }`
[INFO] [stdout] cadcd33b57b32e68fbae07cc00757264be4097941caa49990fabae8c3d03825c
