[INFO] cloning repository https://github.com/ErikSaterskog/RayMarcher
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/ErikSaterskog/RayMarcher" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FErikSaterskog%2FRayMarcher", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FErikSaterskog%2FRayMarcher'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] c3dba44f6e941f04071e894caadc05fa2dc3d68e
[INFO] checking ErikSaterskog/RayMarcher against try#0bdee9e879c87b7211d316e9152109cfd46c576b for pr-150097
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FErikSaterskog%2FRayMarcher" "/workspace/builds/worker-3-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/ErikSaterskog/RayMarcher
[INFO] finished tweaking git repo https://github.com/ErikSaterskog/RayMarcher
[INFO] tweaked toml for git repo https://github.com/ErikSaterskog/RayMarcher written to /workspace/builds/worker-3-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/ErikSaterskog/RayMarcher on toolchain 0bdee9e879c87b7211d316e9152109cfd46c576b
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+0bdee9e879c87b7211d316e9152109cfd46c576b" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/ErikSaterskog/RayMarcher 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" "+0bdee9e879c87b7211d316e9152109cfd46c576b" "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
[ERROR] error running command: no output for 300 seconds
[INFO] checking ErikSaterskog/RayMarcher against try#0bdee9e879c87b7211d316e9152109cfd46c576b for pr-150097
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FErikSaterskog%2FRayMarcher" "/workspace/builds/worker-3-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/ErikSaterskog/RayMarcher
[INFO] finished tweaking git repo https://github.com/ErikSaterskog/RayMarcher
[INFO] tweaked toml for git repo https://github.com/ErikSaterskog/RayMarcher written to /workspace/builds/worker-3-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/ErikSaterskog/RayMarcher on toolchain 0bdee9e879c87b7211d316e9152109cfd46c576b
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+0bdee9e879c87b7211d316e9152109cfd46c576b" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/ErikSaterskog/RayMarcher 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" "+0bdee9e879c87b7211d316e9152109cfd46c576b" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded symphonia v0.5.3
[INFO] [stderr]   Downloaded jobserver v0.1.27
[INFO] [stderr]   Downloaded symphonia-metadata v0.5.3
[INFO] [stderr]   Downloaded smawk v0.3.1
[INFO] [stderr]   Downloaded either v1.8.0
[INFO] [stderr]   Downloaded num v0.4.1
[INFO] [stderr]   Downloaded futures-sink v0.3.24
[INFO] [stderr]   Downloaded smallvec v0.4.5
[INFO] [stderr]   Downloaded ferris-says v0.2.1
[INFO] [stderr]   Downloaded num-complex v0.4.4
[INFO] [stderr]   Downloaded crossbeam-utils v0.8.12
[INFO] [stderr]   Downloaded symphonia-bundle-mp3 v0.5.3
[INFO] [stderr]   Downloaded textwrap v0.13.4
[INFO] [stderr]   Downloaded png v0.17.6
[INFO] [stderr]   Downloaded symphonia-core v0.5.3
[INFO] [stderr]   Downloaded claxon v0.4.3
[INFO] [stderr]   Downloaded winnow v0.5.17
[INFO] [stderr]   Downloaded matrixmultiply v0.3.2
[INFO] [stderr]   Downloaded crossbeam-epoch v0.9.11
[INFO] [stderr]   Downloaded spin v0.9.4
[INFO] [stderr]   Downloaded half v2.1.0
[INFO] [stderr]   Downloaded miniz_oxide v0.5.4
[INFO] [stderr]   Downloaded exr v1.5.2
[INFO] [stderr]   Downloaded ndarray v0.15.6
[INFO] [stderr]   Downloaded regex v1.10.1
[INFO] [stderr]   Downloaded bytemuck v1.12.1
[INFO] [stderr]   Downloaded image v0.24.4
[INFO] [stderr]   Downloaded regex-automata v0.4.2
[INFO] [stderr]   Downloaded tiff v0.7.3
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+0bdee9e879c87b7211d316e9152109cfd46c576b" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] e2990ad89841fb961916685d0d1c04bcffb7f9928d01b80c2a71f98db9a79298
[INFO] running `Command { std: "docker" "start" "-a" "e2990ad89841fb961916685d0d1c04bcffb7f9928d01b80c2a71f98db9a79298", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "e2990ad89841fb961916685d0d1c04bcffb7f9928d01b80c2a71f98db9a79298", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e2990ad89841fb961916685d0d1c04bcffb7f9928d01b80c2a71f98db9a79298", kill_on_drop: false }`
[INFO] [stdout] e2990ad89841fb961916685d0d1c04bcffb7f9928d01b80c2a71f98db9a79298
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+0bdee9e879c87b7211d316e9152109cfd46c576b" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 97b5b53bfa7468d1f0d8e7f30acca64340778a2662612453c55e9c4b917fe95b
[INFO] running `Command { std: "docker" "start" "-a" "97b5b53bfa7468d1f0d8e7f30acca64340778a2662612453c55e9c4b917fe95b", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.135
[INFO] [stderr]    Compiling crossbeam-utils v0.8.12
[INFO] [stderr]    Compiling lock_api v0.4.9
[INFO] [stderr]    Compiling proc-macro2 v1.0.69
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.11
[INFO] [stderr]    Compiling num-integer v0.1.45
[INFO] [stderr]    Compiling log v0.4.17
[INFO] [stderr]    Compiling rayon-core v1.9.3
[INFO] [stderr]    Compiling memoffset v0.6.5
[INFO] [stderr]    Compiling syn v1.0.102
[INFO] [stderr]     Checking bytemuck v1.12.1
[INFO] [stderr]    Compiling num-bigint v0.4.4
[INFO] [stderr]    Compiling crc32fast v1.3.2
[INFO] [stderr]    Compiling alsa-sys v0.3.1
[INFO] [stderr]    Compiling rayon v1.5.3
[INFO] [stderr]    Compiling futures-core v0.3.24
[INFO] [stderr]     Checking arrayvec v0.7.4
[INFO] [stderr]     Checking miniz_oxide v0.5.4
[INFO] [stderr]    Compiling num-rational v0.4.1
[INFO] [stderr]     Checking either v1.8.0
[INFO] [stderr]    Compiling num-iter v0.1.43
[INFO] [stderr]    Compiling cpal v0.15.2
[INFO] [stderr]     Checking futures-sink v0.3.24
[INFO] [stderr]     Checking weezl v0.1.7
[INFO] [stderr]     Checking num-complex v0.4.4
[INFO] [stderr]     Checking miniz_oxide v0.6.2
[INFO] [stderr]     Checking lebe v0.5.2
[INFO] [stderr]     Checking bit_field v0.10.1
[INFO] [stderr]     Checking half v2.1.0
[INFO] [stderr]     Checking smawk v0.3.1
[INFO] [stderr]     Checking dasp_sample v0.11.0
[INFO] [stderr]     Checking unicode-width v0.1.10
[INFO] [stderr]     Checking matrixmultiply v0.3.2
[INFO] [stderr]     Checking symphonia-core v0.5.3
[INFO] [stderr]     Checking crossbeam-channel v0.5.6
[INFO] [stderr]     Checking spin v0.9.4
[INFO] [stderr]     Checking gif v0.11.4
[INFO] [stderr]     Checking textwrap v0.13.4
[INFO] [stderr]     Checking lewton v0.10.2
[INFO] [stderr]     Checking scoped_threadpool v0.1.9
[INFO] [stderr]     Checking hound v3.5.1
[INFO] [stderr]     Checking smallvec v0.4.5
[INFO] [stderr]     Checking claxon v0.4.3
[INFO] [stderr]     Checking ferris-says v0.2.1
[INFO] [stderr]     Checking ndarray v0.15.6
[INFO] [stderr]     Checking flate2 v1.0.24
[INFO] [stderr]     Checking crossbeam-deque v0.8.2
[INFO] [stderr]    Compiling quote v1.0.33
[INFO] [stderr]     Checking png v0.17.6
[INFO] [stderr]     Checking num_cpus v1.13.1
[INFO] [stderr]     Checking getrandom v0.2.7
[INFO] [stderr]     Checking parking_lot_core v0.9.8
[INFO] [stderr]     Checking nix v0.24.3
[INFO] [stderr]     Checking parking_lot v0.12.1
[INFO] [stderr]     Checking nanorand v0.7.0
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking threadpool v1.8.1
[INFO] [stderr]     Checking num v0.4.1
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking alsa v0.7.1
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking symphonia-metadata v0.5.3
[INFO] [stderr]     Checking symphonia-bundle-mp3 v0.5.3
[INFO] [stderr]     Checking symphonia v0.5.3
[INFO] [stderr]     Checking rodio v0.17.1
[INFO] [stderr]     Checking jpeg-decoder v0.2.6
[INFO] [stderr]     Checking tiff v0.7.3
[INFO] [stderr]    Compiling pin-project-internal v1.0.12
[INFO] [stderr]     Checking pin-project v1.0.12
[INFO] [stderr]     Checking flume v0.10.14
[INFO] [stderr]     Checking exr v1.5.2
[INFO] [stderr]     Checking image v0.24.4
[INFO] [stderr]     Checking RayMarcher v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `image::RgbImage`
[INFO] [stdout]  --> src/main.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use image::RgbImage;
[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: `lighting::get_rayleigh_color`
[INFO] [stdout]  --> src/main.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use lighting::get_rayleigh_color;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Duration`
[INFO] [stdout]  --> src/main.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::time::Duration;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::Path`
[INFO] [stdout]   --> src/main.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::path::Path;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cmp`
[INFO] [stdout]   --> src/main.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use std::cmp;
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::f32::consts::E`
[INFO] [stdout]   --> src/main.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use std::f32::consts::E;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::BufReader`
[INFO] [stdout]   --> src/main.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use std::io::BufReader;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Decoder`, `OutputStream`, and `Sink`
[INFO] [stdout]   --> src/main.rs:19:13
[INFO] [stdout]    |
[INFO] [stdout] 19 | use rodio::{Decoder, OutputStream, Sink};
[INFO] [stdout]    |             ^^^^^^^  ^^^^^^^^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `SineWave` and `Source`
[INFO] [stdout]   --> src/main.rs:20:21
[INFO] [stdout]    |
[INFO] [stdout] 20 | use rodio::source::{SineWave, Source};
[INFO] [stdout]    |                     ^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `f32::consts::PI`
[INFO] [stdout]  --> src/vec.rs:1:43
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{ops::{Add, Div, Mul, Sub, Neg}, f32::consts::PI};
[INFO] [stdout]   |                                           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::lerp`
[INFO] [stdout]  --> src/vec.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::lerp;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Vec2`
[INFO] [stdout]   --> src/main.rs:24:18
[INFO] [stdout]    |
[INFO] [stdout] 24 | use crate::vec::{Vec2, RayData};
[INFO] [stdout]    |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::f32::consts::E`
[INFO] [stdout]   --> src/lighting.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use std::f32::consts::E;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Add`
[INFO] [stdout]   --> src/lighting.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::ops::Add;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::lighting::get_indirect_lighting`
[INFO] [stdout]   --> src/main.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 29 | use crate::lighting::get_indirect_lighting;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CappedCone`, `Cube`, `Cut`, `Ellipsoid2`, `Ellipsoid`, `InfRep`, `Intersection`, `Line`, `MirrorZ`, `Move`, `Plane`, `Prism`, `RotateX`, `RotateY`, `RotateZ`, `Round`, `Scale`, `SinDistortHeight`, `SmoothUnion`, `Sphere`, `SwirlY`, `Torus`, and `Union`
[INFO] [stdout]  --> src/operations.rs:5:17
[INFO] [stdout]   |
[INFO] [stdout] 5 | ...::{Union, SmoothUnion, Cut, Intersection, Move, RotateX, RotateY, RotateZ, Scale, Round, Sphere, Cube, Torus, Plane, Prism, CappedCone, Ellipsoid, Ellipsoid2, Line, InfRep, SinDistortHeight, MirrorZ, SwirlY};
[INFO] [stdout]   |       ^^^^^  ^^^^^^^^^^^  ^^^  ^^^^^^^^^^^^  ^^^^  ^^^^^^^  ^^^^^^^  ^^^^^^^  ^^^^^  ^^^^^  ^^^^^^  ^^^^  ^^^^^  ^^^^^  ^^^^^  ^^^^^^^^^^  ^^^^^^^^^  ^^^^^^^^^^  ^^^^  ^^^^^^  ^^^^^^^^^^^^^^^^  ^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::vec::RayData`
[INFO] [stdout]  --> src/operations.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::vec::RayData;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cmp::min`
[INFO] [stdout]   --> src/operations.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use std::cmp::min;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::camera::evaluate_cubic_bezier`
[INFO] [stdout]  --> src/scenes.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::camera::evaluate_cubic_bezier;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::camera::look_at_point`
[INFO] [stdout]  --> src/scenes.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::camera::look_at_point;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::camera::BezierPath`
[INFO] [stdout]  --> src/scenes.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::camera::BezierPath;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::lerp`
[INFO] [stdout]  --> src/scenes.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::lerp;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::Op::Cut`
[INFO] [stdout]   --> src/scenes.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crate::Op::Cut;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::Op::Intersection`
[INFO] [stdout]   --> src/scenes.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use crate::Op::Intersection;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::Op::SmoothUnion`
[INFO] [stdout]   --> src/scenes.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use crate::Op::SmoothUnion;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::Op::SinDistortHeight`
[INFO] [stdout]   --> src/scenes.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use crate::Op::SinDistortHeight;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::Op::Torus`
[INFO] [stdout]   --> src/scenes.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | use crate::Op::Torus;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::Op::CappedCone`
[INFO] [stdout]   --> src/scenes.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | use crate::Op::CappedCone;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::Op::Ellipsoid`
[INFO] [stdout]   --> src/scenes.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | use crate::Op::Ellipsoid;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::Op::Ellipsoid2`
[INFO] [stdout]   --> src/scenes.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | use crate::Op::Ellipsoid2;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::Op::Line`
[INFO] [stdout]   --> src/scenes.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 23 | use crate::Op::Line;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::Op::Prism`
[INFO] [stdout]   --> src/scenes.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 25 | use crate::Op::Prism;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::Op::RotateX`
[INFO] [stdout]   --> src/scenes.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 26 | use crate::Op::RotateX;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::Op::RotateY`
[INFO] [stdout]   --> src/scenes.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 27 | use crate::Op::RotateY;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::Op::RotateZ`
[INFO] [stdout]   --> src/scenes.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 28 | use crate::Op::RotateZ;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::Op::InfRep`
[INFO] [stdout]   --> src/scenes.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 29 | use crate::Op::InfRep;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::Op::MirrorZ`
[INFO] [stdout]   --> src/scenes.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 30 | use crate::Op::MirrorZ;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::Op::SwirlY`
[INFO] [stdout]   --> src/scenes.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 31 | use crate::Op::SwirlY;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::Op::Round`
[INFO] [stdout]   --> src/scenes.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 32 | use crate::Op::Round;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::Op::Texturize`
[INFO] [stdout]   --> src/scenes.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 33 | use crate::Op::Texturize;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::Op::Frac`
[INFO] [stdout]   --> src/scenes.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 34 | use crate::Op::Frac;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::Op::Frac2`
[INFO] [stdout]   --> src/scenes.rs:35:5
[INFO] [stdout]    |
[INFO] [stdout] 35 | use crate::Op::Frac2;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::Op::Frac3`
[INFO] [stdout]   --> src/scenes.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 36 | use crate::Op::Frac3;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::Op::Frac4`
[INFO] [stdout]   --> src/scenes.rs:37:5
[INFO] [stdout]    |
[INFO] [stdout] 37 | use crate::Op::Frac4;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::Op::Frac5`
[INFO] [stdout]   --> src/scenes.rs:38:5
[INFO] [stdout]    |
[INFO] [stdout] 38 | use crate::Op::Frac5;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::Op::Frac6`
[INFO] [stdout]   --> src/scenes.rs:39:5
[INFO] [stdout]    |
[INFO] [stdout] 39 | use crate::Op::Frac6;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::f32::consts::PI`
[INFO] [stdout]   --> src/scenes.rs:42:5
[INFO] [stdout]    |
[INFO] [stdout] 42 | use core::f32::consts::PI;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::f32::consts::E`
[INFO] [stdout]   --> src/scenes.rs:43:5
[INFO] [stdout]    |
[INFO] [stdout] 43 | use std::f32::consts::E;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::vec::Vec2`
[INFO] [stdout]   --> src/scenes.rs:47:5
[INFO] [stdout]    |
[INFO] [stdout] 47 | use crate::vec::Vec2;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::camera::Camera`
[INFO] [stdout]   --> src/scenes.rs:49:5
[INFO] [stdout]    |
[INFO] [stdout] 49 | use crate::camera::Camera;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `image::RgbImage`
[INFO] [stdout]  --> src/main.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use image::RgbImage;
[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: `lighting::get_rayleigh_color`
[INFO] [stdout]  --> src/main.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use lighting::get_rayleigh_color;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Duration`
[INFO] [stdout]  --> src/main.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::time::Duration;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::Path`
[INFO] [stdout]   --> src/main.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::path::Path;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cmp`
[INFO] [stdout]   --> src/main.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use std::cmp;
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::f32::consts::E`
[INFO] [stdout]   --> src/main.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use std::f32::consts::E;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::BufReader`
[INFO] [stdout]   --> src/main.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use std::io::BufReader;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Decoder`, `OutputStream`, and `Sink`
[INFO] [stdout]   --> src/main.rs:19:13
[INFO] [stdout]    |
[INFO] [stdout] 19 | use rodio::{Decoder, OutputStream, Sink};
[INFO] [stdout]    |             ^^^^^^^  ^^^^^^^^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `SineWave` and `Source`
[INFO] [stdout]   --> src/main.rs:20:21
[INFO] [stdout]    |
[INFO] [stdout] 20 | use rodio::source::{SineWave, Source};
[INFO] [stdout]    |                     ^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `f32::consts::PI`
[INFO] [stdout]  --> src/vec.rs:1:43
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{ops::{Add, Div, Mul, Sub, Neg}, f32::consts::PI};
[INFO] [stdout]   |                                           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::lerp`
[INFO] [stdout]  --> src/vec.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::lerp;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Vec2`
[INFO] [stdout]   --> src/main.rs:24:18
[INFO] [stdout]    |
[INFO] [stdout] 24 | use crate::vec::{Vec2, RayData};
[INFO] [stdout]    |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::f32::consts::E`
[INFO] [stdout]   --> src/lighting.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use std::f32::consts::E;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Add`
[INFO] [stdout]   --> src/lighting.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::ops::Add;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::lighting::get_indirect_lighting`
[INFO] [stdout]   --> src/main.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 29 | use crate::lighting::get_indirect_lighting;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CappedCone`, `Cube`, `Cut`, `Ellipsoid2`, `Ellipsoid`, `InfRep`, `Intersection`, `Line`, `MirrorZ`, `Move`, `Plane`, `Prism`, `RotateX`, `RotateY`, `RotateZ`, `Round`, `Scale`, `SinDistortHeight`, `SmoothUnion`, `Sphere`, `SwirlY`, `Torus`, and `Union`
[INFO] [stdout]  --> src/operations.rs:5:17
[INFO] [stdout]   |
[INFO] [stdout] 5 | ...::{Union, SmoothUnion, Cut, Intersection, Move, RotateX, RotateY, RotateZ, Scale, Round, Sphere, Cube, Torus, Plane, Prism, CappedCone, Ellipsoid, Ellipsoid2, Line, InfRep, SinDistortHeight, MirrorZ, SwirlY};
[INFO] [stdout]   |       ^^^^^  ^^^^^^^^^^^  ^^^  ^^^^^^^^^^^^  ^^^^  ^^^^^^^  ^^^^^^^  ^^^^^^^  ^^^^^  ^^^^^  ^^^^^^  ^^^^  ^^^^^  ^^^^^  ^^^^^  ^^^^^^^^^^  ^^^^^^^^^  ^^^^^^^^^^  ^^^^  ^^^^^^  ^^^^^^^^^^^^^^^^  ^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::vec::RayData`
[INFO] [stdout]  --> src/operations.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::vec::RayData;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cmp::min`
[INFO] [stdout]   --> src/operations.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use std::cmp::min;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::camera::evaluate_cubic_bezier`
[INFO] [stdout]  --> src/scenes.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::camera::evaluate_cubic_bezier;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::camera::look_at_point`
[INFO] [stdout]  --> src/scenes.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::camera::look_at_point;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::camera::BezierPath`
[INFO] [stdout]  --> src/scenes.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::camera::BezierPath;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::lerp`
[INFO] [stdout]  --> src/scenes.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::lerp;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::Op::Cut`
[INFO] [stdout]   --> src/scenes.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crate::Op::Cut;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::Op::Intersection`
[INFO] [stdout]   --> src/scenes.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use crate::Op::Intersection;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::Op::SmoothUnion`
[INFO] [stdout]   --> src/scenes.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use crate::Op::SmoothUnion;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::Op::SinDistortHeight`
[INFO] [stdout]   --> src/scenes.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use crate::Op::SinDistortHeight;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::Op::Torus`
[INFO] [stdout]   --> src/scenes.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | use crate::Op::Torus;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::Op::CappedCone`
[INFO] [stdout]   --> src/scenes.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | use crate::Op::CappedCone;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::Op::Ellipsoid`
[INFO] [stdout]   --> src/scenes.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | use crate::Op::Ellipsoid;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::Op::Ellipsoid2`
[INFO] [stdout]   --> src/scenes.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | use crate::Op::Ellipsoid2;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::Op::Line`
[INFO] [stdout]   --> src/scenes.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 23 | use crate::Op::Line;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::Op::Prism`
[INFO] [stdout]   --> src/scenes.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 25 | use crate::Op::Prism;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::Op::RotateX`
[INFO] [stdout]   --> src/scenes.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 26 | use crate::Op::RotateX;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::Op::RotateY`
[INFO] [stdout]   --> src/scenes.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 27 | use crate::Op::RotateY;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::Op::RotateZ`
[INFO] [stdout]   --> src/scenes.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 28 | use crate::Op::RotateZ;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::Op::InfRep`
[INFO] [stdout]   --> src/scenes.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 29 | use crate::Op::InfRep;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::Op::MirrorZ`
[INFO] [stdout]   --> src/scenes.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 30 | use crate::Op::MirrorZ;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::Op::SwirlY`
[INFO] [stdout]   --> src/scenes.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 31 | use crate::Op::SwirlY;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::Op::Round`
[INFO] [stdout]   --> src/scenes.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 32 | use crate::Op::Round;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::Op::Texturize`
[INFO] [stdout]   --> src/scenes.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 33 | use crate::Op::Texturize;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::Op::Frac`
[INFO] [stdout]   --> src/scenes.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 34 | use crate::Op::Frac;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::Op::Frac2`
[INFO] [stdout]   --> src/scenes.rs:35:5
[INFO] [stdout]    |
[INFO] [stdout] 35 | use crate::Op::Frac2;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::Op::Frac3`
[INFO] [stdout]   --> src/scenes.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 36 | use crate::Op::Frac3;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::Op::Frac4`
[INFO] [stdout]   --> src/scenes.rs:37:5
[INFO] [stdout]    |
[INFO] [stdout] 37 | use crate::Op::Frac4;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::Op::Frac5`
[INFO] [stdout]   --> src/scenes.rs:38:5
[INFO] [stdout]    |
[INFO] [stdout] 38 | use crate::Op::Frac5;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::Op::Frac6`
[INFO] [stdout]   --> src/scenes.rs:39:5
[INFO] [stdout]    |
[INFO] [stdout] 39 | use crate::Op::Frac6;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::f32::consts::PI`
[INFO] [stdout]   --> src/scenes.rs:42:5
[INFO] [stdout]    |
[INFO] [stdout] 42 | use core::f32::consts::PI;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::f32::consts::E`
[INFO] [stdout]   --> src/scenes.rs:43:5
[INFO] [stdout]    |
[INFO] [stdout] 43 | use std::f32::consts::E;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::vec::Vec2`
[INFO] [stdout]   --> src/scenes.rs:47:5
[INFO] [stdout]    |
[INFO] [stdout] 47 | use crate::vec::Vec2;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::camera::Camera`
[INFO] [stdout]   --> src/scenes.rs:49:5
[INFO] [stdout]    |
[INFO] [stdout] 49 | use crate::camera::Camera;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand::prelude`
[INFO] [stdout]  --> src/main.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use rand::prelude::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `u_vector_rot` is never read
[INFO] [stdout]   --> src/lighting.rs:30:28
[INFO] [stdout]    |
[INFO] [stdout] 30 |     let mut u_vector_rot = Vec3{x:0.0, y:0.0, z:0.0};
[INFO] [stdout]    |                            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `sun_scatter_direction` is never read
[INFO] [stdout]    --> src/lighting.rs:234:37
[INFO] [stdout]     |
[INFO] [stdout] 234 |     let mut sun_scatter_direction = Vec3::normalize(&(sun_position - start_pos));
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `density` is never read
[INFO] [stdout]    --> src/lighting.rs:236:23
[INFO] [stdout]     |
[INFO] [stdout] 236 |     let mut density = 0.0;
[INFO] [stdout]     |                       ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `transmittance` is never read
[INFO] [stdout]    --> src/lighting.rs:237:29
[INFO] [stdout]     |
[INFO] [stdout] 237 |     let mut transmittance = Vec3::zeros();
[INFO] [stdout]     |                             ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `sun_ray_length` is never read
[INFO] [stdout]    --> src/lighting.rs:239:30
[INFO] [stdout]     |
[INFO] [stdout] 239 |     let mut sun_ray_length = 0.0;
[INFO] [stdout]     |                              ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `sun_ray_optical_depth` is never read
[INFO] [stdout]    --> src/lighting.rs:240:37
[INFO] [stdout]     |
[INFO] [stdout] 240 |     let mut sun_ray_optical_depth = 0.0;
[INFO] [stdout]     |                                     ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `view_ray_optical_depth` is never read
[INFO] [stdout]    --> src/lighting.rs:241:38
[INFO] [stdout]     |
[INFO] [stdout] 241 |     let mut view_ray_optical_depth = 0.0;
[INFO] [stdout]     |                                      ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/lighting.rs:275:9
[INFO] [stdout]     |
[INFO] [stdout] 275 |     for i in 0..num_optical_depth_points {
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `density` is never read
[INFO] [stdout]    --> src/lighting.rs:274:23
[INFO] [stdout]     |
[INFO] [stdout] 274 |     let mut density = 0.0;
[INFO] [stdout]     |                       ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/operations.rs:144:21
[INFO] [stdout]     |
[INFO] [stdout] 144 |                 let mut q = Vec2{x: Vec2{x:ray_pos.x, y:ray_pos.z}.len()-t.x,y: ray_pos.y};
[INFO] [stdout]     |                     ----^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/operations.rs:271:21
[INFO] [stdout]     |
[INFO] [stdout] 271 |                 let mut o  = 10000000000.0;
[INFO] [stdout]     |                     ----^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/operations.rs:333:25
[INFO] [stdout]     |
[INFO] [stdout] 333 |                     let mut theta = (z.z/r).acos();
[INFO] [stdout]     |                         ----^^^^^
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rand::prelude`
[INFO] [stdout]  --> src/main.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use rand::prelude::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/operations.rs:334:25
[INFO] [stdout]     |
[INFO] [stdout] 334 |                     let mut phi = (z.y).atan2(z.x);
[INFO] [stdout]     |                         ----^^^
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `n` is assigned to, but never used
[INFO] [stdout]    --> src/operations.rs:269:21
[INFO] [stdout]     |
[INFO] [stdout] 269 |                 let mut n = 0.0;
[INFO] [stdout]     |                     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_n` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `o`
[INFO] [stdout]    --> src/operations.rs:271:21
[INFO] [stdout]     |
[INFO] [stdout] 271 |                 let mut o  = 10000000000.0;
[INFO] [stdout]     |                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_o`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/operations.rs:328:21
[INFO] [stdout]     |
[INFO] [stdout] 328 |                 for i in 0..iterations {
[INFO] [stdout]     |                     ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/operations.rs:365:21
[INFO] [stdout]     |
[INFO] [stdout] 365 |                 for i in 0..iterations {
[INFO] [stdout]     |                     ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `sm` is never read
[INFO] [stdout]   --> src/operations.rs:94:30
[INFO] [stdout]    |
[INFO] [stdout] 94 |                 let mut sm = 1;
[INFO] [stdout]    |                              ^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `ca` is never read
[INFO] [stdout]    --> src/operations.rs:156:30
[INFO] [stdout]     |
[INFO] [stdout] 156 |                 let mut ca = Vec2{x:0.0, y:0.0};
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `s` is never read
[INFO] [stdout]    --> src/operations.rs:163:29
[INFO] [stdout]     |
[INFO] [stdout] 163 |                 let mut s = 0.0;
[INFO] [stdout]     |                             ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `n` is never read
[INFO] [stdout]    --> src/operations.rs:300:21
[INFO] [stdout]     |
[INFO] [stdout] 300 |                     n += 1.0;
[INFO] [stdout]     |                     ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `p0`
[INFO] [stdout]    --> src/operations.rs:568:9
[INFO] [stdout]     |
[INFO] [stdout] 568 |     let p0 = p;  
[INFO] [stdout]     |         ^^ help: if this is intentional, prefix it with an underscore: `_p0`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/scenes.rs:424:9
[INFO] [stdout]     |
[INFO] [stdout] 424 |     let mut plane = Box::new(Plane(-1.0, plane_att));
[INFO] [stdout]     |         ----^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]    --> src/scenes.rs:389:14
[INFO] [stdout]     |
[INFO] [stdout] 389 | pub fn scene(t: f32) -> Box<Op> {
[INFO] [stdout]     |              ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]   --> src/camera.rs:39:19
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub fn get_camera(t: f32) -> Camera {
[INFO] [stdout]    |                   ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `u_vector_rot` is never read
[INFO] [stdout]   --> src/lighting.rs:30:28
[INFO] [stdout]    |
[INFO] [stdout] 30 |     let mut u_vector_rot = Vec3{x:0.0, y:0.0, z:0.0};
[INFO] [stdout]    |                            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `sun_scatter_direction` is never read
[INFO] [stdout]    --> src/lighting.rs:234:37
[INFO] [stdout]     |
[INFO] [stdout] 234 |     let mut sun_scatter_direction = Vec3::normalize(&(sun_position - start_pos));
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `density` is never read
[INFO] [stdout]    --> src/lighting.rs:236:23
[INFO] [stdout]     |
[INFO] [stdout] 236 |     let mut density = 0.0;
[INFO] [stdout]     |                       ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `transmittance` is never read
[INFO] [stdout]    --> src/lighting.rs:237:29
[INFO] [stdout]     |
[INFO] [stdout] 237 |     let mut transmittance = Vec3::zeros();
[INFO] [stdout]     |                             ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `sun_ray_length` is never read
[INFO] [stdout]    --> src/lighting.rs:239:30
[INFO] [stdout]     |
[INFO] [stdout] 239 |     let mut sun_ray_length = 0.0;
[INFO] [stdout]     |                              ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `sun_ray_optical_depth` is never read
[INFO] [stdout]    --> src/lighting.rs:240:37
[INFO] [stdout]     |
[INFO] [stdout] 240 |     let mut sun_ray_optical_depth = 0.0;
[INFO] [stdout]     |                                     ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `view_ray_optical_depth` is never read
[INFO] [stdout]    --> src/lighting.rs:241:38
[INFO] [stdout]     |
[INFO] [stdout] 241 |     let mut view_ray_optical_depth = 0.0;
[INFO] [stdout]     |                                      ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/lighting.rs:275:9
[INFO] [stdout]     |
[INFO] [stdout] 275 |     for i in 0..num_optical_depth_points {
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `density` is never read
[INFO] [stdout]    --> src/lighting.rs:274:23
[INFO] [stdout]     |
[INFO] [stdout] 274 |     let mut density = 0.0;
[INFO] [stdout]     |                       ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:168:5
[INFO] [stdout]     |
[INFO] [stdout] 168 |     mut settings: Settings,
[INFO] [stdout]     |     ----^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:301:25
[INFO] [stdout]     |
[INFO] [stdout] 301 |                     let mut direct_color = get_direct_lighting(
[INFO] [stdout]     |                         ----^^^^^^^^^^^^
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/operations.rs:144:21
[INFO] [stdout]     |
[INFO] [stdout] 144 |                 let mut q = Vec2{x: Vec2{x:ray_pos.x, y:ray_pos.z}.len()-t.x,y: ray_pos.y};
[INFO] [stdout]     |                     ----^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/operations.rs:271:21
[INFO] [stdout]     |
[INFO] [stdout] 271 |                 let mut o  = 10000000000.0;
[INFO] [stdout]     |                     ----^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `color` is never read
[INFO] [stdout]    --> src/main.rs:567:33
[INFO] [stdout]     |
[INFO] [stdout] 567 |                 let mut color = Vec3{x:0.0, y:0.0, z:0.0};
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/operations.rs:333:25
[INFO] [stdout]     |
[INFO] [stdout] 333 |                     let mut theta = (z.z/r).acos();
[INFO] [stdout]     |                         ----^^^^^
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `dy` is never read
[INFO] [stdout]    --> src/main.rs:576:38
[INFO] [stdout]     |
[INFO] [stdout] 576 |                         let mut dy = 0.0;
[INFO] [stdout]     |                                      ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `dz` is never read
[INFO] [stdout]    --> src/main.rs:577:38
[INFO] [stdout]     |
[INFO] [stdout] 577 |                         let mut dz = 0.0;
[INFO] [stdout]     |                                      ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `vector` is never read
[INFO] [stdout]    --> src/main.rs:534:34
[INFO] [stdout]     |
[INFO] [stdout] 534 |                 let mut vector = Vec3::zeros();  //TODO remove this line
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RAYLEIGH` is never used
[INFO] [stdout]    --> src/main.rs:419:7
[INFO] [stdout]     |
[INFO] [stdout] 419 | const RAYLEIGH: bool = false;
[INFO] [stdout]     |       ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ATMOSPHERE_HEIGHT` is never used
[INFO] [stdout]    --> src/main.rs:420:7
[INFO] [stdout]     |
[INFO] [stdout] 420 | const ATMOSPHERE_HEIGHT: f32 = 100.0;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DENSITY_FALLOFF` is never used
[INFO] [stdout]    --> src/main.rs:421:7
[INFO] [stdout]     |
[INFO] [stdout] 421 | const DENSITY_FALLOFF: f32 = 10.0;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SCATTERING_STRENGTH` is never used
[INFO] [stdout]    --> src/main.rs:422:7
[INFO] [stdout]     |
[INFO] [stdout] 422 | const SCATTERING_STRENGTH: f32 = 0.01;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVELENGTHS` is never used
[INFO] [stdout]    --> src/main.rs:423:7
[INFO] [stdout]     |
[INFO] [stdout] 423 | const WAVELENGTHS: Vec3 = Vec3{
[INFO] [stdout]     |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SCATTER_COEFF` is never used
[INFO] [stdout]    --> src/main.rs:428:7
[INFO] [stdout]     |
[INFO] [stdout] 428 | const SCATTER_COEFF: Vec3 = Vec3{
[INFO] [stdout]     |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `dot` and `ones` are never used
[INFO] [stdout]   --> src/vec.rs:86:12
[INFO] [stdout]    |
[INFO] [stdout] 52 | impl Vec4 {
[INFO] [stdout]    | --------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 86 |     pub fn dot(&self, other: &Vec4) -> f32 {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 90 |     pub fn ones() -> Vec4 {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_rayleigh_color` is never used
[INFO] [stdout]    --> src/lighting.rs:224:8
[INFO] [stdout]     |
[INFO] [stdout] 224 | pub fn get_rayleigh_color(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `atm_density_at_point` is never used
[INFO] [stdout]    --> src/lighting.rs:262:8
[INFO] [stdout]     |
[INFO] [stdout] 262 | pub fn atm_density_at_point(position: Vec3) -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `optical_depth` is never used
[INFO] [stdout]    --> src/lighting.rs:269:8
[INFO] [stdout]     |
[INFO] [stdout] 269 | pub fn optical_depth(start_pos: Vec3, ray_dir: Vec3, ray_length: f32) -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]   --> src/operations.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub enum Op{
[INFO] [stdout]    |          -- variants in this enum
[INFO] [stdout] 32 |     Union(Box<Op>, Box<Op>),
[INFO] [stdout] 33 |     SmoothUnion(Box<Op>, Box<Op>, f32),
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 34 |     Cut(Box<Op>, Box<Op>),
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 35 |     Intersection(Box<Op>, Box<Op>),
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 38 |     Torus(Vec2, ObjectData),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 39 |     //Cylinder(Vec3, f32, f32),
[INFO] [stdout] 40 |     CappedCone(f32, f32, f32, ObjectData),
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 41 |     Ellipsoid(Vec3, ObjectData),
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 42 |     Ellipsoid2(Vec3, ObjectData),
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 43 |     Line(Vec3, Vec3, f32, ObjectData),
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 44 |     Plane(f32, ObjectData),
[INFO] [stdout] 45 |     Prism(Vec2, ObjectData),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 46 |     Move(Box<Op>, Vec3),
[INFO] [stdout] 47 |     RotateX(Box<Op>, f32),
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 48 |     RotateY(Box<Op>, f32),
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 49 |     RotateZ(Box<Op>, f32),
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 50 |     Scale(Box<Op>, f32),
[INFO] [stdout] 51 |     InfRep(Box<Op>, Vec3),
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 52 |     SinDistortHeight(Box<Op>, f32, f32),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 53 |     MirrorZ(Box<Op>),
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 54 |     SwirlY(Box<Op>, f32),
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 55 |     Round(Box<Op>, f32),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 56 |     Texturize(Box<Op>, DynamicImage, Vec3, Vec3),    //TODO tes with "&static str"  / String
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 57 |     Frac(ObjectData),
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 58 |     Frac2(ObjectData),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 59 |     Frac3(ObjectData),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 60 |     Frac4(ObjectData, f32),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 61 |     Frac5(ObjectData),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 62 |     Frac6(ObjectData),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Op` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BezierPath` is never constructed
[INFO] [stdout]   --> src/camera.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct BezierPath {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `evaluate_cubic_bezier` is never used
[INFO] [stdout]   --> src/camera.rs:17:8
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub fn evaluate_cubic_bezier(path: &BezierPath, t: f32) -> Vec3 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `look_at_point` is never used
[INFO] [stdout]   --> src/camera.rs:31:8
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub fn look_at_point(cam_pos: Vec3, point_pos: Vec3) -> (f32, f32) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/operations.rs:334:25
[INFO] [stdout]     |
[INFO] [stdout] 334 |                     let mut phi = (z.y).atan2(z.x);
[INFO] [stdout]     |                         ----^^^
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `n` is assigned to, but never used
[INFO] [stdout]    --> src/operations.rs:269:21
[INFO] [stdout]     |
[INFO] [stdout] 269 |                 let mut n = 0.0;
[INFO] [stdout]     |                     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_n` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `o`
[INFO] [stdout]    --> src/operations.rs:271:21
[INFO] [stdout]     |
[INFO] [stdout] 271 |                 let mut o  = 10000000000.0;
[INFO] [stdout]     |                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_o`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/operations.rs:328:21
[INFO] [stdout]     |
[INFO] [stdout] 328 |                 for i in 0..iterations {
[INFO] [stdout]     |                     ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/operations.rs:365:21
[INFO] [stdout]     |
[INFO] [stdout] 365 |                 for i in 0..iterations {
[INFO] [stdout]     |                     ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `sm` is never read
[INFO] [stdout]   --> src/operations.rs:94:30
[INFO] [stdout]    |
[INFO] [stdout] 94 |                 let mut sm = 1;
[INFO] [stdout]    |                              ^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `ca` is never read
[INFO] [stdout]    --> src/operations.rs:156:30
[INFO] [stdout]     |
[INFO] [stdout] 156 |                 let mut ca = Vec2{x:0.0, y:0.0};
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `s` is never read
[INFO] [stdout]    --> src/operations.rs:163:29
[INFO] [stdout]     |
[INFO] [stdout] 163 |                 let mut s = 0.0;
[INFO] [stdout]     |                             ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `n` is never read
[INFO] [stdout]    --> src/operations.rs:300:21
[INFO] [stdout]     |
[INFO] [stdout] 300 |                     n += 1.0;
[INFO] [stdout]     |                     ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `p0`
[INFO] [stdout]    --> src/operations.rs:568:9
[INFO] [stdout]     |
[INFO] [stdout] 568 |     let p0 = p;  
[INFO] [stdout]     |         ^^ help: if this is intentional, prefix it with an underscore: `_p0`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/scenes.rs:424:9
[INFO] [stdout]     |
[INFO] [stdout] 424 |     let mut plane = Box::new(Plane(-1.0, plane_att));
[INFO] [stdout]     |         ----^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]    --> src/scenes.rs:389:14
[INFO] [stdout]     |
[INFO] [stdout] 389 | pub fn scene(t: f32) -> Box<Op> {
[INFO] [stdout]     |              ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]   --> src/camera.rs:39:19
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub fn get_camera(t: f32) -> Camera {
[INFO] [stdout]    |                   ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:168:5
[INFO] [stdout]     |
[INFO] [stdout] 168 |     mut settings: Settings,
[INFO] [stdout]     |     ----^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:301:25
[INFO] [stdout]     |
[INFO] [stdout] 301 |                     let mut direct_color = get_direct_lighting(
[INFO] [stdout]     |                         ----^^^^^^^^^^^^
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/main.rs:633:17
[INFO] [stdout]     |
[INFO] [stdout] 633 |                 std::io::stdout().flush();   
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 633 |                 let _ = std::io::stdout().flush();   
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `DE0` should have a snake case name
[INFO] [stdout]    --> src/operations.rs:558:8
[INFO] [stdout]     |
[INFO] [stdout] 558 | pub fn DE0(pos: Vec3, from: Vec3) -> f32 {
[INFO] [stdout]     |        ^^^ help: convert the identifier to snake case: `de0`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `DE2` should have a snake case name
[INFO] [stdout]    --> src/operations.rs:564:8
[INFO] [stdout]     |
[INFO] [stdout] 564 | pub fn DE2(pos: Vec3) -> f32 {
[INFO] [stdout]     |        ^^^ help: convert the identifier to snake case: `de2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `color` is never read
[INFO] [stdout]    --> src/main.rs:567:33
[INFO] [stdout]     |
[INFO] [stdout] 567 |                 let mut color = Vec3{x:0.0, y:0.0, z:0.0};
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `dy` is never read
[INFO] [stdout]    --> src/main.rs:576:38
[INFO] [stdout]     |
[INFO] [stdout] 576 |                         let mut dy = 0.0;
[INFO] [stdout]     |                                      ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `dz` is never read
[INFO] [stdout]    --> src/main.rs:577:38
[INFO] [stdout]     |
[INFO] [stdout] 577 |                         let mut dz = 0.0;
[INFO] [stdout]     |                                      ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `vector` is never read
[INFO] [stdout]    --> src/main.rs:534:34
[INFO] [stdout]     |
[INFO] [stdout] 534 |                 let mut vector = Vec3::zeros();  //TODO remove this line
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RAYLEIGH` is never used
[INFO] [stdout]    --> src/main.rs:419:7
[INFO] [stdout]     |
[INFO] [stdout] 419 | const RAYLEIGH: bool = false;
[INFO] [stdout]     |       ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ATMOSPHERE_HEIGHT` is never used
[INFO] [stdout]    --> src/main.rs:420:7
[INFO] [stdout]     |
[INFO] [stdout] 420 | const ATMOSPHERE_HEIGHT: f32 = 100.0;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DENSITY_FALLOFF` is never used
[INFO] [stdout]    --> src/main.rs:421:7
[INFO] [stdout]     |
[INFO] [stdout] 421 | const DENSITY_FALLOFF: f32 = 10.0;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SCATTERING_STRENGTH` is never used
[INFO] [stdout]    --> src/main.rs:422:7
[INFO] [stdout]     |
[INFO] [stdout] 422 | const SCATTERING_STRENGTH: f32 = 0.01;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAVELENGTHS` is never used
[INFO] [stdout]    --> src/main.rs:423:7
[INFO] [stdout]     |
[INFO] [stdout] 423 | const WAVELENGTHS: Vec3 = Vec3{
[INFO] [stdout]     |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SCATTER_COEFF` is never used
[INFO] [stdout]    --> src/main.rs:428:7
[INFO] [stdout]     |
[INFO] [stdout] 428 | const SCATTER_COEFF: Vec3 = Vec3{
[INFO] [stdout]     |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `dot` and `ones` are never used
[INFO] [stdout]   --> src/vec.rs:86:12
[INFO] [stdout]    |
[INFO] [stdout] 52 | impl Vec4 {
[INFO] [stdout]    | --------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 86 |     pub fn dot(&self, other: &Vec4) -> f32 {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 90 |     pub fn ones() -> Vec4 {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_rayleigh_color` is never used
[INFO] [stdout]    --> src/lighting.rs:224:8
[INFO] [stdout]     |
[INFO] [stdout] 224 | pub fn get_rayleigh_color(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `atm_density_at_point` is never used
[INFO] [stdout]    --> src/lighting.rs:262:8
[INFO] [stdout]     |
[INFO] [stdout] 262 | pub fn atm_density_at_point(position: Vec3) -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `optical_depth` is never used
[INFO] [stdout]    --> src/lighting.rs:269:8
[INFO] [stdout]     |
[INFO] [stdout] 269 | pub fn optical_depth(start_pos: Vec3, ray_dir: Vec3, ray_length: f32) -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]   --> src/operations.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub enum Op{
[INFO] [stdout]    |          -- variants in this enum
[INFO] [stdout] 32 |     Union(Box<Op>, Box<Op>),
[INFO] [stdout] 33 |     SmoothUnion(Box<Op>, Box<Op>, f32),
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 34 |     Cut(Box<Op>, Box<Op>),
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 35 |     Intersection(Box<Op>, Box<Op>),
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 38 |     Torus(Vec2, ObjectData),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 39 |     //Cylinder(Vec3, f32, f32),
[INFO] [stdout] 40 |     CappedCone(f32, f32, f32, ObjectData),
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 41 |     Ellipsoid(Vec3, ObjectData),
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 42 |     Ellipsoid2(Vec3, ObjectData),
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 43 |     Line(Vec3, Vec3, f32, ObjectData),
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 44 |     Plane(f32, ObjectData),
[INFO] [stdout] 45 |     Prism(Vec2, ObjectData),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 46 |     Move(Box<Op>, Vec3),
[INFO] [stdout] 47 |     RotateX(Box<Op>, f32),
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 48 |     RotateY(Box<Op>, f32),
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 49 |     RotateZ(Box<Op>, f32),
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 50 |     Scale(Box<Op>, f32),
[INFO] [stdout] 51 |     InfRep(Box<Op>, Vec3),
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 52 |     SinDistortHeight(Box<Op>, f32, f32),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 53 |     MirrorZ(Box<Op>),
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 54 |     SwirlY(Box<Op>, f32),
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 55 |     Round(Box<Op>, f32),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 56 |     Texturize(Box<Op>, DynamicImage, Vec3, Vec3),    //TODO tes with "&static str"  / String
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 57 |     Frac(ObjectData),
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 58 |     Frac2(ObjectData),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 59 |     Frac3(ObjectData),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 60 |     Frac4(ObjectData, f32),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 61 |     Frac5(ObjectData),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 62 |     Frac6(ObjectData),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Op` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BezierPath` is never constructed
[INFO] [stdout]   --> src/camera.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct BezierPath {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `evaluate_cubic_bezier` is never used
[INFO] [stdout]   --> src/camera.rs:17:8
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub fn evaluate_cubic_bezier(path: &BezierPath, t: f32) -> Vec3 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `look_at_point` is never used
[INFO] [stdout]   --> src/camera.rs:31:8
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub fn look_at_point(cam_pos: Vec3, point_pos: Vec3) -> (f32, f32) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/main.rs:633:17
[INFO] [stdout]     |
[INFO] [stdout] 633 |                 std::io::stdout().flush();   
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 633 |                 let _ = std::io::stdout().flush();   
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `DE0` should have a snake case name
[INFO] [stdout]    --> src/operations.rs:558:8
[INFO] [stdout]     |
[INFO] [stdout] 558 | pub fn DE0(pos: Vec3, from: Vec3) -> f32 {
[INFO] [stdout]     |        ^^^ help: convert the identifier to snake case: `de0`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `DE2` should have a snake case name
[INFO] [stdout]    --> src/operations.rs:564:8
[INFO] [stdout]     |
[INFO] [stdout] 564 | pub fn DE2(pos: Vec3) -> f32 {
[INFO] [stdout]     |        ^^^ help: convert the identifier to snake case: `de2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 18.11s
[INFO] running `Command { std: "docker" "inspect" "97b5b53bfa7468d1f0d8e7f30acca64340778a2662612453c55e9c4b917fe95b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "97b5b53bfa7468d1f0d8e7f30acca64340778a2662612453c55e9c4b917fe95b", kill_on_drop: false }`
[INFO] [stdout] 97b5b53bfa7468d1f0d8e7f30acca64340778a2662612453c55e9c4b917fe95b
