[INFO] cloning repository https://github.com/NicknameAlwaystaken/Rust-Ray-Tracing-Tutorial
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/NicknameAlwaystaken/Rust-Ray-Tracing-Tutorial" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FNicknameAlwaystaken%2FRust-Ray-Tracing-Tutorial", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FNicknameAlwaystaken%2FRust-Ray-Tracing-Tutorial'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 9dfe1e983af9b6783a2eda540ba83beb5a81aeaf
[INFO] checking NicknameAlwaystaken/Rust-Ray-Tracing-Tutorial against master#4b9792692fbb675174d4d2082e7c37b2bc930e71 for pr-153692-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FNicknameAlwaystaken%2FRust-Ray-Tracing-Tutorial" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/NicknameAlwaystaken/Rust-Ray-Tracing-Tutorial
[INFO] finished tweaking git repo https://github.com/NicknameAlwaystaken/Rust-Ray-Tracing-Tutorial
[INFO] tweaked toml for git repo https://github.com/NicknameAlwaystaken/Rust-Ray-Tracing-Tutorial written to /workspace/builds/worker-7-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/NicknameAlwaystaken/Rust-Ray-Tracing-Tutorial on toolchain 4b9792692fbb675174d4d2082e7c37b2bc930e71
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+4b9792692fbb675174d4d2082e7c37b2bc930e71" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/NicknameAlwaystaken/Rust-Ray-Tracing-Tutorial 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" "+4b9792692fbb675174d4d2082e7c37b2bc930e71" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded ravif v0.11.11
[INFO] [stderr]   Downloaded zune-jpeg v0.4.14
[INFO] [stderr]   Downloaded cc v1.2.18
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+4b9792692fbb675174d4d2082e7c37b2bc930e71" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] c39999625134eda718b66470950291bbe76ecf05ebf6a48a970019f8bd461236
[INFO] running `Command { std: "docker" "start" "-a" "c39999625134eda718b66470950291bbe76ecf05ebf6a48a970019f8bd461236", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "c39999625134eda718b66470950291bbe76ecf05ebf6a48a970019f8bd461236", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c39999625134eda718b66470950291bbe76ecf05ebf6a48a970019f8bd461236", kill_on_drop: false }`
[INFO] [stdout] c39999625134eda718b66470950291bbe76ecf05ebf6a48a970019f8bd461236
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+4b9792692fbb675174d4d2082e7c37b2bc930e71" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 202ce8827a9c94da7bbba9b29de42ec5b209cf76bc8adfbee5a4503b346d692a
[INFO] running `Command { std: "docker" "start" "-a" "202ce8827a9c94da7bbba9b29de42ec5b209cf76bc8adfbee5a4503b346d692a", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.94
[INFO] [stderr]    Compiling libc v0.2.171
[INFO] [stderr]    Compiling anyhow v1.0.97
[INFO] [stderr]    Compiling getrandom v0.3.2
[INFO] [stderr]     Checking memchr v2.7.4
[INFO] [stderr]     Checking aligned-vec v0.5.0
[INFO] [stderr]     Checking miniz_oxide v0.8.8
[INFO] [stderr]    Compiling zerocopy v0.8.24
[INFO] [stderr]    Compiling rav1e v0.7.1
[INFO] [stderr]     Checking log v0.4.27
[INFO] [stderr]     Checking itertools v0.12.1
[INFO] [stderr]     Checking bitstream-io v2.6.0
[INFO] [stderr]     Checking weezl v0.1.8
[INFO] [stderr]     Checking imgref v1.11.0
[INFO] [stderr]     Checking num-bigint v0.4.6
[INFO] [stderr]     Checking rayon v1.10.0
[INFO] [stderr]     Checking quick-error v2.0.1
[INFO] [stderr]     Checking v_frame v0.3.8
[INFO] [stderr]     Checking new_debug_unreachable v1.0.6
[INFO] [stderr]    Compiling noop_proc_macro v0.3.0
[INFO] [stderr]     Checking loop9 v0.1.5
[INFO] [stderr]     Checking avif-serialize v0.8.3
[INFO] [stderr]     Checking zune-inflate v0.2.54
[INFO] [stderr]     Checking half v2.6.0
[INFO] [stderr]     Checking rgb v0.8.50
[INFO] [stderr]     Checking byteorder-lite v0.1.0
[INFO] [stderr]     Checking nom v7.1.3
[INFO] [stderr]     Checking jpeg-decoder v0.3.1
[INFO] [stderr]     Checking zune-core v0.4.12
[INFO] [stderr]     Checking bytemuck v1.22.0
[INFO] [stderr]     Checking flate2 v1.1.1
[INFO] [stderr]     Checking lebe v0.5.2
[INFO] [stderr]     Checking color_quant v1.1.0
[INFO] [stderr]     Checking smallvec v1.15.0
[INFO] [stderr]     Checking bit_field v0.10.2
[INFO] [stderr]     Checking zune-jpeg v0.4.14
[INFO] [stderr]     Checking gif v0.13.1
[INFO] [stderr]     Checking qoi v0.4.1
[INFO] [stderr]     Checking image-webp v0.2.1
[INFO] [stderr]     Checking tiff v0.9.1
[INFO] [stderr]     Checking png v0.17.16
[INFO] [stderr]     Checking exr v1.73.0
[INFO] [stderr]    Compiling quote v1.0.40
[INFO] [stderr]     Checking num-rational v0.4.2
[INFO] [stderr]     Checking rand_core v0.9.3
[INFO] [stderr]    Compiling syn v2.0.100
[INFO] [stderr]    Compiling simd_helpers v0.1.0
[INFO] [stderr]     Checking av1-grain v0.2.3
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]     Checking maybe-rayon v0.1.1
[INFO] [stderr]     Checking rand_chacha v0.9.0
[INFO] [stderr]     Checking rand v0.9.0
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling profiling-procmacros v1.0.16
[INFO] [stderr]    Compiling arg_enum_proc_macro v0.3.4
[INFO] [stderr]    Compiling num-derive v0.4.2
[INFO] [stderr]     Checking profiling v1.0.16
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking ravif v0.11.11
[INFO] [stderr]     Checking image v0.25.6
[INFO] [stderr]     Checking Rust-Ray-Tracing-Tutorial v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `CosinePdf`
[INFO] [stdout]   --> src/main.rs:12:11
[INFO] [stdout]    |
[INFO] [stdout] 12 | use pdf::{CosinePdf, HittablePdf, MixturePdf, Pdf};
[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: `random_double_range`
[INFO] [stdout]  --> src/sphere.rs:8:54
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::rtweekend::{get_sphere_uv, random_double, random_double_range, INFINITY, PI};
[INFO] [stdout]   |                                                      ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `distr::weighted::Weight` and `random`
[INFO] [stdout]  --> src/hittable_list.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | use rand::{distr::weighted::Weight, random, seq::IndexedRandom};
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `onb::Onb`, `random_cosine_direction`, `random_in_hemisphere`, `random_unit_vector`, and `unit_vector`
[INFO] [stdout]  --> src/material.rs:3:34
[INFO] [stdout]   |
[INFO] [stdout] 3 | ...d, onb::Onb, pdf::{CosinePdf, Pdf}, ray::Ray, rtweekend::{random_double, PI}, texture::{SolidColor, Texture}, vec3::{dot, random_cosine_direction, random_in_hemisphere, random_in_unit_sphere, random_unit_vector, reflect, refract, unit_vector, C...
[INFO] [stdout]   |       ^^^^^^^^                                                                                                               ^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^                         ^^^^^^^^^^^^^^^^^^                    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand::Rng`
[INFO] [stdout]  --> src/bvh.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use rand::Rng;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand::random`
[INFO] [stdout]  --> src/pdf.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use rand::random;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `dot`
[INFO] [stdout]   --> src/main.rs:41:12
[INFO] [stdout]    |
[INFO] [stdout] 41 | use vec3::{dot, Color, Point3, Vec3};
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CosinePdf`
[INFO] [stdout]   --> src/main.rs:12:11
[INFO] [stdout]    |
[INFO] [stdout] 12 | use pdf::{CosinePdf, HittablePdf, MixturePdf, Pdf};
[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: `random_double_range`
[INFO] [stdout]  --> src/sphere.rs:8:54
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::rtweekend::{get_sphere_uv, random_double, random_double_range, INFINITY, PI};
[INFO] [stdout]   |                                                      ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `distr::weighted::Weight` and `random`
[INFO] [stdout]  --> src/hittable_list.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | use rand::{distr::weighted::Weight, random, seq::IndexedRandom};
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `onb::Onb`, `random_cosine_direction`, `random_in_hemisphere`, `random_unit_vector`, and `unit_vector`
[INFO] [stdout]  --> src/material.rs:3:34
[INFO] [stdout]   |
[INFO] [stdout] 3 | ...d, onb::Onb, pdf::{CosinePdf, Pdf}, ray::Ray, rtweekend::{random_double, PI}, texture::{SolidColor, Texture}, vec3::{dot, random_cosine_direction, random_in_hemisphere, random_in_unit_sphere, random_unit_vector, reflect, refract, unit_vector, C...
[INFO] [stdout]   |       ^^^^^^^^                                                                                                               ^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^                         ^^^^^^^^^^^^^^^^^^                    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand::Rng`
[INFO] [stdout]  --> src/bvh.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use rand::Rng;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand::random`
[INFO] [stdout]  --> src/pdf.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use rand::random;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `dot`
[INFO] [stdout]   --> src/main.rs:41:12
[INFO] [stdout]    |
[INFO] [stdout] 41 | use vec3::{dot, Color, Point3, Vec3};
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `rand::Rng::gen_range`: Renamed to `random_range`
[INFO] [stdout]   --> src/rtweekend.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 19 |     rng.gen_range(min..max)
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `rand::Rng::gen_range`: Renamed to `random_range`
[INFO] [stdout]   --> src/rtweekend.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 19 |     rng.gen_range(min..max)
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `seq::IndexedRandom`
[INFO] [stdout]  --> src/hittable_list.rs:3:45
[INFO] [stdout]   |
[INFO] [stdout] 3 | use rand::{distr::weighted::Weight, random, seq::IndexedRandom};
[INFO] [stdout]   |                                             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `origin`
[INFO] [stdout]   --> src/hittable.rs:12:25
[INFO] [stdout]    |
[INFO] [stdout] 12 |     fn pdf_value(&self, origin: &Point3, direction: &Vec3) -> f64 {
[INFO] [stdout]    |                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_origin`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `direction`
[INFO] [stdout]   --> src/hittable.rs:12:42
[INFO] [stdout]    |
[INFO] [stdout] 12 |     fn pdf_value(&self, origin: &Point3, direction: &Vec3) -> f64 {
[INFO] [stdout]    |                                          ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_direction`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `origin`
[INFO] [stdout]   --> src/hittable.rs:15:22
[INFO] [stdout]    |
[INFO] [stdout] 15 |     fn random(&self, origin: &Point3) -> Vec3 {
[INFO] [stdout]    |                      ^^^^^^ help: if this is intentional, prefix it with an underscore: `_origin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `time0`
[INFO] [stdout]   --> src/sphere.rs:80:28
[INFO] [stdout]    |
[INFO] [stdout] 80 |     fn bounding_box(&self, time0: f64, time1: f64) -> Option<Aabb> {
[INFO] [stdout]    |                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_time0`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `time1`
[INFO] [stdout]   --> src/sphere.rs:80:40
[INFO] [stdout]    |
[INFO] [stdout] 80 |     fn bounding_box(&self, time0: f64, time1: f64) -> Option<Aabb> {
[INFO] [stdout]    |                                        ^^^^^ help: if this is intentional, prefix it with an underscore: `_time1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rec`
[INFO] [stdout]   --> src/sphere.rs:89:13
[INFO] [stdout]    |
[INFO] [stdout] 89 |         let rec = match self.hit(&ray, 0.001, INFINITY) {
[INFO] [stdout]    |             ^^^ help: if this is intentional, prefix it with an underscore: `_rec`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `r_in`
[INFO] [stdout]  --> src/material.rs:6:23
[INFO] [stdout]   |
[INFO] [stdout] 6 |     fn scatter(&self, r_in: &Ray, rec: &HitRecord) -> Option<ScatterRecord> {
[INFO] [stdout]   |                       ^^^^ help: if this is intentional, prefix it with an underscore: `_r_in`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rec`
[INFO] [stdout]  --> src/material.rs:6:35
[INFO] [stdout]   |
[INFO] [stdout] 6 |     fn scatter(&self, r_in: &Ray, rec: &HitRecord) -> Option<ScatterRecord> {
[INFO] [stdout]   |                                   ^^^ help: if this is intentional, prefix it with an underscore: `_rec`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rec`
[INFO] [stdout]   --> src/material.rs:10:54
[INFO] [stdout]    |
[INFO] [stdout] 10 |     fn emitted(&self, _u: f64, _v: f64, _p: &Point3, rec: &HitRecord) -> Color {
[INFO] [stdout]    |                                                      ^^^ help: if this is intentional, prefix it with an underscore: `_rec`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `r_in`
[INFO] [stdout]   --> src/material.rs:14:30
[INFO] [stdout]    |
[INFO] [stdout] 14 |     fn scattering_pdf(&self, r_in: &Ray, rec: &HitRecord, scattered: &Ray) -> f64 {
[INFO] [stdout]    |                              ^^^^ help: if this is intentional, prefix it with an underscore: `_r_in`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rec`
[INFO] [stdout]   --> src/material.rs:14:42
[INFO] [stdout]    |
[INFO] [stdout] 14 |     fn scattering_pdf(&self, r_in: &Ray, rec: &HitRecord, scattered: &Ray) -> f64 {
[INFO] [stdout]    |                                          ^^^ help: if this is intentional, prefix it with an underscore: `_rec`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `scattered`
[INFO] [stdout]   --> src/material.rs:14:59
[INFO] [stdout]    |
[INFO] [stdout] 14 |     fn scattering_pdf(&self, r_in: &Ray, rec: &HitRecord, scattered: &Ray) -> f64 {
[INFO] [stdout]    |                                                           ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_scattered`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `r_in`
[INFO] [stdout]   --> src/material.rs:97:23
[INFO] [stdout]    |
[INFO] [stdout] 97 |     fn scatter(&self, r_in: &Ray, rec: &HitRecord) -> Option<ScatterRecord> {
[INFO] [stdout]    |                       ^^^^ help: if this is intentional, prefix it with an underscore: `_r_in`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rec`
[INFO] [stdout]   --> src/material.rs:97:35
[INFO] [stdout]    |
[INFO] [stdout] 97 |     fn scatter(&self, r_in: &Ray, rec: &HitRecord) -> Option<ScatterRecord> {
[INFO] [stdout]    |                                   ^^^ help: if this is intentional, prefix it with an underscore: `_rec`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rec`
[INFO] [stdout]    --> src/material.rs:101:54
[INFO] [stdout]     |
[INFO] [stdout] 101 |     fn emitted(&self, _u: f64, _v: f64, _p: &Point3, rec: &HitRecord) -> Color {
[INFO] [stdout]     |                                                      ^^^ help: if this is intentional, prefix it with an underscore: `_rec`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `r_in`
[INFO] [stdout]    --> src/material.rs:105:30
[INFO] [stdout]     |
[INFO] [stdout] 105 |     fn scattering_pdf(&self, r_in: &Ray, rec: &HitRecord, scattered: &Ray) -> f64 {
[INFO] [stdout]     |                              ^^^^ help: if this is intentional, prefix it with an underscore: `_r_in`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rec`
[INFO] [stdout]    --> src/material.rs:105:42
[INFO] [stdout]     |
[INFO] [stdout] 105 |     fn scattering_pdf(&self, r_in: &Ray, rec: &HitRecord, scattered: &Ray) -> f64 {
[INFO] [stdout]     |                                          ^^^ help: if this is intentional, prefix it with an underscore: `_rec`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `scattered`
[INFO] [stdout]    --> src/material.rs:105:59
[INFO] [stdout]     |
[INFO] [stdout] 105 |     fn scattering_pdf(&self, r_in: &Ray, rec: &HitRecord, scattered: &Ray) -> f64 {
[INFO] [stdout]     |                                                           ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_scattered`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `seq::IndexedRandom`
[INFO] [stdout]  --> src/hittable_list.rs:3:45
[INFO] [stdout]   |
[INFO] [stdout] 3 | use rand::{distr::weighted::Weight, random, seq::IndexedRandom};
[INFO] [stdout]   |                                             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `r_in`
[INFO] [stdout]    --> src/material.rs:111:23
[INFO] [stdout]     |
[INFO] [stdout] 111 |     fn scatter(&self, r_in: &Ray, rec: &HitRecord) -> Option<ScatterRecord> {
[INFO] [stdout]     |                       ^^^^ help: if this is intentional, prefix it with an underscore: `_r_in`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `r_in`
[INFO] [stdout]    --> src/material.rs:120:30
[INFO] [stdout]     |
[INFO] [stdout] 120 |     fn scattering_pdf(&self, r_in: &Ray, rec: &HitRecord, scattered: &Ray) -> f64 {
[INFO] [stdout]     |                              ^^^^ help: if this is intentional, prefix it with an underscore: `_r_in`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rec`
[INFO] [stdout]    --> src/material.rs:120:42
[INFO] [stdout]     |
[INFO] [stdout] 120 |     fn scattering_pdf(&self, r_in: &Ray, rec: &HitRecord, scattered: &Ray) -> f64 {
[INFO] [stdout]     |                                          ^^^ help: if this is intentional, prefix it with an underscore: `_rec`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `scattered`
[INFO] [stdout]    --> src/material.rs:120:59
[INFO] [stdout]     |
[INFO] [stdout] 120 |     fn scattering_pdf(&self, r_in: &Ray, rec: &HitRecord, scattered: &Ray) -> f64 {
[INFO] [stdout]     |                                                           ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_scattered`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `r_in`
[INFO] [stdout]    --> src/material.rs:126:23
[INFO] [stdout]     |
[INFO] [stdout] 126 |     fn scatter(&self, r_in: &Ray, rec: &HitRecord) -> Option<ScatterRecord> {
[INFO] [stdout]     |                       ^^^^ help: if this is intentional, prefix it with an underscore: `_r_in`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `r_in`
[INFO] [stdout]    --> src/material.rs:136:30
[INFO] [stdout]     |
[INFO] [stdout] 136 |     fn scattering_pdf(&self, r_in: &Ray, rec: &HitRecord, scattered: &Ray) -> f64 {
[INFO] [stdout]     |                              ^^^^ help: if this is intentional, prefix it with an underscore: `_r_in`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `r_in`
[INFO] [stdout]    --> src/material.rs:189:30
[INFO] [stdout]     |
[INFO] [stdout] 189 |     fn scattering_pdf(&self, r_in: &Ray, rec: &HitRecord, scattered: &Ray) -> f64 {
[INFO] [stdout]     |                              ^^^^ help: if this is intentional, prefix it with an underscore: `_r_in`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rec`
[INFO] [stdout]    --> src/material.rs:189:42
[INFO] [stdout]     |
[INFO] [stdout] 189 |     fn scattering_pdf(&self, r_in: &Ray, rec: &HitRecord, scattered: &Ray) -> f64 {
[INFO] [stdout]     |                                          ^^^ help: if this is intentional, prefix it with an underscore: `_rec`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `scattered`
[INFO] [stdout]    --> src/material.rs:189:59
[INFO] [stdout]     |
[INFO] [stdout] 189 |     fn scattering_pdf(&self, r_in: &Ray, rec: &HitRecord, scattered: &Ray) -> f64 {
[INFO] [stdout]     |                                                           ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_scattered`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `r_in`
[INFO] [stdout]    --> src/material.rs:195:23
[INFO] [stdout]     |
[INFO] [stdout] 195 |     fn scatter(&self, r_in: &Ray, _rec: &HitRecord) -> Option<ScatterRecord> {
[INFO] [stdout]     |                       ^^^^ help: if this is intentional, prefix it with an underscore: `_r_in`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `origin`
[INFO] [stdout]   --> src/hittable.rs:12:25
[INFO] [stdout]    |
[INFO] [stdout] 12 |     fn pdf_value(&self, origin: &Point3, direction: &Vec3) -> f64 {
[INFO] [stdout]    |                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_origin`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `direction`
[INFO] [stdout]   --> src/hittable.rs:12:42
[INFO] [stdout]    |
[INFO] [stdout] 12 |     fn pdf_value(&self, origin: &Point3, direction: &Vec3) -> f64 {
[INFO] [stdout]    |                                          ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_direction`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `origin`
[INFO] [stdout]   --> src/hittable.rs:15:22
[INFO] [stdout]    |
[INFO] [stdout] 15 |     fn random(&self, origin: &Point3) -> Vec3 {
[INFO] [stdout]    |                      ^^^^^^ help: if this is intentional, prefix it with an underscore: `_origin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `time0`
[INFO] [stdout]   --> src/bvh.rs:86:28
[INFO] [stdout]    |
[INFO] [stdout] 86 |     fn bounding_box(&self, time0: f64, time1: f64) -> Option<Aabb> {
[INFO] [stdout]    |                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_time0`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `time1`
[INFO] [stdout]   --> src/bvh.rs:86:40
[INFO] [stdout]    |
[INFO] [stdout] 86 |     fn bounding_box(&self, time0: f64, time1: f64) -> Option<Aabb> {
[INFO] [stdout]    |                                        ^^^^^ help: if this is intentional, prefix it with an underscore: `_time1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `u`
[INFO] [stdout]    --> src/texture.rs:113:21
[INFO] [stdout]     |
[INFO] [stdout] 113 |     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.rs:113:29
[INFO] [stdout]     |
[INFO] [stdout] 113 |     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: `time0`
[INFO] [stdout]   --> src/sphere.rs:80:28
[INFO] [stdout]    |
[INFO] [stdout] 80 |     fn bounding_box(&self, time0: f64, time1: f64) -> Option<Aabb> {
[INFO] [stdout]    |                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_time0`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `time1`
[INFO] [stdout]   --> src/sphere.rs:80:40
[INFO] [stdout]    |
[INFO] [stdout] 80 |     fn bounding_box(&self, time0: f64, time1: f64) -> Option<Aabb> {
[INFO] [stdout]    |                                        ^^^^^ help: if this is intentional, prefix it with an underscore: `_time1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `p`
[INFO] [stdout]    --> src/texture.rs:113:37
[INFO] [stdout]     |
[INFO] [stdout] 113 |     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: `rec`
[INFO] [stdout]   --> src/sphere.rs:89:13
[INFO] [stdout]    |
[INFO] [stdout] 89 |         let rec = match self.hit(&ray, 0.001, INFINITY) {
[INFO] [stdout]    |             ^^^ help: if this is intentional, prefix it with an underscore: `_rec`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `u`
[INFO] [stdout]    --> src/texture.rs:119:21
[INFO] [stdout]     |
[INFO] [stdout] 119 |     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.rs:119:29
[INFO] [stdout]     |
[INFO] [stdout] 119 |     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: `r_in`
[INFO] [stdout]  --> src/material.rs:6:23
[INFO] [stdout]   |
[INFO] [stdout] 6 |     fn scatter(&self, r_in: &Ray, rec: &HitRecord) -> Option<ScatterRecord> {
[INFO] [stdout]   |                       ^^^^ help: if this is intentional, prefix it with an underscore: `_r_in`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rec`
[INFO] [stdout]  --> src/material.rs:6:35
[INFO] [stdout]   |
[INFO] [stdout] 6 |     fn scatter(&self, r_in: &Ray, rec: &HitRecord) -> Option<ScatterRecord> {
[INFO] [stdout]   |                                   ^^^ help: if this is intentional, prefix it with an underscore: `_rec`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rec`
[INFO] [stdout]   --> src/material.rs:10:54
[INFO] [stdout]    |
[INFO] [stdout] 10 |     fn emitted(&self, _u: f64, _v: f64, _p: &Point3, rec: &HitRecord) -> Color {
[INFO] [stdout]    |                                                      ^^^ help: if this is intentional, prefix it with an underscore: `_rec`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `r_in`
[INFO] [stdout]   --> src/material.rs:14:30
[INFO] [stdout]    |
[INFO] [stdout] 14 |     fn scattering_pdf(&self, r_in: &Ray, rec: &HitRecord, scattered: &Ray) -> f64 {
[INFO] [stdout]    |                              ^^^^ help: if this is intentional, prefix it with an underscore: `_r_in`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rec`
[INFO] [stdout]   --> src/material.rs:14:42
[INFO] [stdout]    |
[INFO] [stdout] 14 |     fn scattering_pdf(&self, r_in: &Ray, rec: &HitRecord, scattered: &Ray) -> f64 {
[INFO] [stdout]    |                                          ^^^ help: if this is intentional, prefix it with an underscore: `_rec`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `scattered`
[INFO] [stdout]   --> src/material.rs:14:59
[INFO] [stdout]    |
[INFO] [stdout] 14 |     fn scattering_pdf(&self, r_in: &Ray, rec: &HitRecord, scattered: &Ray) -> f64 {
[INFO] [stdout]    |                                                           ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_scattered`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `r_in`
[INFO] [stdout]   --> src/material.rs:97:23
[INFO] [stdout]    |
[INFO] [stdout] 97 |     fn scatter(&self, r_in: &Ray, rec: &HitRecord) -> Option<ScatterRecord> {
[INFO] [stdout]    |                       ^^^^ help: if this is intentional, prefix it with an underscore: `_r_in`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rec`
[INFO] [stdout]   --> src/material.rs:97:35
[INFO] [stdout]    |
[INFO] [stdout] 97 |     fn scatter(&self, r_in: &Ray, rec: &HitRecord) -> Option<ScatterRecord> {
[INFO] [stdout]    |                                   ^^^ help: if this is intentional, prefix it with an underscore: `_rec`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rec`
[INFO] [stdout]    --> src/material.rs:101:54
[INFO] [stdout]     |
[INFO] [stdout] 101 |     fn emitted(&self, _u: f64, _v: f64, _p: &Point3, rec: &HitRecord) -> Color {
[INFO] [stdout]     |                                                      ^^^ help: if this is intentional, prefix it with an underscore: `_rec`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `r_in`
[INFO] [stdout]    --> src/material.rs:105:30
[INFO] [stdout]     |
[INFO] [stdout] 105 |     fn scattering_pdf(&self, r_in: &Ray, rec: &HitRecord, scattered: &Ray) -> f64 {
[INFO] [stdout]     |                              ^^^^ help: if this is intentional, prefix it with an underscore: `_r_in`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rec`
[INFO] [stdout]    --> src/material.rs:105:42
[INFO] [stdout]     |
[INFO] [stdout] 105 |     fn scattering_pdf(&self, r_in: &Ray, rec: &HitRecord, scattered: &Ray) -> f64 {
[INFO] [stdout]     |                                          ^^^ help: if this is intentional, prefix it with an underscore: `_rec`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `scattered`
[INFO] [stdout]    --> src/material.rs:105:59
[INFO] [stdout]     |
[INFO] [stdout] 105 |     fn scattering_pdf(&self, r_in: &Ray, rec: &HitRecord, scattered: &Ray) -> f64 {
[INFO] [stdout]     |                                                           ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_scattered`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `r_in`
[INFO] [stdout]    --> src/material.rs:111:23
[INFO] [stdout]     |
[INFO] [stdout] 111 |     fn scatter(&self, r_in: &Ray, rec: &HitRecord) -> Option<ScatterRecord> {
[INFO] [stdout]     |                       ^^^^ help: if this is intentional, prefix it with an underscore: `_r_in`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `r_in`
[INFO] [stdout]    --> src/material.rs:120:30
[INFO] [stdout]     |
[INFO] [stdout] 120 |     fn scattering_pdf(&self, r_in: &Ray, rec: &HitRecord, scattered: &Ray) -> f64 {
[INFO] [stdout]     |                              ^^^^ help: if this is intentional, prefix it with an underscore: `_r_in`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rec`
[INFO] [stdout]    --> src/material.rs:120:42
[INFO] [stdout]     |
[INFO] [stdout] 120 |     fn scattering_pdf(&self, r_in: &Ray, rec: &HitRecord, scattered: &Ray) -> f64 {
[INFO] [stdout]     |                                          ^^^ help: if this is intentional, prefix it with an underscore: `_rec`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `scattered`
[INFO] [stdout]    --> src/material.rs:120:59
[INFO] [stdout]     |
[INFO] [stdout] 120 |     fn scattering_pdf(&self, r_in: &Ray, rec: &HitRecord, scattered: &Ray) -> f64 {
[INFO] [stdout]     |                                                           ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_scattered`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `r_in`
[INFO] [stdout]    --> src/material.rs:126:23
[INFO] [stdout]     |
[INFO] [stdout] 126 |     fn scatter(&self, r_in: &Ray, rec: &HitRecord) -> Option<ScatterRecord> {
[INFO] [stdout]     |                       ^^^^ help: if this is intentional, prefix it with an underscore: `_r_in`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `r_in`
[INFO] [stdout]    --> src/material.rs:136:30
[INFO] [stdout]     |
[INFO] [stdout] 136 |     fn scattering_pdf(&self, r_in: &Ray, rec: &HitRecord, scattered: &Ray) -> f64 {
[INFO] [stdout]     |                              ^^^^ help: if this is intentional, prefix it with an underscore: `_r_in`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `r_in`
[INFO] [stdout]    --> src/material.rs:189:30
[INFO] [stdout]     |
[INFO] [stdout] 189 |     fn scattering_pdf(&self, r_in: &Ray, rec: &HitRecord, scattered: &Ray) -> f64 {
[INFO] [stdout]     |                              ^^^^ help: if this is intentional, prefix it with an underscore: `_r_in`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rec`
[INFO] [stdout]    --> src/material.rs:189:42
[INFO] [stdout]     |
[INFO] [stdout] 189 |     fn scattering_pdf(&self, r_in: &Ray, rec: &HitRecord, scattered: &Ray) -> f64 {
[INFO] [stdout]     |                                          ^^^ help: if this is intentional, prefix it with an underscore: `_rec`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `scattered`
[INFO] [stdout]    --> src/material.rs:189:59
[INFO] [stdout]     |
[INFO] [stdout] 189 |     fn scattering_pdf(&self, r_in: &Ray, rec: &HitRecord, scattered: &Ray) -> f64 {
[INFO] [stdout]     |                                                           ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_scattered`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `r_in`
[INFO] [stdout]    --> src/material.rs:195:23
[INFO] [stdout]     |
[INFO] [stdout] 195 |     fn scatter(&self, r_in: &Ray, _rec: &HitRecord) -> Option<ScatterRecord> {
[INFO] [stdout]     |                       ^^^^ help: if this is intentional, prefix it with an underscore: `_r_in`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `time0`
[INFO] [stdout]   --> src/cuboid.rs:38:28
[INFO] [stdout]    |
[INFO] [stdout] 38 |     fn bounding_box(&self, time0: f64, time1: f64) -> Option<crate::aabb::Aabb> {
[INFO] [stdout]    |                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_time0`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `time1`
[INFO] [stdout]   --> src/cuboid.rs:38:40
[INFO] [stdout]    |
[INFO] [stdout] 38 |     fn bounding_box(&self, time0: f64, time1: f64) -> Option<crate::aabb::Aabb> {
[INFO] [stdout]    |                                        ^^^^^ help: if this is intentional, prefix it with an underscore: `_time1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `time0`
[INFO] [stdout]   --> src/cylinder.rs:88:28
[INFO] [stdout]    |
[INFO] [stdout] 88 |     fn bounding_box(&self, time0: f64, time1: f64) -> Option<Aabb> {
[INFO] [stdout]    |                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_time0`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `time0`
[INFO] [stdout]   --> src/bvh.rs:86:28
[INFO] [stdout]    |
[INFO] [stdout] 86 |     fn bounding_box(&self, time0: f64, time1: f64) -> Option<Aabb> {
[INFO] [stdout]    |                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_time0`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `time1`
[INFO] [stdout]   --> src/bvh.rs:86:40
[INFO] [stdout]    |
[INFO] [stdout] 86 |     fn bounding_box(&self, time0: f64, time1: f64) -> Option<Aabb> {
[INFO] [stdout]    |                                        ^^^^^ help: if this is intentional, prefix it with an underscore: `_time1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `time1`
[INFO] [stdout]   --> src/cylinder.rs:88:40
[INFO] [stdout]    |
[INFO] [stdout] 88 |     fn bounding_box(&self, time0: f64, time1: f64) -> Option<Aabb> {
[INFO] [stdout]    |                                        ^^^^^ help: if this is intentional, prefix it with an underscore: `_time1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `u`
[INFO] [stdout]    --> src/texture.rs:113:21
[INFO] [stdout]     |
[INFO] [stdout] 113 |     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.rs:113:29
[INFO] [stdout]     |
[INFO] [stdout] 113 |     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.rs:113:37
[INFO] [stdout]     |
[INFO] [stdout] 113 |     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: `u`
[INFO] [stdout]    --> src/texture.rs:119:21
[INFO] [stdout]     |
[INFO] [stdout] 119 |     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.rs:119:29
[INFO] [stdout]     |
[INFO] [stdout] 119 |     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: `box1`
[INFO] [stdout]    --> src/main.rs:320:9
[INFO] [stdout]     |
[INFO] [stdout] 320 |     let box1 = Arc::new(Translate::new(box1, Vec3::new(265.0, 0.0, 295.0)));
[INFO] [stdout]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_box1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `box2`
[INFO] [stdout]    --> src/main.rs:343:9
[INFO] [stdout]     |
[INFO] [stdout] 343 |     let box2 = Arc::new(Translate::new(box2, Vec3::new(130.0, 0.0, 65.0)));
[INFO] [stdout]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_box2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `time0`
[INFO] [stdout]   --> src/cuboid.rs:38:28
[INFO] [stdout]    |
[INFO] [stdout] 38 |     fn bounding_box(&self, time0: f64, time1: f64) -> Option<crate::aabb::Aabb> {
[INFO] [stdout]    |                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_time0`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `time1`
[INFO] [stdout]   --> src/cuboid.rs:38:40
[INFO] [stdout]    |
[INFO] [stdout] 38 |     fn bounding_box(&self, time0: f64, time1: f64) -> Option<crate::aabb::Aabb> {
[INFO] [stdout]    |                                        ^^^^^ help: if this is intentional, prefix it with an underscore: `_time1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `vfov` is never read
[INFO] [stdout]    --> src/main.rs:600:20
[INFO] [stdout]     |
[INFO] [stdout] 600 |     let mut vfov = 40.0;
[INFO] [stdout]     |                    ^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 616 |             vfov = 20.0;
[INFO] [stdout]     |             ----------- `vfov` is overwritten here before the previous value is read
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `background` is never read
[INFO] [stdout]    --> src/main.rs:602:26
[INFO] [stdout]     |
[INFO] [stdout] 602 |     let mut background = Color::new(0.0, 0.0, 0.0);
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 613 |             background = Color::new(0.70, 0.80, 1.00);
[INFO] [stdout]     |             ----------------------------------------- `background` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `random_unit_vector` is never used
[INFO] [stdout]    --> src/vec3.rs:259:8
[INFO] [stdout]     |
[INFO] [stdout] 259 | pub fn random_unit_vector() -> Vec3 {
[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 `random_in_hemisphere` is never used
[INFO] [stdout]    --> src/vec3.rs:273:8
[INFO] [stdout]     |
[INFO] [stdout] 273 | pub fn random_in_hemisphere(normal: &Vec3) -> Vec3 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `clear` is never used
[INFO] [stdout]   --> src/hittable_list.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl HittableList {
[INFO] [stdout]    | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 20 |     pub fn clear(&mut self) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `w` is never read
[INFO] [stdout]   --> src/camera.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout]  3 | pub struct Camera {
[INFO] [stdout]    |            ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 10 |     w: Vec3,
[INFO] [stdout]    |     ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/material.rs:50:12
[INFO] [stdout]    |
[INFO] [stdout] 49 | impl Isotropic {
[INFO] [stdout]    | -------------- associated function in this implementation
[INFO] [stdout] 50 |     pub fn new( albedo: Arc<dyn Texture>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/material.rs:58:12
[INFO] [stdout]    |
[INFO] [stdout] 57 | impl DiffuseLight {
[INFO] [stdout]    | ----------------- associated function in this implementation
[INFO] [stdout] 58 |     pub fn new( emit: Arc<dyn Texture>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new_from_texture` and `new_from_color` are never used
[INFO] [stdout]   --> src/material.rs:66:12
[INFO] [stdout]    |
[INFO] [stdout] 65 | impl Lambertian {
[INFO] [stdout]    | --------------- associated functions in this implementation
[INFO] [stdout] 66 |     pub fn new_from_texture( albedo: Arc<dyn Texture>) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 72 |     pub fn new_from_color( c: Color) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/texture.rs:77:12
[INFO] [stdout]    |
[INFO] [stdout] 76 | impl CheckerTexture {
[INFO] [stdout]    | ------------------- associated function in this implementation
[INFO] [stdout] 77 |     pub fn new(even: Arc<dyn Texture>, odd: Arc<dyn Texture>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `time0`
[INFO] [stdout]   --> src/cylinder.rs:88:28
[INFO] [stdout]    |
[INFO] [stdout] 88 |     fn bounding_box(&self, time0: f64, time1: f64) -> Option<Aabb> {
[INFO] [stdout]    |                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_time0`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_rgb` is never used
[INFO] [stdout]   --> src/texture.rs:94:12
[INFO] [stdout]    |
[INFO] [stdout] 89 | impl SolidColor {
[INFO] [stdout]    | --------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 94 |     pub fn from_rgb (r: f64, g: f64, b: f64) -> Self {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `time1`
[INFO] [stdout]   --> src/cylinder.rs:88:40
[INFO] [stdout]    |
[INFO] [stdout] 88 |     fn bounding_box(&self, time0: f64, time1: f64) -> Option<Aabb> {
[INFO] [stdout]    |                                        ^^^^^ help: if this is intentional, prefix it with an underscore: `_time1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `trilinear_interp` is never used
[INFO] [stdout]   --> src/perlin.rs:77:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl Perlin {
[INFO] [stdout]    | ----------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 77 |     fn trilinear_interp(c: &[[[f64; 2]; 2]; 2], u: f64, v: f64, w: f64) -> f64 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `local` are never used
[INFO] [stdout]   --> src/onb.rs:9:12
[INFO] [stdout]    |
[INFO] [stdout]  8 | impl Onb {
[INFO] [stdout]    | -------- associated items in this implementation
[INFO] [stdout]  9 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 27 |     pub fn local(&self, a: f64, b: f64, c: f64) -> Vec3 {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `box1`
[INFO] [stdout]    --> src/main.rs:320:9
[INFO] [stdout]     |
[INFO] [stdout] 320 |     let box1 = Arc::new(Translate::new(box1, Vec3::new(265.0, 0.0, 295.0)));
[INFO] [stdout]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_box1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `box2`
[INFO] [stdout]    --> src/main.rs:343:9
[INFO] [stdout]     |
[INFO] [stdout] 343 |     let box2 = Arc::new(Translate::new(box2, Vec3::new(130.0, 0.0, 65.0)));
[INFO] [stdout]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_box2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `vfov` is never read
[INFO] [stdout]    --> src/main.rs:600:20
[INFO] [stdout]     |
[INFO] [stdout] 600 |     let mut vfov = 40.0;
[INFO] [stdout]     |                    ^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 616 |             vfov = 20.0;
[INFO] [stdout]     |             ----------- `vfov` is overwritten here before the previous value is read
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `background` is never read
[INFO] [stdout]    --> src/main.rs:602:26
[INFO] [stdout]     |
[INFO] [stdout] 602 |     let mut background = Color::new(0.0, 0.0, 0.0);
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 613 |             background = Color::new(0.70, 0.80, 1.00);
[INFO] [stdout]     |             ----------------------------------------- `background` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `random_unit_vector` is never used
[INFO] [stdout]    --> src/vec3.rs:259:8
[INFO] [stdout]     |
[INFO] [stdout] 259 | pub fn random_unit_vector() -> Vec3 {
[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 `random_in_hemisphere` is never used
[INFO] [stdout]    --> src/vec3.rs:273:8
[INFO] [stdout]     |
[INFO] [stdout] 273 | pub fn random_in_hemisphere(normal: &Vec3) -> Vec3 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `clear` is never used
[INFO] [stdout]   --> src/hittable_list.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl HittableList {
[INFO] [stdout]    | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 20 |     pub fn clear(&mut self) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `w` is never read
[INFO] [stdout]   --> src/camera.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout]  3 | pub struct Camera {
[INFO] [stdout]    |            ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 10 |     w: Vec3,
[INFO] [stdout]    |     ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/material.rs:50:12
[INFO] [stdout]    |
[INFO] [stdout] 49 | impl Isotropic {
[INFO] [stdout]    | -------------- associated function in this implementation
[INFO] [stdout] 50 |     pub fn new( albedo: Arc<dyn Texture>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/material.rs:58:12
[INFO] [stdout]    |
[INFO] [stdout] 57 | impl DiffuseLight {
[INFO] [stdout]    | ----------------- associated function in this implementation
[INFO] [stdout] 58 |     pub fn new( emit: Arc<dyn Texture>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new_from_texture` and `new_from_color` are never used
[INFO] [stdout]   --> src/material.rs:66:12
[INFO] [stdout]    |
[INFO] [stdout] 65 | impl Lambertian {
[INFO] [stdout]    | --------------- associated functions in this implementation
[INFO] [stdout] 66 |     pub fn new_from_texture( albedo: Arc<dyn Texture>) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 72 |     pub fn new_from_color( c: Color) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/texture.rs:77:12
[INFO] [stdout]    |
[INFO] [stdout] 76 | impl CheckerTexture {
[INFO] [stdout]    | ------------------- associated function in this implementation
[INFO] [stdout] 77 |     pub fn new(even: Arc<dyn Texture>, odd: Arc<dyn Texture>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_rgb` is never used
[INFO] [stdout]   --> src/texture.rs:94:12
[INFO] [stdout]    |
[INFO] [stdout] 89 | impl SolidColor {
[INFO] [stdout]    | --------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 94 |     pub fn from_rgb (r: f64, g: f64, b: f64) -> Self {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `trilinear_interp` is never used
[INFO] [stdout]   --> src/perlin.rs:77:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl Perlin {
[INFO] [stdout]    | ----------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 77 |     fn trilinear_interp(c: &[[[f64; 2]; 2]; 2], u: f64, v: f64, w: f64) -> f64 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `local` are never used
[INFO] [stdout]   --> src/onb.rs:9:12
[INFO] [stdout]    |
[INFO] [stdout]  8 | impl Onb {
[INFO] [stdout]    | -------- associated items in this implementation
[INFO] [stdout]  9 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 27 |     pub fn local(&self, a: f64, b: f64, c: f64) -> Vec3 {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 22.95s
[INFO] running `Command { std: "docker" "inspect" "202ce8827a9c94da7bbba9b29de42ec5b209cf76bc8adfbee5a4503b346d692a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "202ce8827a9c94da7bbba9b29de42ec5b209cf76bc8adfbee5a4503b346d692a", kill_on_drop: false }`
[INFO] [stdout] 202ce8827a9c94da7bbba9b29de42ec5b209cf76bc8adfbee5a4503b346d692a
