[INFO] fetching crate amosaic 1.0.0...
[INFO] testing amosaic-1.0.0 against try#c2e32f1c9652b13ed99608599c1e855462f421f3 for pr-146098-7
[INFO] extracting crate amosaic 1.0.0 into /workspace/builds/worker-2-tc2/source
[INFO] started tweaking crates.io crate amosaic 1.0.0
[INFO] finished tweaking crates.io crate amosaic 1.0.0
[INFO] tweaked toml for crates.io crate amosaic 1.0.0 written to /workspace/builds/worker-2-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate amosaic 1.0.0 on toolchain c2e32f1c9652b13ed99608599c1e855462f421f3
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c2e32f1c9652b13ed99608599c1e855462f421f3" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate amosaic 1.0.0 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" "+c2e32f1c9652b13ed99608599c1e855462f421f3" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c2e32f1c9652b13ed99608599c1e855462f421f3" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 99c0bd6c8270aa6602e4f325ac3037e537e6d439fafae5f033ca44cd7270340e
[INFO] running `Command { std: "docker" "start" "-a" "99c0bd6c8270aa6602e4f325ac3037e537e6d439fafae5f033ca44cd7270340e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "99c0bd6c8270aa6602e4f325ac3037e537e6d439fafae5f033ca44cd7270340e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "99c0bd6c8270aa6602e4f325ac3037e537e6d439fafae5f033ca44cd7270340e", kill_on_drop: false }`
[INFO] [stdout] 99c0bd6c8270aa6602e4f325ac3037e537e6d439fafae5f033ca44cd7270340e
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c2e32f1c9652b13ed99608599c1e855462f421f3" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 9307c2bdcebf87d4831b7e4d2e6e706395b42dda40b807e0ce59da09029569ea
[INFO] running `Command { std: "docker" "start" "-a" "9307c2bdcebf87d4831b7e4d2e6e706395b42dda40b807e0ce59da09029569ea", kill_on_drop: false }`
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling bytemuck v1.23.1
[INFO] [stderr]    Compiling zerocopy v0.8.26
[INFO] [stderr]    Compiling crc32fast v1.4.2
[INFO] [stderr]    Compiling matrixmultiply v0.3.10
[INFO] [stderr]    Compiling rawpointer v0.2.1
[INFO] [stderr]    Compiling getrandom v0.1.16
[INFO] [stderr]    Compiling miniz_oxide v0.8.9
[INFO] [stderr]    Compiling weezl v0.1.10
[INFO] [stderr]    Compiling half v2.6.0
[INFO] [stderr]    Compiling syn v2.0.104
[INFO] [stderr]    Compiling ttf-parser v0.15.2
[INFO] [stderr]    Compiling custom_derive v0.1.7
[INFO] [stderr]    Compiling anyhow v1.0.98
[INFO] [stderr]    Compiling rayon v1.10.0
[INFO] [stderr]    Compiling conv v0.3.3
[INFO] [stderr]    Compiling svg v0.10.0
[INFO] [stderr]    Compiling rand_core v0.5.1
[INFO] [stderr]    Compiling safe_arch v0.7.4
[INFO] [stderr]    Compiling gif v0.13.3
[INFO] [stderr]    Compiling qoi v0.4.1
[INFO] [stderr]    Compiling wide v0.7.33
[INFO] [stderr]    Compiling flate2 v1.1.2
[INFO] [stderr]    Compiling exr v1.73.0
[INFO] [stderr]    Compiling num-integer v0.1.46
[INFO] [stderr]    Compiling num-complex v0.4.6
[INFO] [stderr]    Compiling approx v0.5.1
[INFO] [stderr]    Compiling num-bigint v0.4.6
[INFO] [stderr]    Compiling num-iter v0.1.45
[INFO] [stderr]    Compiling png v0.17.16
[INFO] [stderr]    Compiling jpeg-decoder v0.3.2
[INFO] [stderr]    Compiling owned_ttf_parser v0.15.2
[INFO] [stderr]    Compiling simba v0.7.3
[INFO] [stderr]    Compiling simba v0.8.1
[INFO] [stderr]    Compiling rusttype v0.9.3
[INFO] [stderr]    Compiling num-rational v0.4.2
[INFO] [stderr]    Compiling tiff v0.9.1
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling nalgebra-macros v0.2.2
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling rand_chacha v0.2.2
[INFO] [stderr]    Compiling num v0.4.3
[INFO] [stderr]    Compiling rand v0.7.3
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling rand_distr v0.2.2
[INFO] [stderr]    Compiling image v0.24.9
[INFO] [stderr]    Compiling nalgebra v0.32.6
[INFO] [stderr]    Compiling nalgebra v0.30.1
[INFO] [stderr]    Compiling imageproc v0.23.0
[INFO] [stderr]    Compiling amosaic v1.0.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `IDENT`
[INFO] [stdout]  --> src/hat/coloring.rs:1:51
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::hat::geometry::{mul, trans_pt, ttrans, IDENT};
[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: `HatTile` and `MetaTile`
[INFO] [stdout]  --> src/hat/coloring.rs:3:90
[INFO] [stdout]   |
[INFO] [stdout] 3 |   collect_hats, construct_metatiles, construct_patch, construct_prototiles, DrawContext, HatTile,
[INFO] [stdout]   |                                                                                          ^^^^^^^
[INFO] [stdout] 4 |   MetaTile, Tile,
[INFO] [stdout]   |   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::Path`
[INFO] [stdout]  --> src/hat/coloring.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::path::Path;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Matrix2x3`
[INFO] [stdout]  --> src/hat/geometry.rs:1:16
[INFO] [stdout]   |
[INFO] [stdout] 1 | use nalgebra::{Matrix2x3, Vector2};
[INFO] [stdout]   |                ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::f64::consts::PI`
[INFO] [stdout]  --> src/hat/geometry.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::f64::consts::PI;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `hex_pt`
[INFO] [stdout]  --> src/hat/tiles.rs:2:3
[INFO] [stdout]   |
[INFO] [stdout] 2 |   hex_pt, intersect, match_two, mul, padd, psub, pt, rot_about, trans_pt, trot, ttrans,
[INFO] [stdout]   |   ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Rgb`
[INFO] [stdout]  --> src/hat/tiles.rs:5:13
[INFO] [stdout]   |
[INFO] [stdout] 5 | use image::{Rgb, RgbImage};
[INFO] [stdout]   |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DrawContext`, `MetaTile`, `Tile`, and `collect_hats`
[INFO] [stdout]  --> src/hat/mod.rs:7:17
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub use tiles::{collect_hats, DrawContext, MetaTile, Tile};
[INFO] [stdout]   |                 ^^^^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `anyhow::Result`
[INFO] [stdout]   --> src/lib.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 | use anyhow::Result;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DrawContext`, `MetaTile`, `Tile`, and `collect_hats`
[INFO] [stdout]   --> src/lib.rs:25:18
[INFO] [stdout]    |
[INFO] [stdout] 25 | use hat::tiles::{collect_hats, DrawContext, MetaTile, Tile};
[INFO] [stdout]    |                  ^^^^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AMosaic` and `ImageDrawContext`
[INFO] [stdout]   --> src/lib.rs:26:11
[INFO] [stdout]    |
[INFO] [stdout] 26 | use hat::{AMosaic, ImageDrawContext};
[INFO] [stdout]    |           ^^^^^^^  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ImageBuffer`, `Rgb`, and `open`
[INFO] [stdout]   --> src/lib.rs:27:13
[INFO] [stdout]    |
[INFO] [stdout] 27 | use image::{open, ImageBuffer, Rgb};
[INFO] [stdout]    |             ^^^^  ^^^^^^^^^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `outline`
[INFO] [stdout]    --> src/hat/coloring.rs:233:5
[INFO] [stdout]     |
[INFO] [stdout] 233 |     outline: Option<(u8, u8, u8)>,
[INFO] [stdout]     |     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_outline`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AMosaic` is never constructed
[INFO] [stdout]   --> src/hat/coloring.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct AMosaic {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `compute_required_level`, `to_svg`, `draw`, `decode_input_image`, and `create_tile_patch` are never used
[INFO] [stdout]    --> src/hat/coloring.rs:24:10
[INFO] [stdout]     |
[INFO] [stdout]  22 | impl AMosaic {
[INFO] [stdout]     | ------------ associated items in this implementation
[INFO] [stdout]  23 |   /// Creates a new AMosaic configuration with the given width, height, and output path.
[INFO] [stdout]  24 |   pub fn new(width: u32, height: u32, input_data: Vec<u8>) -> Self {
[INFO] [stdout]     |          ^^^
[INFO] [stdout] ...
[INFO] [stdout]  33 |   fn compute_required_level(&self, scale: f64) -> i32 {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  56 |   pub fn to_svg(&self, scale: f64) -> String {
[INFO] [stdout]     |          ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 115 |   pub fn draw(&self, scale: f64, output: &mut RgbImage) -> Result<(), ImageError> {
[INFO] [stdout]     |          ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 207 |   fn decode_input_image(&self) -> RgbImage {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 213 |   pub fn create_tile_patch(&self, level: i32) -> Result<Rc<dyn Tile>, ImageError> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ImageDrawContext` is never constructed
[INFO] [stdout]    --> src/hat/coloring.rs:224:12
[INFO] [stdout]     |
[INFO] [stdout] 224 | pub struct ImageDrawContext<'a> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_edge` is never used
[INFO] [stdout]    --> src/hat/coloring.rs:241:4
[INFO] [stdout]     |
[INFO] [stdout] 241 | fn draw_edge(
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fill_polygon_gapless` is never used
[INFO] [stdout]    --> src/hat/coloring.rs:277:4
[INFO] [stdout]     |
[INFO] [stdout] 277 | fn fill_polygon_gapless(img: &mut RgbImage, poly: &[(i32, i32)], color: (u8, u8, u8)) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `average_color_scanline` is never used
[INFO] [stdout]    --> src/hat/coloring.rs:387:8
[INFO] [stdout]     |
[INFO] [stdout] 387 | pub fn average_color_scanline(img: &RgbImage, poly: &[(i32, i32)]) -> (u8, u8, u8) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `average_color` is never used
[INFO] [stdout]    --> src/hat/coloring.rs:456:8
[INFO] [stdout]     |
[INFO] [stdout] 456 | pub fn average_color(img: &RgbImage, poly: &[(i32, i32)]) -> (u8, u8, u8) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `point_in_polygon` is never used
[INFO] [stdout]    --> src/hat/coloring.rs:519:4
[INFO] [stdout]     |
[INFO] [stdout] 519 | fn point_in_polygon(x: i32, y: i32, poly: &[(i32, i32)]) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HR3` is never used
[INFO] [stdout]  --> src/hat/geometry.rs:4:11
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub const HR3: f64 = 0.866_025_403_784_438_6; // sqrt(3) / 2
[INFO] [stdout]   |           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `IDENT` is never used
[INFO] [stdout]  --> src/hat/geometry.rs:5:11
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub const IDENT: [f64; 6] = [1.0, 0.0, 0.0, 0.0, 1.0, 0.0];
[INFO] [stdout]   |           ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `pt` is never used
[INFO] [stdout]  --> src/hat/geometry.rs:7:14
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub const fn pt(x: f64, y: f64) -> Vector2<f64> {
[INFO] [stdout]   |              ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `hex_pt` is never used
[INFO] [stdout]   --> src/hat/geometry.rs:11:14
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub const fn hex_pt(x: f64, y: f64) -> Vector2<f64> {
[INFO] [stdout]    |              ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `psub` is never used
[INFO] [stdout]   --> src/hat/geometry.rs:15:8
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn psub(p: Vector2<f64>, q: Vector2<f64>) -> Vector2<f64> {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `padd` is never used
[INFO] [stdout]   --> src/hat/geometry.rs:19:8
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub fn padd(p: Vector2<f64>, q: Vector2<f64>) -> Vector2<f64> {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `trans_pt` is never used
[INFO] [stdout]   --> src/hat/geometry.rs:23:8
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub fn trans_pt(t: &[f64; 6], p: Vector2<f64>) -> Vector2<f64> {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ttrans` is never used
[INFO] [stdout]   --> src/hat/geometry.rs:31:8
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub fn ttrans(tx: f64, ty: f64) -> [f64; 6] {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `trot` is never used
[INFO] [stdout]   --> src/hat/geometry.rs:35:8
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub fn trot(ang: f64) -> [f64; 6] {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mul` is never used
[INFO] [stdout]   --> src/hat/geometry.rs:41:8
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub fn mul(a: &[f64; 6], b: &[f64; 6]) -> [f64; 6] {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `inv` is never used
[INFO] [stdout]   --> src/hat/geometry.rs:53:8
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub fn inv(t: &[f64; 6]) -> [f64; 6] {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `match_two` is never used
[INFO] [stdout]   --> src/hat/geometry.rs:69:8
[INFO] [stdout]    |
[INFO] [stdout] 69 | pub fn match_two(
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rot_about` is never used
[INFO] [stdout]   --> src/hat/geometry.rs:90:8
[INFO] [stdout]    |
[INFO] [stdout] 90 | pub fn rot_about(p: Vector2<f64>, ang: f64) -> [f64; 6] {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `intersect` is never used
[INFO] [stdout]   --> src/hat/geometry.rs:98:8
[INFO] [stdout]    |
[INFO] [stdout] 98 | pub fn intersect(
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HAT_OUTLINE` is never used
[INFO] [stdout]    --> src/hat/geometry.rs:113:11
[INFO] [stdout]     |
[INFO] [stdout] 113 | pub const HAT_OUTLINE: [Vector2<f64>; 13] = [
[INFO] [stdout]     |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `H_OUTLINE` is never used
[INFO] [stdout]    --> src/hat/geometry.rs:129:11
[INFO] [stdout]     |
[INFO] [stdout] 129 | pub const H_OUTLINE: [Vector2<f64>; 6] = [
[INFO] [stdout]     |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HatTile` is never constructed
[INFO] [stdout]   --> src/hat/tiles.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct HatTile {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `draw`, and `as_any` are never used
[INFO] [stdout]   --> src/hat/tiles.rs:18:10
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl HatTile {
[INFO] [stdout]    | ------------ associated items in this implementation
[INFO] [stdout] 18 |   pub fn new(label: &str) -> Self {
[INFO] [stdout]    |          ^^^
[INFO] [stdout] ...
[INFO] [stdout] 26 |   pub fn draw(&self, s: &[f64; 6], level: i32, draw: &mut dyn DrawContext, img: &RgbImage) {
[INFO] [stdout]    |          ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 39 |   pub fn as_any(&self) -> &dyn Any {
[INFO] [stdout]    |          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MetaTile` is never constructed
[INFO] [stdout]   --> src/hat/tiles.rs:45:12
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub struct MetaTile {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Child` is never constructed
[INFO] [stdout]   --> src/hat/tiles.rs:52:12
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub struct Child {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Tile` is never used
[INFO] [stdout]   --> src/hat/tiles.rs:57:11
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub trait Tile {
[INFO] [stdout]    |           ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `add_child`, `eval_child`, and `recenter` are never used
[INFO] [stdout]    --> src/hat/tiles.rs:116:10
[INFO] [stdout]     |
[INFO] [stdout] 115 | impl MetaTile {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] 116 |   pub fn new(outline: Vec<Vector2<f64>>, width: i32) -> Self {
[INFO] [stdout]     |          ^^^
[INFO] [stdout] ...
[INFO] [stdout] 124 |   pub fn add_child(&mut self, t: [f64; 6], geom: Rc<dyn Tile>) {
[INFO] [stdout]     |          ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 128 |   pub fn eval_child(&self, n: usize, i: usize) -> Vector2<f64> {
[INFO] [stdout]     |          ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 132 |   pub fn recenter(&mut self) {
[INFO] [stdout]     |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `DrawContext` is never used
[INFO] [stdout]    --> src/hat/tiles.rs:145:11
[INFO] [stdout]     |
[INFO] [stdout] 145 | pub trait DrawContext {
[INFO] [stdout]     |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `average_color` is never used
[INFO] [stdout]    --> src/hat/tiles.rs:154:8
[INFO] [stdout]     |
[INFO] [stdout] 154 | pub fn average_color(img: &RgbImage, poly: &[(i32, i32)]) -> (u8, u8, u8) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `construct_prototiles` is never used
[INFO] [stdout]    --> src/hat/tiles.rs:200:8
[INFO] [stdout]     |
[INFO] [stdout] 200 | pub fn construct_prototiles() -> (MetaTile, MetaTile, MetaTile, MetaTile) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `construct_patch` is never used
[INFO] [stdout]    --> src/hat/tiles.rs:283:8
[INFO] [stdout]     |
[INFO] [stdout] 283 | pub fn construct_patch(h: &MetaTile, t: &MetaTile, p: &MetaTile, f: &MetaTile) -> MetaTile {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `construct_metatiles` is never used
[INFO] [stdout]    --> src/hat/tiles.rs:367:8
[INFO] [stdout]     |
[INFO] [stdout] 367 | pub fn construct_metatiles(patch: &MetaTile) -> (MetaTile, MetaTile, MetaTile, MetaTile) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Rule` is never used
[INFO] [stdout]    --> src/hat/tiles.rs:435:10
[INFO] [stdout]     |
[INFO] [stdout] 435 | pub enum Rule {
[INFO] [stdout]     |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `collect_hats` is never used
[INFO] [stdout]    --> src/hat/tiles.rs:441:8
[INFO] [stdout]     |
[INFO] [stdout] 441 | pub fn collect_hats(node: &Rc<dyn Tile>, t_parent: [f64; 6]) -> Vec<(Rc<HatTile>, [f64; 6])> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 37.23s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: svg v0.10.0
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 2`
[INFO] running `Command { std: "docker" "inspect" "9307c2bdcebf87d4831b7e4d2e6e706395b42dda40b807e0ce59da09029569ea", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9307c2bdcebf87d4831b7e4d2e6e706395b42dda40b807e0ce59da09029569ea", kill_on_drop: false }`
[INFO] [stdout] 9307c2bdcebf87d4831b7e4d2e6e706395b42dda40b807e0ce59da09029569ea
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c2e32f1c9652b13ed99608599c1e855462f421f3" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 0e02784d1637b3277dfb102bd359d6e21921ad9894a5251ee4b277d3118fb416
[INFO] running `Command { std: "docker" "start" "-a" "0e02784d1637b3277dfb102bd359d6e21921ad9894a5251ee4b277d3118fb416", kill_on_drop: false }`
[INFO] [stderr]    Compiling plotters-backend v0.3.7
[INFO] [stderr]    Compiling ciborium-io v0.2.2
[INFO] [stderr]    Compiling serde_derive v1.0.219
[INFO] [stderr]    Compiling regex-automata v0.4.9
[INFO] [stderr]    Compiling clap_builder v4.5.40
[INFO] [stderr]    Compiling cast v0.3.0
[INFO] [stderr]    Compiling itertools v0.13.0
[INFO] [stderr]    Compiling anes v0.1.6
[INFO] [stdout] warning: unused import: `IDENT`
[INFO] [stdout]  --> src/hat/coloring.rs:1:51
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::hat::geometry::{mul, trans_pt, ttrans, IDENT};
[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: `HatTile` and `MetaTile`
[INFO] [stdout]  --> src/hat/coloring.rs:3:90
[INFO] [stdout]   |
[INFO] [stdout] 3 |   collect_hats, construct_metatiles, construct_patch, construct_prototiles, DrawContext, HatTile,
[INFO] [stdout]   |                                                                                          ^^^^^^^
[INFO] [stdout] 4 |   MetaTile, Tile,
[INFO] [stdout]   |   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::Path`
[INFO] [stdout]  --> src/hat/coloring.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::path::Path;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Matrix2x3`
[INFO] [stdout]  --> src/hat/geometry.rs:1:16
[INFO] [stdout]   |
[INFO] [stdout] 1 | use nalgebra::{Matrix2x3, Vector2};
[INFO] [stdout]   |                ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::f64::consts::PI`
[INFO] [stdout]  --> src/hat/geometry.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::f64::consts::PI;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `hex_pt`
[INFO] [stdout]  --> src/hat/tiles.rs:2:3
[INFO] [stdout]   |
[INFO] [stdout] 2 |   hex_pt, intersect, match_two, mul, padd, psub, pt, rot_about, trans_pt, trot, ttrans,
[INFO] [stdout]   |   ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Rgb`
[INFO] [stdout]  --> src/hat/tiles.rs:5:13
[INFO] [stdout]   |
[INFO] [stdout] 5 | use image::{Rgb, RgbImage};
[INFO] [stdout]   |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DrawContext`, `MetaTile`, `Tile`, and `collect_hats`
[INFO] [stdout]  --> src/hat/mod.rs:7:17
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub use tiles::{collect_hats, DrawContext, MetaTile, Tile};
[INFO] [stdout]   |                 ^^^^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `anyhow::Result`
[INFO] [stdout]   --> src/lib.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 | use anyhow::Result;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DrawContext`, `MetaTile`, `Tile`, and `collect_hats`
[INFO] [stdout]   --> src/lib.rs:25:18
[INFO] [stdout]    |
[INFO] [stdout] 25 | use hat::tiles::{collect_hats, DrawContext, MetaTile, Tile};
[INFO] [stdout]    |                  ^^^^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AMosaic` and `ImageDrawContext`
[INFO] [stdout]   --> src/lib.rs:26:11
[INFO] [stdout]    |
[INFO] [stdout] 26 | use hat::{AMosaic, ImageDrawContext};
[INFO] [stdout]    |           ^^^^^^^  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ImageBuffer`, `Rgb`, and `open`
[INFO] [stdout]   --> src/lib.rs:27:13
[INFO] [stdout]    |
[INFO] [stdout] 27 | use image::{open, ImageBuffer, Rgb};
[INFO] [stdout]    |             ^^^^  ^^^^^^^^^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `outline`
[INFO] [stdout]    --> src/hat/coloring.rs:233:5
[INFO] [stdout]     |
[INFO] [stdout] 233 |     outline: Option<(u8, u8, u8)>,
[INFO] [stdout]     |     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_outline`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AMosaic` is never constructed
[INFO] [stdout]   --> src/hat/coloring.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct AMosaic {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `compute_required_level`, `to_svg`, `draw`, `decode_input_image`, and `create_tile_patch` are never used
[INFO] [stdout]    --> src/hat/coloring.rs:24:10
[INFO] [stdout]     |
[INFO] [stdout]  22 | impl AMosaic {
[INFO] [stdout]     | ------------ associated items in this implementation
[INFO] [stdout]  23 |   /// Creates a new AMosaic configuration with the given width, height, and output path.
[INFO] [stdout]  24 |   pub fn new(width: u32, height: u32, input_data: Vec<u8>) -> Self {
[INFO] [stdout]     |          ^^^
[INFO] [stdout] ...
[INFO] [stdout]  33 |   fn compute_required_level(&self, scale: f64) -> i32 {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  56 |   pub fn to_svg(&self, scale: f64) -> String {
[INFO] [stdout]     |          ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 115 |   pub fn draw(&self, scale: f64, output: &mut RgbImage) -> Result<(), ImageError> {
[INFO] [stdout]     |          ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 207 |   fn decode_input_image(&self) -> RgbImage {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 213 |   pub fn create_tile_patch(&self, level: i32) -> Result<Rc<dyn Tile>, ImageError> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ImageDrawContext` is never constructed
[INFO] [stdout]    --> src/hat/coloring.rs:224:12
[INFO] [stdout]     |
[INFO] [stdout] 224 | pub struct ImageDrawContext<'a> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_edge` is never used
[INFO] [stdout]    --> src/hat/coloring.rs:241:4
[INFO] [stdout]     |
[INFO] [stdout] 241 | fn draw_edge(
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fill_polygon_gapless` is never used
[INFO] [stdout]    --> src/hat/coloring.rs:277:4
[INFO] [stdout]     |
[INFO] [stdout] 277 | fn fill_polygon_gapless(img: &mut RgbImage, poly: &[(i32, i32)], color: (u8, u8, u8)) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `average_color_scanline` is never used
[INFO] [stdout]    --> src/hat/coloring.rs:387:8
[INFO] [stdout]     |
[INFO] [stdout] 387 | pub fn average_color_scanline(img: &RgbImage, poly: &[(i32, i32)]) -> (u8, u8, u8) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `average_color` is never used
[INFO] [stdout]    --> src/hat/coloring.rs:456:8
[INFO] [stdout]     |
[INFO] [stdout] 456 | pub fn average_color(img: &RgbImage, poly: &[(i32, i32)]) -> (u8, u8, u8) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `point_in_polygon` is never used
[INFO] [stdout]    --> src/hat/coloring.rs:519:4
[INFO] [stdout]     |
[INFO] [stdout] 519 | fn point_in_polygon(x: i32, y: i32, poly: &[(i32, i32)]) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HR3` is never used
[INFO] [stdout]  --> src/hat/geometry.rs:4:11
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub const HR3: f64 = 0.866_025_403_784_438_6; // sqrt(3) / 2
[INFO] [stdout]   |           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `IDENT` is never used
[INFO] [stdout]  --> src/hat/geometry.rs:5:11
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub const IDENT: [f64; 6] = [1.0, 0.0, 0.0, 0.0, 1.0, 0.0];
[INFO] [stdout]   |           ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `pt` is never used
[INFO] [stdout]  --> src/hat/geometry.rs:7:14
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub const fn pt(x: f64, y: f64) -> Vector2<f64> {
[INFO] [stdout]   |              ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `hex_pt` is never used
[INFO] [stdout]   --> src/hat/geometry.rs:11:14
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub const fn hex_pt(x: f64, y: f64) -> Vector2<f64> {
[INFO] [stdout]    |              ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `psub` is never used
[INFO] [stdout]   --> src/hat/geometry.rs:15:8
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn psub(p: Vector2<f64>, q: Vector2<f64>) -> Vector2<f64> {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `padd` is never used
[INFO] [stdout]   --> src/hat/geometry.rs:19:8
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub fn padd(p: Vector2<f64>, q: Vector2<f64>) -> Vector2<f64> {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `trans_pt` is never used
[INFO] [stdout]   --> src/hat/geometry.rs:23:8
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub fn trans_pt(t: &[f64; 6], p: Vector2<f64>) -> Vector2<f64> {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ttrans` is never used
[INFO] [stdout]   --> src/hat/geometry.rs:31:8
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub fn ttrans(tx: f64, ty: f64) -> [f64; 6] {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `trot` is never used
[INFO] [stdout]   --> src/hat/geometry.rs:35:8
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub fn trot(ang: f64) -> [f64; 6] {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mul` is never used
[INFO] [stdout]   --> src/hat/geometry.rs:41:8
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub fn mul(a: &[f64; 6], b: &[f64; 6]) -> [f64; 6] {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `inv` is never used
[INFO] [stdout]   --> src/hat/geometry.rs:53:8
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub fn inv(t: &[f64; 6]) -> [f64; 6] {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `match_two` is never used
[INFO] [stdout]   --> src/hat/geometry.rs:69:8
[INFO] [stdout]    |
[INFO] [stdout] 69 | pub fn match_two(
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rot_about` is never used
[INFO] [stdout]   --> src/hat/geometry.rs:90:8
[INFO] [stdout]    |
[INFO] [stdout] 90 | pub fn rot_about(p: Vector2<f64>, ang: f64) -> [f64; 6] {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `intersect` is never used
[INFO] [stdout]   --> src/hat/geometry.rs:98:8
[INFO] [stdout]    |
[INFO] [stdout] 98 | pub fn intersect(
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HAT_OUTLINE` is never used
[INFO] [stdout]    --> src/hat/geometry.rs:113:11
[INFO] [stdout]     |
[INFO] [stdout] 113 | pub const HAT_OUTLINE: [Vector2<f64>; 13] = [
[INFO] [stdout]     |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `H_OUTLINE` is never used
[INFO] [stdout]    --> src/hat/geometry.rs:129:11
[INFO] [stdout]     |
[INFO] [stdout] 129 | pub const H_OUTLINE: [Vector2<f64>; 6] = [
[INFO] [stdout]     |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HatTile` is never constructed
[INFO] [stdout]   --> src/hat/tiles.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct HatTile {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `draw`, and `as_any` are never used
[INFO] [stdout]   --> src/hat/tiles.rs:18:10
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl HatTile {
[INFO] [stdout]    | ------------ associated items in this implementation
[INFO] [stdout] 18 |   pub fn new(label: &str) -> Self {
[INFO] [stdout]    |          ^^^
[INFO] [stdout] ...
[INFO] [stdout] 26 |   pub fn draw(&self, s: &[f64; 6], level: i32, draw: &mut dyn DrawContext, img: &RgbImage) {
[INFO] [stdout]    |          ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 39 |   pub fn as_any(&self) -> &dyn Any {
[INFO] [stdout]    |          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MetaTile` is never constructed
[INFO] [stdout]   --> src/hat/tiles.rs:45:12
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub struct MetaTile {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Child` is never constructed
[INFO] [stdout]   --> src/hat/tiles.rs:52:12
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub struct Child {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Tile` is never used
[INFO] [stdout]   --> src/hat/tiles.rs:57:11
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub trait Tile {
[INFO] [stdout]    |           ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `add_child`, `eval_child`, and `recenter` are never used
[INFO] [stdout]    --> src/hat/tiles.rs:116:10
[INFO] [stdout]     |
[INFO] [stdout] 115 | impl MetaTile {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] 116 |   pub fn new(outline: Vec<Vector2<f64>>, width: i32) -> Self {
[INFO] [stdout]     |          ^^^
[INFO] [stdout] ...
[INFO] [stdout] 124 |   pub fn add_child(&mut self, t: [f64; 6], geom: Rc<dyn Tile>) {
[INFO] [stdout]     |          ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 128 |   pub fn eval_child(&self, n: usize, i: usize) -> Vector2<f64> {
[INFO] [stdout]     |          ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 132 |   pub fn recenter(&mut self) {
[INFO] [stdout]     |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `DrawContext` is never used
[INFO] [stdout]    --> src/hat/tiles.rs:145:11
[INFO] [stdout]     |
[INFO] [stdout] 145 | pub trait DrawContext {
[INFO] [stdout]     |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `average_color` is never used
[INFO] [stdout]    --> src/hat/tiles.rs:154:8
[INFO] [stdout]     |
[INFO] [stdout] 154 | pub fn average_color(img: &RgbImage, poly: &[(i32, i32)]) -> (u8, u8, u8) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `construct_prototiles` is never used
[INFO] [stdout]    --> src/hat/tiles.rs:200:8
[INFO] [stdout]     |
[INFO] [stdout] 200 | pub fn construct_prototiles() -> (MetaTile, MetaTile, MetaTile, MetaTile) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `construct_patch` is never used
[INFO] [stdout]    --> src/hat/tiles.rs:283:8
[INFO] [stdout]     |
[INFO] [stdout] 283 | pub fn construct_patch(h: &MetaTile, t: &MetaTile, p: &MetaTile, f: &MetaTile) -> MetaTile {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `construct_metatiles` is never used
[INFO] [stdout]    --> src/hat/tiles.rs:367:8
[INFO] [stdout]     |
[INFO] [stdout] 367 | pub fn construct_metatiles(patch: &MetaTile) -> (MetaTile, MetaTile, MetaTile, MetaTile) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Rule` is never used
[INFO] [stdout]    --> src/hat/tiles.rs:435:10
[INFO] [stdout]     |
[INFO] [stdout] 435 | pub enum Rule {
[INFO] [stdout]     |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `collect_hats` is never used
[INFO] [stdout]    --> src/hat/tiles.rs:441:8
[INFO] [stdout]     |
[INFO] [stdout] 441 | pub fn collect_hats(node: &Rc<dyn Tile>, t_parent: [f64; 6]) -> Vec<(Rc<HatTile>, [f64; 6])> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling ciborium-ll v0.2.2
[INFO] [stderr]    Compiling plotters-svg v0.3.7
[INFO] [stderr]    Compiling criterion-plot v0.5.0
[INFO] [stderr]    Compiling plotters v0.3.7
[INFO] [stderr]    Compiling regex v1.11.1
[INFO] [stderr]    Compiling clap v4.5.40
[INFO] [stderr]    Compiling serde v1.0.219
[INFO] [stderr]    Compiling serde_json v1.0.140
[INFO] [stderr]    Compiling ciborium v0.2.2
[INFO] [stderr]    Compiling tinytemplate v1.2.1
[INFO] [stderr]    Compiling criterion v0.6.0
[INFO] [stderr]    Compiling amosaic v1.0.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `IDENT`
[INFO] [stdout]  --> src/hat/coloring.rs:1:51
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::hat::geometry::{mul, trans_pt, ttrans, IDENT};
[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: `HatTile` and `MetaTile`
[INFO] [stdout]  --> src/hat/coloring.rs:3:90
[INFO] [stdout]   |
[INFO] [stdout] 3 |   collect_hats, construct_metatiles, construct_patch, construct_prototiles, DrawContext, HatTile,
[INFO] [stdout]   |                                                                                          ^^^^^^^
[INFO] [stdout] 4 |   MetaTile, Tile,
[INFO] [stdout]   |   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::Path`
[INFO] [stdout]  --> src/hat/coloring.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::path::Path;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Matrix2x3`
[INFO] [stdout]  --> src/hat/geometry.rs:1:16
[INFO] [stdout]   |
[INFO] [stdout] 1 | use nalgebra::{Matrix2x3, Vector2};
[INFO] [stdout]   |                ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::f64::consts::PI`
[INFO] [stdout]  --> src/hat/geometry.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::f64::consts::PI;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `hex_pt`
[INFO] [stdout]  --> src/hat/tiles.rs:2:3
[INFO] [stdout]   |
[INFO] [stdout] 2 |   hex_pt, intersect, match_two, mul, padd, psub, pt, rot_about, trans_pt, trot, ttrans,
[INFO] [stdout]   |   ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Rgb`
[INFO] [stdout]  --> src/hat/tiles.rs:5:13
[INFO] [stdout]   |
[INFO] [stdout] 5 | use image::{Rgb, RgbImage};
[INFO] [stdout]   |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DrawContext`, `MetaTile`, `Tile`, and `collect_hats`
[INFO] [stdout]  --> src/hat/mod.rs:7:17
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub use tiles::{collect_hats, DrawContext, MetaTile, Tile};
[INFO] [stdout]   |                 ^^^^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DrawContext`, `MetaTile`, and `collect_hats`
[INFO] [stdout]   --> src/lib.rs:25:18
[INFO] [stdout]    |
[INFO] [stdout] 25 | use hat::tiles::{collect_hats, DrawContext, MetaTile, Tile};
[INFO] [stdout]    |                  ^^^^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ImageDrawContext`
[INFO] [stdout]   --> src/lib.rs:26:20
[INFO] [stdout]    |
[INFO] [stdout] 26 | use hat::{AMosaic, ImageDrawContext};
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ImageBuffer` and `open`
[INFO] [stdout]   --> src/lib.rs:27:13
[INFO] [stdout]    |
[INFO] [stdout] 27 | use image::{open, ImageBuffer, Rgb};
[INFO] [stdout]    |             ^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around closure body
[INFO] [stdout]   --> src/lib.rs:50:16
[INFO] [stdout]    |
[INFO] [stdout] 50 |       .map(|p| (p[0] as u64 + p[1] as u64 + p[2] as u64))
[INFO] [stdout]    |                ^                                       ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 50 -       .map(|p| (p[0] as u64 + p[1] as u64 + p[2] as u64))
[INFO] [stdout] 50 +       .map(|p| p[0] as u64 + p[1] as u64 + p[2] as u64)
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Tile`
[INFO] [stdout]   --> src/lib.rs:25:55
[INFO] [stdout]    |
[INFO] [stdout] 25 | use hat::tiles::{collect_hats, DrawContext, MetaTile, Tile};
[INFO] [stdout]    |                                                       ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `outline`
[INFO] [stdout]    --> src/hat/coloring.rs:233:5
[INFO] [stdout]     |
[INFO] [stdout] 233 |     outline: Option<(u8, u8, u8)>,
[INFO] [stdout]     |     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_outline`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ImageDrawContext` is never constructed
[INFO] [stdout]    --> src/hat/coloring.rs:224:12
[INFO] [stdout]     |
[INFO] [stdout] 224 | pub struct ImageDrawContext<'a> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `inv` is never used
[INFO] [stdout]   --> src/hat/geometry.rs:53:8
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub fn inv(t: &[f64; 6]) -> [f64; 6] {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `label` and `children` are never read
[INFO] [stdout]   --> src/hat/tiles.rs:12:7
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct HatTile {
[INFO] [stdout]    |            ------- fields in this struct
[INFO] [stdout] 12 |   pub label: String,
[INFO] [stdout]    |       ^^^^^
[INFO] [stdout] 13 |   pub shape: [Vector2<f64>; 13], // Using the hat_outline from geometry.rs
[INFO] [stdout] 14 |   pub children: Vec<Child>,
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `HatTile` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `draw` and `as_any` are never used
[INFO] [stdout]   --> src/hat/tiles.rs:26:10
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl HatTile {
[INFO] [stdout]    | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 26 |   pub fn draw(&self, s: &[f64; 6], level: i32, draw: &mut dyn DrawContext, img: &RgbImage) {
[INFO] [stdout]    |          ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 39 |   pub fn as_any(&self) -> &dyn Any {
[INFO] [stdout]    |          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `draw` is never used
[INFO] [stdout]   --> src/hat/tiles.rs:58:6
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub trait Tile {
[INFO] [stdout]    |           ---- method in this trait
[INFO] [stdout] 58 |   fn draw(&self, s: &[f64; 6], level: i32, draw: &mut dyn DrawContext, img: &RgbImage);
[INFO] [stdout]    |      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `DrawContext` is never used
[INFO] [stdout]    --> src/hat/tiles.rs:145:11
[INFO] [stdout]     |
[INFO] [stdout] 145 | pub trait DrawContext {
[INFO] [stdout]     |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `average_color` is never used
[INFO] [stdout]    --> src/hat/tiles.rs:154:8
[INFO] [stdout]     |
[INFO] [stdout] 154 | pub fn average_color(img: &RgbImage, poly: &[(i32, i32)]) -> (u8, u8, u8) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 16.45s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: svg v0.10.0
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 2`
[INFO] running `Command { std: "docker" "inspect" "0e02784d1637b3277dfb102bd359d6e21921ad9894a5251ee4b277d3118fb416", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "0e02784d1637b3277dfb102bd359d6e21921ad9894a5251ee4b277d3118fb416", kill_on_drop: false }`
[INFO] [stdout] 0e02784d1637b3277dfb102bd359d6e21921ad9894a5251ee4b277d3118fb416
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c2e32f1c9652b13ed99608599c1e855462f421f3" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] e427f461ede8f80f87671473285a7a4514ab661f080b64702e4d6420c124cd19
[INFO] running `Command { std: "docker" "start" "-a" "e427f461ede8f80f87671473285a7a4514ab661f080b64702e4d6420c124cd19", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `IDENT`
[INFO] [stderr]  --> src/hat/coloring.rs:1:51
[INFO] [stderr]   |
[INFO] [stderr] 1 | use crate::hat::geometry::{mul, trans_pt, ttrans, IDENT};
[INFO] [stderr]   |                                                   ^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `HatTile` and `MetaTile`
[INFO] [stderr]  --> src/hat/coloring.rs:3:90
[INFO] [stderr]   |
[INFO] [stderr] 3 |   collect_hats, construct_metatiles, construct_patch, construct_prototiles, DrawContext, HatTile,
[INFO] [stderr]   |                                                                                          ^^^^^^^
[INFO] [stderr] 4 |   MetaTile, Tile,
[INFO] [stderr]   |   ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::path::Path`
[INFO] [stderr]  --> src/hat/coloring.rs:8:5
[INFO] [stderr]   |
[INFO] [stderr] 8 | use std::path::Path;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Matrix2x3`
[INFO] [stderr]  --> src/hat/geometry.rs:1:16
[INFO] [stderr]   |
[INFO] [stderr] 1 | use nalgebra::{Matrix2x3, Vector2};
[INFO] [stderr]   |                ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::f64::consts::PI`
[INFO] [stderr]  --> src/hat/geometry.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use std::f64::consts::PI;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `hex_pt`
[INFO] [stderr]  --> src/hat/tiles.rs:2:3
[INFO] [stderr]   |
[INFO] [stderr] 2 |   hex_pt, intersect, match_two, mul, padd, psub, pt, rot_about, trans_pt, trot, ttrans,
[INFO] [stderr]   |   ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Rgb`
[INFO] [stderr]  --> src/hat/tiles.rs:5:13
[INFO] [stderr]   |
[INFO] [stderr] 5 | use image::{Rgb, RgbImage};
[INFO] [stderr]   |             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `DrawContext`, `MetaTile`, `Tile`, and `collect_hats`
[INFO] [stderr]  --> src/hat/mod.rs:7:17
[INFO] [stderr]   |
[INFO] [stderr] 7 | pub use tiles::{collect_hats, DrawContext, MetaTile, Tile};
[INFO] [stderr]   |                 ^^^^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^  ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `anyhow::Result`
[INFO] [stderr]   --> src/lib.rs:24:5
[INFO] [stderr]    |
[INFO] [stderr] 24 | use anyhow::Result;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `DrawContext`, `MetaTile`, `Tile`, and `collect_hats`
[INFO] [stderr]   --> src/lib.rs:25:18
[INFO] [stderr]    |
[INFO] [stderr] 25 | use hat::tiles::{collect_hats, DrawContext, MetaTile, Tile};
[INFO] [stderr]    |                  ^^^^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^  ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `AMosaic` and `ImageDrawContext`
[INFO] [stderr]   --> src/lib.rs:26:11
[INFO] [stderr]    |
[INFO] [stderr] 26 | use hat::{AMosaic, ImageDrawContext};
[INFO] [stderr]    |           ^^^^^^^  ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `ImageBuffer`, `Rgb`, and `open`
[INFO] [stderr]   --> src/lib.rs:27:13
[INFO] [stderr]    |
[INFO] [stderr] 27 | use image::{open, ImageBuffer, Rgb};
[INFO] [stderr]    |             ^^^^  ^^^^^^^^^^^  ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `outline`
[INFO] [stderr]    --> src/hat/coloring.rs:233:5
[INFO] [stderr]     |
[INFO] [stderr] 233 |     outline: Option<(u8, u8, u8)>,
[INFO] [stderr]     |     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_outline`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: struct `AMosaic` is never constructed
[INFO] [stderr]   --> src/hat/coloring.rs:16:12
[INFO] [stderr]    |
[INFO] [stderr] 16 | pub struct AMosaic {
[INFO] [stderr]    |            ^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new`, `compute_required_level`, `to_svg`, `draw`, `decode_input_image`, and `create_tile_patch` are never used
[INFO] [stderr]    --> src/hat/coloring.rs:24:10
[INFO] [stderr]     |
[INFO] [stderr]  22 | impl AMosaic {
[INFO] [stderr]     | ------------ associated items in this implementation
[INFO] [stderr]  23 |   /// Creates a new AMosaic configuration with the given width, height, and output path.
[INFO] [stderr]  24 |   pub fn new(width: u32, height: u32, input_data: Vec<u8>) -> Self {
[INFO] [stderr]     |          ^^^
[INFO] [stderr] ...
[INFO] [stderr]  33 |   fn compute_required_level(&self, scale: f64) -> i32 {
[INFO] [stderr]     |      ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  56 |   pub fn to_svg(&self, scale: f64) -> String {
[INFO] [stderr]     |          ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 115 |   pub fn draw(&self, scale: f64, output: &mut RgbImage) -> Result<(), ImageError> {
[INFO] [stderr]     |          ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 207 |   fn decode_input_image(&self) -> RgbImage {
[INFO] [stderr]     |      ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 213 |   pub fn create_tile_patch(&self, level: i32) -> Result<Rc<dyn Tile>, ImageError> {
[INFO] [stderr]     |          ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `ImageDrawContext` is never constructed
[INFO] [stderr]    --> src/hat/coloring.rs:224:12
[INFO] [stderr]     |
[INFO] [stderr] 224 | pub struct ImageDrawContext<'a> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `draw_edge` is never used
[INFO] [stderr]    --> src/hat/coloring.rs:241:4
[INFO] [stderr]     |
[INFO] [stderr] 241 | fn draw_edge(
[INFO] [stderr]     |    ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `fill_polygon_gapless` is never used
[INFO] [stderr]    --> src/hat/coloring.rs:277:4
[INFO] [stderr]     |
[INFO] [stderr] 277 | fn fill_polygon_gapless(img: &mut RgbImage, poly: &[(i32, i32)], color: (u8, u8, u8)) {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `average_color_scanline` is never used
[INFO] [stderr]    --> src/hat/coloring.rs:387:8
[INFO] [stderr]     |
[INFO] [stderr] 387 | pub fn average_color_scanline(img: &RgbImage, poly: &[(i32, i32)]) -> (u8, u8, u8) {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `average_color` is never used
[INFO] [stderr]    --> src/hat/coloring.rs:456:8
[INFO] [stderr]     |
[INFO] [stderr] 456 | pub fn average_color(img: &RgbImage, poly: &[(i32, i32)]) -> (u8, u8, u8) {
[INFO] [stderr]     |        ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `point_in_polygon` is never used
[INFO] [stderr]    --> src/hat/coloring.rs:519:4
[INFO] [stderr]     |
[INFO] [stderr] 519 | fn point_in_polygon(x: i32, y: i32, poly: &[(i32, i32)]) -> bool {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `HR3` is never used
[INFO] [stderr]  --> src/hat/geometry.rs:4:11
[INFO] [stderr]   |
[INFO] [stderr] 4 | pub const HR3: f64 = 0.866_025_403_784_438_6; // sqrt(3) / 2
[INFO] [stderr]   |           ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `IDENT` is never used
[INFO] [stderr]  --> src/hat/geometry.rs:5:11
[INFO] [stderr]   |
[INFO] [stderr] 5 | pub const IDENT: [f64; 6] = [1.0, 0.0, 0.0, 0.0, 1.0, 0.0];
[INFO] [stderr]   |           ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `pt` is never used
[INFO] [stderr]  --> src/hat/geometry.rs:7:14
[INFO] [stderr]   |
[INFO] [stderr] 7 | pub const fn pt(x: f64, y: f64) -> Vector2<f64> {
[INFO] [stderr]   |              ^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `hex_pt` is never used
[INFO] [stderr]   --> src/hat/geometry.rs:11:14
[INFO] [stderr]    |
[INFO] [stderr] 11 | pub const fn hex_pt(x: f64, y: f64) -> Vector2<f64> {
[INFO] [stderr]    |              ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `psub` is never used
[INFO] [stderr]   --> src/hat/geometry.rs:15:8
[INFO] [stderr]    |
[INFO] [stderr] 15 | pub fn psub(p: Vector2<f64>, q: Vector2<f64>) -> Vector2<f64> {
[INFO] [stderr]    |        ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `padd` is never used
[INFO] [stderr]   --> src/hat/geometry.rs:19:8
[INFO] [stderr]    |
[INFO] [stderr] 19 | pub fn padd(p: Vector2<f64>, q: Vector2<f64>) -> Vector2<f64> {
[INFO] [stderr]    |        ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `trans_pt` is never used
[INFO] [stderr]   --> src/hat/geometry.rs:23:8
[INFO] [stderr]    |
[INFO] [stderr] 23 | pub fn trans_pt(t: &[f64; 6], p: Vector2<f64>) -> Vector2<f64> {
[INFO] [stderr]    |        ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `ttrans` is never used
[INFO] [stderr]   --> src/hat/geometry.rs:31:8
[INFO] [stderr]    |
[INFO] [stderr] 31 | pub fn ttrans(tx: f64, ty: f64) -> [f64; 6] {
[INFO] [stderr]    |        ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `trot` is never used
[INFO] [stderr]   --> src/hat/geometry.rs:35:8
[INFO] [stderr]    |
[INFO] [stderr] 35 | pub fn trot(ang: f64) -> [f64; 6] {
[INFO] [stderr]    |        ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `mul` is never used
[INFO] [stderr]   --> src/hat/geometry.rs:41:8
[INFO] [stderr]    |
[INFO] [stderr] 41 | pub fn mul(a: &[f64; 6], b: &[f64; 6]) -> [f64; 6] {
[INFO] [stderr]    |        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `inv` is never used
[INFO] [stdout] 
[INFO] [stderr]   --> src/hat/geometry.rs:53:8
[INFO] [stdout] running 5 tests
[INFO] [stderr]    |
[INFO] [stdout] test hat::coloring::tests::test_amosaic_new ... ok
[INFO] [stderr] 53 | pub fn inv(t: &[f64; 6]) -> [f64; 6] {
[INFO] [stdout] test hat::coloring::tests::test_average_color_single_pixel ... ok
[INFO] [stderr]    |        ^^^
[INFO] [stdout] test hat::coloring::tests::test_average_color_empty_polygon ... ok
[INFO] [stderr] 
[INFO] [stderr] warning: function `match_two` is never used
[INFO] [stderr]   --> src/hat/geometry.rs:69:8
[INFO] [stderr]    |
[INFO] [stderr] 69 | pub fn match_two(
[INFO] [stderr]    |        ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `rot_about` is never used
[INFO] [stderr]   --> src/hat/geometry.rs:90:8
[INFO] [stderr]    |
[INFO] [stderr] 90 | pub fn rot_about(p: Vector2<f64>, ang: f64) -> [f64; 6] {
[INFO] [stderr]    |        ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `intersect` is never used
[INFO] [stderr]   --> src/hat/geometry.rs:98:8
[INFO] [stderr]    |
[INFO] [stderr] 98 | pub fn intersect(
[INFO] [stderr]    |        ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `HAT_OUTLINE` is never used
[INFO] [stderr]    --> src/hat/geometry.rs:113:11
[INFO] [stderr]     |
[INFO] [stderr] 113 | pub const HAT_OUTLINE: [Vector2<f64>; 13] = [
[INFO] [stderr]     |           ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `H_OUTLINE` is never used
[INFO] [stderr]    --> src/hat/geometry.rs:129:11
[INFO] [stderr]     |
[INFO] [stderr] 129 | pub const H_OUTLINE: [Vector2<f64>; 6] = [
[INFO] [stderr]     |           ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `HatTile` is never constructed
[INFO] [stderr]   --> src/hat/tiles.rs:11:12
[INFO] [stderr]    |
[INFO] [stderr] 11 | pub struct HatTile {
[INFO] [stderr]    |            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new`, `draw`, and `as_any` are never used
[INFO] [stderr]   --> src/hat/tiles.rs:18:10
[INFO] [stderr]    |
[INFO] [stderr] 17 | impl HatTile {
[INFO] [stderr]    | ------------ associated items in this implementation
[INFO] [stderr] 18 |   pub fn new(label: &str) -> Self {
[INFO] [stderr]    |          ^^^
[INFO] [stderr] ...
[INFO] [stderr] 26 |   pub fn draw(&self, s: &[f64; 6], level: i32, draw: &mut dyn DrawContext, img: &RgbImage) {
[INFO] [stderr]    |          ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 39 |   pub fn as_any(&self) -> &dyn Any {
[INFO] [stderr]    |          ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `MetaTile` is never constructed
[INFO] [stderr]   --> src/hat/tiles.rs:45:12
[INFO] [stderr]    |
[INFO] [stderr] 45 | pub struct MetaTile {
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Child` is never constructed
[INFO] [stderr]   --> src/hat/tiles.rs:52:12
[INFO] [stderr]    |
[INFO] [stderr] 52 | pub struct Child {
[INFO] [stderr]    |            ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait `Tile` is never used
[INFO] [stderr]   --> src/hat/tiles.rs:57:11
[INFO] [stderr]    |
[INFO] [stderr] 57 | pub trait Tile {
[INFO] [stderr]    |           ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new`, `add_child`, `eval_child`, and `recenter` are never used
[INFO] [stderr]    --> src/hat/tiles.rs:116:10
[INFO] [stderr]     |
[INFO] [stderr] 115 | impl MetaTile {
[INFO] [stderr]     | ------------- associated items in this implementation
[INFO] [stderr] 116 |   pub fn new(outline: Vec<Vector2<f64>>, width: i32) -> Self {
[INFO] [stderr]     |          ^^^
[INFO] [stderr] ...
[INFO] [stderr] 124 |   pub fn add_child(&mut self, t: [f64; 6], geom: Rc<dyn Tile>) {
[INFO] [stderr]     |          ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 128 |   pub fn eval_child(&self, n: usize, i: usize) -> Vector2<f64> {
[INFO] [stderr]     |          ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 132 |   pub fn recenter(&mut self) {
[INFO] [stderr]     |          ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait `DrawContext` is never used
[INFO] [stderr]    --> src/hat/tiles.rs:145:11
[INFO] [stderr]     |
[INFO] [stderr] 145 | pub trait DrawContext {
[INFO] [stderr]     |           ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `average_color` is never used
[INFO] [stderr]    --> src/hat/tiles.rs:154:8
[INFO] [stderr]     |
[INFO] [stderr] 154 | pub fn average_color(img: &RgbImage, poly: &[(i32, i32)]) -> (u8, u8, u8) {
[INFO] [stderr]     |        ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `construct_prototiles` is never used
[INFO] [stderr]    --> src/hat/tiles.rs:200:8
[INFO] [stderr]     |
[INFO] [stderr] 200 | pub fn construct_prototiles() -> (MetaTile, MetaTile, MetaTile, MetaTile) {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `construct_patch` is never used
[INFO] [stderr]    --> src/hat/tiles.rs:283:8
[INFO] [stderr]     |
[INFO] [stderr] 283 | pub fn construct_patch(h: &MetaTile, t: &MetaTile, p: &MetaTile, f: &MetaTile) -> MetaTile {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `construct_metatiles` is never used
[INFO] [stderr]    --> src/hat/tiles.rs:367:8
[INFO] [stderr]     |
[INFO] [stderr] 367 | pub fn construct_metatiles(patch: &MetaTile) -> (MetaTile, MetaTile, MetaTile, MetaTile) {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `Rule` is never used
[INFO] [stderr]    --> src/hat/tiles.rs:435:10
[INFO] [stderr]     |
[INFO] [stderr] 435 | pub enum Rule {
[INFO] [stderr]     |          ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `collect_hats` is never used
[INFO] [stderr]    --> src/hat/tiles.rs:441:8
[INFO] [stderr]     |
[INFO] [stderr] 441 | pub fn collect_hats(node: &Rc<dyn Tile>, t_parent: [f64; 6]) -> Vec<(Rc<HatTile>, [f64; 6])> {
[INFO] [stderr]     |        ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `DrawContext`, `MetaTile`, and `collect_hats`
[INFO] [stderr]   --> src/lib.rs:25:18
[INFO] [stderr]    |
[INFO] [stderr] 25 | use hat::tiles::{collect_hats, DrawContext, MetaTile, Tile};
[INFO] [stderr]    |                  ^^^^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `ImageDrawContext`
[INFO] [stderr]   --> src/lib.rs:26:20
[INFO] [stderr]    |
[INFO] [stderr] 26 | use hat::{AMosaic, ImageDrawContext};
[INFO] [stderr]    |                    ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `ImageBuffer` and `open`
[INFO] [stderr]   --> src/lib.rs:27:13
[INFO] [stderr]    |
[INFO] [stderr] 27 | use image::{open, ImageBuffer, Rgb};
[INFO] [stderr]    |             ^^^^  ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around closure body
[INFO] [stderr]   --> src/lib.rs:50:16
[INFO] [stderr]    |
[INFO] [stderr] 50 |       .map(|p| (p[0] as u64 + p[1] as u64 + p[2] as u64))
[INFO] [stderr]    |                ^                                       ^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 50 -       .map(|p| (p[0] as u64 + p[1] as u64 + p[2] as u64))
[INFO] [stderr] 50 +       .map(|p| p[0] as u64 + p[1] as u64 + p[2] as u64)
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Tile`
[INFO] [stderr]   --> src/lib.rs:25:55
[INFO] [stderr]    |
[INFO] [stderr] 25 | use hat::tiles::{collect_hats, DrawContext, MetaTile, Tile};
[INFO] [stderr]    |                                                       ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `ImageDrawContext` is never constructed
[INFO] [stderr]    --> src/hat/coloring.rs:224:12
[INFO] [stderr]     |
[INFO] [stderr] 224 | pub struct ImageDrawContext<'a> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: fields `label` and `children` are never read
[INFO] [stderr]   --> src/hat/tiles.rs:12:7
[INFO] [stderr]    |
[INFO] [stderr] 11 | pub struct HatTile {
[INFO] [stderr]    |            ------- fields in this struct
[INFO] [stderr] 12 |   pub label: String,
[INFO] [stderr]    |       ^^^^^
[INFO] [stderr] 13 |   pub shape: [Vector2<f64>; 13], // Using the hat_outline from geometry.rs
[INFO] [stderr] 14 |   pub children: Vec<Child>,
[INFO] [stderr]    |       ^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `HatTile` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: methods `draw` and `as_any` are never used
[INFO] [stderr]   --> src/hat/tiles.rs:26:10
[INFO] [stderr]    |
[INFO] [stderr] 17 | impl HatTile {
[INFO] [stderr]    | ------------ methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 26 |   pub fn draw(&self, s: &[f64; 6], level: i32, draw: &mut dyn DrawContext, img: &RgbImage) {
[INFO] [stderr]    |          ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 39 |   pub fn as_any(&self) -> &dyn Any {
[INFO] [stderr]    |          ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `draw` is never used
[INFO] [stderr]   --> src/hat/tiles.rs:58:6
[INFO] [stderr]    |
[INFO] [stderr] 57 | pub trait Tile {
[INFO] [stderr]    |           ---- method in this trait
[INFO] [stderr] 58 |   fn draw(&self, s: &[f64; 6], level: i32, draw: &mut dyn DrawContext, img: &RgbImage);
[INFO] [stderr]    |      ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `amosaic` (lib) generated 50 warnings (run `cargo fix --lib -p amosaic` to apply 13 suggestions)
[INFO] [stderr] warning: `amosaic` (lib test) generated 21 warnings (12 duplicates) (run `cargo fix --lib -p amosaic --tests` to apply 4 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.12s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: svg v0.10.0
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 2`
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/amosaic-b9151c4bd0ccb059)
[INFO] [stdout] test tests::test_generate_mosaic_as_svg ... FAILED
[INFO] [stdout] test tests::test_generate_mosaic_from_input ... FAILED
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- tests::test_generate_mosaic_as_svg stdout ----
[INFO] [stdout] Error: Os { code: 30, kind: ReadOnlyFilesystem, message: "Read-only file system" }
[INFO] [stdout] 
[INFO] [stdout] ---- tests::test_generate_mosaic_from_input stdout ----
[INFO] [stdout] Error: Read-only file system (os error 30)
[INFO] [stdout] 
[INFO] [stdout] Stack backtrace:
[INFO] [stdout]    0: anyhow::error::<impl core::convert::From<E> for anyhow::Error>::from
[INFO] [stdout]              at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.98/src/backtrace.rs:27:14
[INFO] [stdout]    1: <core::result::Result<T,F> as core::ops::try_trait::FromResidual<core::result::Result<core::convert::Infallible,E>>>::from_residual
[INFO] [stdout]              at /rustc/c2e32f1c9652b13ed99608599c1e855462f421f3/library/core/src/result.rs:2184:27
[INFO] [stdout]    2: amosaic::tests::test_generate_mosaic_from_input
[INFO] [stdout]              at ./src/lib.rs:46:5
[INFO] [stdout]    3: amosaic::tests::test_generate_mosaic_from_input::{{closure}}
[INFO] [stdout]              at ./src/lib.rs:37:43
[INFO] [stdout]    4: core::ops::function::FnOnce::call_once
[INFO] [stdout]              at /rustc/c2e32f1c9652b13ed99608599c1e855462f421f3/library/core/src/ops/function.rs:250:5
[INFO] [stdout]    5: core::ops::function::FnOnce::call_once
[INFO] [stdout]              at /rustc/c2e32f1c9652b13ed99608599c1e855462f421f3/library/core/src/ops/function.rs:250:5
[INFO] [stdout]    6: test::__rust_begin_short_backtrace
[INFO] [stdout]              at /rustc/c2e32f1c9652b13ed99608599c1e855462f421f3/library/test/src/lib.rs:663:18
[INFO] [stdout]    7: test::run_test_in_process::{{closure}}
[INFO] [stdout]              at /rustc/c2e32f1c9652b13ed99608599c1e855462f421f3/library/test/src/lib.rs:686:74
[INFO] [stdout]    8: <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]              at /rustc/c2e32f1c9652b13ed99608599c1e855462f421f3/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]    9: std::panicking::catch_unwind::do_call
[INFO] [stdout]              at /rustc/c2e32f1c9652b13ed99608599c1e855462f421f3/library/std/src/panicking.rs:590:40
[INFO] [stdout]   10: std::panicking::catch_unwind
[INFO] [stdout]              at /rustc/c2e32f1c9652b13ed99608599c1e855462f421f3/library/std/src/panicking.rs:553:19
[INFO] [stdout]   11: std::panic::catch_unwind
[INFO] [stdout]              at /rustc/c2e32f1c9652b13ed99608599c1e855462f421f3/library/std/src/panic.rs:359:14
[INFO] [stdout]   12: test::run_test_in_process
[INFO] [stdout]              at /rustc/c2e32f1c9652b13ed99608599c1e855462f421f3/library/test/src/lib.rs:686:27
[INFO] [stdout]   13: test::run_test::{{closure}}
[INFO] [stdout]              at /rustc/c2e32f1c9652b13ed99608599c1e855462f421f3/library/test/src/lib.rs:607:43
[INFO] [stdout]   14: test::run_test::{{closure}}
[INFO] [stdout]              at /rustc/c2e32f1c9652b13ed99608599c1e855462f421f3/library/test/src/lib.rs:637:41
[INFO] [stdout]   15: std::sys::backtrace::__rust_begin_short_backtrace
[INFO] [stdout]              at /rustc/c2e32f1c9652b13ed99608599c1e855462f421f3/library/std/src/sys/backtrace.rs:158:18
[INFO] [stdout]   16: std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}
[INFO] [stdout]              at /rustc/c2e32f1c9652b13ed99608599c1e855462f421f3/library/std/src/thread/mod.rs:562:17
[INFO] [stdout]   17: <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]              at /rustc/c2e32f1c9652b13ed99608599c1e855462f421f3/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   18: std::panicking::catch_unwind::do_call
[INFO] [stdout]              at /rustc/c2e32f1c9652b13ed99608599c1e855462f421f3/library/std/src/panicking.rs:590:40
[INFO] [stdout]   19: std::panicking::catch_unwind
[INFO] [stdout]              at /rustc/c2e32f1c9652b13ed99608599c1e855462f421f3/library/std/src/panicking.rs:553:19
[INFO] [stdout]   20: std::panic::catch_unwind
[INFO] [stdout]              at /rustc/c2e32f1c9652b13ed99608599c1e855462f421f3/library/std/src/panic.rs:359:14
[INFO] [stdout]   21: std::thread::Builder::spawn_unchecked_::{{closure}}
[INFO] [stdout]              at /rustc/c2e32f1c9652b13ed99608599c1e855462f421f3/library/std/src/thread/mod.rs:560:30
[INFO] [stdout]   22: core::ops::function::FnOnce::call_once{{vtable.shim}}
[INFO] [stdout]              at /rustc/c2e32f1c9652b13ed99608599c1e855462f421f3/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23: <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once
[INFO] [stdout]              at /rustc/c2e32f1c9652b13ed99608599c1e855462f421f3/library/alloc/src/boxed.rs:2085:9
[INFO] [stdout]   24: std::sys::thread::unix::Thread::new::thread_start
[INFO] [stdout]              at /rustc/c2e32f1c9652b13ed99608599c1e855462f421f3/library/std/src/sys/thread/unix.rs:124:17
[INFO] [stdout]   25: <unknown>
[INFO] [stdout]   26: clone
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     tests::test_generate_mosaic_as_svg
[INFO] [stdout]     tests::test_generate_mosaic_from_input
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 3 passed; 2 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.67s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `--lib`
[INFO] running `Command { std: "docker" "inspect" "e427f461ede8f80f87671473285a7a4514ab661f080b64702e4d6420c124cd19", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e427f461ede8f80f87671473285a7a4514ab661f080b64702e4d6420c124cd19", kill_on_drop: false }`
[INFO] [stdout] e427f461ede8f80f87671473285a7a4514ab661f080b64702e4d6420c124cd19
