[INFO] cloning repository https://github.com/goncalompontes/ray-tracing
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/goncalompontes/ray-tracing" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgoncalompontes%2Fray-tracing", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgoncalompontes%2Fray-tracing'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 0bd460e59e084503ec7b77051e911e4a6e8945a2
[INFO] checking goncalompontes/ray-tracing against master#377656d3dd3f9c23a9c8713e163f4365a5261a84 for pr-146470-4
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgoncalompontes%2Fray-tracing" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/goncalompontes/ray-tracing
[INFO] finished tweaking git repo https://github.com/goncalompontes/ray-tracing
[INFO] tweaked toml for git repo https://github.com/goncalompontes/ray-tracing written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/goncalompontes/ray-tracing on toolchain 377656d3dd3f9c23a9c8713e163f4365a5261a84
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+377656d3dd3f9c23a9c8713e163f4365a5261a84" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/goncalompontes/ray-tracing 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" "+377656d3dd3f9c23a9c8713e163f4365a5261a84" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded rand_core v0.10.0-rc-2
[INFO] [stderr]   Downloaded chacha20 v0.10.0-rc.5
[INFO] [stderr]   Downloaded rand v0.10.0-rc.5
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+377656d3dd3f9c23a9c8713e163f4365a5261a84" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 06ed7328e5b17718812a22ac985a47bc800ce97ccacd9341a07b3c896a40d5d0
[INFO] running `Command { std: "docker" "start" "-a" "06ed7328e5b17718812a22ac985a47bc800ce97ccacd9341a07b3c896a40d5d0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "06ed7328e5b17718812a22ac985a47bc800ce97ccacd9341a07b3c896a40d5d0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "06ed7328e5b17718812a22ac985a47bc800ce97ccacd9341a07b3c896a40d5d0", kill_on_drop: false }`
[INFO] [stdout] 06ed7328e5b17718812a22ac985a47bc800ce97ccacd9341a07b3c896a40d5d0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+377656d3dd3f9c23a9c8713e163f4365a5261a84" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] a1999bbd482e4dd8c22db53e4096ef19fc7136975ac041f7327ae8e803643cf0
[INFO] running `Command { std: "docker" "start" "-a" "a1999bbd482e4dd8c22db53e4096ef19fc7136975ac041f7327ae8e803643cf0", kill_on_drop: false }`
[INFO] [stderr]    Compiling quote v1.0.42
[INFO] [stderr]    Compiling libc v0.2.177
[INFO] [stderr]     Checking simd-adler32 v0.3.7
[INFO] [stderr]    Compiling zerocopy v0.8.27
[INFO] [stderr]    Compiling proc-macro2 v1.0.103
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]     Checking aligned v0.4.2
[INFO] [stderr]    Compiling portable-atomic v1.11.1
[INFO] [stderr]     Checking rand_core v0.10.0-rc-2
[INFO] [stderr]     Checking unicode-width v0.2.2
[INFO] [stderr]     Checking zune-jpeg v0.5.5
[INFO] [stderr]     Checking gif v0.14.0
[INFO] [stderr]     Checking unit-prefix v0.5.2
[INFO] [stderr]     Checking chacha20 v0.10.0-rc.5
[INFO] [stderr]     Checking miniz_oxide v0.8.9
[INFO] [stderr]     Checking zune-inflate v0.2.54
[INFO] [stderr]     Checking fdeflate v0.3.7
[INFO] [stderr]     Checking flate2 v1.1.5
[INFO] [stderr]    Compiling syn v2.0.110
[INFO] [stderr]    Compiling simd_helpers v0.1.0
[INFO] [stderr]     Checking png v0.18.0
[INFO] [stderr]     Checking num-integer v0.1.46
[INFO] [stderr]     Checking pxfm v0.1.25
[INFO] [stderr]     Checking num-bigint v0.4.6
[INFO] [stderr]     Checking console v0.16.1
[INFO] [stderr]     Checking getrandom v0.3.4
[INFO] [stderr]     Checking rand v0.10.0-rc.5
[INFO] [stderr]     Checking indicatif v0.18.3
[INFO] [stderr]     Checking num-rational v0.4.2
[INFO] [stderr]     Checking moxcms v0.7.9
[INFO] [stderr]    Compiling equator-macro v0.4.2
[INFO] [stderr]    Compiling zerocopy-derive v0.8.27
[INFO] [stderr]    Compiling thiserror-impl v2.0.17
[INFO] [stderr]    Compiling arg_enum_proc_macro v0.3.4
[INFO] [stderr]    Compiling profiling-procmacros v1.0.17
[INFO] [stderr]    Compiling fax_derive v0.2.0
[INFO] [stderr]    Compiling num-derive v0.4.2
[INFO] [stderr]     Checking fax v0.2.6
[INFO] [stderr]     Checking profiling v1.0.17
[INFO] [stderr]     Checking equator v0.4.2
[INFO] [stderr]     Checking aligned-vec v0.6.4
[INFO] [stderr]     Checking v_frame v0.3.9
[INFO] [stderr]     Checking thiserror v2.0.17
[INFO] [stderr]     Checking av-scenechange v0.14.1
[INFO] [stderr]     Checking av1-grain v0.2.5
[INFO] [stderr]     Checking rav1e v0.8.1
[INFO] [stderr]     Checking half v2.7.1
[INFO] [stderr]     Checking exr v1.74.0
[INFO] [stderr]     Checking tiff v0.10.3
[INFO] [stderr]     Checking ravif v0.12.0
[INFO] [stderr]     Checking image v0.25.9
[INFO] [stderr]     Checking ray_tracing v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]  --> src/geometry/sphere.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::sync::Arc;
[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: `Surface`
[INFO] [stdout]  --> src/geometry/sphere.rs:7:33
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::material::{Material, Surface};
[INFO] [stdout]   |                                 ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Ray`
[INFO] [stdout]  --> src/geometry/hit.rs:4:36
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::renderer::ray::{Point3, Ray};
[INFO] [stdout]   |                                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]  --> src/geometry/quad.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::sync::Arc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Geometry`, `HittableExt`, and `Hittable`
[INFO] [stdout]  --> src/geometry/quad.rs:2:23
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::geometry::{Geometry, Hittable, HittableExt};
[INFO] [stdout]   |                       ^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Geometry`
[INFO] [stdout]  --> src/geometry/cuboid.rs:2:23
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::geometry::{Geometry, Hittable, HittableExt};
[INFO] [stdout]   |                       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]  --> src/material/lambertian.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::sync::Arc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]  --> src/material/metal.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::sync::Arc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::math::color::Color`
[INFO] [stdout]  --> src/material/metal.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::math::color::Color;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::math::color::Color`
[INFO] [stdout]  --> src/material/dieletric.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::math::color::Color;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::geometry::hit::HitRecord`
[INFO] [stdout]  --> src/material/diffuse.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::geometry::hit::HitRecord;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Scatter`
[INFO] [stdout]  --> src/material/diffuse.rs:2:23
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::material::{Scatter, Surface};
[INFO] [stdout]   |                       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Ray`
[INFO] [stdout]  --> src/material/diffuse.rs:4:36
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::renderer::ray::{Point3, Ray};
[INFO] [stdout]   |                                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Material`
[INFO] [stdout]  --> src/material/isotropic.rs:2:23
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::material::{Material, Scatter, Surface};
[INFO] [stdout]   |                       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DerefMut` and `Deref`
[INFO] [stdout]  --> src/math/color.rs:4:16
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::ops::{Deref, DerefMut};
[INFO] [stdout]   |                ^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `image::codecs::png::CompressionType::Default`
[INFO] [stdout]  --> src/math/vec3.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use image::codecs::png::CompressionType::Default;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand::random_range`
[INFO] [stdout]  --> src/renderer/bvh.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use rand::random_range;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::material::Scatter`
[INFO] [stdout]   --> src/renderer/camera.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use crate::material::Scatter;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]  --> src/texture/checker.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::sync::Arc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Path`
[INFO] [stdout]  --> src/texture/image.rs:1:17
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Texture`
[INFO] [stdout]  --> src/texture/image.rs:5:34
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::texture::{Sampleable, Texture};
[INFO] [stdout]   |                                  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Texture`
[INFO] [stdout]  --> src/texture/noise.rs:4:34
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::texture::{Sampleable, Texture};
[INFO] [stdout]   |                                  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::geometry::planar::Planar`
[INFO] [stdout]   --> src/main.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::geometry::planar::Planar;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `WriteColor`
[INFO] [stdout]   --> src/main.rs:19:26
[INFO] [stdout]    |
[INFO] [stdout] 19 | use math::color::{Color, WriteColor};
[INFO] [stdout]    |                          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fs::File`
[INFO] [stdout]   --> src/main.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 | use std::fs::File;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BufWriter` and `Write`
[INFO] [stdout]   --> src/main.rs:25:15
[INFO] [stdout]    |
[INFO] [stdout] 25 | use std::io::{BufWriter, Write};
[INFO] [stdout]    |               ^^^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]  --> src/geometry/sphere.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::sync::Arc;
[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: `Surface`
[INFO] [stdout]  --> src/geometry/sphere.rs:7:33
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::material::{Material, Surface};
[INFO] [stdout]   |                                 ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Ray`
[INFO] [stdout]  --> src/geometry/hit.rs:4:36
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::renderer::ray::{Point3, Ray};
[INFO] [stdout]   |                                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]  --> src/geometry/quad.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::sync::Arc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Geometry`, `HittableExt`, and `Hittable`
[INFO] [stdout]  --> src/geometry/quad.rs:2:23
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::geometry::{Geometry, Hittable, HittableExt};
[INFO] [stdout]   |                       ^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Geometry`
[INFO] [stdout]  --> src/geometry/cuboid.rs:2:23
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::geometry::{Geometry, Hittable, HittableExt};
[INFO] [stdout]   |                       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]  --> src/material/lambertian.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::sync::Arc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]  --> src/material/metal.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::sync::Arc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::math::color::Color`
[INFO] [stdout]  --> src/material/metal.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::math::color::Color;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::math::color::Color`
[INFO] [stdout]  --> src/material/dieletric.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::math::color::Color;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::geometry::hit::HitRecord`
[INFO] [stdout]  --> src/material/diffuse.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::geometry::hit::HitRecord;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Scatter`
[INFO] [stdout]  --> src/material/diffuse.rs:2:23
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::material::{Scatter, Surface};
[INFO] [stdout]   |                       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Ray`
[INFO] [stdout]  --> src/material/diffuse.rs:4:36
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::renderer::ray::{Point3, Ray};
[INFO] [stdout]   |                                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Material`
[INFO] [stdout]  --> src/material/isotropic.rs:2:23
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::material::{Material, Scatter, Surface};
[INFO] [stdout]   |                       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DerefMut` and `Deref`
[INFO] [stdout]  --> src/math/color.rs:4:16
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::ops::{Deref, DerefMut};
[INFO] [stdout]   |                ^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `image::codecs::png::CompressionType::Default`
[INFO] [stdout]  --> src/math/vec3.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use image::codecs::png::CompressionType::Default;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand::random_range`
[INFO] [stdout]  --> src/renderer/bvh.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use rand::random_range;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::material::Scatter`
[INFO] [stdout]   --> src/renderer/camera.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use crate::material::Scatter;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]  --> src/texture/checker.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::sync::Arc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Path`
[INFO] [stdout]  --> src/texture/image.rs:1:17
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Texture`
[INFO] [stdout]  --> src/texture/image.rs:5:34
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::texture::{Sampleable, Texture};
[INFO] [stdout]   |                                  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Texture`
[INFO] [stdout]  --> src/texture/noise.rs:4:34
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::texture::{Sampleable, Texture};
[INFO] [stdout]   |                                  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::geometry::planar::Planar`
[INFO] [stdout]   --> src/main.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::geometry::planar::Planar;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `WriteColor`
[INFO] [stdout]   --> src/main.rs:19:26
[INFO] [stdout]    |
[INFO] [stdout] 19 | use math::color::{Color, WriteColor};
[INFO] [stdout]    |                          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fs::File`
[INFO] [stdout]   --> src/main.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 | use std::fs::File;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BufWriter` and `Write`
[INFO] [stdout]   --> src/main.rs:25:15
[INFO] [stdout]    |
[INFO] [stdout] 25 | use std::io::{BufWriter, Write};
[INFO] [stdout]    |               ^^^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ray`
[INFO] [stdout]   --> src/material/mod.rs:63:23
[INFO] [stdout]    |
[INFO] [stdout] 63 |     fn scatter(&self, ray: &Ray, hit: &HitRecord) -> Option<Scatter> {
[INFO] [stdout]    |                       ^^^ help: if this is intentional, prefix it with an underscore: `_ray`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `hit`
[INFO] [stdout]   --> src/material/mod.rs:63:34
[INFO] [stdout]    |
[INFO] [stdout] 63 |     fn scatter(&self, ray: &Ray, hit: &HitRecord) -> Option<Scatter> {
[INFO] [stdout]    |                                  ^^^ help: if this is intentional, prefix it with an underscore: `_hit`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `u`
[INFO] [stdout]   --> src/material/mod.rs:67:23
[INFO] [stdout]    |
[INFO] [stdout] 67 |     fn emitted(&self, u: f64, v: f64, point: Point3) -> Color {
[INFO] [stdout]    |                       ^ help: if this is intentional, prefix it with an underscore: `_u`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]   --> src/material/mod.rs:67:31
[INFO] [stdout]    |
[INFO] [stdout] 67 |     fn emitted(&self, u: f64, v: f64, point: Point3) -> Color {
[INFO] [stdout]    |                               ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `point`
[INFO] [stdout]   --> src/material/mod.rs:67:39
[INFO] [stdout]    |
[INFO] [stdout] 67 |     fn emitted(&self, u: f64, v: f64, point: Point3) -> Color {
[INFO] [stdout]    |                                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_point`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/math/perlin.rs:37:13
[INFO] [stdout]    |
[INFO] [stdout] 37 |         for i in 0..depth {
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `u`
[INFO] [stdout]   --> src/texture/solid.rs:20:21
[INFO] [stdout]    |
[INFO] [stdout] 20 |     fn value(&self, u: f64, v: f64, p: Point3) -> Color {
[INFO] [stdout]    |                     ^ help: if this is intentional, prefix it with an underscore: `_u`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]   --> src/texture/solid.rs:20:29
[INFO] [stdout]    |
[INFO] [stdout] 20 |     fn value(&self, u: f64, v: f64, p: Point3) -> Color {
[INFO] [stdout]    |                             ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `p`
[INFO] [stdout]   --> src/texture/solid.rs:20:37
[INFO] [stdout]    |
[INFO] [stdout] 20 |     fn value(&self, u: f64, v: f64, p: Point3) -> Color {
[INFO] [stdout]    |                                     ^ help: if this is intentional, prefix it with an underscore: `_p`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `point`
[INFO] [stdout]   --> src/texture/image.rs:23:37
[INFO] [stdout]    |
[INFO] [stdout] 23 |     fn value(&self, u: f64, v: f64, point: Point3) -> Color {
[INFO] [stdout]    |                                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_point`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `u`
[INFO] [stdout]    --> src/texture/noise.rs:174:21
[INFO] [stdout]     |
[INFO] [stdout] 174 |     fn value(&self, u: f64, v: f64, point: Point3) -> Color {
[INFO] [stdout]     |                     ^ help: if this is intentional, prefix it with an underscore: `_u`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]    --> src/texture/noise.rs:174:29
[INFO] [stdout]     |
[INFO] [stdout] 174 |     fn value(&self, u: f64, v: f64, point: Point3) -> Color {
[INFO] [stdout]     |                             ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `u`
[INFO] [stdout]    --> src/texture/noise.rs:184:21
[INFO] [stdout]     |
[INFO] [stdout] 184 |     fn value(&self, u: f64, v: f64, point: Point3) -> Color {
[INFO] [stdout]     |                     ^ help: if this is intentional, prefix it with an underscore: `_u`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]    --> src/texture/noise.rs:184:29
[INFO] [stdout]     |
[INFO] [stdout] 184 |     fn value(&self, u: f64, v: f64, point: Point3) -> Color {
[INFO] [stdout]     |                             ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `j`
[INFO] [stdout]    --> src/main.rs:672:9
[INFO] [stdout]     |
[INFO] [stdout] 672 |     for j in 0..ns {
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_j`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ray`
[INFO] [stdout]   --> src/material/mod.rs:63:23
[INFO] [stdout]    |
[INFO] [stdout] 63 |     fn scatter(&self, ray: &Ray, hit: &HitRecord) -> Option<Scatter> {
[INFO] [stdout]    |                       ^^^ help: if this is intentional, prefix it with an underscore: `_ray`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `hit`
[INFO] [stdout]   --> src/material/mod.rs:63:34
[INFO] [stdout]    |
[INFO] [stdout] 63 |     fn scatter(&self, ray: &Ray, hit: &HitRecord) -> Option<Scatter> {
[INFO] [stdout]    |                                  ^^^ help: if this is intentional, prefix it with an underscore: `_hit`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/geometry/constant_volume.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl ConstantVolume {
[INFO] [stdout]    | ------------------- associated function in this implementation
[INFO] [stdout] 19 |     pub fn new(boundary: Geometry, density: f64, texture: Texture) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `u`
[INFO] [stdout]   --> src/material/mod.rs:67:23
[INFO] [stdout]    |
[INFO] [stdout] 67 |     fn emitted(&self, u: f64, v: f64, point: Point3) -> Color {
[INFO] [stdout]    |                       ^ help: if this is intentional, prefix it with an underscore: `_u`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]   --> src/material/mod.rs:67:31
[INFO] [stdout]    |
[INFO] [stdout] 67 |     fn emitted(&self, u: f64, v: f64, point: Point3) -> Color {
[INFO] [stdout]    |                               ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constants `EMPTY` and `UNIVERSE` are never used
[INFO] [stdout]   --> src/renderer/aabb.rs:14:11
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl Aabb {
[INFO] [stdout]    | --------- associated constants in this implementation
[INFO] [stdout] 14 |     const EMPTY: Self = Self {
[INFO] [stdout]    |           ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 19 |     const UNIVERSE: Self = Self {
[INFO] [stdout]    |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `u`, `v`, and `w` are never read
[INFO] [stdout]   --> src/renderer/camera.rs:45:5
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub struct Camera {
[INFO] [stdout]    |            ------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 45 |     u: Vec3,
[INFO] [stdout]    |     ^
[INFO] [stdout] 46 |     v: Vec3,
[INFO] [stdout]    |     ^
[INFO] [stdout] 47 |     w: Vec3,
[INFO] [stdout]    |     ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constant `DEFAULT_SAMPLES_PER_PIXEL` is never used
[INFO] [stdout]   --> src/renderer/camera.rs:57:11
[INFO] [stdout]    |
[INFO] [stdout] 56 | impl Camera {
[INFO] [stdout]    | ----------- associated constant in this implementation
[INFO] [stdout] 57 |     const DEFAULT_SAMPLES_PER_PIXEL: u32 = 10;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `rgb` is never used
[INFO] [stdout]   --> src/texture/solid.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout]  9 | impl Solid {
[INFO] [stdout]    | ---------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 14 |     pub fn rgb(red: f64, green: f64, blue: f64) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `scale` is never read
[INFO] [stdout]  --> src/texture/noise.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct Noise {
[INFO] [stdout]   |            ----- field in this struct
[INFO] [stdout] 7 |     noise: Perlin,
[INFO] [stdout] 8 |     scale: f64,
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `point`
[INFO] [stdout]   --> src/material/mod.rs:67:39
[INFO] [stdout]    |
[INFO] [stdout] 67 |     fn emitted(&self, u: f64, v: f64, point: Point3) -> Color {
[INFO] [stdout]    |                                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_point`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `fractal_noise`, `marble_pattern`, and `wood_pattern` are never used
[INFO] [stdout]   --> src/texture/noise.rs:66:8
[INFO] [stdout]    |
[INFO] [stdout] 22 | impl Noise {
[INFO] [stdout]    | ---------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 66 |     fn fractal_noise(&self, point: Point3) -> f64 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 86 |     fn marble_pattern(&self, point: Point3) -> f64 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 91 |     fn wood_pattern(&self, point: Point3) -> f64 {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Turbulence` and `Fractal` are never constructed
[INFO] [stdout]    --> src/texture/noise.rs:101:5
[INFO] [stdout]     |
[INFO] [stdout]  99 | pub enum NoiseType {
[INFO] [stdout]     |          --------- variants in this enum
[INFO] [stdout] 100 |     Basic,
[INFO] [stdout] 101 |     Turbulence,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 102 |     Fractal,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/math/perlin.rs:37:13
[INFO] [stdout]    |
[INFO] [stdout] 37 |         for i in 0..depth {
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `u`
[INFO] [stdout]   --> src/texture/solid.rs:20:21
[INFO] [stdout]    |
[INFO] [stdout] 20 |     fn value(&self, u: f64, v: f64, p: Point3) -> Color {
[INFO] [stdout]    |                     ^ help: if this is intentional, prefix it with an underscore: `_u`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]   --> src/texture/solid.rs:20:29
[INFO] [stdout]    |
[INFO] [stdout] 20 |     fn value(&self, u: f64, v: f64, p: Point3) -> Color {
[INFO] [stdout]    |                             ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `p`
[INFO] [stdout]   --> src/texture/solid.rs:20:37
[INFO] [stdout]    |
[INFO] [stdout] 20 |     fn value(&self, u: f64, v: f64, p: Point3) -> Color {
[INFO] [stdout]    |                                     ^ help: if this is intentional, prefix it with an underscore: `_p`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `point`
[INFO] [stdout]   --> src/texture/image.rs:23:37
[INFO] [stdout]    |
[INFO] [stdout] 23 |     fn value(&self, u: f64, v: f64, point: Point3) -> Color {
[INFO] [stdout]    |                                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_point`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `u`
[INFO] [stdout]    --> src/texture/noise.rs:174:21
[INFO] [stdout]     |
[INFO] [stdout] 174 |     fn value(&self, u: f64, v: f64, point: Point3) -> Color {
[INFO] [stdout]     |                     ^ help: if this is intentional, prefix it with an underscore: `_u`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]    --> src/texture/noise.rs:174:29
[INFO] [stdout]     |
[INFO] [stdout] 174 |     fn value(&self, u: f64, v: f64, point: Point3) -> Color {
[INFO] [stdout]     |                             ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `u`
[INFO] [stdout]    --> src/texture/noise.rs:184:21
[INFO] [stdout]     |
[INFO] [stdout] 184 |     fn value(&self, u: f64, v: f64, point: Point3) -> Color {
[INFO] [stdout]     |                     ^ help: if this is intentional, prefix it with an underscore: `_u`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]    --> src/texture/noise.rs:184:29
[INFO] [stdout]     |
[INFO] [stdout] 184 |     fn value(&self, u: f64, v: f64, point: Point3) -> Color {
[INFO] [stdout]     |                             ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `j`
[INFO] [stdout]    --> src/main.rs:672:9
[INFO] [stdout]     |
[INFO] [stdout] 672 |     for j in 0..ns {
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_j`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/geometry/constant_volume.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl ConstantVolume {
[INFO] [stdout]    | ------------------- associated function in this implementation
[INFO] [stdout] 19 |     pub fn new(boundary: Geometry, density: f64, texture: Texture) -> Self {
[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 constants `EMPTY` and `UNIVERSE` are never used
[INFO] [stdout]   --> src/renderer/aabb.rs:14:11
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl Aabb {
[INFO] [stdout]    | --------- associated constants in this implementation
[INFO] [stdout] 14 |     const EMPTY: Self = Self {
[INFO] [stdout]    |           ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 19 |     const UNIVERSE: Self = Self {
[INFO] [stdout]    |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `u`, `v`, and `w` are never read
[INFO] [stdout]   --> src/renderer/camera.rs:45:5
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub struct Camera {
[INFO] [stdout]    |            ------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 45 |     u: Vec3,
[INFO] [stdout]    |     ^
[INFO] [stdout] 46 |     v: Vec3,
[INFO] [stdout]    |     ^
[INFO] [stdout] 47 |     w: Vec3,
[INFO] [stdout]    |     ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constant `DEFAULT_SAMPLES_PER_PIXEL` is never used
[INFO] [stdout]   --> src/renderer/camera.rs:57:11
[INFO] [stdout]    |
[INFO] [stdout] 56 | impl Camera {
[INFO] [stdout]    | ----------- associated constant in this implementation
[INFO] [stdout] 57 |     const DEFAULT_SAMPLES_PER_PIXEL: u32 = 10;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `rgb` is never used
[INFO] [stdout]   --> src/texture/solid.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout]  9 | impl Solid {
[INFO] [stdout]    | ---------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 14 |     pub fn rgb(red: f64, green: f64, blue: f64) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `scale` is never read
[INFO] [stdout]  --> src/texture/noise.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct Noise {
[INFO] [stdout]   |            ----- field in this struct
[INFO] [stdout] 7 |     noise: Perlin,
[INFO] [stdout] 8 |     scale: f64,
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `fractal_noise`, `marble_pattern`, and `wood_pattern` are never used
[INFO] [stdout]   --> src/texture/noise.rs:66:8
[INFO] [stdout]    |
[INFO] [stdout] 22 | impl Noise {
[INFO] [stdout]    | ---------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 66 |     fn fractal_noise(&self, point: Point3) -> f64 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 86 |     fn marble_pattern(&self, point: Point3) -> f64 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 91 |     fn wood_pattern(&self, point: Point3) -> f64 {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Turbulence` and `Fractal` are never constructed
[INFO] [stdout]    --> src/texture/noise.rs:101:5
[INFO] [stdout]     |
[INFO] [stdout]  99 | pub enum NoiseType {
[INFO] [stdout]     |          --------- variants in this enum
[INFO] [stdout] 100 |     Basic,
[INFO] [stdout] 101 |     Turbulence,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 102 |     Fractal,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 24.12s
[INFO] running `Command { std: "docker" "inspect" "a1999bbd482e4dd8c22db53e4096ef19fc7136975ac041f7327ae8e803643cf0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a1999bbd482e4dd8c22db53e4096ef19fc7136975ac041f7327ae8e803643cf0", kill_on_drop: false }`
[INFO] [stdout] a1999bbd482e4dd8c22db53e4096ef19fc7136975ac041f7327ae8e803643cf0
