[INFO] cloning repository https://github.com/pedrobritx/hexlands
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/pedrobritx/hexlands" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpedrobritx%2Fhexlands", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpedrobritx%2Fhexlands'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 885aefa7d597377d2fb2f7ce8004a0915b8cc4a0
[INFO] checking pedrobritx/hexlands/885aefa7d597377d2fb2f7ce8004a0915b8cc4a0 against 1af98b7cdf86932b76182a387f52f1be6f0c1be0 for pr-159706
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpedrobritx%2Fhexlands" "/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/pedrobritx/hexlands
[INFO] finished tweaking git repo https://github.com/pedrobritx/hexlands
[INFO] tweaked toml for git repo https://github.com/pedrobritx/hexlands written to /workspace/builds/worker-6-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/pedrobritx/hexlands on toolchain 1af98b7cdf86932b76182a387f52f1be6f0c1be0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1af98b7cdf86932b76182a387f52f1be6f0c1be0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/pedrobritx/hexlands 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" "+1af98b7cdf86932b76182a387f52f1be6f0c1be0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2021 which implies `resolver = "2"`
[INFO] [stderr]   |
[INFO] [stderr]   = note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest
[INFO] [stderr]   = note: to use the edition 2021 resolver, specify `workspace.resolver = "2"` in the workspace root's manifest
[INFO] [stderr]   = note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded wasm-bindgen v0.2.104
[INFO] [stderr]   Downloaded quote v1.0.41
[INFO] [stderr]   Downloaded bevy_macro_utils v0.11.3
[INFO] [stderr]   Downloaded bevy_math v0.11.3
[INFO] [stderr]   Downloaded wasm-bindgen-shared v0.2.104
[INFO] [stderr]   Downloaded wasm-bindgen-macro v0.2.104
[INFO] [stderr]   Downloaded unicode-ident v1.0.19
[INFO] [stderr]   Downloaded proc-macro2 v1.0.101
[INFO] [stderr]   Downloaded bevy_internal v0.11.3
[INFO] [stderr]   Downloaded bevy_ptr v0.11.3
[INFO] [stderr]   Downloaded bevy_a11y v0.11.3
[INFO] [stderr]   Downloaded cfg-if v1.0.3
[INFO] [stderr]   Downloaded android_log-sys v0.3.2
[INFO] [stderr]   Downloaded bevy_utils v0.11.3
[INFO] [stderr]   Downloaded bevy_utils_proc_macros v0.11.3
[INFO] [stderr]   Downloaded bevy_derive v0.11.3
[INFO] [stderr]   Downloaded bevy_tasks v0.11.3
[INFO] [stderr]   Downloaded bitflags v2.9.4
[INFO] [stderr]   Downloaded bevy_ecs_macros v0.11.3
[INFO] [stderr]   Downloaded bevy_hierarchy v0.11.3
[INFO] [stderr]   Downloaded bevy_transform v0.11.3
[INFO] [stderr]   Downloaded bevy_winit v0.11.3
[INFO] [stderr]   Downloaded redox_syscall v0.5.17
[INFO] [stderr]   Downloaded bevy_app v0.11.3
[INFO] [stderr]   Downloaded bevy_log v0.11.3
[INFO] [stderr]   Downloaded wasm-bindgen-macro-support v0.2.104
[INFO] [stderr]   Downloaded wasm-bindgen-backend v0.2.104
[INFO] [stderr]   Downloaded bytemuck_derive v1.10.1
[INFO] [stderr]   Downloaded bevy_input v0.11.3
[INFO] [stderr]   Downloaded bevy_window v0.11.3
[INFO] [stderr]   Downloaded bevy_core v0.11.3
[INFO] [stderr]   Downloaded wasi v0.14.7+wasi-0.2.4
[INFO] [stderr]   Downloaded find-msvc-tools v0.1.2
[INFO] [stderr]   Downloaded bevy_reflect_derive v0.11.3
[INFO] [stderr]   Downloaded bevy_text v0.11.3
[INFO] [stderr]   Downloaded xml-rs v0.8.27
[INFO] [stderr]   Downloaded glyph_brush_layout v0.2.4
[INFO] [stderr]   Downloaded js-sys v0.3.81
[INFO] [stderr]   Downloaded bytemuck v1.23.2
[INFO] [stderr]   Downloaded bevy_sprite v0.11.3
[INFO] [stderr]   Downloaded bevy_ui v0.11.3
[INFO] [stderr]   Downloaded windows-link v0.2.0
[INFO] [stderr]   Downloaded indexmap v2.11.4
[INFO] [stderr]   Downloaded cc v1.2.39
[INFO] [stderr]   Downloaded bevy_reflect v0.11.3
[INFO] [stderr]   Downloaded taffy v0.3.19
[INFO] [stderr]   Downloaded thiserror-core-impl v1.0.50
[INFO] [stderr]   Downloaded thiserror-core v1.0.50
[INFO] [stderr]   Downloaded bevy_render v0.11.3
[INFO] [stderr]   Downloaded bevy_time v0.11.3
[INFO] [stderr]   Downloaded bevy_render_macros v0.11.3
[INFO] [stderr]   Downloaded naga_oil v0.8.2
[INFO] [stderr]   Downloaded bevy_mikktspace v0.11.3
[INFO] [stderr]   Downloaded bevy_encase_derive v0.11.3
[INFO] [stderr]   Downloaded bevy_asset v0.11.3
[INFO] [stderr]   Downloaded syn v2.0.106
[INFO] [stderr]   Downloaded bevy_ecs v0.11.3
[INFO] [stderr]   Downloaded const_panic v0.2.15
[INFO] [stderr]   Downloaded typewit v1.14.2
[INFO] [stderr]   Downloaded filetime v0.2.26
[INFO] [stderr]   Downloaded windows-targets v0.53.4
[INFO] [stderr]   Downloaded bevy_diagnostic v0.11.3
[INFO] [stderr]   Downloaded gltf-derive v1.4.1
[INFO] [stderr]   Downloaded regex v1.11.3
[INFO] [stderr]   Downloaded gltf-json v1.4.1
[INFO] [stderr]   Downloaded bevy_animation v0.11.3
[INFO] [stderr]   Downloaded radsort v0.1.1
[INFO] [stderr]   Downloaded bevy_scene v0.11.3
[INFO] [stderr]   Downloaded bevy_gltf v0.11.3
[INFO] [stderr]   Downloaded gltf v1.4.1
[INFO] [stderr]   Downloaded bevy_gizmos v0.11.3
[INFO] [stderr]   Downloaded gilrs-core v0.5.15
[INFO] [stderr]   Downloaded glam v0.24.2
[INFO] [stderr]   Downloaded bevy_gilrs v0.11.3
[INFO] [stderr]   Downloaded bevy v0.11.3
[INFO] [stderr]   Downloaded winit v0.28.7
[INFO] [stderr]   Downloaded bevy_pbr v0.11.3
[INFO] [stderr]   Downloaded gilrs v0.10.10
[INFO] [stderr]   Downloaded bevy_audio v0.11.3
[INFO] [stderr]   Downloaded regex-automata v0.4.11
[INFO] [stderr]   Downloaded libc v0.2.176
[INFO] [stderr]   Downloaded bevy_core_pipeline v0.11.3
[INFO] [stderr]   Downloaded windows-sys v0.61.1
[INFO] [stderr]   Downloaded num_enum v0.7.4
[INFO] [stderr]   Downloaded num_enum_derive v0.7.4
[INFO] [stderr]   Downloaded toml_datetime v0.7.2
[INFO] [stderr]   Downloaded toml_edit v0.23.6
[INFO] [stderr]   Downloaded toml_parser v1.0.3
[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:00c5645b54fe3ce5dae1417175e3c7fb6a6646c021d554ecd63a097b8b9f3602" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 04570f90aa7584f0e4632ee6962c120cb42149c55de77ad8730e35d6276ea66e
[INFO] running `Command { std: "docker" "start" "04570f90aa7584f0e4632ee6962c120cb42149c55de77ad8730e35d6276ea66e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "04570f90aa7584f0e4632ee6962c120cb42149c55de77ad8730e35d6276ea66e", 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" "04570f90aa7584f0e4632ee6962c120cb42149c55de77ad8730e35d6276ea66e" "/opt/rustwide/cargo-home/bin/cargo" "+1af98b7cdf86932b76182a387f52f1be6f0c1be0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "04570f90aa7584f0e4632ee6962c120cb42149c55de77ad8730e35d6276ea66e", 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" "04570f90aa7584f0e4632ee6962c120cb42149c55de77ad8730e35d6276ea66e" "/opt/rustwide/cargo-home/bin/cargo" "+1af98b7cdf86932b76182a387f52f1be6f0c1be0" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr] warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2021 which implies `resolver = "2"`
[INFO] [stderr]   |
[INFO] [stderr]   = note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest
[INFO] [stderr]   = note: to use the edition 2021 resolver, specify `workspace.resolver = "2"` in the workspace root's manifest
[INFO] [stderr]   = note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions
[INFO] [stderr]    Compiling proc-macro2 v1.0.101
[INFO] [stderr]    Compiling quote v1.0.41
[INFO] [stderr]    Compiling unicode-ident v1.0.19
[INFO] [stderr]    Compiling libc v0.2.176
[INFO] [stderr]     Checking cfg-if v1.0.3
[INFO] [stderr]    Compiling autocfg v1.5.0
[INFO] [stderr]    Compiling zerocopy v0.8.27
[INFO] [stderr]    Compiling version_check v0.9.5
[INFO] [stderr]     Checking memchr v2.7.6
[INFO] [stderr]    Compiling pkg-config v0.3.32
[INFO] [stderr]    Compiling equivalent v1.0.2
[INFO] [stderr]    Compiling hashbrown v0.16.0
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]    Compiling winnow v0.5.40
[INFO] [stderr]     Checking tracing-core v0.1.34
[INFO] [stderr]     Checking log v0.4.28
[INFO] [stderr]     Checking allocator-api2 v0.2.21
[INFO] [stderr]    Compiling rustc-hash v1.1.0
[INFO] [stderr]    Compiling parking_lot_core v0.9.11
[INFO] [stderr]     Checking instant v0.1.13
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]     Checking futures-io v0.3.31
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]     Checking parking v2.2.1
[INFO] [stderr]    Compiling bit-vec v0.6.3
[INFO] [stderr]     Checking fixedbitset v0.4.2
[INFO] [stderr]     Checking fastrand v2.3.0
[INFO] [stderr]    Compiling lock_api v0.4.13
[INFO] [stderr]     Checking async-task v4.7.1
[INFO] [stderr]     Checking slab v0.4.11
[INFO] [stderr]     Checking waker-fn v1.2.0
[INFO] [stderr]    Compiling bit-set v0.5.3
[INFO] [stderr]     Checking futures-lite v2.6.1
[INFO] [stderr]     Checking concurrent-queue v2.5.0
[INFO] [stderr]     Checking event-listener v2.5.3
[INFO] [stderr]     Checking fastrand v1.9.0
[INFO] [stderr]     Checking thread_local v1.1.9
[INFO] [stderr]     Checking bevy_ptr v0.11.3
[INFO] [stderr]    Compiling indexmap v2.11.4
[INFO] [stderr]     Checking futures-lite v1.13.0
[INFO] [stderr]     Checking downcast-rs v1.2.1
[INFO] [stderr]     Checking async-channel v1.9.0
[INFO] [stderr]     Checking smol_str v0.2.2
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]     Checking aho-corasick v1.1.3
[INFO] [stderr]    Compiling syn v2.0.106
[INFO] [stderr]     Checking regex-syntax v0.8.6
[INFO] [stderr]     Checking sharded-slab v0.1.7
[INFO] [stderr]     Checking tracing-log v0.2.0
[INFO] [stderr]     Checking nu-ansi-term v0.50.1
[INFO] [stderr]     Checking tracing-log v0.1.4
[INFO] [stderr]    Compiling indexmap v1.9.3
[INFO] [stderr]     Checking byteorder v1.5.0
[INFO] [stderr]     Checking raw-window-handle v0.5.2
[INFO] [stderr]     Checking crossbeam-channel v0.5.15
[INFO] [stderr]    Compiling toml_edit v0.19.15
[INFO] [stderr]     Checking unicode-width v0.1.14
[INFO] [stderr]     Checking termcolor v1.4.1
[INFO] [stderr]     Checking unicode-xid v0.2.6
[INFO] [stderr]     Checking spirv v0.2.0+1.5.4
[INFO] [stderr]     Checking pp-rs v0.2.1
[INFO] [stderr]     Checking async-executor v1.13.3
[INFO] [stderr]     Checking codespan-reporting v0.11.1
[INFO] [stderr]    Compiling khronos-egl v4.1.0
[INFO] [stderr]     Checking libloading v0.7.4
[INFO] [stderr]     Checking bevy_tasks v0.11.3
[INFO] [stderr]     Checking simd-adler32 v0.3.7
[INFO] [stderr]     Checking hexf-parse v0.2.1
[INFO] [stderr]    Compiling ash v0.37.3+1.3.251
[INFO] [stderr]    Compiling crc32fast v1.5.0
[INFO] [stderr]     Checking gpu-alloc-types v0.2.0
[INFO] [stderr]     Checking adler2 v2.0.1
[INFO] [stderr]    Compiling anyhow v1.0.100
[INFO] [stderr]     Checking arrayvec v0.7.6
[INFO] [stderr]     Checking petgraph v0.6.5
[INFO] [stderr]     Checking walkdir v2.5.0
[INFO] [stderr]     Checking gpu-alloc v0.5.4
[INFO] [stderr]     Checking libloading v0.8.9
[INFO] [stderr]     Checking miniz_oxide v0.8.9
[INFO] [stderr]     Checking profiling v1.0.17
[INFO] [stderr]     Checking static_assertions v1.1.0
[INFO] [stderr]     Checking renderdoc-sys v1.1.0
[INFO] [stderr]     Checking glow v0.12.3
[INFO] [stderr]    Compiling thiserror-core v1.0.50
[INFO] [stderr]     Checking regex-automata v0.4.11
[INFO] [stderr]     Checking fdeflate v0.3.7
[INFO] [stderr]     Checking const_soft_float v0.1.4
[INFO] [stderr]     Checking typewit v1.14.2
[INFO] [stderr]     Checking twox-hash v1.6.3
[INFO] [stderr]     Checking flate2 v1.1.2
[INFO] [stderr]     Checking regex-syntax v0.6.29
[INFO] [stderr]     Checking const_panic v0.2.15
[INFO] [stderr]     Checking getrandom v0.3.3
[INFO] [stderr]     Checking inotify-sys v0.1.5
[INFO] [stderr]     Checking mio v0.8.11
[INFO] [stderr]     Checking sysinfo v0.29.11
[INFO] [stderr]     Checking inotify v0.9.6
[INFO] [stderr]     Checking filetime v0.2.26
[INFO] [stderr]     Checking constgebra v0.1.4
[INFO] [stderr]     Checking data-encoding v2.9.0
[INFO] [stderr]     Checking ktx2 v0.3.0
[INFO] [stderr]     Checking radsort v0.1.1
[INFO] [stderr]     Checking notify v6.1.1
[INFO] [stderr]    Compiling alsa-sys v0.3.1
[INFO] [stderr]     Checking png v0.17.16
[INFO] [stderr]    Compiling cfg_aliases v0.2.1
[INFO] [stderr]    Compiling xml-rs v0.8.27
[INFO] [stderr]    Compiling nix v0.29.0
[INFO] [stderr]     Checking euclid v0.22.11
[INFO] [stderr]    Compiling libudev-sys v0.1.4
[INFO] [stderr]    Compiling x11-dl v2.21.0
[INFO] [stderr]     Checking ttf-parser v0.25.1
[INFO] [stderr]    Compiling serde_json v1.0.145
[INFO] [stderr]     Checking svg_fmt v0.4.5
[INFO] [stderr]     Checking getrandom v0.2.16
[INFO] [stderr]     Checking approx v0.5.1
[INFO] [stderr]    Compiling slotmap v1.0.7
[INFO] [stderr]    Compiling cpal v0.15.3
[INFO] [stderr]     Checking tinyvec_macros v0.1.1
[INFO] [stderr]     Checking accesskit v0.11.2
[INFO] [stderr]     Checking ab_glyph_rasterizer v0.1.10
[INFO] [stderr]     Checking itoa v1.0.15
[INFO] [stderr]    Compiling inflections v1.1.1
[INFO] [stderr]     Checking ryu v1.0.20
[INFO] [stderr]     Checking rectangle-pack v0.4.2
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking tinyvec v1.10.0
[INFO] [stderr]     Checking inotify v0.10.2
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]     Checking ogg v0.8.0
[INFO] [stderr]     Checking guillotiere v0.6.2
[INFO] [stderr]     Checking base64 v0.21.7
[INFO] [stderr]     Checking vec_map v0.8.2
[INFO] [stderr]     Checking dasp_sample v0.11.0
[INFO] [stderr]    Compiling gilrs v0.10.10
[INFO] [stderr]     Checking xi-unicode v0.3.0
[INFO] [stderr]     Checking lewton v0.10.2
[INFO] [stderr]    Compiling wayland-scanner v0.29.5
[INFO] [stderr]     Checking grid v0.10.0
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking taffy v0.3.19
[INFO] [stderr]     Checking matchers v0.2.0
[INFO] [stderr]     Checking regex v1.11.3
[INFO] [stderr]     Checking owned_ttf_parser v0.25.1
[INFO] [stderr]    Compiling bevy_macro_utils v0.11.3
[INFO] [stderr]    Compiling encase_derive_impl v0.6.1
[INFO] [stderr]    Compiling winit v0.28.7
[INFO] [stderr]     Checking ab_glyph v0.2.32
[INFO] [stderr]     Checking glyph_brush_layout v0.2.4
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling bytemuck_derive v1.10.1
[INFO] [stderr]    Compiling tracing-attributes v0.1.30
[INFO] [stderr]    Compiling bevy_utils_proc_macros v0.11.3
[INFO] [stderr]    Compiling bevy_ecs_macros v0.11.3
[INFO] [stderr]    Compiling bevy_derive v0.11.3
[INFO] [stderr]    Compiling thiserror-core-impl v1.0.50
[INFO] [stderr]    Compiling encase_derive v0.6.1
[INFO] [stderr]    Compiling bevy_render_macros v0.11.3
[INFO] [stderr]    Compiling bevy_encase_derive v0.11.3
[INFO] [stderr]    Compiling gltf-derive v1.4.1
[INFO] [stderr]     Checking ruzstd v0.4.0
[INFO] [stderr]     Checking bytemuck v1.23.2
[INFO] [stderr]     Checking tracing v0.1.41
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking image v0.24.9
[INFO] [stderr]     Checking naga v0.12.3
[INFO] [stderr]     Checking accesskit_winit v0.14.4
[INFO] [stderr]     Checking serde v1.0.228
[INFO] [stderr]    Compiling uuid v1.18.1
[INFO] [stderr]     Checking smallvec v1.15.1
[INFO] [stderr]     Checking hashbrown v0.14.5
[INFO] [stderr]     Checking glam v0.24.2
[INFO] [stderr]     Checking erased-serde v0.3.31
[INFO] [stderr]     Checking bitflags v2.9.4
[INFO] [stderr]     Checking gltf-json v1.4.1
[INFO] [stderr]     Checking hexlands_core v0.1.0 (/opt/rustwide/workdir/crates/core)
[INFO] [stdout] error[E0252]: the name `BTreeMap` is defined multiple times
[INFO] [stdout]  --> crates/core/src/engine.rs:4:24
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::collections::{BTreeMap, BTreeSet};
[INFO] [stdout]   |                        -------- previous import of the type `BTreeMap` here
[INFO] [stdout] 3 | use crate::types::*;
[INFO] [stdout] 4 | use std::collections::{BTreeMap, BTreeSet};
[INFO] [stdout]   |                        ^^^^^^^^--
[INFO] [stdout]   |                        |
[INFO] [stdout]   |                        `BTreeMap` reimported here
[INFO] [stdout]   |                        help: remove unnecessary import
[INFO] [stdout]   |
[INFO] [stdout]   = note: `BTreeMap` must be defined only once in the type namespace of this module
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0252]: the name `BTreeSet` is defined multiple times
[INFO] [stdout]  --> crates/core/src/engine.rs:4:34
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::collections::{BTreeMap, BTreeSet};
[INFO] [stdout]   |                                  -------- previous import of the type `BTreeSet` here
[INFO] [stdout] 3 | use crate::types::*;
[INFO] [stdout] 4 | use std::collections::{BTreeMap, BTreeSet};
[INFO] [stdout]   |                                  ^^^^^^^^ `BTreeSet` reimported here
[INFO] [stdout]   |
[INFO] [stdout]   = note: `BTreeSet` must be defined only once in the type namespace of this module
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking gpu-descriptor-types v0.1.2
[INFO] [stderr]     Checking wgpu-types v0.16.1
[INFO] [stderr]     Checking alsa v0.9.1
[INFO] [stderr]     Checking ron v0.8.1
[INFO] [stdout] warning: unused import: `crate::types::*`
[INFO] [stdout]  --> crates/core/src/engine.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::types::*;
[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 imports: `BTreeMap` and `BTreeSet`
[INFO] [stdout]  --> crates/core/src/engine.rs:4:24
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::collections::{BTreeMap, BTreeSet};
[INFO] [stdout]   |                        ^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::types::*`
[INFO] [stdout]  --> crates/core/src/rules.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::types::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking tracing-subscriber v0.3.20
[INFO] [stderr]    Compiling bevy_reflect_derive v0.11.3
[INFO] [stdout] error[E0277]: the trait bound `types::Resource: Ord` is not satisfied
[INFO] [stdout]     --> crates/core/src/types.rs:25:26
[INFO] [stdout]      |
[INFO] [stdout]   25 | pub struct Inventory(pub BTreeMap<Resource, u8>);
[INFO] [stdout]      |                          ^^^^^^^^^^^^^^^^^^^^^^ the trait `Ord` is not implemented for `types::Resource`
[INFO] [stdout]      |
[INFO] [stdout] help: the trait `Deserialize<'_>` is conditionally implemented for `BTreeMap<K, V>`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/impls.rs:1509:9
[INFO] [stdout]      |
[INFO] [stdout] 1509 | /         impl<'de, K, V $(, $typaram)*> Deserialize<'de> for $ty<K, V $(, $typaram)*>
[INFO] [stdout] 1510 | |         where
[INFO] [stdout] 1511 | |             K: Deserialize<'de> $(+ $kbound1 $(+ $kbound2)*)*,
[INFO] [stdout]      | |                                     -------- unsatisfied requirement introduced here: `types::Resource: Ord`
[INFO] [stdout] 1512 | |             V: Deserialize<'de>,
[INFO] [stdout]      | |________________________________^
[INFO] [stdout] ...
[INFO] [stdout] 1557 | / map_impl! {
[INFO] [stdout] 1558 | |     #[cfg(any(feature = "std", feature = "alloc"))]
[INFO] [stdout] 1559 | |     #[cfg_attr(docsrs, doc(cfg(any(feature = "std", feature = "alloc"))))]
[INFO] [stdout] 1560 | |     BTreeMap<K: Ord, V>,
[INFO] [stdout] 1561 | |     map,
[INFO] [stdout] 1562 | |     BTreeMap::new(),
[INFO] [stdout] 1563 | | }
[INFO] [stdout]      | |_- in this macro invocation
[INFO] [stdout]      = note: required for `BTreeMap<types::Resource, u8>` to implement `Deserialize<'_>`
[INFO] [stdout]      = note: this error originates in the macro `map_impl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider annotating `types::Resource` with `#[derive(Ord)]`
[INFO] [stdout]      |
[INFO] [stdout]   11 + #[derive(Ord)]
[INFO] [stdout]   12 | pub enum Resource { Timber, Brick, Fiber, Ore, Grain }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `types::Resource: Ord` is not satisfied
[INFO] [stdout]     --> crates/core/src/types.rs:25:26
[INFO] [stdout]      |
[INFO] [stdout]   25 | pub struct Inventory(pub BTreeMap<Resource, u8>);
[INFO] [stdout]      |                          ^^^^^^^^^^^^^^^^^^^^^^ the trait `Ord` is not implemented for `types::Resource`
[INFO] [stdout]      |
[INFO] [stdout] help: the trait `Deserialize<'_>` is conditionally implemented for `BTreeMap<K, V>`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/impls.rs:1509:9
[INFO] [stdout]      |
[INFO] [stdout] 1509 | /         impl<'de, K, V $(, $typaram)*> Deserialize<'de> for $ty<K, V $(, $typaram)*>
[INFO] [stdout] 1510 | |         where
[INFO] [stdout] 1511 | |             K: Deserialize<'de> $(+ $kbound1 $(+ $kbound2)*)*,
[INFO] [stdout]      | |                                     -------- unsatisfied requirement introduced here: `types::Resource: Ord`
[INFO] [stdout] 1512 | |             V: Deserialize<'de>,
[INFO] [stdout]      | |________________________________^
[INFO] [stdout] ...
[INFO] [stdout] 1557 | / map_impl! {
[INFO] [stdout] 1558 | |     #[cfg(any(feature = "std", feature = "alloc"))]
[INFO] [stdout] 1559 | |     #[cfg_attr(docsrs, doc(cfg(any(feature = "std", feature = "alloc"))))]
[INFO] [stdout] 1560 | |     BTreeMap<K: Ord, V>,
[INFO] [stdout] 1561 | |     map,
[INFO] [stdout] 1562 | |     BTreeMap::new(),
[INFO] [stdout] 1563 | | }
[INFO] [stdout]      | |_- in this macro invocation
[INFO] [stdout]      = note: required for `BTreeMap<types::Resource, u8>` to implement `Deserialize<'_>`
[INFO] [stdout] note: required by a bound in `next_element`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/mod.rs:1771:12
[INFO] [stdout]      |
[INFO] [stdout] 1769 |     fn next_element<T>(&mut self) -> Result<Option<T>, Self::Error>
[INFO] [stdout]      |        ------------ required by a bound in this associated function
[INFO] [stdout] 1770 |     where
[INFO] [stdout] 1771 |         T: Deserialize<'de>,
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^ required by this bound in `SeqAccess::next_element`
[INFO] [stdout]      = note: this error originates in the macro `map_impl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider annotating `types::Resource` with `#[derive(Ord)]`
[INFO] [stdout]      |
[INFO] [stdout]   11 + #[derive(Ord)]
[INFO] [stdout]   12 | pub enum Resource { Timber, Brick, Fiber, Ore, Grain }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `types::Axial: Ord` is not satisfied
[INFO] [stdout]     --> crates/core/src/types.rs:32:17
[INFO] [stdout]      |
[INFO] [stdout]   32 |     pub routes: BTreeSet<(Axial, Axial)>,
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Ord` is not implemented for `types::Axial`
[INFO] [stdout]      |
[INFO] [stdout] help: the trait `Deserialize<'_>` is conditionally implemented for `BTreeSet<T>`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/impls.rs:989:9
[INFO] [stdout]      |
[INFO] [stdout]  989 | /         impl<'de, T $(, $typaram)*> Deserialize<'de> for $ty<T $(, $typaram)*>
[INFO] [stdout]  990 | |         where
[INFO] [stdout]  991 | |             T: Deserialize<'de> $(+ $tbound1 $(+ $tbound2)*)*,
[INFO] [stdout]      | |__________________________________________________--------____^
[INFO] [stdout]      |                                                    |
[INFO] [stdout]      |                                                    unsatisfied requirement introduced here: `(types::Axial, types::Axial): Ord`
[INFO] [stdout] ...
[INFO] [stdout] 1087 | / seq_impl!(
[INFO] [stdout] 1088 | |     #[cfg(any(feature = "std", feature = "alloc"))]
[INFO] [stdout] 1089 | |     #[cfg_attr(docsrs, doc(cfg(any(feature = "std", feature = "alloc"))))]
[INFO] [stdout] 1090 | |     BTreeSet<T: Eq + Ord>,
[INFO] [stdout] ...    |
[INFO] [stdout] 1095 | |     BTreeSet::insert
[INFO] [stdout] 1096 | | );
[INFO] [stdout]      | |_- in this macro invocation
[INFO] [stdout]      = note: required for `(types::Axial, types::Axial)` to implement `Ord`
[INFO] [stdout]      = note: required for `BTreeSet<(types::Axial, types::Axial)>` to implement `Deserialize<'_>`
[INFO] [stdout] note: required by a bound in `next_element`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/mod.rs:1771:12
[INFO] [stdout]      |
[INFO] [stdout] 1769 |     fn next_element<T>(&mut self) -> Result<Option<T>, Self::Error>
[INFO] [stdout]      |        ------------ required by a bound in this associated function
[INFO] [stdout] 1770 |     where
[INFO] [stdout] 1771 |         T: Deserialize<'de>,
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^ required by this bound in `SeqAccess::next_element`
[INFO] [stdout]      = note: this error originates in the macro `seq_impl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider annotating `types::Axial` with `#[derive(Ord)]`
[INFO] [stdout]      |
[INFO] [stdout]    5 + #[derive(Ord)]
[INFO] [stdout]    6 | pub struct Axial { pub q: i32, pub r: i32 } // axial hex coords
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `types::Axial: Ord` is not satisfied
[INFO] [stdout]     --> crates/core/src/types.rs:33:19
[INFO] [stdout]      |
[INFO] [stdout]   33 |     pub outposts: BTreeSet<Axial>,
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^ the trait `Ord` is not implemented for `types::Axial`
[INFO] [stdout]      |
[INFO] [stdout] help: the trait `Deserialize<'_>` is conditionally implemented for `BTreeSet<T>`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/impls.rs:989:9
[INFO] [stdout]      |
[INFO] [stdout]  989 | /         impl<'de, T $(, $typaram)*> Deserialize<'de> for $ty<T $(, $typaram)*>
[INFO] [stdout]  990 | |         where
[INFO] [stdout]  991 | |             T: Deserialize<'de> $(+ $tbound1 $(+ $tbound2)*)*,
[INFO] [stdout]      | |__________________________________________________--------____^
[INFO] [stdout]      |                                                    |
[INFO] [stdout]      |                                                    unsatisfied requirement introduced here: `types::Axial: Ord`
[INFO] [stdout] ...
[INFO] [stdout] 1087 | / seq_impl!(
[INFO] [stdout] 1088 | |     #[cfg(any(feature = "std", feature = "alloc"))]
[INFO] [stdout] 1089 | |     #[cfg_attr(docsrs, doc(cfg(any(feature = "std", feature = "alloc"))))]
[INFO] [stdout] 1090 | |     BTreeSet<T: Eq + Ord>,
[INFO] [stdout] ...    |
[INFO] [stdout] 1095 | |     BTreeSet::insert
[INFO] [stdout] 1096 | | );
[INFO] [stdout]      | |_- in this macro invocation
[INFO] [stdout]      = note: required for `BTreeSet<types::Axial>` to implement `Deserialize<'_>`
[INFO] [stdout] note: required by a bound in `next_element`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/mod.rs:1771:12
[INFO] [stdout]      |
[INFO] [stdout] 1769 |     fn next_element<T>(&mut self) -> Result<Option<T>, Self::Error>
[INFO] [stdout]      |        ------------ required by a bound in this associated function
[INFO] [stdout] 1770 |     where
[INFO] [stdout] 1771 |         T: Deserialize<'de>,
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^ required by this bound in `SeqAccess::next_element`
[INFO] [stdout]      = note: this error originates in the macro `seq_impl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider annotating `types::Axial` with `#[derive(Ord)]`
[INFO] [stdout]      |
[INFO] [stdout]    5 + #[derive(Ord)]
[INFO] [stdout]    6 | pub struct Axial { pub q: i32, pub r: i32 } // axial hex coords
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `types::Axial: Ord` is not satisfied
[INFO] [stdout]     --> crates/core/src/types.rs:34:16
[INFO] [stdout]      |
[INFO] [stdout]   34 |     pub towns: BTreeSet<Axial>,
[INFO] [stdout]      |                ^^^^^^^^^^^^^^^ the trait `Ord` is not implemented for `types::Axial`
[INFO] [stdout]      |
[INFO] [stdout] help: the trait `Deserialize<'_>` is conditionally implemented for `BTreeSet<T>`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/impls.rs:989:9
[INFO] [stdout]      |
[INFO] [stdout]  989 | /         impl<'de, T $(, $typaram)*> Deserialize<'de> for $ty<T $(, $typaram)*>
[INFO] [stdout]  990 | |         where
[INFO] [stdout]  991 | |             T: Deserialize<'de> $(+ $tbound1 $(+ $tbound2)*)*,
[INFO] [stdout]      | |__________________________________________________--------____^
[INFO] [stdout]      |                                                    |
[INFO] [stdout]      |                                                    unsatisfied requirement introduced here: `types::Axial: Ord`
[INFO] [stdout] ...
[INFO] [stdout] 1087 | / seq_impl!(
[INFO] [stdout] 1088 | |     #[cfg(any(feature = "std", feature = "alloc"))]
[INFO] [stdout] 1089 | |     #[cfg_attr(docsrs, doc(cfg(any(feature = "std", feature = "alloc"))))]
[INFO] [stdout] 1090 | |     BTreeSet<T: Eq + Ord>,
[INFO] [stdout] ...    |
[INFO] [stdout] 1095 | |     BTreeSet::insert
[INFO] [stdout] 1096 | | );
[INFO] [stdout]      | |_- in this macro invocation
[INFO] [stdout]      = note: required for `BTreeSet<types::Axial>` to implement `Deserialize<'_>`
[INFO] [stdout] note: required by a bound in `next_element`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/mod.rs:1771:12
[INFO] [stdout]      |
[INFO] [stdout] 1769 |     fn next_element<T>(&mut self) -> Result<Option<T>, Self::Error>
[INFO] [stdout]      |        ------------ required by a bound in this associated function
[INFO] [stdout] 1770 |     where
[INFO] [stdout] 1771 |         T: Deserialize<'de>,
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^ required by this bound in `SeqAccess::next_element`
[INFO] [stdout]      = note: this error originates in the macro `seq_impl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider annotating `types::Axial` with `#[derive(Ord)]`
[INFO] [stdout]      |
[INFO] [stdout]    5 + #[derive(Ord)]
[INFO] [stdout]    6 | pub struct Axial { pub q: i32, pub r: i32 } // axial hex coords
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `types::Axial: Ord` is not satisfied
[INFO] [stdout]     --> crates/core/src/types.rs:32:17
[INFO] [stdout]      |
[INFO] [stdout]   32 |     pub routes: BTreeSet<(Axial, Axial)>,
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Ord` is not implemented for `types::Axial`
[INFO] [stdout]      |
[INFO] [stdout] help: the trait `Deserialize<'_>` is conditionally implemented for `BTreeSet<T>`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/impls.rs:989:9
[INFO] [stdout]      |
[INFO] [stdout]  989 | /         impl<'de, T $(, $typaram)*> Deserialize<'de> for $ty<T $(, $typaram)*>
[INFO] [stdout]  990 | |         where
[INFO] [stdout]  991 | |             T: Deserialize<'de> $(+ $tbound1 $(+ $tbound2)*)*,
[INFO] [stdout]      | |__________________________________________________--------____^
[INFO] [stdout]      |                                                    |
[INFO] [stdout]      |                                                    unsatisfied requirement introduced here: `(types::Axial, types::Axial): Ord`
[INFO] [stdout] ...
[INFO] [stdout] 1087 | / seq_impl!(
[INFO] [stdout] 1088 | |     #[cfg(any(feature = "std", feature = "alloc"))]
[INFO] [stdout] 1089 | |     #[cfg_attr(docsrs, doc(cfg(any(feature = "std", feature = "alloc"))))]
[INFO] [stdout] 1090 | |     BTreeSet<T: Eq + Ord>,
[INFO] [stdout] ...    |
[INFO] [stdout] 1095 | |     BTreeSet::insert
[INFO] [stdout] 1096 | | );
[INFO] [stdout]      | |_- in this macro invocation
[INFO] [stdout]      = note: required for `(types::Axial, types::Axial)` to implement `Ord`
[INFO] [stdout]      = note: required for `BTreeSet<(types::Axial, types::Axial)>` to implement `Deserialize<'_>`
[INFO] [stdout] note: required by a bound in `next_value`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/mod.rs:1916:12
[INFO] [stdout]      |
[INFO] [stdout] 1914 |     fn next_value<V>(&mut self) -> Result<V, Self::Error>
[INFO] [stdout]      |        ---------- required by a bound in this associated function
[INFO] [stdout] 1915 |     where
[INFO] [stdout] 1916 |         V: Deserialize<'de>,
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^ required by this bound in `MapAccess::next_value`
[INFO] [stdout]      = note: this error originates in the macro `seq_impl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider annotating `types::Axial` with `#[derive(Ord)]`
[INFO] [stdout]      |
[INFO] [stdout]    5 + #[derive(Ord)]
[INFO] [stdout]    6 | pub struct Axial { pub q: i32, pub r: i32 } // axial hex coords
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `types::Axial: Ord` is not satisfied
[INFO] [stdout]     --> crates/core/src/types.rs:33:19
[INFO] [stdout]      |
[INFO] [stdout]   33 |     pub outposts: BTreeSet<Axial>,
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^ the trait `Ord` is not implemented for `types::Axial`
[INFO] [stdout]      |
[INFO] [stdout] help: the trait `Deserialize<'_>` is conditionally implemented for `BTreeSet<T>`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/impls.rs:989:9
[INFO] [stdout]      |
[INFO] [stdout]  989 | /         impl<'de, T $(, $typaram)*> Deserialize<'de> for $ty<T $(, $typaram)*>
[INFO] [stdout]  990 | |         where
[INFO] [stdout]  991 | |             T: Deserialize<'de> $(+ $tbound1 $(+ $tbound2)*)*,
[INFO] [stdout]      | |__________________________________________________--------____^
[INFO] [stdout]      |                                                    |
[INFO] [stdout]      |                                                    unsatisfied requirement introduced here: `types::Axial: Ord`
[INFO] [stdout] ...
[INFO] [stdout] 1087 | / seq_impl!(
[INFO] [stdout] 1088 | |     #[cfg(any(feature = "std", feature = "alloc"))]
[INFO] [stdout] 1089 | |     #[cfg_attr(docsrs, doc(cfg(any(feature = "std", feature = "alloc"))))]
[INFO] [stdout] 1090 | |     BTreeSet<T: Eq + Ord>,
[INFO] [stdout] ...    |
[INFO] [stdout] 1095 | |     BTreeSet::insert
[INFO] [stdout] 1096 | | );
[INFO] [stdout]      | |_- in this macro invocation
[INFO] [stdout]      = note: required for `BTreeSet<types::Axial>` to implement `Deserialize<'_>`
[INFO] [stdout] note: required by a bound in `next_value`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/mod.rs:1916:12
[INFO] [stdout]      |
[INFO] [stdout] 1914 |     fn next_value<V>(&mut self) -> Result<V, Self::Error>
[INFO] [stdout]      |        ---------- required by a bound in this associated function
[INFO] [stdout] 1915 |     where
[INFO] [stdout] 1916 |         V: Deserialize<'de>,
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^ required by this bound in `MapAccess::next_value`
[INFO] [stdout]      = note: this error originates in the macro `seq_impl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider annotating `types::Axial` with `#[derive(Ord)]`
[INFO] [stdout]      |
[INFO] [stdout]    5 + #[derive(Ord)]
[INFO] [stdout]    6 | pub struct Axial { pub q: i32, pub r: i32 } // axial hex coords
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `types::Axial: Ord` is not satisfied
[INFO] [stdout]     --> crates/core/src/types.rs:34:16
[INFO] [stdout]      |
[INFO] [stdout]   34 |     pub towns: BTreeSet<Axial>,
[INFO] [stdout]      |                ^^^^^^^^^^^^^^^ the trait `Ord` is not implemented for `types::Axial`
[INFO] [stdout]      |
[INFO] [stdout] help: the trait `Deserialize<'_>` is conditionally implemented for `BTreeSet<T>`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/impls.rs:989:9
[INFO] [stdout]      |
[INFO] [stdout]  989 | /         impl<'de, T $(, $typaram)*> Deserialize<'de> for $ty<T $(, $typaram)*>
[INFO] [stdout]  990 | |         where
[INFO] [stdout]  991 | |             T: Deserialize<'de> $(+ $tbound1 $(+ $tbound2)*)*,
[INFO] [stdout]      | |__________________________________________________--------____^
[INFO] [stdout]      |                                                    |
[INFO] [stdout]      |                                                    unsatisfied requirement introduced here: `types::Axial: Ord`
[INFO] [stdout] ...
[INFO] [stdout] 1087 | / seq_impl!(
[INFO] [stdout] 1088 | |     #[cfg(any(feature = "std", feature = "alloc"))]
[INFO] [stdout] 1089 | |     #[cfg_attr(docsrs, doc(cfg(any(feature = "std", feature = "alloc"))))]
[INFO] [stdout] 1090 | |     BTreeSet<T: Eq + Ord>,
[INFO] [stdout] ...    |
[INFO] [stdout] 1095 | |     BTreeSet::insert
[INFO] [stdout] 1096 | | );
[INFO] [stdout]      | |_- in this macro invocation
[INFO] [stdout]      = note: required for `BTreeSet<types::Axial>` to implement `Deserialize<'_>`
[INFO] [stdout] note: required by a bound in `next_value`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/mod.rs:1916:12
[INFO] [stdout]      |
[INFO] [stdout] 1914 |     fn next_value<V>(&mut self) -> Result<V, Self::Error>
[INFO] [stdout]      |        ---------- required by a bound in this associated function
[INFO] [stdout] 1915 |     where
[INFO] [stdout] 1916 |         V: Deserialize<'de>,
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^ required by this bound in `MapAccess::next_value`
[INFO] [stdout]      = note: this error originates in the macro `seq_impl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider annotating `types::Axial` with `#[derive(Ord)]`
[INFO] [stdout]      |
[INFO] [stdout]    5 + #[derive(Ord)]
[INFO] [stdout]    6 | pub struct Axial { pub q: i32, pub r: i32 } // axial hex coords
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `types::Axial: Ord` is not satisfied
[INFO] [stdout]     --> crates/core/src/types.rs:27:35
[INFO] [stdout]      |
[INFO] [stdout]   27 | #[derive(Clone, Debug, Serialize, Deserialize)]
[INFO] [stdout]      |                                   ^^^^^^^^^^^ the trait `Ord` is not implemented for `types::Axial`
[INFO] [stdout]      |
[INFO] [stdout] help: the trait `Deserialize<'_>` is conditionally implemented for `BTreeSet<T>`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/impls.rs:989:9
[INFO] [stdout]      |
[INFO] [stdout]  989 | /         impl<'de, T $(, $typaram)*> Deserialize<'de> for $ty<T $(, $typaram)*>
[INFO] [stdout]  990 | |         where
[INFO] [stdout]  991 | |             T: Deserialize<'de> $(+ $tbound1 $(+ $tbound2)*)*,
[INFO] [stdout]      | |__________________________________________________--------____^
[INFO] [stdout]      |                                                    |
[INFO] [stdout]      |                                                    unsatisfied requirement introduced here: `(types::Axial, types::Axial): Ord`
[INFO] [stdout] ...
[INFO] [stdout] 1087 | / seq_impl!(
[INFO] [stdout] 1088 | |     #[cfg(any(feature = "std", feature = "alloc"))]
[INFO] [stdout] 1089 | |     #[cfg_attr(docsrs, doc(cfg(any(feature = "std", feature = "alloc"))))]
[INFO] [stdout] 1090 | |     BTreeSet<T: Eq + Ord>,
[INFO] [stdout] ...    |
[INFO] [stdout] 1095 | |     BTreeSet::insert
[INFO] [stdout] 1096 | | );
[INFO] [stdout]      | |_- in this macro invocation
[INFO] [stdout]      = note: required for `(types::Axial, types::Axial)` to implement `Ord`
[INFO] [stdout]      = note: required for `BTreeSet<(types::Axial, types::Axial)>` to implement `Deserialize<'_>`
[INFO] [stdout] note: required by a bound in `types::_::_serde::__private228::de::missing_field`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/serde-1.0.228/src/private/de.rs:26:8
[INFO] [stdout]      |
[INFO] [stdout]   24 | pub fn missing_field<'de, V, E>(field: &'static str) -> Result<V, E>
[INFO] [stdout]      |        ------------- required by a bound in this function
[INFO] [stdout]   25 | where
[INFO] [stdout]   26 |     V: Deserialize<'de>,
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^ required by this bound in `missing_field`
[INFO] [stdout]      = note: this error originates in the derive macro `Deserialize` which comes from the expansion of the macro `seq_impl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider annotating `types::Axial` with `#[derive(Ord)]`
[INFO] [stdout]      |
[INFO] [stdout]    5 + #[derive(Ord)]
[INFO] [stdout]    6 | pub struct Axial { pub q: i32, pub r: i32 } // axial hex coords
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `types::Axial: Ord` is not satisfied
[INFO] [stdout]     --> crates/core/src/types.rs:48:16
[INFO] [stdout]      |
[INFO] [stdout]   48 |     pub tiles: BTreeMap<Axial, Tile>,
[INFO] [stdout]      |                ^^^^^^^^^^^^^^^^^^^^^ the trait `Ord` is not implemented for `types::Axial`
[INFO] [stdout]      |
[INFO] [stdout] help: the trait `Deserialize<'_>` is conditionally implemented for `BTreeMap<K, V>`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/impls.rs:1509:9
[INFO] [stdout]      |
[INFO] [stdout] 1509 | /         impl<'de, K, V $(, $typaram)*> Deserialize<'de> for $ty<K, V $(, $typaram)*>
[INFO] [stdout] 1510 | |         where
[INFO] [stdout] 1511 | |             K: Deserialize<'de> $(+ $kbound1 $(+ $kbound2)*)*,
[INFO] [stdout]      | |                                     -------- unsatisfied requirement introduced here: `types::Axial: Ord`
[INFO] [stdout] 1512 | |             V: Deserialize<'de>,
[INFO] [stdout]      | |________________________________^
[INFO] [stdout] ...
[INFO] [stdout] 1557 | / map_impl! {
[INFO] [stdout] 1558 | |     #[cfg(any(feature = "std", feature = "alloc"))]
[INFO] [stdout] 1559 | |     #[cfg_attr(docsrs, doc(cfg(any(feature = "std", feature = "alloc"))))]
[INFO] [stdout] 1560 | |     BTreeMap<K: Ord, V>,
[INFO] [stdout] 1561 | |     map,
[INFO] [stdout] 1562 | |     BTreeMap::new(),
[INFO] [stdout] 1563 | | }
[INFO] [stdout]      | |_- in this macro invocation
[INFO] [stdout]      = note: required for `BTreeMap<types::Axial, Tile>` to implement `Deserialize<'_>`
[INFO] [stdout] note: required by a bound in `next_element`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/mod.rs:1771:12
[INFO] [stdout]      |
[INFO] [stdout] 1769 |     fn next_element<T>(&mut self) -> Result<Option<T>, Self::Error>
[INFO] [stdout]      |        ------------ required by a bound in this associated function
[INFO] [stdout] 1770 |     where
[INFO] [stdout] 1771 |         T: Deserialize<'de>,
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^ required by this bound in `SeqAccess::next_element`
[INFO] [stdout]      = note: this error originates in the macro `map_impl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider annotating `types::Axial` with `#[derive(Ord)]`
[INFO] [stdout]      |
[INFO] [stdout]    5 + #[derive(Ord)]
[INFO] [stdout]    6 | pub struct Axial { pub q: i32, pub r: i32 } // axial hex coords
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `types::Axial: Ord` is not satisfied
[INFO] [stdout]     --> crates/core/src/types.rs:48:16
[INFO] [stdout]      |
[INFO] [stdout]   48 |     pub tiles: BTreeMap<Axial, Tile>,
[INFO] [stdout]      |                ^^^^^^^^^^^^^^^^^^^^^ the trait `Ord` is not implemented for `types::Axial`
[INFO] [stdout]      |
[INFO] [stdout] help: the trait `Deserialize<'_>` is conditionally implemented for `BTreeMap<K, V>`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/impls.rs:1509:9
[INFO] [stdout]      |
[INFO] [stdout] 1509 | /         impl<'de, K, V $(, $typaram)*> Deserialize<'de> for $ty<K, V $(, $typaram)*>
[INFO] [stdout] 1510 | |         where
[INFO] [stdout] 1511 | |             K: Deserialize<'de> $(+ $kbound1 $(+ $kbound2)*)*,
[INFO] [stdout]      | |                                     -------- unsatisfied requirement introduced here: `types::Axial: Ord`
[INFO] [stdout] 1512 | |             V: Deserialize<'de>,
[INFO] [stdout]      | |________________________________^
[INFO] [stdout] ...
[INFO] [stdout] 1557 | / map_impl! {
[INFO] [stdout] 1558 | |     #[cfg(any(feature = "std", feature = "alloc"))]
[INFO] [stdout] 1559 | |     #[cfg_attr(docsrs, doc(cfg(any(feature = "std", feature = "alloc"))))]
[INFO] [stdout] 1560 | |     BTreeMap<K: Ord, V>,
[INFO] [stdout] 1561 | |     map,
[INFO] [stdout] 1562 | |     BTreeMap::new(),
[INFO] [stdout] 1563 | | }
[INFO] [stdout]      | |_- in this macro invocation
[INFO] [stdout]      = note: required for `BTreeMap<types::Axial, Tile>` to implement `Deserialize<'_>`
[INFO] [stdout] note: required by a bound in `next_value`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/mod.rs:1916:12
[INFO] [stdout]      |
[INFO] [stdout] 1914 |     fn next_value<V>(&mut self) -> Result<V, Self::Error>
[INFO] [stdout]      |        ---------- required by a bound in this associated function
[INFO] [stdout] 1915 |     where
[INFO] [stdout] 1916 |         V: Deserialize<'de>,
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^ required by this bound in `MapAccess::next_value`
[INFO] [stdout]      = note: this error originates in the macro `map_impl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider annotating `types::Axial` with `#[derive(Ord)]`
[INFO] [stdout]      |
[INFO] [stdout]    5 + #[derive(Ord)]
[INFO] [stdout]    6 | pub struct Axial { pub q: i32, pub r: i32 } // axial hex coords
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `types::Axial: Ord` is not satisfied
[INFO] [stdout]     --> crates/core/src/types.rs:46:35
[INFO] [stdout]      |
[INFO] [stdout]   46 | #[derive(Clone, Debug, Serialize, Deserialize)]
[INFO] [stdout]      |                                   ^^^^^^^^^^^ the trait `Ord` is not implemented for `types::Axial`
[INFO] [stdout]      |
[INFO] [stdout] help: the trait `Deserialize<'_>` is conditionally implemented for `BTreeMap<K, V>`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/impls.rs:1509:9
[INFO] [stdout]      |
[INFO] [stdout] 1509 | /         impl<'de, K, V $(, $typaram)*> Deserialize<'de> for $ty<K, V $(, $typaram)*>
[INFO] [stdout] 1510 | |         where
[INFO] [stdout] 1511 | |             K: Deserialize<'de> $(+ $kbound1 $(+ $kbound2)*)*,
[INFO] [stdout]      | |                                     -------- unsatisfied requirement introduced here: `types::Axial: Ord`
[INFO] [stdout] 1512 | |             V: Deserialize<'de>,
[INFO] [stdout]      | |________________________________^
[INFO] [stdout] ...
[INFO] [stdout] 1557 | / map_impl! {
[INFO] [stdout] 1558 | |     #[cfg(any(feature = "std", feature = "alloc"))]
[INFO] [stdout] 1559 | |     #[cfg_attr(docsrs, doc(cfg(any(feature = "std", feature = "alloc"))))]
[INFO] [stdout] 1560 | |     BTreeMap<K: Ord, V>,
[INFO] [stdout] 1561 | |     map,
[INFO] [stdout] 1562 | |     BTreeMap::new(),
[INFO] [stdout] 1563 | | }
[INFO] [stdout]      | |_- in this macro invocation
[INFO] [stdout]      = note: required for `BTreeMap<types::Axial, Tile>` to implement `Deserialize<'_>`
[INFO] [stdout] note: required by a bound in `types::_::_serde::__private228::de::missing_field`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/serde-1.0.228/src/private/de.rs:26:8
[INFO] [stdout]      |
[INFO] [stdout]   24 | pub fn missing_field<'de, V, E>(field: &'static str) -> Result<V, E>
[INFO] [stdout]      |        ------------- required by a bound in this function
[INFO] [stdout]   25 | where
[INFO] [stdout]   26 |     V: Deserialize<'de>,
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^ required by this bound in `missing_field`
[INFO] [stdout]      = note: this error originates in the derive macro `Deserialize` which comes from the expansion of the macro `map_impl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider annotating `types::Axial` with `#[derive(Ord)]`
[INFO] [stdout]      |
[INFO] [stdout]    5 + #[derive(Ord)]
[INFO] [stdout]    6 | pub struct Axial { pub q: i32, pub r: i32 } // axial hex coords
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `types::Resource: Ord` is not satisfied
[INFO] [stdout]     --> crates/core/src/types.rs:54:15
[INFO] [stdout]      |
[INFO] [stdout]   54 |     pub road: BTreeMap<Resource, u8>,
[INFO] [stdout]      |               ^^^^^^^^^^^^^^^^^^^^^^ the trait `Ord` is not implemented for `types::Resource`
[INFO] [stdout]      |
[INFO] [stdout] help: the trait `Deserialize<'_>` is conditionally implemented for `BTreeMap<K, V>`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/impls.rs:1509:9
[INFO] [stdout]      |
[INFO] [stdout] 1509 | /         impl<'de, K, V $(, $typaram)*> Deserialize<'de> for $ty<K, V $(, $typaram)*>
[INFO] [stdout] 1510 | |         where
[INFO] [stdout] 1511 | |             K: Deserialize<'de> $(+ $kbound1 $(+ $kbound2)*)*,
[INFO] [stdout]      | |                                     -------- unsatisfied requirement introduced here: `types::Resource: Ord`
[INFO] [stdout] 1512 | |             V: Deserialize<'de>,
[INFO] [stdout]      | |________________________________^
[INFO] [stdout] ...
[INFO] [stdout] 1557 | / map_impl! {
[INFO] [stdout] 1558 | |     #[cfg(any(feature = "std", feature = "alloc"))]
[INFO] [stdout] 1559 | |     #[cfg_attr(docsrs, doc(cfg(any(feature = "std", feature = "alloc"))))]
[INFO] [stdout] 1560 | |     BTreeMap<K: Ord, V>,
[INFO] [stdout] 1561 | |     map,
[INFO] [stdout] 1562 | |     BTreeMap::new(),
[INFO] [stdout] 1563 | | }
[INFO] [stdout]      | |_- in this macro invocation
[INFO] [stdout]      = note: required for `BTreeMap<types::Resource, u8>` to implement `Deserialize<'_>`
[INFO] [stdout] note: required by a bound in `next_element`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/mod.rs:1771:12
[INFO] [stdout]      |
[INFO] [stdout] 1769 |     fn next_element<T>(&mut self) -> Result<Option<T>, Self::Error>
[INFO] [stdout]      |        ------------ required by a bound in this associated function
[INFO] [stdout] 1770 |     where
[INFO] [stdout] 1771 |         T: Deserialize<'de>,
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^ required by this bound in `SeqAccess::next_element`
[INFO] [stdout]      = note: this error originates in the macro `map_impl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider annotating `types::Resource` with `#[derive(Ord)]`
[INFO] [stdout]      |
[INFO] [stdout]   11 + #[derive(Ord)]
[INFO] [stdout]   12 | pub enum Resource { Timber, Brick, Fiber, Ore, Grain }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `types::Resource: Ord` is not satisfied
[INFO] [stdout]     --> crates/core/src/types.rs:55:18
[INFO] [stdout]      |
[INFO] [stdout]   55 |     pub outpost: BTreeMap<Resource, u8>,
[INFO] [stdout]      |                  ^^^^^^^^^^^^^^^^^^^^^^ the trait `Ord` is not implemented for `types::Resource`
[INFO] [stdout]      |
[INFO] [stdout] help: the trait `Deserialize<'_>` is conditionally implemented for `BTreeMap<K, V>`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/impls.rs:1509:9
[INFO] [stdout]      |
[INFO] [stdout] 1509 | /         impl<'de, K, V $(, $typaram)*> Deserialize<'de> for $ty<K, V $(, $typaram)*>
[INFO] [stdout] 1510 | |         where
[INFO] [stdout] 1511 | |             K: Deserialize<'de> $(+ $kbound1 $(+ $kbound2)*)*,
[INFO] [stdout]      | |                                     -------- unsatisfied requirement introduced here: `types::Resource: Ord`
[INFO] [stdout] 1512 | |             V: Deserialize<'de>,
[INFO] [stdout]      | |________________________________^
[INFO] [stdout] ...
[INFO] [stdout] 1557 | / map_impl! {
[INFO] [stdout] 1558 | |     #[cfg(any(feature = "std", feature = "alloc"))]
[INFO] [stdout] 1559 | |     #[cfg_attr(docsrs, doc(cfg(any(feature = "std", feature = "alloc"))))]
[INFO] [stdout] 1560 | |     BTreeMap<K: Ord, V>,
[INFO] [stdout] 1561 | |     map,
[INFO] [stdout] 1562 | |     BTreeMap::new(),
[INFO] [stdout] 1563 | | }
[INFO] [stdout]      | |_- in this macro invocation
[INFO] [stdout]      = note: required for `BTreeMap<types::Resource, u8>` to implement `Deserialize<'_>`
[INFO] [stdout] note: required by a bound in `next_element`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/mod.rs:1771:12
[INFO] [stdout]      |
[INFO] [stdout] 1769 |     fn next_element<T>(&mut self) -> Result<Option<T>, Self::Error>
[INFO] [stdout]      |        ------------ required by a bound in this associated function
[INFO] [stdout] 1770 |     where
[INFO] [stdout] 1771 |         T: Deserialize<'de>,
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^ required by this bound in `SeqAccess::next_element`
[INFO] [stdout]      = note: this error originates in the macro `map_impl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider annotating `types::Resource` with `#[derive(Ord)]`
[INFO] [stdout]      |
[INFO] [stdout]   11 + #[derive(Ord)]
[INFO] [stdout]   12 | pub enum Resource { Timber, Brick, Fiber, Ore, Grain }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `types::Resource: Ord` is not satisfied
[INFO] [stdout]     --> crates/core/src/types.rs:56:15
[INFO] [stdout]      |
[INFO] [stdout]   56 |     pub town: BTreeMap<Resource, u8>,
[INFO] [stdout]      |               ^^^^^^^^^^^^^^^^^^^^^^ the trait `Ord` is not implemented for `types::Resource`
[INFO] [stdout]      |
[INFO] [stdout] help: the trait `Deserialize<'_>` is conditionally implemented for `BTreeMap<K, V>`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/impls.rs:1509:9
[INFO] [stdout]      |
[INFO] [stdout] 1509 | /         impl<'de, K, V $(, $typaram)*> Deserialize<'de> for $ty<K, V $(, $typaram)*>
[INFO] [stdout] 1510 | |         where
[INFO] [stdout] 1511 | |             K: Deserialize<'de> $(+ $kbound1 $(+ $kbound2)*)*,
[INFO] [stdout]      | |                                     -------- unsatisfied requirement introduced here: `types::Resource: Ord`
[INFO] [stdout] 1512 | |             V: Deserialize<'de>,
[INFO] [stdout]      | |________________________________^
[INFO] [stdout] ...
[INFO] [stdout] 1557 | / map_impl! {
[INFO] [stdout] 1558 | |     #[cfg(any(feature = "std", feature = "alloc"))]
[INFO] [stdout] 1559 | |     #[cfg_attr(docsrs, doc(cfg(any(feature = "std", feature = "alloc"))))]
[INFO] [stdout] 1560 | |     BTreeMap<K: Ord, V>,
[INFO] [stdout] 1561 | |     map,
[INFO] [stdout] 1562 | |     BTreeMap::new(),
[INFO] [stdout] 1563 | | }
[INFO] [stdout]      | |_- in this macro invocation
[INFO] [stdout]      = note: required for `BTreeMap<types::Resource, u8>` to implement `Deserialize<'_>`
[INFO] [stdout] note: required by a bound in `next_element`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/mod.rs:1771:12
[INFO] [stdout]      |
[INFO] [stdout] 1769 |     fn next_element<T>(&mut self) -> Result<Option<T>, Self::Error>
[INFO] [stdout]      |        ------------ required by a bound in this associated function
[INFO] [stdout] 1770 |     where
[INFO] [stdout] 1771 |         T: Deserialize<'de>,
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^ required by this bound in `SeqAccess::next_element`
[INFO] [stdout]      = note: this error originates in the macro `map_impl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider annotating `types::Resource` with `#[derive(Ord)]`
[INFO] [stdout]      |
[INFO] [stdout]   11 + #[derive(Ord)]
[INFO] [stdout]   12 | pub enum Resource { Timber, Brick, Fiber, Ore, Grain }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `types::Resource: Ord` is not satisfied
[INFO] [stdout]     --> crates/core/src/types.rs:57:19
[INFO] [stdout]      |
[INFO] [stdout]   57 |     pub dev_card: BTreeMap<Resource, u8>,
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^ the trait `Ord` is not implemented for `types::Resource`
[INFO] [stdout]      |
[INFO] [stdout] help: the trait `Deserialize<'_>` is conditionally implemented for `BTreeMap<K, V>`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/impls.rs:1509:9
[INFO] [stdout]      |
[INFO] [stdout] 1509 | /         impl<'de, K, V $(, $typaram)*> Deserialize<'de> for $ty<K, V $(, $typaram)*>
[INFO] [stdout] 1510 | |         where
[INFO] [stdout] 1511 | |             K: Deserialize<'de> $(+ $kbound1 $(+ $kbound2)*)*,
[INFO] [stdout]      | |                                     -------- unsatisfied requirement introduced here: `types::Resource: Ord`
[INFO] [stdout] 1512 | |             V: Deserialize<'de>,
[INFO] [stdout]      | |________________________________^
[INFO] [stdout] ...
[INFO] [stdout] 1557 | / map_impl! {
[INFO] [stdout] 1558 | |     #[cfg(any(feature = "std", feature = "alloc"))]
[INFO] [stdout] 1559 | |     #[cfg_attr(docsrs, doc(cfg(any(feature = "std", feature = "alloc"))))]
[INFO] [stdout] 1560 | |     BTreeMap<K: Ord, V>,
[INFO] [stdout] 1561 | |     map,
[INFO] [stdout] 1562 | |     BTreeMap::new(),
[INFO] [stdout] 1563 | | }
[INFO] [stdout]      | |_- in this macro invocation
[INFO] [stdout]      = note: required for `BTreeMap<types::Resource, u8>` to implement `Deserialize<'_>`
[INFO] [stdout] note: required by a bound in `next_element`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/mod.rs:1771:12
[INFO] [stdout]      |
[INFO] [stdout] 1769 |     fn next_element<T>(&mut self) -> Result<Option<T>, Self::Error>
[INFO] [stdout]      |        ------------ required by a bound in this associated function
[INFO] [stdout] 1770 |     where
[INFO] [stdout] 1771 |         T: Deserialize<'de>,
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^ required by this bound in `SeqAccess::next_element`
[INFO] [stdout]      = note: this error originates in the macro `map_impl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider annotating `types::Resource` with `#[derive(Ord)]`
[INFO] [stdout]      |
[INFO] [stdout]   11 + #[derive(Ord)]
[INFO] [stdout]   12 | pub enum Resource { Timber, Brick, Fiber, Ore, Grain }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `types::Resource: Ord` is not satisfied
[INFO] [stdout]     --> crates/core/src/types.rs:54:15
[INFO] [stdout]      |
[INFO] [stdout]   54 |     pub road: BTreeMap<Resource, u8>,
[INFO] [stdout]      |               ^^^^^^^^^^^^^^^^^^^^^^ the trait `Ord` is not implemented for `types::Resource`
[INFO] [stdout]      |
[INFO] [stdout] help: the trait `Deserialize<'_>` is conditionally implemented for `BTreeMap<K, V>`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/impls.rs:1509:9
[INFO] [stdout]      |
[INFO] [stdout] 1509 | /         impl<'de, K, V $(, $typaram)*> Deserialize<'de> for $ty<K, V $(, $typaram)*>
[INFO] [stdout] 1510 | |         where
[INFO] [stdout] 1511 | |             K: Deserialize<'de> $(+ $kbound1 $(+ $kbound2)*)*,
[INFO] [stdout]      | |                                     -------- unsatisfied requirement introduced here: `types::Resource: Ord`
[INFO] [stdout] 1512 | |             V: Deserialize<'de>,
[INFO] [stdout]      | |________________________________^
[INFO] [stdout] ...
[INFO] [stdout] 1557 | / map_impl! {
[INFO] [stdout] 1558 | |     #[cfg(any(feature = "std", feature = "alloc"))]
[INFO] [stdout] 1559 | |     #[cfg_attr(docsrs, doc(cfg(any(feature = "std", feature = "alloc"))))]
[INFO] [stdout] 1560 | |     BTreeMap<K: Ord, V>,
[INFO] [stdout] 1561 | |     map,
[INFO] [stdout] 1562 | |     BTreeMap::new(),
[INFO] [stdout] 1563 | | }
[INFO] [stdout]      | |_- in this macro invocation
[INFO] [stdout]      = note: required for `BTreeMap<types::Resource, u8>` to implement `Deserialize<'_>`
[INFO] [stdout] note: required by a bound in `next_value`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/mod.rs:1916:12
[INFO] [stdout]      |
[INFO] [stdout] 1914 |     fn next_value<V>(&mut self) -> Result<V, Self::Error>
[INFO] [stdout]      |        ---------- required by a bound in this associated function
[INFO] [stdout] 1915 |     where
[INFO] [stdout] 1916 |         V: Deserialize<'de>,
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^ required by this bound in `MapAccess::next_value`
[INFO] [stdout]      = note: this error originates in the macro `map_impl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider annotating `types::Resource` with `#[derive(Ord)]`
[INFO] [stdout]      |
[INFO] [stdout]   11 + #[derive(Ord)]
[INFO] [stdout]   12 | pub enum Resource { Timber, Brick, Fiber, Ore, Grain }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `types::Resource: Ord` is not satisfied
[INFO] [stdout]     --> crates/core/src/types.rs:55:18
[INFO] [stdout]      |
[INFO] [stdout]   55 |     pub outpost: BTreeMap<Resource, u8>,
[INFO] [stdout]      |                  ^^^^^^^^^^^^^^^^^^^^^^ the trait `Ord` is not implemented for `types::Resource`
[INFO] [stdout]      |
[INFO] [stdout] help: the trait `Deserialize<'_>` is conditionally implemented for `BTreeMap<K, V>`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/impls.rs:1509:9
[INFO] [stdout]      |
[INFO] [stdout] 1509 | /         impl<'de, K, V $(, $typaram)*> Deserialize<'de> for $ty<K, V $(, $typaram)*>
[INFO] [stdout] 1510 | |         where
[INFO] [stdout] 1511 | |             K: Deserialize<'de> $(+ $kbound1 $(+ $kbound2)*)*,
[INFO] [stdout]      | |                                     -------- unsatisfied requirement introduced here: `types::Resource: Ord`
[INFO] [stdout] 1512 | |             V: Deserialize<'de>,
[INFO] [stdout]      | |________________________________^
[INFO] [stdout] ...
[INFO] [stdout] 1557 | / map_impl! {
[INFO] [stdout] 1558 | |     #[cfg(any(feature = "std", feature = "alloc"))]
[INFO] [stdout] 1559 | |     #[cfg_attr(docsrs, doc(cfg(any(feature = "std", feature = "alloc"))))]
[INFO] [stdout] 1560 | |     BTreeMap<K: Ord, V>,
[INFO] [stdout] 1561 | |     map,
[INFO] [stdout] 1562 | |     BTreeMap::new(),
[INFO] [stdout] 1563 | | }
[INFO] [stdout]      | |_- in this macro invocation
[INFO] [stdout]      = note: required for `BTreeMap<types::Resource, u8>` to implement `Deserialize<'_>`
[INFO] [stdout] note: required by a bound in `next_value`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/mod.rs:1916:12
[INFO] [stdout]      |
[INFO] [stdout] 1914 |     fn next_value<V>(&mut self) -> Result<V, Self::Error>
[INFO] [stdout]      |        ---------- required by a bound in this associated function
[INFO] [stdout] 1915 |     where
[INFO] [stdout] 1916 |         V: Deserialize<'de>,
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^ required by this bound in `MapAccess::next_value`
[INFO] [stdout]      = note: this error originates in the macro `map_impl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider annotating `types::Resource` with `#[derive(Ord)]`
[INFO] [stdout]      |
[INFO] [stdout]   11 + #[derive(Ord)]
[INFO] [stdout]   12 | pub enum Resource { Timber, Brick, Fiber, Ore, Grain }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `types::Resource: Ord` is not satisfied
[INFO] [stdout]     --> crates/core/src/types.rs:56:15
[INFO] [stdout]      |
[INFO] [stdout]   56 |     pub town: BTreeMap<Resource, u8>,
[INFO] [stdout]      |               ^^^^^^^^^^^^^^^^^^^^^^ the trait `Ord` is not implemented for `types::Resource`
[INFO] [stdout]      |
[INFO] [stdout] help: the trait `Deserialize<'_>` is conditionally implemented for `BTreeMap<K, V>`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/impls.rs:1509:9
[INFO] [stdout]      |
[INFO] [stdout] 1509 | /         impl<'de, K, V $(, $typaram)*> Deserialize<'de> for $ty<K, V $(, $typaram)*>
[INFO] [stdout] 1510 | |         where
[INFO] [stdout] 1511 | |             K: Deserialize<'de> $(+ $kbound1 $(+ $kbound2)*)*,
[INFO] [stdout]      | |                                     -------- unsatisfied requirement introduced here: `types::Resource: Ord`
[INFO] [stdout] 1512 | |             V: Deserialize<'de>,
[INFO] [stdout]      | |________________________________^
[INFO] [stdout] ...
[INFO] [stdout] 1557 | / map_impl! {
[INFO] [stdout] 1558 | |     #[cfg(any(feature = "std", feature = "alloc"))]
[INFO] [stdout] 1559 | |     #[cfg_attr(docsrs, doc(cfg(any(feature = "std", feature = "alloc"))))]
[INFO] [stdout] 1560 | |     BTreeMap<K: Ord, V>,
[INFO] [stdout] 1561 | |     map,
[INFO] [stdout] 1562 | |     BTreeMap::new(),
[INFO] [stdout] 1563 | | }
[INFO] [stdout]      | |_- in this macro invocation
[INFO] [stdout]      = note: required for `BTreeMap<types::Resource, u8>` to implement `Deserialize<'_>`
[INFO] [stdout] note: required by a bound in `next_value`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/mod.rs:1916:12
[INFO] [stdout]      |
[INFO] [stdout] 1914 |     fn next_value<V>(&mut self) -> Result<V, Self::Error>
[INFO] [stdout]      |        ---------- required by a bound in this associated function
[INFO] [stdout] 1915 |     where
[INFO] [stdout] 1916 |         V: Deserialize<'de>,
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^ required by this bound in `MapAccess::next_value`
[INFO] [stdout]      = note: this error originates in the macro `map_impl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider annotating `types::Resource` with `#[derive(Ord)]`
[INFO] [stdout]      |
[INFO] [stdout]   11 + #[derive(Ord)]
[INFO] [stdout]   12 | pub enum Resource { Timber, Brick, Fiber, Ore, Grain }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `types::Resource: Ord` is not satisfied
[INFO] [stdout]     --> crates/core/src/types.rs:57:19
[INFO] [stdout]      |
[INFO] [stdout]   57 |     pub dev_card: BTreeMap<Resource, u8>,
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^^^^^^^^ the trait `Ord` is not implemented for `types::Resource`
[INFO] [stdout]      |
[INFO] [stdout] help: the trait `Deserialize<'_>` is conditionally implemented for `BTreeMap<K, V>`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/impls.rs:1509:9
[INFO] [stdout]      |
[INFO] [stdout] 1509 | /         impl<'de, K, V $(, $typaram)*> Deserialize<'de> for $ty<K, V $(, $typaram)*>
[INFO] [stdout] 1510 | |         where
[INFO] [stdout] 1511 | |             K: Deserialize<'de> $(+ $kbound1 $(+ $kbound2)*)*,
[INFO] [stdout]      | |                                     -------- unsatisfied requirement introduced here: `types::Resource: Ord`
[INFO] [stdout] 1512 | |             V: Deserialize<'de>,
[INFO] [stdout]      | |________________________________^
[INFO] [stdout] ...
[INFO] [stdout] 1557 | / map_impl! {
[INFO] [stdout] 1558 | |     #[cfg(any(feature = "std", feature = "alloc"))]
[INFO] [stdout] 1559 | |     #[cfg_attr(docsrs, doc(cfg(any(feature = "std", feature = "alloc"))))]
[INFO] [stdout] 1560 | |     BTreeMap<K: Ord, V>,
[INFO] [stdout] 1561 | |     map,
[INFO] [stdout] 1562 | |     BTreeMap::new(),
[INFO] [stdout] 1563 | | }
[INFO] [stdout]      | |_- in this macro invocation
[INFO] [stdout]      = note: required for `BTreeMap<types::Resource, u8>` to implement `Deserialize<'_>`
[INFO] [stdout] note: required by a bound in `next_value`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/mod.rs:1916:12
[INFO] [stdout]      |
[INFO] [stdout] 1914 |     fn next_value<V>(&mut self) -> Result<V, Self::Error>
[INFO] [stdout]      |        ---------- required by a bound in this associated function
[INFO] [stdout] 1915 |     where
[INFO] [stdout] 1916 |         V: Deserialize<'de>,
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^ required by this bound in `MapAccess::next_value`
[INFO] [stdout]      = note: this error originates in the macro `map_impl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider annotating `types::Resource` with `#[derive(Ord)]`
[INFO] [stdout]      |
[INFO] [stdout]   11 + #[derive(Ord)]
[INFO] [stdout]   12 | pub enum Resource { Timber, Brick, Fiber, Ore, Grain }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `types::Resource: Ord` is not satisfied
[INFO] [stdout]     --> crates/core/src/types.rs:52:35
[INFO] [stdout]      |
[INFO] [stdout]   52 | #[derive(Clone, Debug, Serialize, Deserialize)]
[INFO] [stdout]      |                                   ^^^^^^^^^^^ the trait `Ord` is not implemented for `types::Resource`
[INFO] [stdout]      |
[INFO] [stdout] help: the trait `Deserialize<'_>` is conditionally implemented for `BTreeMap<K, V>`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/serde_core-1.0.228/src/de/impls.rs:1509:9
[INFO] [stdout]      |
[INFO] [stdout] 1509 | /         impl<'de, K, V $(, $typaram)*> Deserialize<'de> for $ty<K, V $(, $typaram)*>
[INFO] [stdout] 1510 | |         where
[INFO] [stdout] 1511 | |             K: Deserialize<'de> $(+ $kbound1 $(+ $kbound2)*)*,
[INFO] [stdout]      | |                                     -------- unsatisfied requirement introduced here: `types::Resource: Ord`
[INFO] [stdout] 1512 | |             V: Deserialize<'de>,
[INFO] [stdout]      | |________________________________^
[INFO] [stdout] ...
[INFO] [stdout] 1557 | / map_impl! {
[INFO] [stdout] 1558 | |     #[cfg(any(feature = "std", feature = "alloc"))]
[INFO] [stdout] 1559 | |     #[cfg_attr(docsrs, doc(cfg(any(feature = "std", feature = "alloc"))))]
[INFO] [stdout] 1560 | |     BTreeMap<K: Ord, V>,
[INFO] [stdout] 1561 | |     map,
[INFO] [stdout] 1562 | |     BTreeMap::new(),
[INFO] [stdout] 1563 | | }
[INFO] [stdout]      | |_- in this macro invocation
[INFO] [stdout]      = note: required for `BTreeMap<types::Resource, u8>` to implement `Deserialize<'_>`
[INFO] [stdout] note: required by a bound in `types::_::_serde::__private228::de::missing_field`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/serde-1.0.228/src/private/de.rs:26:8
[INFO] [stdout]      |
[INFO] [stdout]   24 | pub fn missing_field<'de, V, E>(field: &'static str) -> Result<V, E>
[INFO] [stdout]      |        ------------- required by a bound in this function
[INFO] [stdout]   25 | where
[INFO] [stdout]   26 |     V: Deserialize<'de>,
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^ required by this bound in `missing_field`
[INFO] [stdout]      = note: this error originates in the derive macro `Deserialize` which comes from the expansion of the macro `map_impl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider annotating `types::Resource` with `#[derive(Ord)]`
[INFO] [stdout]      |
[INFO] [stdout]   11 + #[derive(Ord)]
[INFO] [stdout]   12 | pub enum Resource { Timber, Brick, Fiber, Ore, Grain }
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `types::Resource: Ord` is not satisfied
[INFO] [stdout]   --> crates/core/src/engine.rs:40:47
[INFO] [stdout]    |
[INFO] [stdout] 40 |         for &(_, r) in &payout { *need_by_res.entry(r).or_default() += 1; }
[INFO] [stdout]    |                                               ^^^^^ the trait `Ord` is not implemented for `types::Resource`
[INFO] [stdout]    |
[INFO] [stdout] note: required by a bound in `BTreeMap::<K, V, A>::entry`
[INFO] [stdout]   --> /rustc/1af98b7cdf86932b76182a387f52f1be6f0c1be0/library/alloc/src/collections/btree/map.rs:1501:4
[INFO] [stdout] help: consider annotating `types::Resource` with `#[derive(Ord)]`
[INFO] [stdout]   --> crates/core/src/types.rs:11:1
[INFO] [stdout]    |
[INFO] [stdout] 11 + #[derive(Ord)]
[INFO] [stdout] 12 | pub enum Resource { Timber, Brick, Fiber, Ore, Grain }
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `or_default` exists for enum `std::collections::btree_map::Entry<'_, types::Resource, usize>`, but its trait bounds were not satisfied
[INFO] [stdout]   --> crates/core/src/engine.rs:40:56
[INFO] [stdout]    |
[INFO] [stdout] 40 |         for &(_, r) in &payout { *need_by_res.entry(r).or_default() += 1; }
[INFO] [stdout]    |                                                        ^^^^^^^^^^ method cannot be called due to unsatisfied trait bounds
[INFO] [stdout]    |
[INFO] [stdout]   ::: crates/core/src/types.rs:11:1
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub enum Resource { Timber, Brick, Fiber, Ore, Grain }
[INFO] [stdout]    | ----------------- doesn't satisfy `types::Resource: Ord`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the following trait bounds were not satisfied:
[INFO] [stdout]            `types::Resource: Ord`
[INFO] [stdout] help: consider annotating `types::Resource` with `#[derive(Eq, Ord, PartialEq, PartialOrd)]`
[INFO] [stdout]   --> crates/core/src/types.rs:11:1
[INFO] [stdout]    |
[INFO] [stdout] 11 + #[derive(Eq, Ord, PartialEq, PartialOrd)]
[INFO] [stdout] 12 | pub enum Resource { Timber, Brick, Fiber, Ore, Grain }
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `types::Resource: Ord` is not satisfied
[INFO] [stdout]   --> crates/core/src/engine.rs:42:37
[INFO] [stdout]    |
[INFO] [stdout] 42 |             let have = *self.bank.0.get(&r).unwrap_or(&0) as usize;
[INFO] [stdout]    |                                     ^^^ the trait `Ord` is not implemented for `types::Resource`
[INFO] [stdout]    |
[INFO] [stdout] note: required by a bound in `BTreeMap::<K, V, A>::get`
[INFO] [stdout]   --> /rustc/1af98b7cdf86932b76182a387f52f1be6f0c1be0/library/alloc/src/collections/btree/map.rs:717:4
[INFO] [stdout] help: consider annotating `types::Resource` with `#[derive(Ord)]`
[INFO] [stdout]   --> crates/core/src/types.rs:11:1
[INFO] [stdout]    |
[INFO] [stdout] 11 + #[derive(Ord)]
[INFO] [stdout] 12 | pub enum Resource { Timber, Brick, Fiber, Ore, Grain }
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `types::Resource: Ord` is not satisfied
[INFO] [stdout]   --> crates/core/src/engine.rs:42:41
[INFO] [stdout]    |
[INFO] [stdout] 42 |             let have = *self.bank.0.get(&r).unwrap_or(&0) as usize;
[INFO] [stdout]    |                                     --- ^^ the trait `Ord` is not implemented for `types::Resource`
[INFO] [stdout]    |                                     |
[INFO] [stdout]    |                                     required by a bound introduced by this call
[INFO] [stdout]    |
[INFO] [stdout] note: required by a bound in `BTreeMap::<K, V, A>::get`
[INFO] [stdout]   --> /rustc/1af98b7cdf86932b76182a387f52f1be6f0c1be0/library/alloc/src/collections/btree/map.rs:717:4
[INFO] [stdout] help: consider annotating `types::Resource` with `#[derive(Ord)]`
[INFO] [stdout]   --> crates/core/src/types.rs:11:1
[INFO] [stdout]    |
[INFO] [stdout] 11 + #[derive(Ord)]
[INFO] [stdout] 12 | pub enum Resource { Timber, Brick, Fiber, Ore, Grain }
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `types::Resource: Ord` is not satisfied
[INFO] [stdout]   --> crates/core/src/engine.rs:46:52
[INFO] [stdout]    |
[INFO] [stdout] 46 |                     *self.players[pid].inventory.0.entry(r).or_default() += 1;
[INFO] [stdout]    |                                                    ^^^^^ the trait `Ord` is not implemented for `types::Resource`
[INFO] [stdout]    |
[INFO] [stdout] note: required by a bound in `BTreeMap::<K, V, A>::entry`
[INFO] [stdout]   --> /rustc/1af98b7cdf86932b76182a387f52f1be6f0c1be0/library/alloc/src/collections/btree/map.rs:1501:4
[INFO] [stdout] help: consider annotating `types::Resource` with `#[derive(Ord)]`
[INFO] [stdout]   --> crates/core/src/types.rs:11:1
[INFO] [stdout]    |
[INFO] [stdout] 11 + #[derive(Ord)]
[INFO] [stdout] 12 | pub enum Resource { Timber, Brick, Fiber, Ore, Grain }
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `or_default` exists for enum `std::collections::btree_map::Entry<'_, types::Resource, u8>`, but its trait bounds were not satisfied
[INFO] [stdout]   --> crates/core/src/engine.rs:46:61
[INFO] [stdout]    |
[INFO] [stdout] 46 |                     *self.players[pid].inventory.0.entry(r).or_default() += 1;
[INFO] [stdout]    |                                                             ^^^^^^^^^^ method cannot be called due to unsatisfied trait bounds
[INFO] [stdout]    |
[INFO] [stdout]   ::: crates/core/src/types.rs:11:1
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub enum Resource { Timber, Brick, Fiber, Ore, Grain }
[INFO] [stdout]    | ----------------- doesn't satisfy `types::Resource: Ord`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the following trait bounds were not satisfied:
[INFO] [stdout]            `types::Resource: Ord`
[INFO] [stdout] help: consider annotating `types::Resource` with `#[derive(Eq, Ord, PartialEq, PartialOrd)]`
[INFO] [stdout]   --> crates/core/src/types.rs:11:1
[INFO] [stdout]    |
[INFO] [stdout] 11 + #[derive(Eq, Ord, PartialEq, PartialOrd)]
[INFO] [stdout] 12 | pub enum Resource { Timber, Brick, Fiber, Ore, Grain }
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `types::Resource: Ord` is not satisfied
[INFO] [stdout]   --> crates/core/src/engine.rs:47:34
[INFO] [stdout]    |
[INFO] [stdout] 47 |                     *self.bank.0.entry(r).or_default() -= 1;
[INFO] [stdout]    |                                  ^^^^^ the trait `Ord` is not implemented for `types::Resource`
[INFO] [stdout]    |
[INFO] [stdout] note: required by a bound in `BTreeMap::<K, V, A>::entry`
[INFO] [stdout]   --> /rustc/1af98b7cdf86932b76182a387f52f1be6f0c1be0/library/alloc/src/collections/btree/map.rs:1501:4
[INFO] [stdout] help: consider annotating `types::Resource` with `#[derive(Ord)]`
[INFO] [stdout]   --> crates/core/src/types.rs:11:1
[INFO] [stdout]    |
[INFO] [stdout] 11 + #[derive(Ord)]
[INFO] [stdout] 12 | pub enum Resource { Timber, Brick, Fiber, Ore, Grain }
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `or_default` exists for enum `std::collections::btree_map::Entry<'_, types::Resource, u8>`, but its trait bounds were not satisfied
[INFO] [stdout]   --> crates/core/src/engine.rs:47:43
[INFO] [stdout]    |
[INFO] [stdout] 47 |                     *self.bank.0.entry(r).or_default() -= 1;
[INFO] [stdout]    |                                           ^^^^^^^^^^ method cannot be called due to unsatisfied trait bounds
[INFO] [stdout]    |
[INFO] [stdout]   ::: crates/core/src/types.rs:11:1
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub enum Resource { Timber, Brick, Fiber, Ore, Grain }
[INFO] [stdout]    | ----------------- doesn't satisfy `types::Resource: Ord`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the following trait bounds were not satisfied:
[INFO] [stdout]            `types::Resource: Ord`
[INFO] [stdout] help: consider annotating `types::Resource` with `#[derive(Eq, Ord, PartialEq, PartialOrd)]`
[INFO] [stdout]   --> crates/core/src/types.rs:11:1
[INFO] [stdout]    |
[INFO] [stdout] 11 + #[derive(Eq, Ord, PartialEq, PartialOrd)]
[INFO] [stdout] 12 | pub enum Resource { Timber, Brick, Fiber, Ore, Grain }
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `types::Axial: Ord` is not satisfied
[INFO] [stdout]   --> crates/core/src/engine.rs:74:32
[INFO] [stdout]    |
[INFO] [stdout] 74 |                 if !p.outposts.contains(&v) { return Err("upgrade requires outpost"); }
[INFO] [stdout]    |                                ^^^^^^^^ the trait `Ord` is not implemented for `types::Axial`
[INFO] [stdout]    |
[INFO] [stdout] note: required by a bound in `BTreeSet::<T, A>::contains`
[INFO] [stdout]   --> /rustc/1af98b7cdf86932b76182a387f52f1be6f0c1be0/library/alloc/src/collections/btree/set.rs:606:4
[INFO] [stdout] help: consider annotating `types::Axial` with `#[derive(Ord)]`
[INFO] [stdout]   --> crates/core/src/types.rs:5:1
[INFO] [stdout]    |
[INFO] [stdout]  5 + #[derive(Ord)]
[INFO] [stdout]  6 | pub struct Axial { pub q: i32, pub r: i32 } // axial hex coords
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `types::Axial: Ord` is not satisfied
[INFO] [stdout]   --> crates/core/src/engine.rs:74:41
[INFO] [stdout]    |
[INFO] [stdout] 74 |                 if !p.outposts.contains(&v) { return Err("upgrade requires outpost"); }
[INFO] [stdout]    |                                -------- ^^ the trait `Ord` is not implemented for `types::Axial`
[INFO] [stdout]    |                                |
[INFO] [stdout]    |                                required by a bound introduced by this call
[INFO] [stdout]    |
[INFO] [stdout] note: required by a bound in `BTreeSet::<T, A>::contains`
[INFO] [stdout]   --> /rustc/1af98b7cdf86932b76182a387f52f1be6f0c1be0/library/alloc/src/collections/btree/set.rs:606:4
[INFO] [stdout] help: consider annotating `types::Axial` with `#[derive(Ord)]`
[INFO] [stdout]   --> crates/core/src/types.rs:5:1
[INFO] [stdout]    |
[INFO] [stdout]  5 + #[derive(Ord)]
[INFO] [stdout]  6 | pub struct Axial { pub q: i32, pub r: i32 } // axial hex coords
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `types::Resource: Ord` is not satisfied
[INFO] [stdout]   --> crates/core/src/engine.rs:82:46
[INFO] [stdout]    |
[INFO] [stdout] 82 |             if self.players[pid].inventory.0.get(r).copied().unwrap_or(0) < amt { return Err("insufficient"); }
[INFO] [stdout]    |                                              ^^^ the trait `Ord` is not implemented for `types::Resource`
[INFO] [stdout]    |
[INFO] [stdout] note: required by a bound in `BTreeMap::<K, V, A>::get`
[INFO] [stdout]   --> /rustc/1af98b7cdf86932b76182a387f52f1be6f0c1be0/library/alloc/src/collections/btree/map.rs:717:4
[INFO] [stdout] help: consider annotating `types::Resource` with `#[derive(Ord)]`
[INFO] [stdout]   --> crates/core/src/types.rs:11:1
[INFO] [stdout]    |
[INFO] [stdout] 11 + #[derive(Ord)]
[INFO] [stdout] 12 | pub enum Resource { Timber, Brick, Fiber, Ore, Grain }
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `types::Resource: Ord` is not satisfied
[INFO] [stdout]   --> crates/core/src/engine.rs:82:50
[INFO] [stdout]    |
[INFO] [stdout] 82 |             if self.players[pid].inventory.0.get(r).copied().unwrap_or(0) < amt { return Err("insufficient"); }
[INFO] [stdout]    |                                              --- ^ the trait `Ord` is not implemented for `types::Resource`
[INFO] [stdout]    |                                              |
[INFO] [stdout]    |                                              required by a bound introduced by this call
[INFO] [stdout]    |
[INFO] [stdout] note: required by a bound in `BTreeMap::<K, V, A>::get`
[INFO] [stdout]   --> /rustc/1af98b7cdf86932b76182a387f52f1be6f0c1be0/library/alloc/src/collections/btree/map.rs:717:4
[INFO] [stdout] help: consider annotating `types::Resource` with `#[derive(Ord)]`
[INFO] [stdout]   --> crates/core/src/types.rs:11:1
[INFO] [stdout]    |
[INFO] [stdout] 11 + #[derive(Ord)]
[INFO] [stdout] 12 | pub enum Resource { Timber, Brick, Fiber, Ore, Grain }
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `types::Resource: Ord` is not satisfied
[INFO] [stdout]   --> crates/core/src/engine.rs:85:44
[INFO] [stdout]    |
[INFO] [stdout] 85 |             *self.players[pid].inventory.0.entry(*r).or_default() -= amt;
[INFO] [stdout]    |                                            ^^^^^ the trait `Ord` is not implemented for `types::Resource`
[INFO] [stdout]    |
[INFO] [stdout] note: required by a bound in `BTreeMap::<K, V, A>::entry`
[INFO] [stdout]   --> /rustc/1af98b7cdf86932b76182a387f52f1be6f0c1be0/library/alloc/src/collections/btree/map.rs:1501:4
[INFO] [stdout] help: consider annotating `types::Resource` with `#[derive(Ord)]`
[INFO] [stdout]   --> crates/core/src/types.rs:11:1
[INFO] [stdout]    |
[INFO] [stdout] 11 + #[derive(Ord)]
[INFO] [stdout] 12 | pub enum Resource { Timber, Brick, Fiber, Ore, Grain }
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `or_default` exists for enum `std::collections::btree_map::Entry<'_, types::Resource, u8>`, but its trait bounds were not satisfied
[INFO] [stdout]   --> crates/core/src/engine.rs:85:54
[INFO] [stdout]    |
[INFO] [stdout] 85 |             *self.players[pid].inventory.0.entry(*r).or_default() -= amt;
[INFO] [stdout]    |                                                      ^^^^^^^^^^ method cannot be called due to unsatisfied trait bounds
[INFO] [stdout]    |
[INFO] [stdout]   ::: crates/core/src/types.rs:11:1
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub enum Resource { Timber, Brick, Fiber, Ore, Grain }
[INFO] [stdout]    | ----------------- doesn't satisfy `types::Resource: Ord`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the following trait bounds were not satisfied:
[INFO] [stdout]            `types::Resource: Ord`
[INFO] [stdout] help: consider annotating `types::Resource` with `#[derive(Eq, Ord, PartialEq, PartialOrd)]`
[INFO] [stdout]   --> crates/core/src/types.rs:11:1
[INFO] [stdout]    |
[INFO] [stdout] 11 + #[derive(Eq, Ord, PartialEq, PartialOrd)]
[INFO] [stdout] 12 | pub enum Resource { Timber, Brick, Fiber, Ore, Grain }
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `types::Resource: Ord` is not satisfied
[INFO] [stdout]   --> crates/core/src/engine.rs:86:26
[INFO] [stdout]    |
[INFO] [stdout] 86 |             *self.bank.0.entry(*r).or_default() += amt;
[INFO] [stdout]    |                          ^^^^^ the trait `Ord` is not implemented for `types::Resource`
[INFO] [stdout]    |
[INFO] [stdout] note: required by a bound in `BTreeMap::<K, V, A>::entry`
[INFO] [stdout]   --> /rustc/1af98b7cdf86932b76182a387f52f1be6f0c1be0/library/alloc/src/collections/btree/map.rs:1501:4
[INFO] [stdout] help: consider annotating `types::Resource` with `#[derive(Ord)]`
[INFO] [stdout]   --> crates/core/src/types.rs:11:1
[INFO] [stdout]    |
[INFO] [stdout] 11 + #[derive(Ord)]
[INFO] [stdout] 12 | pub enum Resource { Timber, Brick, Fiber, Ore, Grain }
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `or_default` exists for enum `std::collections::btree_map::Entry<'_, types::Resource, u8>`, but its trait bounds were not satisfied
[INFO] [stdout]   --> crates/core/src/engine.rs:86:36
[INFO] [stdout]    |
[INFO] [stdout] 86 |             *self.bank.0.entry(*r).or_default() += amt;
[INFO] [stdout]    |                                    ^^^^^^^^^^ method cannot be called due to unsatisfied trait bounds
[INFO] [stdout]    |
[INFO] [stdout]   ::: crates/core/src/types.rs:11:1
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub enum Resource { Timber, Brick, Fiber, Ore, Grain }
[INFO] [stdout]    | ----------------- doesn't satisfy `types::Resource: Ord`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the following trait bounds were not satisfied:
[INFO] [stdout]            `types::Resource: Ord`
[INFO] [stdout] help: consider annotating `types::Resource` with `#[derive(Eq, Ord, PartialEq, PartialOrd)]`
[INFO] [stdout]   --> crates/core/src/types.rs:11:1
[INFO] [stdout]    |
[INFO] [stdout] 11 + #[derive(Eq, Ord, PartialEq, PartialOrd)]
[INFO] [stdout] 12 | pub enum Resource { Timber, Brick, Fiber, Ore, Grain }
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `types::Axial: Ord` is not satisfied
[INFO] [stdout]    --> crates/core/src/engine.rs:102:42
[INFO] [stdout]     |
[INFO] [stdout] 102 |                 self.players[pid].routes.insert((a,b));
[INFO] [stdout]     |                                          ^^^^^^ the trait `Ord` is not implemented for `types::Axial`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the following other types implement trait `Ord`:
[INFO] [stdout]               ()
[INFO] [stdout]               (A, Z, Y, X, W, V, U, T)
[INFO] [stdout]               (B, A, Z, Y, X, W, V, U, T)
[INFO] [stdout]               (C, B, A, Z, Y, X, W, V, U, T)
[INFO] [stdout]               (D, C, B, A, Z, Y, X, W, V, U, T)
[INFO] [stdout]               (E, D, C, B, A, Z, Y, X, W, V, U, T)
[INFO] [stdout]               (T,)
[INFO] [stdout]               (U, T)
[INFO] [stdout]             and 5 others
[INFO] [stdout]     = note: required for `(types::Axial, types::Axial)` to implement `Ord`
[INFO] [stdout] note: required by a bound in `BTreeSet::<T, A>::insert`
[INFO] [stdout]    --> /rustc/1af98b7cdf86932b76182a387f52f1be6f0c1be0/library/alloc/src/collections/btree/set.rs:900:4
[INFO] [stdout] help: consider annotating `types::Axial` with `#[derive(Ord)]`
[INFO] [stdout]    --> crates/core/src/types.rs:5:1
[INFO] [stdout]     |
[INFO] [stdout]   5 + #[derive(Ord)]
[INFO] [stdout]   6 | pub struct Axial { pub q: i32, pub r: i32 } // axial hex coords
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `types::Axial: Ord` is not satisfied
[INFO] [stdout]    --> crates/core/src/engine.rs:105:60
[INFO] [stdout]     |
[INFO] [stdout] 105 |             Build::Outpost => { self.players[pid].outposts.insert(at.unwrap()); }
[INFO] [stdout]     |                                                            ^^^^^^ the trait `Ord` is not implemented for `types::Axial`
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `BTreeSet::<T, A>::insert`
[INFO] [stdout]    --> /rustc/1af98b7cdf86932b76182a387f52f1be6f0c1be0/library/alloc/src/collections/btree/set.rs:900:4
[INFO] [stdout] help: consider annotating `types::Axial` with `#[derive(Ord)]`
[INFO] [stdout]    --> crates/core/src/types.rs:5:1
[INFO] [stdout]     |
[INFO] [stdout]   5 + #[derive(Ord)]
[INFO] [stdout]   6 | pub struct Axial { pub q: i32, pub r: i32 } // axial hex coords
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `types::Axial: Ord` is not satisfied
[INFO] [stdout]    --> crates/core/src/engine.rs:108:44
[INFO] [stdout]     |
[INFO] [stdout] 108 |                 self.players[pid].outposts.remove(&v);
[INFO] [stdout]     |                                            ^^^^^^ the trait `Ord` is not implemented for `types::Axial`
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `BTreeSet::<T, A>::remove`
[INFO] [stdout]    --> /rustc/1af98b7cdf86932b76182a387f52f1be6f0c1be0/library/alloc/src/collections/btree/set.rs:1053:4
[INFO] [stdout] help: consider annotating `types::Axial` with `#[derive(Ord)]`
[INFO] [stdout]    --> crates/core/src/types.rs:5:1
[INFO] [stdout]     |
[INFO] [stdout]   5 + #[derive(Ord)]
[INFO] [stdout]   6 | pub struct Axial { pub q: i32, pub r: i32 } // axial hex coords
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `types::Axial: Ord` is not satisfied
[INFO] [stdout]    --> crates/core/src/engine.rs:108:51
[INFO] [stdout]     |
[INFO] [stdout] 108 |                 self.players[pid].outposts.remove(&v);
[INFO] [stdout]     |                                            ------ ^^ the trait `Ord` is not implemented for `types::Axial`
[INFO] [stdout]     |                                            |
[INFO] [stdout]     |                                            required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `BTreeSet::<T, A>::remove`
[INFO] [stdout]    --> /rustc/1af98b7cdf86932b76182a387f52f1be6f0c1be0/library/alloc/src/collections/btree/set.rs:1053:4
[INFO] [stdout] help: consider annotating `types::Axial` with `#[derive(Ord)]`
[INFO] [stdout]    --> crates/core/src/types.rs:5:1
[INFO] [stdout]     |
[INFO] [stdout]   5 + #[derive(Ord)]
[INFO] [stdout]   6 | pub struct Axial { pub q: i32, pub r: i32 } // axial hex coords
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `types::Axial: Ord` is not satisfied
[INFO] [stdout]    --> crates/core/src/engine.rs:109:41
[INFO] [stdout]     |
[INFO] [stdout] 109 |                 self.players[pid].towns.insert(v);
[INFO] [stdout]     |                                         ^^^^^^ the trait `Ord` is not implemented for `types::Axial`
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `BTreeSet::<T, A>::insert`
[INFO] [stdout]    --> /rustc/1af98b7cdf86932b76182a387f52f1be6f0c1be0/library/alloc/src/collections/btree/set.rs:900:4
[INFO] [stdout] help: consider annotating `types::Axial` with `#[derive(Ord)]`
[INFO] [stdout]    --> crates/core/src/types.rs:5:1
[INFO] [stdout]     |
[INFO] [stdout]   5 + #[derive(Ord)]
[INFO] [stdout]   6 | pub struct Axial { pub q: i32, pub r: i32 } // axial hex coords
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `types::Resource: Ord` is not satisfied
[INFO] [stdout]    --> crates/core/src/engine.rs:118:16
[INFO] [stdout]     |
[INFO] [stdout] 118 |         if inv.get(&give).copied().unwrap_or(0) < g { return Err("insufficient"); }
[INFO] [stdout]     |                ^^^ the trait `Ord` is not implemented for `types::Resource`
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `BTreeMap::<K, V, A>::get`
[INFO] [stdout]    --> /rustc/1af98b7cdf86932b76182a387f52f1be6f0c1be0/library/alloc/src/collections/btree/map.rs:717:4
[INFO] [stdout] help: consider annotating `types::Resource` with `#[derive(Ord)]`
[INFO] [stdout]    --> crates/core/src/types.rs:11:1
[INFO] [stdout]     |
[INFO] [stdout]  11 + #[derive(Ord)]
[INFO] [stdout]  12 | pub enum Resource { Timber, Brick, Fiber, Ore, Grain }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `types::Resource: Ord` is not satisfied
[INFO] [stdout]    --> crates/core/src/engine.rs:118:20
[INFO] [stdout]     |
[INFO] [stdout] 118 |         if inv.get(&give).copied().unwrap_or(0) < g { return Err("insufficient"); }
[INFO] [stdout]     |                --- ^^^^^ the trait `Ord` is not implemented for `types::Resource`
[INFO] [stdout]     |                |
[INFO] [stdout]     |                required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `BTreeMap::<K, V, A>::get`
[INFO] [stdout]    --> /rustc/1af98b7cdf86932b76182a387f52f1be6f0c1be0/library/alloc/src/collections/btree/map.rs:717:4
[INFO] [stdout] help: consider annotating `types::Resource` with `#[derive(Ord)]`
[INFO] [stdout]    --> crates/core/src/types.rs:11:1
[INFO] [stdout]     |
[INFO] [stdout]  11 + #[derive(Ord)]
[INFO] [stdout]  12 | pub enum Resource { Timber, Brick, Fiber, Ore, Grain }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `types::Resource: Ord` is not satisfied
[INFO] [stdout]    --> crates/core/src/engine.rs:119:14
[INFO] [stdout]     |
[INFO] [stdout] 119 |         *inv.entry(give).or_default() -= g;
[INFO] [stdout]     |              ^^^^^ the trait `Ord` is not implemented for `types::Resource`
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `BTreeMap::<K, V, A>::entry`
[INFO] [stdout]    --> /rustc/1af98b7cdf86932b76182a387f52f1be6f0c1be0/library/alloc/src/collections/btree/map.rs:1501:4
[INFO] [stdout] help: consider annotating `types::Resource` with `#[derive(Ord)]`
[INFO] [stdout]    --> crates/core/src/types.rs:11:1
[INFO] [stdout]     |
[INFO] [stdout]  11 + #[derive(Ord)]
[INFO] [stdout]  12 | pub enum Resource { Timber, Brick, Fiber, Ore, Grain }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `or_default` exists for enum `std::collections::btree_map::Entry<'_, types::Resource, u8>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> crates/core/src/engine.rs:119:26
[INFO] [stdout]     |
[INFO] [stdout] 119 |         *inv.entry(give).or_default() -= g;
[INFO] [stdout]     |                          ^^^^^^^^^^ method cannot be called due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]    ::: crates/core/src/types.rs:11:1
[INFO] [stdout]     |
[INFO] [stdout]  11 | pub enum Resource { Timber, Brick, Fiber, Ore, Grain }
[INFO] [stdout]     | ----------------- doesn't satisfy `types::Resource: Ord`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `types::Resource: Ord`
[INFO] [stdout] help: consider annotating `types::Resource` with `#[derive(Eq, Ord, PartialEq, PartialOrd)]`
[INFO] [stdout]    --> crates/core/src/types.rs:11:1
[INFO] [stdout]     |
[INFO] [stdout]  11 + #[derive(Eq, Ord, PartialEq, PartialOrd)]
[INFO] [stdout]  12 | pub enum Resource { Timber, Brick, Fiber, Ore, Grain }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `types::Resource: Ord` is not satisfied
[INFO] [stdout]    --> crates/core/src/engine.rs:120:22
[INFO] [stdout]     |
[INFO] [stdout] 120 |         *self.bank.0.entry(give).or_default() += g;
[INFO] [stdout]     |                      ^^^^^ the trait `Ord` is not implemented for `types::Resource`
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `BTreeMap::<K, V, A>::entry`
[INFO] [stdout]    --> /rustc/1af98b7cdf86932b76182a387f52f1be6f0c1be0/library/alloc/src/collections/btree/map.rs:1501:4
[INFO] [stdout] help: consider annotating `types::Resource` with `#[derive(Ord)]`
[INFO] [stdout]    --> crates/core/src/types.rs:11:1
[INFO] [stdout]     |
[INFO] [stdout]  11 + #[derive(Ord)]
[INFO] [stdout]  12 | pub enum Resource { Timber, Brick, Fiber, Ore, Grain }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `or_default` exists for enum `std::collections::btree_map::Entry<'_, types::Resource, u8>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> crates/core/src/engine.rs:120:34
[INFO] [stdout]     |
[INFO] [stdout] 120 |         *self.bank.0.entry(give).or_default() += g;
[INFO] [stdout]     |                                  ^^^^^^^^^^ method cannot be called due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]    ::: crates/core/src/types.rs:11:1
[INFO] [stdout]     |
[INFO] [stdout]  11 | pub enum Resource { Timber, Brick, Fiber, Ore, Grain }
[INFO] [stdout]     | ----------------- doesn't satisfy `types::Resource: Ord`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `types::Resource: Ord`
[INFO] [stdout] help: consider annotating `types::Resource` with `#[derive(Eq, Ord, PartialEq, PartialOrd)]`
[INFO] [stdout]    --> crates/core/src/types.rs:11:1
[INFO] [stdout]     |
[INFO] [stdout]  11 + #[derive(Eq, Ord, PartialEq, PartialOrd)]
[INFO] [stdout]  12 | pub enum Resource { Timber, Brick, Fiber, Ore, Grain }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `types::Resource: Ord` is not satisfied
[INFO] [stdout]    --> crates/core/src/engine.rs:121:25
[INFO] [stdout]     |
[INFO] [stdout] 121 |         if *self.bank.0.get(&get).unwrap_or(&0) == 0 { return Err("bank empty"); }
[INFO] [stdout]     |                         ^^^ the trait `Ord` is not implemented for `types::Resource`
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `BTreeMap::<K, V, A>::get`
[INFO] [stdout]    --> /rustc/1af98b7cdf86932b76182a387f52f1be6f0c1be0/library/alloc/src/collections/btree/map.rs:717:4
[INFO] [stdout] help: consider annotating `types::Resource` with `#[derive(Ord)]`
[INFO] [stdout]    --> crates/core/src/types.rs:11:1
[INFO] [stdout]     |
[INFO] [stdout]  11 + #[derive(Ord)]
[INFO] [stdout]  12 | pub enum Resource { Timber, Brick, Fiber, Ore, Grain }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `types::Resource: Ord` is not satisfied
[INFO] [stdout]    --> crates/core/src/engine.rs:121:29
[INFO] [stdout]     |
[INFO] [stdout] 121 |         if *self.bank.0.get(&get).unwrap_or(&0) == 0 { return Err("bank empty"); }
[INFO] [stdout]     |                         --- ^^^^ the trait `Ord` is not implemented for `types::Resource`
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `BTreeMap::<K, V, A>::get`
[INFO] [stdout]    --> /rustc/1af98b7cdf86932b76182a387f52f1be6f0c1be0/library/alloc/src/collections/btree/map.rs:717:4
[INFO] [stdout] help: consider annotating `types::Resource` with `#[derive(Ord)]`
[INFO] [stdout]    --> crates/core/src/types.rs:11:1
[INFO] [stdout]     |
[INFO] [stdout]  11 + #[derive(Ord)]
[INFO] [stdout]  12 | pub enum Resource { Timber, Brick, Fiber, Ore, Grain }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `types::Resource: Ord` is not satisfied
[INFO] [stdout]    --> crates/core/src/engine.rs:122:22
[INFO] [stdout]     |
[INFO] [stdout] 122 |         *self.bank.0.entry(get).or_default() -= 1;
[INFO] [stdout]     |                      ^^^^^ the trait `Ord` is not implemented for `types::Resource`
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `BTreeMap::<K, V, A>::entry`
[INFO] [stdout]    --> /rustc/1af98b7cdf86932b76182a387f52f1be6f0c1be0/library/alloc/src/collections/btree/map.rs:1501:4
[INFO] [stdout] help: consider annotating `types::Resource` with `#[derive(Ord)]`
[INFO] [stdout]    --> crates/core/src/types.rs:11:1
[INFO] [stdout]     |
[INFO] [stdout]  11 + #[derive(Ord)]
[INFO] [stdout]  12 | pub enum Resource { Timber, Brick, Fiber, Ore, Grain }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `or_default` exists for enum `std::collections::btree_map::Entry<'_, types::Resource, u8>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> crates/core/src/engine.rs:122:33
[INFO] [stdout]     |
[INFO] [stdout] 122 |         *self.bank.0.entry(get).or_default() -= 1;
[INFO] [stdout]     |                                 ^^^^^^^^^^ method cannot be called due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]    ::: crates/core/src/types.rs:11:1
[INFO] [stdout]     |
[INFO] [stdout]  11 | pub enum Resource { Timber, Brick, Fiber, Ore, Grain }
[INFO] [stdout]     | ----------------- doesn't satisfy `types::Resource: Ord`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `types::Resource: Ord`
[INFO] [stdout] help: consider annotating `types::Resource` with `#[derive(Eq, Ord, PartialEq, PartialOrd)]`
[INFO] [stdout]    --> crates/core/src/types.rs:11:1
[INFO] [stdout]     |
[INFO] [stdout]  11 + #[derive(Eq, Ord, PartialEq, PartialOrd)]
[INFO] [stdout]  12 | pub enum Resource { Timber, Brick, Fiber, Ore, Grain }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `types::Resource: Ord` is not satisfied
[INFO] [stdout]    --> crates/core/src/engine.rs:123:14
[INFO] [stdout]     |
[INFO] [stdout] 123 |         *inv.entry(get).or_default() += 1;
[INFO] [stdout]     |              ^^^^^ the trait `Ord` is not implemented for `types::Resource`
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `BTreeMap::<K, V, A>::entry`
[INFO] [stdout]    --> /rustc/1af98b7cdf86932b76182a387f52f1be6f0c1be0/library/alloc/src/collections/btree/map.rs:1501:4
[INFO] [stdout] help: consider annotating `types::Resource` with `#[derive(Ord)]`
[INFO] [stdout]    --> crates/core/src/types.rs:11:1
[INFO] [stdout]     |
[INFO] [stdout]  11 + #[derive(Ord)]
[INFO] [stdout]  12 | pub enum Resource { Timber, Brick, Fiber, Ore, Grain }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `or_default` exists for enum `std::collections::btree_map::Entry<'_, types::Resource, u8>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> crates/core/src/engine.rs:123:25
[INFO] [stdout]     |
[INFO] [stdout] 123 |         *inv.entry(get).or_default() += 1;
[INFO] [stdout]     |                         ^^^^^^^^^^ method cannot be called due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]    ::: crates/core/src/types.rs:11:1
[INFO] [stdout]     |
[INFO] [stdout]  11 | pub enum Resource { Timber, Brick, Fiber, Ore, Grain }
[INFO] [stdout]     | ----------------- doesn't satisfy `types::Resource: Ord`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `types::Resource: Ord`
[INFO] [stdout] help: consider annotating `types::Resource` with `#[derive(Eq, Ord, PartialEq, PartialOrd)]`
[INFO] [stdout]    --> crates/core/src/types.rs:11:1
[INFO] [stdout]     |
[INFO] [stdout]  11 + #[derive(Eq, Ord, PartialEq, PartialOrd)]
[INFO] [stdout]  12 | pub enum Resource { Timber, Brick, Fiber, Ore, Grain }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `types::Axial: Ord` is not satisfied
[INFO] [stdout]    --> crates/core/src/engine.rs:165:19
[INFO] [stdout]     |
[INFO] [stdout] 165 |     if p.outposts.contains(&a) || p.outposts.contains(&b) || p.towns.contains(&a) || p.towns.contains(&b) { return true; }
[INFO] [stdout]     |                   ^^^^^^^^ the trait `Ord` is not implemented for `types::Axial`
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `BTreeSet::<T, A>::contains`
[INFO] [stdout]    --> /rustc/1af98b7cdf86932b76182a387f52f1be6f0c1be0/library/alloc/src/collections/btree/set.rs:606:4
[INFO] [stdout] help: consider annotating `types::Axial` with `#[derive(Ord)]`
[INFO] [stdout]    --> crates/core/src/types.rs:5:1
[INFO] [stdout]     |
[INFO] [stdout]   5 + #[derive(Ord)]
[INFO] [stdout]   6 | pub struct Axial { pub q: i32, pub r: i32 } // axial hex coords
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `types::Axial: Ord` is not satisfied
[INFO] [stdout]    --> crates/core/src/engine.rs:165:28
[INFO] [stdout]     |
[INFO] [stdout] 165 |     if p.outposts.contains(&a) || p.outposts.contains(&b) || p.towns.contains(&a) || p.towns.contains(&b) { return true; }
[INFO] [stdout]     |                   -------- ^^ the trait `Ord` is not implemented for `types::Axial`
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `BTreeSet::<T, A>::contains`
[INFO] [stdout]    --> /rustc/1af98b7cdf86932b76182a387f52f1be6f0c1be0/library/alloc/src/collections/btree/set.rs:606:4
[INFO] [stdout] help: consider annotating `types::Axial` with `#[derive(Ord)]`
[INFO] [stdout]    --> crates/core/src/types.rs:5:1
[INFO] [stdout]     |
[INFO] [stdout]   5 + #[derive(Ord)]
[INFO] [stdout]   6 | pub struct Axial { pub q: i32, pub r: i32 } // axial hex coords
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `types::Axial: Ord` is not satisfied
[INFO] [stdout]    --> crates/core/src/engine.rs:165:46
[INFO] [stdout]     |
[INFO] [stdout] 165 |     if p.outposts.contains(&a) || p.outposts.contains(&b) || p.towns.contains(&a) || p.towns.contains(&b) { return true; }
[INFO] [stdout]     |                                              ^^^^^^^^ the trait `Ord` is not implemented for `types::Axial`
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `BTreeSet::<T, A>::contains`
[INFO] [stdout]    --> /rustc/1af98b7cdf86932b76182a387f52f1be6f0c1be0/library/alloc/src/collections/btree/set.rs:606:4
[INFO] [stdout] help: consider annotating `types::Axial` with `#[derive(Ord)]`
[INFO] [stdout]    --> crates/core/src/types.rs:5:1
[INFO] [stdout]     |
[INFO] [stdout]   5 + #[derive(Ord)]
[INFO] [stdout]   6 | pub struct Axial { pub q: i32, pub r: i32 } // axial hex coords
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `types::Axial: Ord` is not satisfied
[INFO] [stdout]    --> crates/core/src/engine.rs:165:55
[INFO] [stdout]     |
[INFO] [stdout] 165 |     if p.outposts.contains(&a) || p.outposts.contains(&b) || p.towns.contains(&a) || p.towns.contains(&b) { return true; }
[INFO] [stdout]     |                                              -------- ^^ the trait `Ord` is not implemented for `types::Axial`
[INFO] [stdout]     |                                              |
[INFO] [stdout]     |                                              required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `BTreeSet::<T, A>::contains`
[INFO] [stdout]    --> /rustc/1af98b7cdf86932b76182a387f52f1be6f0c1be0/library/alloc/src/collections/btree/set.rs:606:4
[INFO] [stdout] help: consider annotating `types::Axial` with `#[derive(Ord)]`
[INFO] [stdout]    --> crates/core/src/types.rs:5:1
[INFO] [stdout]     |
[INFO] [stdout]   5 + #[derive(Ord)]
[INFO] [stdout]   6 | pub struct Axial { pub q: i32, pub r: i32 } // axial hex coords
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `types::Axial: Ord` is not satisfied
[INFO] [stdout]    --> crates/core/src/engine.rs:165:70
[INFO] [stdout]     |
[INFO] [stdout] 165 |     if p.outposts.contains(&a) || p.outposts.contains(&b) || p.towns.contains(&a) || p.towns.contains(&b) { return true; }
[INFO] [stdout]     |                                                                      ^^^^^^^^ the trait `Ord` is not implemented for `types::Axial`
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `BTreeSet::<T, A>::contains`
[INFO] [stdout]    --> /rustc/1af98b7cdf86932b76182a387f52f1be6f0c1be0/library/alloc/src/collections/btree/set.rs:606:4
[INFO] [stdout] help: consider annotating `types::Axial` with `#[derive(Ord)]`
[INFO] [stdout]    --> crates/core/src/types.rs:5:1
[INFO] [stdout]     |
[INFO] [stdout]   5 + #[derive(Ord)]
[INFO] [stdout]   6 | pub struct Axial { pub q: i32, pub r: i32 } // axial hex coords
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `types::Axial: Ord` is not satisfied
[INFO] [stdout]    --> crates/core/src/engine.rs:165:79
[INFO] [stdout]     |
[INFO] [stdout] 165 |     if p.outposts.contains(&a) || p.outposts.contains(&b) || p.towns.contains(&a) || p.towns.contains(&b) { return true; }
[INFO] [stdout]     |                                                                      -------- ^^ the trait `Ord` is not implemented for `types::Axial`
[INFO] [stdout]     |                                                                      |
[INFO] [stdout]     |                                                                      required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `BTreeSet::<T, A>::contains`
[INFO] [stdout]    --> /rustc/1af98b7cdf86932b76182a387f52f1be6f0c1be0/library/alloc/src/collections/btree/set.rs:606:4
[INFO] [stdout] help: consider annotating `types::Axial` with `#[derive(Ord)]`
[INFO] [stdout]    --> crates/core/src/types.rs:5:1
[INFO] [stdout]     |
[INFO] [stdout]   5 + #[derive(Ord)]
[INFO] [stdout]   6 | pub struct Axial { pub q: i32, pub r: i32 } // axial hex coords
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `types::Axial: Ord` is not satisfied
[INFO] [stdout]    --> crates/core/src/engine.rs:165:94
[INFO] [stdout]     |
[INFO] [stdout] 165 |     if p.outposts.contains(&a) || p.outposts.contains(&b) || p.towns.contains(&a) || p.towns.contains(&b) { return true; }
[INFO] [stdout]     |                                                                                              ^^^^^^^^ the trait `Ord` is not implemented for `types::Axial`
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `BTreeSet::<T, A>::contains`
[INFO] [stdout]    --> /rustc/1af98b7cdf86932b76182a387f52f1be6f0c1be0/library/alloc/src/collections/btree/set.rs:606:4
[INFO] [stdout] help: consider annotating `types::Axial` with `#[derive(Ord)]`
[INFO] [stdout]    --> crates/core/src/types.rs:5:1
[INFO] [stdout]     |
[INFO] [stdout]   5 + #[derive(Ord)]
[INFO] [stdout]   6 | pub struct Axial { pub q: i32, pub r: i32 } // axial hex coords
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `types::Axial: Ord` is not satisfied
[INFO] [stdout]    --> crates/core/src/engine.rs:165:103
[INFO] [stdout]     |
[INFO] [stdout] 165 |     if p.outposts.contains(&a) || p.outposts.contains(&b) || p.towns.contains(&a) || p.towns.contains(&b) { return true; }
[INFO] [stdout]     |                                                                                              -------- ^^ the trait `Ord` is not implemented for `types::Axial`
[INFO] [stdout]     |                                                                                              |
[INFO] [stdout]     |                                                                                              required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `BTreeSet::<T, A>::contains`
[INFO] [stdout]    --> /rustc/1af98b7cdf86932b76182a387f52f1be6f0c1be0/library/alloc/src/collections/btree/set.rs:606:4
[INFO] [stdout] help: consider annotating `types::Axial` with `#[derive(Ord)]`
[INFO] [stdout]    --> crates/core/src/types.rs:5:1
[INFO] [stdout]     |
[INFO] [stdout]   5 + #[derive(Ord)]
[INFO] [stdout]   6 | pub struct Axial { pub q: i32, pub r: i32 } // axial hex coords
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `types::Axial: Ord` is not satisfied
[INFO] [stdout]    --> crates/core/src/engine.rs:173:23
[INFO] [stdout]     |
[INFO] [stdout] 173 |         if p.outposts.contains(&a) || p.outposts.contains(&b) || p.towns.contains(&a) || p.towns.contains(&b) { return true; }
[INFO] [stdout]     |                       ^^^^^^^^ the trait `Ord` is not implemented for `types::Axial`
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `BTreeSet::<T, A>::contains`
[INFO] [stdout]    --> /rustc/1af98b7cdf86932b76182a387f52f1be6f0c1be0/library/alloc/src/collections/btree/set.rs:606:4
[INFO] [stdout] help: consider annotating `types::Axial` with `#[derive(Ord)]`
[INFO] [stdout]    --> crates/core/src/types.rs:5:1
[INFO] [stdout]     |
[INFO] [stdout]   5 + #[derive(Ord)]
[INFO] [stdout]   6 | pub struct Axial { pub q: i32, pub r: i32 } // axial hex coords
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `types::Axial: Ord` is not satisfied
[INFO] [stdout]    --> crates/core/src/engine.rs:173:32
[INFO] [stdout]     |
[INFO] [stdout] 173 |         if p.outposts.contains(&a) || p.outposts.contains(&b) || p.towns.contains(&a) || p.towns.contains(&b) { return true; }
[INFO] [stdout]     |                       -------- ^^ the trait `Ord` is not implemented for `types::Axial`
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `BTreeSet::<T, A>::contains`
[INFO] [stdout]    --> /rustc/1af98b7cdf86932b76182a387f52f1be6f0c1be0/library/alloc/src/collections/btree/set.rs:606:4
[INFO] [stdout] help: consider annotating `types::Axial` with `#[derive(Ord)]`
[INFO] [stdout]    --> crates/core/src/types.rs:5:1
[INFO] [stdout]     |
[INFO] [stdout]   5 + #[derive(Ord)]
[INFO] [stdout]   6 | pub struct Axial { pub q: i32, pub r: i32 } // axial hex coords
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `types::Axial: Ord` is not satisfied
[INFO] [stdout]    --> crates/core/src/engine.rs:173:50
[INFO] [stdout]     |
[INFO] [stdout] 173 |         if p.outposts.contains(&a) || p.outposts.contains(&b) || p.towns.contains(&a) || p.towns.contains(&b) { return true; }
[INFO] [stdout]     |                                                  ^^^^^^^^ the trait `Ord` is not implemented for `types::Axial`
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `BTreeSet::<T, A>::contains`
[INFO] [stdout]    --> /rustc/1af98b7cdf86932b76182a387f52f1be6f0c1be0/library/alloc/src/collections/btree/set.rs:606:4
[INFO] [stdout] help: consider annotating `types::Axial` with `#[derive(Ord)]`
[INFO] [stdout]    --> crates/core/src/types.rs:5:1
[INFO] [stdout]     |
[INFO] [stdout]   5 + #[derive(Ord)]
[INFO] [stdout]   6 | pub struct Axial { pub q: i32, pub r: i32 } // axial hex coords
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `types::Axial: Ord` is not satisfied
[INFO] [stdout]    --> crates/core/src/engine.rs:173:59
[INFO] [stdout]     |
[INFO] [stdout] 173 |         if p.outposts.contains(&a) || p.outposts.contains(&b) || p.towns.contains(&a) || p.towns.contains(&b) { return true; }
[INFO] [stdout]     |                                                  -------- ^^ the trait `Ord` is not implemented for `types::Axial`
[INFO] [stdout]     |                                                  |
[INFO] [stdout]     |                                                  required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `BTreeSet::<T, A>::contains`
[INFO] [stdout]    --> /rustc/1af98b7cdf86932b76182a387f52f1be6f0c1be0/library/alloc/src/collections/btree/set.rs:606:4
[INFO] [stdout] help: consider annotating `types::Axial` with `#[derive(Ord)]`
[INFO] [stdout]    --> crates/core/src/types.rs:5:1
[INFO] [stdout]     |
[INFO] [stdout]   5 + #[derive(Ord)]
[INFO] [stdout]   6 | pub struct Axial { pub q: i32, pub r: i32 } // axial hex coords
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `types::Axial: Ord` is not satisfied
[INFO] [stdout]    --> crates/core/src/engine.rs:173:74
[INFO] [stdout]     |
[INFO] [stdout] 173 |         if p.outposts.contains(&a) || p.outposts.contains(&b) || p.towns.contains(&a) || p.towns.contains(&b) { return true; }
[INFO] [stdout]     |                                                                          ^^^^^^^^ the trait `Ord` is not implemented for `types::Axial`
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `BTreeSet::<T, A>::contains`
[INFO] [stdout]    --> /rustc/1af98b7cdf86932b76182a387f52f1be6f0c1be0/library/alloc/src/collections/btree/set.rs:606:4
[INFO] [stdout] help: consider annotating `types::Axial` with `#[derive(Ord)]`
[INFO] [stdout]    --> crates/core/src/types.rs:5:1
[INFO] [stdout]     |
[INFO] [stdout]   5 + #[derive(Ord)]
[INFO] [stdout]   6 | pub struct Axial { pub q: i32, pub r: i32 } // axial hex coords
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `types::Axial: Ord` is not satisfied
[INFO] [stdout]    --> crates/core/src/engine.rs:173:83
[INFO] [stdout]     |
[INFO] [stdout] 173 |         if p.outposts.contains(&a) || p.outposts.contains(&b) || p.towns.contains(&a) || p.towns.contains(&b) { return true; }
[INFO] [stdout]     |                                                                          -------- ^^ the trait `Ord` is not implemented for `types::Axial`
[INFO] [stdout]     |                                                                          |
[INFO] [stdout]     |                                                                          required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `BTreeSet::<T, A>::contains`
[INFO] [stdout]    --> /rustc/1af98b7cdf86932b76182a387f52f1be6f0c1be0/library/alloc/src/collections/btree/set.rs:606:4
[INFO] [stdout] help: consider annotating `types::Axial` with `#[derive(Ord)]`
[INFO] [stdout]    --> crates/core/src/types.rs:5:1
[INFO] [stdout]     |
[INFO] [stdout]   5 + #[derive(Ord)]
[INFO] [stdout]   6 | pub struct Axial { pub q: i32, pub r: i32 } // axial hex coords
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `types::Axial: Ord` is not satisfied
[INFO] [stdout]    --> crates/core/src/engine.rs:173:98
[INFO] [stdout]     |
[INFO] [stdout] 173 |         if p.outposts.contains(&a) || p.outposts.contains(&b) || p.towns.contains(&a) || p.towns.contains(&b) { return true; }
[INFO] [stdout]     |                                                                                                  ^^^^^^^^ the trait `Ord` is not implemented for `types::Axial`
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `BTreeSet::<T, A>::contains`
[INFO] [stdout]    --> /rustc/1af98b7cdf86932b76182a387f52f1be6f0c1be0/library/alloc/src/collections/btree/set.rs:606:4
[INFO] [stdout] help: consider annotating `types::Axial` with `#[derive(Ord)]`
[INFO] [stdout]    --> crates/core/src/types.rs:5:1
[INFO] [stdout]     |
[INFO] [stdout]   5 + #[derive(Ord)]
[INFO] [stdout]   6 | pub struct Axial { pub q: i32, pub r: i32 } // axial hex coords
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `types::Axial: Ord` is not satisfied
[INFO] [stdout]    --> crates/core/src/engine.rs:173:107
[INFO] [stdout]     |
[INFO] [stdout] 173 |         if p.outposts.contains(&a) || p.outposts.contains(&b) || p.towns.contains(&a) || p.towns.contains(&b) { return true; }
[INFO] [stdout]     |                                                                                                  -------- ^^ the trait `Ord` is not implemented for `types::Axial`
[INFO] [stdout]     |                                                                                                  |
[INFO] [stdout]     |                                                                                                  required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `BTreeSet::<T, A>::contains`
[INFO] [stdout]    --> /rustc/1af98b7cdf86932b76182a387f52f1be6f0c1be0/library/alloc/src/collections/btree/set.rs:606:4
[INFO] [stdout] help: consider annotating `types::Axial` with `#[derive(Ord)]`
[INFO] [stdout]    --> crates/core/src/types.rs:5:1
[INFO] [stdout]     |
[INFO] [stdout]   5 + #[derive(Ord)]
[INFO] [stdout]   6 | pub struct Axial { pub q: i32, pub r: i32 } // axial hex coords
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `types::Axial: Ord` is not satisfied
[INFO] [stdout]    --> crates/core/src/engine.rs:197:13
[INFO] [stdout]     |
[INFO] [stdout] 197 |         adj.entry(a).or_default().push(b);
[INFO] [stdout]     |             ^^^^^ the trait `Ord` is not implemented for `types::Axial`
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `BTreeMap::<K, V, A>::entry`
[INFO] [stdout]    --> /rustc/1af98b7cdf86932b76182a387f52f1be6f0c1be0/library/alloc/src/collections/btree/map.rs:1501:4
[INFO] [stdout] help: consider annotating `types::Axial` with `#[derive(Ord)]`
[INFO] [stdout]    --> crates/core/src/types.rs:5:1
[INFO] [stdout]     |
[INFO] [stdout]   5 + #[derive(Ord)]
[INFO] [stdout]   6 | pub struct Axial { pub q: i32, pub r: i32 } // axial hex coords
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `or_default` exists for enum `std::collections::btree_map::Entry<'_, types::Axial, Vec<types::Axial>>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> crates/core/src/engine.rs:197:22
[INFO] [stdout]     |
[INFO] [stdout] 197 |         adj.entry(a).or_default().push(b);
[INFO] [stdout]     |                      ^^^^^^^^^^ method cannot be called due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]    ::: crates/core/src/types.rs:5:1
[INFO] [stdout]     |
[INFO] [stdout]   5 | pub struct Axial { pub q: i32, pub r: i32 } // axial hex coords
[INFO] [stdout]     | ---------------- doesn't satisfy `types::Axial: Ord`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `types::Axial: Ord`
[INFO] [stdout] help: consider annotating `types::Axial` with `#[derive(Eq, Ord, PartialEq, PartialOrd)]`
[INFO] [stdout]    --> crates/core/src/types.rs:5:1
[INFO] [stdout]     |
[INFO] [stdout]   5 + #[derive(Eq, Ord, PartialEq, PartialOrd)]
[INFO] [stdout]   6 | pub struct Axial { pub q: i32, pub r: i32 } // axial hex coords
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `types::Axial: Ord` is not satisfied
[INFO] [stdout]    --> crates/core/src/engine.rs:198:13
[INFO] [stdout]     |
[INFO] [stdout] 198 |         adj.entry(b).or_default().push(a);
[INFO] [stdout]     |             ^^^^^ the trait `Ord` is not implemented for `types::Axial`
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `BTreeMap::<K, V, A>::entry`
[INFO] [stdout]    --> /rustc/1af98b7cdf86932b76182a387f52f1be6f0c1be0/library/alloc/src/collections/btree/map.rs:1501:4
[INFO] [stdout] help: consider annotating `types::Axial` with `#[derive(Ord)]`
[INFO] [stdout]    --> crates/core/src/types.rs:5:1
[INFO] [stdout]     |
[INFO] [stdout]   5 + #[derive(Ord)]
[INFO] [stdout]   6 | pub struct Axial { pub q: i32, pub r: i32 } // axial hex coords
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `or_default` exists for enum `std::collections::btree_map::Entry<'_, types::Axial, Vec<types::Axial>>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> crates/core/src/engine.rs:198:22
[INFO] [stdout]     |
[INFO] [stdout] 198 |         adj.entry(b).or_default().push(a);
[INFO] [stdout]     |                      ^^^^^^^^^^ method cannot be called due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]    ::: crates/core/src/types.rs:5:1
[INFO] [stdout]     |
[INFO] [stdout]   5 | pub struct Axial { pub q: i32, pub r: i32 } // axial hex coords
[INFO] [stdout]     | ---------------- doesn't satisfy `types::Axial: Ord`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `types::Axial: Ord`
[INFO] [stdout] help: consider annotating `types::Axial` with `#[derive(Eq, Ord, PartialEq, PartialOrd)]`
[INFO] [stdout]    --> crates/core/src/types.rs:5:1
[INFO] [stdout]     |
[INFO] [stdout]   5 + #[derive(Eq, Ord, PartialEq, PartialOrd)]
[INFO] [stdout]   6 | pub struct Axial { pub q: i32, pub r: i32 } // axial hex coords
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `types::Axial: Ord` is not satisfied
[INFO] [stdout]    --> crates/core/src/engine.rs:218:17
[INFO] [stdout]     |
[INFO] [stdout] 218 |         visited.insert(start);
[INFO] [stdout]     |                 ^^^^^^ the trait `Ord` is not implemented for `types::Axial`
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `BTreeSet::<T, A>::insert`
[INFO] [stdout]    --> /rustc/1af98b7cdf86932b76182a387f52f1be6f0c1be0/library/alloc/src/collections/btree/set.rs:900:4
[INFO] [stdout] help: consider annotating `types::Axial` with `#[derive(Ord)]`
[INFO] [stdout]    --> crates/core/src/types.rs:5:1
[INFO] [stdout]     |
[INFO] [stdout]   5 + #[derive(Ord)]
[INFO] [stdout]   6 | pub struct Axial { pub q: i32, pub r: i32 } // axial hex coords
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `types::Axial: Ord` is not satisfied
[INFO] [stdout]    --> crates/core/src/engine.rs:203:33
[INFO] [stdout]     |
[INFO] [stdout] 203 |         if let Some(neis) = adj.get(&node) {
[INFO] [stdout]     |                                 ^^^ the trait `Ord` is not implemented for `types::Axial`
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `BTreeMap::<K, V, A>::get`
[INFO] [stdout]    --> /rustc/1af98b7cdf86932b76182a387f52f1be6f0c1be0/library/alloc/src/collections/btree/map.rs:717:4
[INFO] [stdout] help: consider annotating `types::Axial` with `#[derive(Ord)]`
[INFO] [stdout]    --> crates/core/src/types.rs:5:1
[INFO] [stdout]     |
[INFO] [stdout]   5 + #[derive(Ord)]
[INFO] [stdout]   6 | pub struct Axial { pub q: i32, pub r: i32 } // axial hex coords
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `types::Axial: Ord` is not satisfied
[INFO] [stdout]    --> crates/core/src/engine.rs:203:37
[INFO] [stdout]     |
[INFO] [stdout] 203 |         if let Some(neis) = adj.get(&node) {
[INFO] [stdout]     |                                 --- ^^^^^ the trait `Ord` is not implemented for `types::Axial`
[INFO] [stdout]     |                                 |
[INFO] [stdout]     |                                 required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `BTreeMap::<K, V, A>::get`
[INFO] [stdout]    --> /rustc/1af98b7cdf86932b76182a387f52f1be6f0c1be0/library/alloc/src/collections/btree/map.rs:717:4
[INFO] [stdout] help: consider annotating `types::Axial` with `#[derive(Ord)]`
[INFO] [stdout]    --> crates/core/src/types.rs:5:1
[INFO] [stdout]     |
[INFO] [stdout]   5 + #[derive(Ord)]
[INFO] [stdout]   6 | pub struct Axial { pub q: i32, pub r: i32 } // axial hex coords
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `types::Axial: Ord` is not satisfied
[INFO] [stdout]    --> crates/core/src/engine.rs:205:28
[INFO] [stdout]     |
[INFO] [stdout] 205 |                 if visited.contains(&n) { continue; }
[INFO] [stdout]     |                            ^^^^^^^^ the trait `Ord` is not implemented for `types::Axial`
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `BTreeSet::<T, A>::contains`
[INFO] [stdout]    --> /rustc/1af98b7cdf86932b76182a387f52f1be6f0c1be0/library/alloc/src/collections/btree/set.rs:606:4
[INFO] [stdout] help: consider annotating `types::Axial` with `#[derive(Ord)]`
[INFO] [stdout]    --> crates/core/src/types.rs:5:1
[INFO] [stdout]     |
[INFO] [stdout]   5 + #[derive(Ord)]
[INFO] [stdout]   6 | pub struct Axial { pub q: i32, pub r: i32 } // axial hex coords
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `types::Axial: Ord` is not satisfied
[INFO] [stdout]    --> crates/core/src/engine.rs:205:37
[INFO] [stdout]     |
[INFO] [stdout] 205 |                 if visited.contains(&n) { continue; }
[INFO] [stdout]     |                            -------- ^^ the trait `Ord` is not implemented for `types::Axial`
[INFO] [stdout]     |                            |
[INFO] [stdout]     |                            required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `BTreeSet::<T, A>::contains`
[INFO] [stdout]    --> /rustc/1af98b7cdf86932b76182a387f52f1be6f0c1be0/library/alloc/src/collections/btree/set.rs:606:4
[INFO] [stdout] help: consider annotating `types::Axial` with `#[derive(Ord)]`
[INFO] [stdout]    --> crates/core/src/types.rs:5:1
[INFO] [stdout]     |
[INFO] [stdout]   5 + #[derive(Ord)]
[INFO] [stdout]   6 | pub struct Axial { pub q: i32, pub r: i32 } // axial hex coords
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `types::Axial: Ord` is not satisfied
[INFO] [stdout]    --> crates/core/src/engine.rs:206:25
[INFO] [stdout]     |
[INFO] [stdout] 206 |                 visited.insert(n);
[INFO] [stdout]     |                         ^^^^^^ the trait `Ord` is not implemented for `types::Axial`
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `BTreeSet::<T, A>::insert`
[INFO] [stdout]    --> /rustc/1af98b7cdf86932b76182a387f52f1be6f0c1be0/library/alloc/src/collections/btree/set.rs:900:4
[INFO] [stdout] help: consider annotating `types::Axial` with `#[derive(Ord)]`
[INFO] [stdout]    --> crates/core/src/types.rs:5:1
[INFO] [stdout]     |
[INFO] [stdout]   5 + #[derive(Ord)]
[INFO] [stdout]   6 | pub struct Axial { pub q: i32, pub r: i32 } // axial hex coords
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `types::Axial: Ord` is not satisfied
[INFO] [stdout]    --> crates/core/src/engine.rs:208:25
[INFO] [stdout]     |
[INFO] [stdout] 208 |                 visited.remove(&n);
[INFO] [stdout]     |                         ^^^^^^ the trait `Ord` is not implemented for `types::Axial`
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `BTreeSet::<T, A>::remove`
[INFO] [stdout]    --> /rustc/1af98b7cdf86932b76182a387f52f1be6f0c1be0/library/alloc/src/collections/btree/set.rs:1053:4
[INFO] [stdout] help: consider annotating `types::Axial` with `#[derive(Ord)]`
[INFO] [stdout]    --> crates/core/src/types.rs:5:1
[INFO] [stdout]     |
[INFO] [stdout]   5 + #[derive(Ord)]
[INFO] [stdout]   6 | pub struct Axial { pub q: i32, pub r: i32 } // axial hex coords
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `types::Axial: Ord` is not satisfied
[INFO] [stdout]    --> crates/core/src/engine.rs:208:32
[INFO] [stdout]     |
[INFO] [stdout] 208 |                 visited.remove(&n);
[INFO] [stdout]     |                         ------ ^^ the trait `Ord` is not implemented for `types::Axial`
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `BTreeSet::<T, A>::remove`
[INFO] [stdout]    --> /rustc/1af98b7cdf86932b76182a387f52f1be6f0c1be0/library/alloc/src/collections/btree/set.rs:1053:4
[INFO] [stdout] help: consider annotating `types::Axial` with `#[derive(Ord)]`
[INFO] [stdout]    --> crates/core/src/types.rs:5:1
[INFO] [stdout]     |
[INFO] [stdout]   5 + #[derive(Ord)]
[INFO] [stdout]   6 | pub struct Axial { pub q: i32, pub r: i32 } // axial hex coords
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking gpu-descriptor v0.2.4
[INFO] [stderr]     Checking parking_lot v0.12.4
[INFO] [stdout] warning: unused variable: `cfg`
[INFO] [stdout]  --> crates/core/src/events.rs:3:20
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn apply_event(cfg: &Rules, ev: &EventCard, map: &mut Map) {
[INFO] [stdout]   |                    ^^^ help: if this is intentional, prefix it with an underscore: `_cfg`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0252, E0277, E0599.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0252`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `hexlands_core` (lib) due to 84 previous errors; 4 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] running `Command { std: "docker" "inspect" "04570f90aa7584f0e4632ee6962c120cb42149c55de77ad8730e35d6276ea66e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "04570f90aa7584f0e4632ee6962c120cb42149c55de77ad8730e35d6276ea66e", kill_on_drop: false }`
[INFO] [stdout] 04570f90aa7584f0e4632ee6962c120cb42149c55de77ad8730e35d6276ea66e
