[INFO] cloning repository https://github.com/aubrika/ecdysium
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/aubrika/ecdysium" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Faubrika%2Fecdysium", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Faubrika%2Fecdysium'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] f7b3a7158ef91abc27ef72b9860b7764f7e30f26
[INFO] checking aubrika/ecdysium against eca445e5ae4a6679cc27d3a09106ce245e13a5a6 for pr-162478
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Faubrika%2Fecdysium" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/aubrika/ecdysium
[INFO] finished tweaking git repo https://github.com/aubrika/ecdysium
[INFO] tweaked toml for git repo https://github.com/aubrika/ecdysium written to /workspace/builds/worker-3-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/aubrika/ecdysium on toolchain eca445e5ae4a6679cc27d3a09106ce245e13a5a6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+eca445e5ae4a6679cc27d3a09106ce245e13a5a6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/aubrika/ecdysium already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+eca445e5ae4a6679cc27d3a09106ce245e13a5a6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: binary `atlas_view` should have a kebab-case name
[INFO] [stderr]   |
[INFO] [stderr] 1 | /workspace/builds/worker-3-tc1/source/target/.../atlas_view
[INFO] [stderr]   |                                                  ^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `cargo::non_kebab_case_bins` is set to `warn` by default
[INFO] [stderr] help: to change the binary name to `atlas-view`, convert the file stem
[INFO] [stderr]   |
[INFO] [stderr] 1 - src/bin/atlas_view.rs
[INFO] [stderr] 1 + src/bin/atlas-view.rs
[INFO] [stderr]   |
[INFO] [stderr] warning: binary `extract_cells` should have a kebab-case name
[INFO] [stderr]   |
[INFO] [stderr] 1 | /workspace/builds/worker-3-tc1/source/target/.../extract_cells
[INFO] [stderr]   |                                                  ^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr] help: to change the binary name to `extract-cells`, convert the file stem
[INFO] [stderr]   |
[INFO] [stderr] 1 - src/bin/extract_cells.rs
[INFO] [stderr] 1 + src/bin/extract-cells.rs
[INFO] [stderr]   |
[INFO] [stderr] warning: binary `slice_atlas` should have a kebab-case name
[INFO] [stderr]   |
[INFO] [stderr] 1 | /workspace/builds/worker-3-tc1/source/target/.../slice_atlas
[INFO] [stderr]   |                                                  ^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr] help: to change the binary name to `slice-atlas`, convert the file stem
[INFO] [stderr]   |
[INFO] [stderr] 1 - src/bin/slice_atlas.rs
[INFO] [stderr] 1 + src/bin/slice-atlas.rs
[INFO] [stderr]   |
[INFO] [stderr] warning: `ecdysium` (manifest) generated 3 warnings
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded miniquad v0.4.8
[INFO] [stderr]   Downloaded macroquad v0.4.14
[INFO] [stderr]   Downloaded quad-snd v0.2.8
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:8683fc1fc2eb5c9ac98e0d076ab094b2ffac7f99da555d2b6a2e27f346de2ec7" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 9fe0ff6e9bfd6fdfdd4121088ba1359faedc1e9714a59ce9dc7c209c5dc332d5
[INFO] running `Command { std: "docker" "start" "9fe0ff6e9bfd6fdfdd4121088ba1359faedc1e9714a59ce9dc7c209c5dc332d5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "9fe0ff6e9bfd6fdfdd4121088ba1359faedc1e9714a59ce9dc7c209c5dc332d5", 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" "9fe0ff6e9bfd6fdfdd4121088ba1359faedc1e9714a59ce9dc7c209c5dc332d5" "/opt/rustwide/cargo-home/bin/cargo" "+eca445e5ae4a6679cc27d3a09106ce245e13a5a6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "9fe0ff6e9bfd6fdfdd4121088ba1359faedc1e9714a59ce9dc7c209c5dc332d5", 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" "9fe0ff6e9bfd6fdfdd4121088ba1359faedc1e9714a59ce9dc7c209c5dc332d5" "/opt/rustwide/cargo-home/bin/cargo" "+eca445e5ae4a6679cc27d3a09106ce245e13a5a6" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr] warning: binary `atlas_view` should have a kebab-case name
[INFO] [stderr]   |
[INFO] [stderr] 1 | /opt/rustwide/target/.../atlas_view
[INFO] [stderr]   |                          ^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `cargo::non_kebab_case_bins` is set to `warn` by default
[INFO] [stderr] help: to change the binary name to `atlas-view`, convert the file stem
[INFO] [stderr]   |
[INFO] [stderr] 1 - src/bin/atlas_view.rs
[INFO] [stderr] 1 + src/bin/atlas-view.rs
[INFO] [stderr]   |
[INFO] [stderr] warning: binary `extract_cells` should have a kebab-case name
[INFO] [stderr]   |
[INFO] [stderr] 1 | /opt/rustwide/target/.../extract_cells
[INFO] [stderr]   |                          ^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr] help: to change the binary name to `extract-cells`, convert the file stem
[INFO] [stderr]   |
[INFO] [stderr] 1 - src/bin/extract_cells.rs
[INFO] [stderr] 1 + src/bin/extract-cells.rs
[INFO] [stderr]   |
[INFO] [stderr] warning: binary `slice_atlas` should have a kebab-case name
[INFO] [stderr]   |
[INFO] [stderr] 1 | /opt/rustwide/target/.../slice_atlas
[INFO] [stderr]   |                          ^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr] help: to change the binary name to `slice-atlas`, convert the file stem
[INFO] [stderr]   |
[INFO] [stderr] 1 - src/bin/slice_atlas.rs
[INFO] [stderr] 1 + src/bin/slice-atlas.rs
[INFO] [stderr]   |
[INFO] [stderr] warning: `ecdysium` (manifest) generated 3 warnings
[INFO] [stderr]    Compiling libc v0.2.185
[INFO] [stderr]     Checking ogg v0.7.1
[INFO] [stderr]    Compiling miniquad v0.4.8
[INFO] [stderr]    Compiling quad-snd v0.2.8
[INFO] [stderr]     Checking hound v3.5.1
[INFO] [stderr]     Checking ttf-parser v0.21.1
[INFO] [stderr]    Compiling macroquad_macro v0.1.8
[INFO] [stderr]     Checking png v0.17.16
[INFO] [stderr]     Checking glam v0.27.0
[INFO] [stderr]     Checking quad-rand v0.2.3
[INFO] [stderr]     Checking lewton v0.9.4
[INFO] [stderr]     Checking audrey v0.3.0
[INFO] [stderr]     Checking image v0.24.9
[INFO] [stderr]     Checking getrandom v0.2.17
[INFO] [stderr]     Checking quad-alsa-sys v0.3.2
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking rand v0.8.6
[INFO] [stderr]     Checking fontdue v0.9.3
[INFO] [stderr]     Checking macroquad v0.4.14
[INFO] [stderr]     Checking ecdysium v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `Tile`
[INFO] [stdout]   --> src/tileset.rs:46:27
[INFO] [stdout]    |
[INFO] [stdout] 46 | use crate::dungeon::{Map, Tile};
[INFO] [stdout]    |                           ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `generator::Generator`
[INFO] [stdout]   --> src/main.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 29 | use generator::Generator;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `generator::sector::SectorGenerator`
[INFO] [stdout]   --> src/main.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 30 | use generator::sector::SectorGenerator;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `RoomContents` and `stock_rooms`
[INFO] [stdout]   --> src/main.rs:34:13
[INFO] [stdout]    |
[INFO] [stdout] 34 | use stock::{stock_rooms, RoomContents};
[INFO] [stdout]    |             ^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Tile`
[INFO] [stdout]   --> src/tileset.rs:46:27
[INFO] [stdout]    |
[INFO] [stdout] 46 | use crate::dungeon::{Map, Tile};
[INFO] [stdout]    |                           ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `generator::Generator`
[INFO] [stdout]   --> src/main.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 29 | use generator::Generator;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `generator::sector::SectorGenerator`
[INFO] [stdout]   --> src/main.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 30 | use generator::sector::SectorGenerator;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `RoomContents` and `stock_rooms`
[INFO] [stdout]   --> src/main.rs:34:13
[INFO] [stdout]    |
[INFO] [stdout] 34 | use stock::{stock_rooms, RoomContents};
[INFO] [stdout]    |             ^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/main.rs:3591:33
[INFO] [stdout]      |
[INFO] [stdout] 3591 | ...                   let mut dmg = if combat_stims_turns_left > 0
[INFO] [stdout]      |                           ----^^^
[INFO] [stdout]      |                           |
[INFO] [stdout]      |                           help: remove this `mut`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/main.rs:3591:33
[INFO] [stdout]      |
[INFO] [stdout] 3591 | ...                   let mut dmg = if combat_stims_turns_left > 0
[INFO] [stdout]      |                           ----^^^
[INFO] [stdout]      |                           |
[INFO] [stdout]      |                           help: remove this `mut`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `y` is never read
[INFO] [stdout]     --> src/ui.rs:1295:17
[INFO] [stdout]      |
[INFO] [stdout] 1295 |                 y += body_size * 1.25;
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout]      = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `y` is never read
[INFO] [stdout]     --> src/ui.rs:1295:17
[INFO] [stdout]      |
[INFO] [stdout] 1295 |                 y += body_size * 1.25;
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = help: maybe it is overwritten before being read?
[INFO] [stdout]      = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `loot_base` and `attributes` are never read
[INFO] [stdout]    --> src/creatures/mod.rs:178:9
[INFO] [stdout]     |
[INFO] [stdout] 151 | pub struct CreatureTemplate {
[INFO] [stdout]     |            ---------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 178 |     pub loot_base: u32,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 194 |     pub attributes: crate::attributes::Attributes,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `CreatureTemplate` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `render_scale` and `loot_value` are never used
[INFO] [stdout]    --> src/creatures/mod.rs:441:12
[INFO] [stdout]     |
[INFO] [stdout] 301 | impl CreatureKind {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 441 |     pub fn render_scale(self) -> f32 { self.template().render_scale }
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 495 |     pub fn loot_value(self, dungeon_level: u8) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `has` and `iter` are never used
[INFO] [stdout]   --> src/dungeon.rs:45:12
[INFO] [stdout]    |
[INFO] [stdout] 44 | impl Connections {
[INFO] [stdout]    | ---------------- methods in this implementation
[INFO] [stdout] 45 |     pub fn has(self, dir: Dir) -> bool {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 57 |     pub fn iter(self) -> impl Iterator<Item = Dir> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_open`, `connections_at`, `tile_slice`, `save_tiles`, and `load_tiles` are never used
[INFO] [stdout]    --> src/dungeon.rs:197:12
[INFO] [stdout]     |
[INFO] [stdout] 173 | impl Map {
[INFO] [stdout]     | -------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 197 |     pub fn is_open(&self, x: usize, y: usize) -> bool {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 201 |     pub fn connections_at(&self, x: usize, y: usize) -> Connections {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 205 |     pub fn tile_slice(&self) -> &[Tile] {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 209 |     pub fn save_tiles(&self) -> Vec<Tile> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 213 |     pub fn load_tiles(&mut self, snapshot: Vec<Tile>) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `LightLevel` is never used
[INFO] [stdout]   --> src/fov.rs:16:10
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub enum LightLevel {
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `level_at` is never used
[INFO] [stdout]   --> src/fov.rs:23:8
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub fn level_at(brightness: f32) -> LightLevel {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CaveGenerator` is never constructed
[INFO] [stdout]  --> src/generator/caves.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct CaveGenerator {
[INFO] [stdout]   |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `wall_count` is never used
[INFO] [stdout]   --> src/generator/caves.rs:48:4
[INFO] [stdout]    |
[INFO] [stdout] 48 | fn wall_count(tiles: &[Tile], x: usize, y: usize, width: usize, height: usize) -> usize {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MIN_ROOM_SIZE` is never used
[INFO] [stdout]  --> src/generator/rooms.rs:6:7
[INFO] [stdout]   |
[INFO] [stdout] 6 | const MIN_ROOM_SIZE: usize = 4;
[INFO] [stdout]   |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_ROOM_SIZE` is never used
[INFO] [stdout]  --> src/generator/rooms.rs:7:7
[INFO] [stdout]   |
[INFO] [stdout] 7 | const MAX_ROOM_SIZE: usize = 12;
[INFO] [stdout]   |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MIN_LEAF_SIZE` is never used
[INFO] [stdout]  --> src/generator/rooms.rs:8:7
[INFO] [stdout]   |
[INFO] [stdout] 8 | const MIN_LEAF_SIZE: usize = MIN_ROOM_SIZE + 4;
[INFO] [stdout]   |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Point` is never used
[INFO] [stdout]   --> src/generator/rooms.rs:10:6
[INFO] [stdout]    |
[INFO] [stdout] 10 | type Point = (usize, usize);
[INFO] [stdout]    |      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `pair_key` is never used
[INFO] [stdout]   --> src/generator/rooms.rs:13:4
[INFO] [stdout]    |
[INFO] [stdout] 13 | fn pair_key(a: Point, b: Point) -> (Point, Point) {
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RoomGenerator` is never constructed
[INFO] [stdout]   --> src/generator/rooms.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct RoomGenerator {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Rect` is never constructed
[INFO] [stdout]   --> src/generator/rooms.rs:59:8
[INFO] [stdout]    |
[INFO] [stdout] 59 | struct Rect {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BspNode` is never constructed
[INFO] [stdout]   --> src/generator/rooms.rs:66:8
[INFO] [stdout]    |
[INFO] [stdout] 66 | struct BspNode {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/generator/rooms.rs:74:8
[INFO] [stdout]     |
[INFO] [stdout]  73 | impl BspNode {
[INFO] [stdout]     | ------------ associated items in this implementation
[INFO] [stdout]  74 |     fn new(region: Rect) -> Self {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout]  78 |     fn split(&mut self, rng: &mut impl Rng, depth: usize) {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 125 |     fn place_rooms(&mut self, rng: &mut impl Rng) {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 143 |     fn center(&self) -> Option<Point> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 153 |     fn gather_centers(&self, out: &mut Vec<Point>) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 161 |     fn carve(&self, map: &mut Map) {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 173 |     fn connect(&self, map: &mut Map, rng: &mut impl Rng, connected: &mut HashSet<(Point, Point)>) {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dig_corridor` is never used
[INFO] [stdout]    --> src/generator/rooms.rs:185:4
[INFO] [stdout]     |
[INFO] [stdout] 185 | fn dig_corridor(map: &mut Map, from: Point, to: Point, h_first: bool) {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MazeRoomsGenerator` is never constructed
[INFO] [stdout]  --> src/generator/maze_rooms.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct MazeRoomsGenerator {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `odd_in` is never used
[INFO] [stdout]    --> src/generator/maze_rooms.rs:389:4
[INFO] [stdout]     |
[INFO] [stdout] 389 | fn odd_in(rng: &mut impl Rng, lo: usize, hi: usize) -> Option<usize> {
[INFO] [stdout]     |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `grow_maze` is never used
[INFO] [stdout]    --> src/generator/maze_rooms.rs:398:4
[INFO] [stdout]     |
[INFO] [stdout] 398 | fn grow_maze(
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `adjacent_regions` is never used
[INFO] [stdout]    --> src/generator/maze_rooms.rs:444:4
[INFO] [stdout]     |
[INFO] [stdout] 444 | fn adjacent_regions(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `open_cardinal_count` is never used
[INFO] [stdout]    --> src/generator/maze_rooms.rs:462:4
[INFO] [stdout]     |
[INFO] [stdout] 462 | fn open_cardinal_count(map: &Map, x: usize, y: usize) -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cardinal_floor_neighbours` is never used
[INFO] [stdout]    --> src/generator/maze_rooms.rs:474:4
[INFO] [stdout]     |
[INFO] [stdout] 474 | fn cardinal_floor_neighbours(map: &Map, x: usize, y: usize) -> Vec<(usize, usize)> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `l_path` is never used
[INFO] [stdout]    --> src/generator/maze_rooms.rs:491:4
[INFO] [stdout]     |
[INFO] [stdout] 491 | fn l_path(x1: usize, y1: usize, x2: usize, y2: usize, h_first: bool) -> Vec<(usize, usize)> {
[INFO] [stdout]     |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_key_tile` is never used
[INFO] [stdout]    --> src/generator/maze_rooms.rs:510:4
[INFO] [stdout]     |
[INFO] [stdout] 510 | fn is_key_tile(map: &Map, room_tiles: &[bool], x: usize, y: usize, width: usize) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `count_reachable_rooms` is never used
[INFO] [stdout]    --> src/generator/maze_rooms.rs:515:4
[INFO] [stdout]     |
[INFO] [stdout] 515 | fn count_reachable_rooms(map: &Map, reps: &[(usize, usize)]) -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rooms_connected` is never used
[INFO] [stdout]    --> src/generator/maze_rooms.rs:536:4
[INFO] [stdout]     |
[INFO] [stdout] 536 | fn rooms_connected(map: &Map, reps: &[(usize, usize)]) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `UnionFind` is never constructed
[INFO] [stdout]    --> src/generator/maze_rooms.rs:557:8
[INFO] [stdout]     |
[INFO] [stdout] 557 | struct UnionFind {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `find`, `connected`, and `union` are never used
[INFO] [stdout]    --> src/generator/maze_rooms.rs:562:8
[INFO] [stdout]     |
[INFO] [stdout] 561 | impl UnionFind {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout] 562 |     fn new(n: usize) -> Self {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 566 |     fn find(&mut self, mut x: usize) -> usize {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 574 |     fn connected(&mut self, a: usize, b: usize) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 578 |     fn union(&mut self, a: usize, b: usize) {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `down` is never used
[INFO] [stdout]    --> src/input.rs:204:12
[INFO] [stdout]     |
[INFO] [stdout] 131 | impl Bindings {
[INFO] [stdout]     | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 204 |     pub fn down(&self, action: Action) -> bool {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constant `PAPER_DOLL` is never used
[INFO] [stdout]    --> src/items/mod.rs:173:15
[INFO] [stdout]     |
[INFO] [stdout] 146 | impl EquipSlot {
[INFO] [stdout]     | -------------- associated constant in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 173 |     pub const PAPER_DOLL: &'static [EquipSlot] = &[
[INFO] [stdout]     |               ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `sprite`, `render_scale`, and `healing` are never used
[INFO] [stdout]    --> src/items/mod.rs:712:12
[INFO] [stdout]     |
[INFO] [stdout] 456 | impl ItemKind {
[INFO] [stdout]     | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 712 |     pub fn sprite(self) -> ItemSprite { self.template().sprite }
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 713 |     pub fn use_effect(self) -> UseEffect { self.template().use_effect }
[INFO] [stdout] 714 |     pub fn render_scale(self) -> f32 { self.template().render_scale }
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 715 |     pub fn category(self) -> ItemCategory { self.template().category }
[INFO] [stdout] 716 |     pub fn healing(self) -> Option<u32> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `fire_sound_path` is never read
[INFO] [stdout]   --> src/items/weapons.rs:99:9
[INFO] [stdout]    |
[INFO] [stdout] 89 | pub struct RangedProfile {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 99 |     pub fire_sound_path: &'static str,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `RangedProfile` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constant `ALL` is never used
[INFO] [stdout]    --> src/items/weapons.rs:129:15
[INFO] [stdout]     |
[INFO] [stdout] 126 | impl WeaponKind {
[INFO] [stdout]     | --------------- associated constant in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 129 |     pub const ALL: &'static [WeaponKind] = &[
[INFO] [stdout]     |               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Terminal` is never constructed
[INFO] [stdout]    --> src/props.rs:331:5
[INFO] [stdout]     |
[INFO] [stdout] 323 | pub enum PropInteraction {
[INFO] [stdout]     |          --------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 331 |     Terminal,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PropInteraction` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DECK_BASE` is never used
[INFO] [stdout]   --> src/render/pixel.rs:20:7
[INFO] [stdout]    |
[INFO] [stdout] 20 | const DECK_BASE:   (u8, u8, u8) = (55,  65,  80);
[INFO] [stdout]    |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DECK_SEAM` is never used
[INFO] [stdout]   --> src/render/pixel.rs:21:7
[INFO] [stdout]    |
[INFO] [stdout] 21 | const DECK_SEAM:   (u8, u8, u8) = (38,  46,  58);
[INFO] [stdout]    |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DECK_RIVET` is never used
[INFO] [stdout]   --> src/render/pixel.rs:22:7
[INFO] [stdout]    |
[INFO] [stdout] 22 | const DECK_RIVET:  (u8, u8, u8) = (22,  28,  40);
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RUST` is never used
[INFO] [stdout]   --> src/render/pixel.rs:23:7
[INFO] [stdout]    |
[INFO] [stdout] 23 | const RUST:        (u8, u8, u8) = (130, 70,  38);
[INFO] [stdout]    |       ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RUST_DARK` is never used
[INFO] [stdout]   --> src/render/pixel.rs:24:7
[INFO] [stdout]    |
[INFO] [stdout] 24 | const RUST_DARK:   (u8, u8, u8) = (95,  50,  28);
[INFO] [stdout]    |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WALL_HI` is never used
[INFO] [stdout]   --> src/render/pixel.rs:27:7
[INFO] [stdout]    |
[INFO] [stdout] 27 | const WALL_HI:     (u8, u8, u8) = (72,  82,  98);
[INFO] [stdout]    |       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HULL_FAINT` is never used
[INFO] [stdout]   --> src/render/pixel.rs:29:7
[INFO] [stdout]    |
[INFO] [stdout] 29 | const HULL_FAINT:  (u8, u8, u8) = (16,  20,  30);
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `ship` is never read
[INFO] [stdout]    --> src/render/pixel.rs:146:9
[INFO] [stdout]     |
[INFO] [stdout] 145 | pub struct BiomeTextures {
[INFO] [stdout]     |            ------------- field in this struct
[INFO] [stdout] 146 |     pub ship: ShipTextures,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `atlas_white`, `biomes`, `health_bar_full_cap`, `health_bar_full_fill`, `health_bar_empty_cap`, and `health_bar_empty_fill` are never read
[INFO] [stdout]    --> src/render/pixel.rs:156:9
[INFO] [stdout]     |
[INFO] [stdout] 149 | pub struct Sprites {
[INFO] [stdout]     |            ------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 156 |     pub atlas_white:    Texture2D,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 161 |     pub biomes:         BiomeTextures,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 171 |     pub health_bar_full_cap:   Rect,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 172 |     pub health_bar_full_fill:  Rect,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 173 |     pub health_bar_empty_cap:  Rect,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 174 |     pub health_bar_empty_fill: Rect,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `death` is never read
[INFO] [stdout]    --> src/render/pixel.rs:235:9
[INFO] [stdout]     |
[INFO] [stdout] 230 | pub struct LoadedCreature {
[INFO] [stdout]     |            -------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 235 |     pub death:  Option<LoadedAnimation>,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `has_any` is never used
[INFO] [stdout]    --> src/render/pixel.rs:239:12
[INFO] [stdout]     |
[INFO] [stdout] 238 | impl LoadedCreature {
[INFO] [stdout]     | ------------------- method in this implementation
[INFO] [stdout] 239 |     pub fn has_any(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `blocks_movement` and `blocks_action` are never used
[INFO] [stdout]   --> src/status.rs:66:12
[INFO] [stdout]    |
[INFO] [stdout] 37 | impl StatusKind {
[INFO] [stdout]    | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 66 |     pub fn blocks_movement(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 71 |     pub fn blocks_action(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `has`, `blocks_movement`, `blocks_action`, `entries`, and `is_empty` are never used
[INFO] [stdout]    --> src/status.rs:119:12
[INFO] [stdout]     |
[INFO] [stdout]  94 | impl StatusEffectList {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 119 |     pub fn has(&self, kind: StatusKind) -> bool {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 123 |     pub fn blocks_movement(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 127 |     pub fn blocks_action(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 151 |     pub fn entries(&self) -> Vec<(StatusKind, u32)> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 161 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `glyph` is never used
[INFO] [stdout]   --> src/stock.rs:96:12
[INFO] [stdout]    |
[INFO] [stdout] 94 | impl RoomContents {
[INFO] [stdout]    | ----------------- method in this implementation
[INFO] [stdout] 95 |     /// Single-character glyph used for quick map overlays.
[INFO] [stdout] 96 |     pub fn glyph(&self) -> char {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Lunar` is never constructed
[INFO] [stdout]    --> src/tileset.rs:207:5
[INFO] [stdout]     |
[INFO] [stdout] 203 | pub enum Biome {
[INFO] [stdout]     |          ----- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 207 |     Lunar,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Biome` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `loot_base` and `attributes` are never read
[INFO] [stdout]    --> src/creatures/mod.rs:178:9
[INFO] [stdout]     |
[INFO] [stdout] 151 | pub struct CreatureTemplate {
[INFO] [stdout]     |            ---------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 178 |     pub loot_base: u32,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 194 |     pub attributes: crate::attributes::Attributes,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `CreatureTemplate` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `render_scale` and `loot_value` are never used
[INFO] [stdout]    --> src/creatures/mod.rs:441:12
[INFO] [stdout]     |
[INFO] [stdout] 301 | impl CreatureKind {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 441 |     pub fn render_scale(self) -> f32 { self.template().render_scale }
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 495 |     pub fn loot_value(self, dungeon_level: u8) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `has` and `iter` are never used
[INFO] [stdout]   --> src/dungeon.rs:45:12
[INFO] [stdout]    |
[INFO] [stdout] 44 | impl Connections {
[INFO] [stdout]    | ---------------- methods in this implementation
[INFO] [stdout] 45 |     pub fn has(self, dir: Dir) -> bool {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 57 |     pub fn iter(self) -> impl Iterator<Item = Dir> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_open`, `connections_at`, `tile_slice`, `save_tiles`, and `load_tiles` are never used
[INFO] [stdout]    --> src/dungeon.rs:197:12
[INFO] [stdout]     |
[INFO] [stdout] 173 | impl Map {
[INFO] [stdout]     | -------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 197 |     pub fn is_open(&self, x: usize, y: usize) -> bool {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 201 |     pub fn connections_at(&self, x: usize, y: usize) -> Connections {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 205 |     pub fn tile_slice(&self) -> &[Tile] {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 209 |     pub fn save_tiles(&self) -> Vec<Tile> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 213 |     pub fn load_tiles(&mut self, snapshot: Vec<Tile>) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `LightLevel` is never used
[INFO] [stdout]   --> src/fov.rs:16:10
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub enum LightLevel {
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `level_at` is never used
[INFO] [stdout]   --> src/fov.rs:23:8
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub fn level_at(brightness: f32) -> LightLevel {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CaveGenerator` is never constructed
[INFO] [stdout]  --> src/generator/caves.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct CaveGenerator {
[INFO] [stdout]   |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `wall_count` is never used
[INFO] [stdout]   --> src/generator/caves.rs:48:4
[INFO] [stdout]    |
[INFO] [stdout] 48 | fn wall_count(tiles: &[Tile], x: usize, y: usize, width: usize, height: usize) -> usize {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MIN_ROOM_SIZE` is never used
[INFO] [stdout]  --> src/generator/rooms.rs:6:7
[INFO] [stdout]   |
[INFO] [stdout] 6 | const MIN_ROOM_SIZE: usize = 4;
[INFO] [stdout]   |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_ROOM_SIZE` is never used
[INFO] [stdout]  --> src/generator/rooms.rs:7:7
[INFO] [stdout]   |
[INFO] [stdout] 7 | const MAX_ROOM_SIZE: usize = 12;
[INFO] [stdout]   |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MIN_LEAF_SIZE` is never used
[INFO] [stdout]  --> src/generator/rooms.rs:8:7
[INFO] [stdout]   |
[INFO] [stdout] 8 | const MIN_LEAF_SIZE: usize = MIN_ROOM_SIZE + 4;
[INFO] [stdout]   |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Point` is never used
[INFO] [stdout]   --> src/generator/rooms.rs:10:6
[INFO] [stdout]    |
[INFO] [stdout] 10 | type Point = (usize, usize);
[INFO] [stdout]    |      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `pair_key` is never used
[INFO] [stdout]   --> src/generator/rooms.rs:13:4
[INFO] [stdout]    |
[INFO] [stdout] 13 | fn pair_key(a: Point, b: Point) -> (Point, Point) {
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RoomGenerator` is never constructed
[INFO] [stdout]   --> src/generator/rooms.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct RoomGenerator {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Rect` is never constructed
[INFO] [stdout]   --> src/generator/rooms.rs:59:8
[INFO] [stdout]    |
[INFO] [stdout] 59 | struct Rect {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BspNode` is never constructed
[INFO] [stdout]   --> src/generator/rooms.rs:66:8
[INFO] [stdout]    |
[INFO] [stdout] 66 | struct BspNode {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/generator/rooms.rs:74:8
[INFO] [stdout]     |
[INFO] [stdout]  73 | impl BspNode {
[INFO] [stdout]     | ------------ associated items in this implementation
[INFO] [stdout]  74 |     fn new(region: Rect) -> Self {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout]  78 |     fn split(&mut self, rng: &mut impl Rng, depth: usize) {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 125 |     fn place_rooms(&mut self, rng: &mut impl Rng) {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 143 |     fn center(&self) -> Option<Point> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 153 |     fn gather_centers(&self, out: &mut Vec<Point>) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 161 |     fn carve(&self, map: &mut Map) {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 173 |     fn connect(&self, map: &mut Map, rng: &mut impl Rng, connected: &mut HashSet<(Point, Point)>) {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dig_corridor` is never used
[INFO] [stdout]    --> src/generator/rooms.rs:185:4
[INFO] [stdout]     |
[INFO] [stdout] 185 | fn dig_corridor(map: &mut Map, from: Point, to: Point, h_first: bool) {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MazeRoomsGenerator` is never constructed
[INFO] [stdout]  --> src/generator/maze_rooms.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct MazeRoomsGenerator {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `odd_in` is never used
[INFO] [stdout]    --> src/generator/maze_rooms.rs:389:4
[INFO] [stdout]     |
[INFO] [stdout] 389 | fn odd_in(rng: &mut impl Rng, lo: usize, hi: usize) -> Option<usize> {
[INFO] [stdout]     |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `grow_maze` is never used
[INFO] [stdout]    --> src/generator/maze_rooms.rs:398:4
[INFO] [stdout]     |
[INFO] [stdout] 398 | fn grow_maze(
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `adjacent_regions` is never used
[INFO] [stdout]    --> src/generator/maze_rooms.rs:444:4
[INFO] [stdout]     |
[INFO] [stdout] 444 | fn adjacent_regions(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `open_cardinal_count` is never used
[INFO] [stdout]    --> src/generator/maze_rooms.rs:462:4
[INFO] [stdout]     |
[INFO] [stdout] 462 | fn open_cardinal_count(map: &Map, x: usize, y: usize) -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cardinal_floor_neighbours` is never used
[INFO] [stdout]    --> src/generator/maze_rooms.rs:474:4
[INFO] [stdout]     |
[INFO] [stdout] 474 | fn cardinal_floor_neighbours(map: &Map, x: usize, y: usize) -> Vec<(usize, usize)> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `l_path` is never used
[INFO] [stdout]    --> src/generator/maze_rooms.rs:491:4
[INFO] [stdout]     |
[INFO] [stdout] 491 | fn l_path(x1: usize, y1: usize, x2: usize, y2: usize, h_first: bool) -> Vec<(usize, usize)> {
[INFO] [stdout]     |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_key_tile` is never used
[INFO] [stdout]    --> src/generator/maze_rooms.rs:510:4
[INFO] [stdout]     |
[INFO] [stdout] 510 | fn is_key_tile(map: &Map, room_tiles: &[bool], x: usize, y: usize, width: usize) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `count_reachable_rooms` is never used
[INFO] [stdout]    --> src/generator/maze_rooms.rs:515:4
[INFO] [stdout]     |
[INFO] [stdout] 515 | fn count_reachable_rooms(map: &Map, reps: &[(usize, usize)]) -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rooms_connected` is never used
[INFO] [stdout]    --> src/generator/maze_rooms.rs:536:4
[INFO] [stdout]     |
[INFO] [stdout] 536 | fn rooms_connected(map: &Map, reps: &[(usize, usize)]) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `UnionFind` is never constructed
[INFO] [stdout]    --> src/generator/maze_rooms.rs:557:8
[INFO] [stdout]     |
[INFO] [stdout] 557 | struct UnionFind {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `find`, `connected`, and `union` are never used
[INFO] [stdout]    --> src/generator/maze_rooms.rs:562:8
[INFO] [stdout]     |
[INFO] [stdout] 561 | impl UnionFind {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout] 562 |     fn new(n: usize) -> Self {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 566 |     fn find(&mut self, mut x: usize) -> usize {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 574 |     fn connected(&mut self, a: usize, b: usize) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 578 |     fn union(&mut self, a: usize, b: usize) {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `down` is never used
[INFO] [stdout]    --> src/input.rs:204:12
[INFO] [stdout]     |
[INFO] [stdout] 131 | impl Bindings {
[INFO] [stdout]     | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 204 |     pub fn down(&self, action: Action) -> bool {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constant `PAPER_DOLL` is never used
[INFO] [stdout]    --> src/items/mod.rs:173:15
[INFO] [stdout]     |
[INFO] [stdout] 146 | impl EquipSlot {
[INFO] [stdout]     | -------------- associated constant in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 173 |     pub const PAPER_DOLL: &'static [EquipSlot] = &[
[INFO] [stdout]     |               ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `sprite`, `render_scale`, and `healing` are never used
[INFO] [stdout]    --> src/items/mod.rs:712:12
[INFO] [stdout]     |
[INFO] [stdout] 456 | impl ItemKind {
[INFO] [stdout]     | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 712 |     pub fn sprite(self) -> ItemSprite { self.template().sprite }
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 713 |     pub fn use_effect(self) -> UseEffect { self.template().use_effect }
[INFO] [stdout] 714 |     pub fn render_scale(self) -> f32 { self.template().render_scale }
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 715 |     pub fn category(self) -> ItemCategory { self.template().category }
[INFO] [stdout] 716 |     pub fn healing(self) -> Option<u32> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `fire_sound_path` is never read
[INFO] [stdout]   --> src/items/weapons.rs:99:9
[INFO] [stdout]    |
[INFO] [stdout] 89 | pub struct RangedProfile {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 99 |     pub fire_sound_path: &'static str,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `RangedProfile` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constant `ALL` is never used
[INFO] [stdout]    --> src/items/weapons.rs:129:15
[INFO] [stdout]     |
[INFO] [stdout] 126 | impl WeaponKind {
[INFO] [stdout]     | --------------- associated constant in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 129 |     pub const ALL: &'static [WeaponKind] = &[
[INFO] [stdout]     |               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Terminal` is never constructed
[INFO] [stdout]    --> src/props.rs:331:5
[INFO] [stdout]     |
[INFO] [stdout] 323 | pub enum PropInteraction {
[INFO] [stdout]     |          --------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 331 |     Terminal,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PropInteraction` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DECK_BASE` is never used
[INFO] [stdout]   --> src/render/pixel.rs:20:7
[INFO] [stdout]    |
[INFO] [stdout] 20 | const DECK_BASE:   (u8, u8, u8) = (55,  65,  80);
[INFO] [stdout]    |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DECK_SEAM` is never used
[INFO] [stdout]   --> src/render/pixel.rs:21:7
[INFO] [stdout]    |
[INFO] [stdout] 21 | const DECK_SEAM:   (u8, u8, u8) = (38,  46,  58);
[INFO] [stdout]    |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DECK_RIVET` is never used
[INFO] [stdout]   --> src/render/pixel.rs:22:7
[INFO] [stdout]    |
[INFO] [stdout] 22 | const DECK_RIVET:  (u8, u8, u8) = (22,  28,  40);
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RUST` is never used
[INFO] [stdout]   --> src/render/pixel.rs:23:7
[INFO] [stdout]    |
[INFO] [stdout] 23 | const RUST:        (u8, u8, u8) = (130, 70,  38);
[INFO] [stdout]    |       ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RUST_DARK` is never used
[INFO] [stdout]   --> src/render/pixel.rs:24:7
[INFO] [stdout]    |
[INFO] [stdout] 24 | const RUST_DARK:   (u8, u8, u8) = (95,  50,  28);
[INFO] [stdout]    |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WALL_HI` is never used
[INFO] [stdout]   --> src/render/pixel.rs:27:7
[INFO] [stdout]    |
[INFO] [stdout] 27 | const WALL_HI:     (u8, u8, u8) = (72,  82,  98);
[INFO] [stdout]    |       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HULL_FAINT` is never used
[INFO] [stdout]   --> src/render/pixel.rs:29:7
[INFO] [stdout]    |
[INFO] [stdout] 29 | const HULL_FAINT:  (u8, u8, u8) = (16,  20,  30);
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `ship` is never read
[INFO] [stdout]    --> src/render/pixel.rs:146:9
[INFO] [stdout]     |
[INFO] [stdout] 145 | pub struct BiomeTextures {
[INFO] [stdout]     |            ------------- field in this struct
[INFO] [stdout] 146 |     pub ship: ShipTextures,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `atlas_white`, `biomes`, `health_bar_full_cap`, `health_bar_full_fill`, `health_bar_empty_cap`, and `health_bar_empty_fill` are never read
[INFO] [stdout]    --> src/render/pixel.rs:156:9
[INFO] [stdout]     |
[INFO] [stdout] 149 | pub struct Sprites {
[INFO] [stdout]     |            ------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 156 |     pub atlas_white:    Texture2D,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 161 |     pub biomes:         BiomeTextures,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 171 |     pub health_bar_full_cap:   Rect,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 172 |     pub health_bar_full_fill:  Rect,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 173 |     pub health_bar_empty_cap:  Rect,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 174 |     pub health_bar_empty_fill: Rect,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `death` is never read
[INFO] [stdout]    --> src/render/pixel.rs:235:9
[INFO] [stdout]     |
[INFO] [stdout] 230 | pub struct LoadedCreature {
[INFO] [stdout]     |            -------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 235 |     pub death:  Option<LoadedAnimation>,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `has_any` is never used
[INFO] [stdout]    --> src/render/pixel.rs:239:12
[INFO] [stdout]     |
[INFO] [stdout] 238 | impl LoadedCreature {
[INFO] [stdout]     | ------------------- method in this implementation
[INFO] [stdout] 239 |     pub fn has_any(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `blocks_movement` and `blocks_action` are never used
[INFO] [stdout]   --> src/status.rs:66:12
[INFO] [stdout]    |
[INFO] [stdout] 37 | impl StatusKind {
[INFO] [stdout]    | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 66 |     pub fn blocks_movement(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 71 |     pub fn blocks_action(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `has`, `blocks_movement`, `blocks_action`, `entries`, and `is_empty` are never used
[INFO] [stdout]    --> src/status.rs:119:12
[INFO] [stdout]     |
[INFO] [stdout]  94 | impl StatusEffectList {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 119 |     pub fn has(&self, kind: StatusKind) -> bool {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 123 |     pub fn blocks_movement(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 127 |     pub fn blocks_action(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 151 |     pub fn entries(&self) -> Vec<(StatusKind, u32)> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 161 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_empty` and `gp_value` are never used
[INFO] [stdout]   --> src/stock.rs:32:12
[INFO] [stdout]    |
[INFO] [stdout] 31 | impl Treasure {
[INFO] [stdout]    | ------------- methods in this implementation
[INFO] [stdout] 32 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub fn gp_value(&self) -> u32 {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `glyph` is never used
[INFO] [stdout]   --> src/stock.rs:96:12
[INFO] [stdout]    |
[INFO] [stdout] 94 | impl RoomContents {
[INFO] [stdout]    | ----------------- method in this implementation
[INFO] [stdout] 95 |     /// Single-character glyph used for quick map overlays.
[INFO] [stdout] 96 |     pub fn glyph(&self) -> char {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Lunar` is never constructed
[INFO] [stdout]    --> src/tileset.rs:207:5
[INFO] [stdout]     |
[INFO] [stdout] 203 | pub enum Biome {
[INFO] [stdout]     |          ----- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 207 |     Lunar,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Biome` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 12.62s
[INFO] running `Command { std: "docker" "inspect" "9fe0ff6e9bfd6fdfdd4121088ba1359faedc1e9714a59ce9dc7c209c5dc332d5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9fe0ff6e9bfd6fdfdd4121088ba1359faedc1e9714a59ce9dc7c209c5dc332d5", kill_on_drop: false }`
[INFO] [stdout] 9fe0ff6e9bfd6fdfdd4121088ba1359faedc1e9714a59ce9dc7c209c5dc332d5
