[INFO] cloning repository https://github.com/benjamintoofer/jpeg_encoder.rs
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/benjamintoofer/jpeg_encoder.rs" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbenjamintoofer%2Fjpeg_encoder.rs", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbenjamintoofer%2Fjpeg_encoder.rs'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] a5b1d1d9af49cd53a36f7213b15cc66b529636ef
[INFO] checking benjamintoofer/jpeg_encoder.rs against master#bca37a20bd376ce3fd138e7cdee7fe704e0f8814 for pr-139493-3
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbenjamintoofer%2Fjpeg_encoder.rs" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/benjamintoofer/jpeg_encoder.rs
[INFO] finished tweaking git repo https://github.com/benjamintoofer/jpeg_encoder.rs
[INFO] tweaked toml for git repo https://github.com/benjamintoofer/jpeg_encoder.rs written to /workspace/builds/worker-2-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/benjamintoofer/jpeg_encoder.rs on toolchain bca37a20bd376ce3fd138e7cdee7fe704e0f8814
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+bca37a20bd376ce3fd138e7cdee7fe704e0f8814" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/benjamintoofer/jpeg_encoder.rs 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" "+bca37a20bd376ce3fd138e7cdee7fe704e0f8814" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded primal-check v0.3.1
[INFO] [stderr]   Downloaded rustdct v0.6.0
[INFO] [stderr]   Downloaded strength_reduce v0.2.3
[INFO] [stderr]   Downloaded transpose v0.2.1
[INFO] [stderr]   Downloaded rustfft v5.1.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+bca37a20bd376ce3fd138e7cdee7fe704e0f8814" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] c0a11ae1055637a922c0b15c04aaaa8d609ddd1d1594f948c91327bcb9b075ef
[INFO] running `Command { std: "docker" "start" "-a" "c0a11ae1055637a922c0b15c04aaaa8d609ddd1d1594f948c91327bcb9b075ef", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "c0a11ae1055637a922c0b15c04aaaa8d609ddd1d1594f948c91327bcb9b075ef", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c0a11ae1055637a922c0b15c04aaaa8d609ddd1d1594f948c91327bcb9b075ef", kill_on_drop: false }`
[INFO] [stdout] c0a11ae1055637a922c0b15c04aaaa8d609ddd1d1594f948c91327bcb9b075ef
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+bca37a20bd376ce3fd138e7cdee7fe704e0f8814" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 033957580cb0067d4f4d8ea0caf273f7fb2594d98f75036f79a4d32f1062f682
[INFO] running `Command { std: "docker" "start" "-a" "033957580cb0067d4f4d8ea0caf273f7fb2594d98f75036f79a4d32f1062f682", kill_on_drop: false }`
[INFO] [stderr]    Compiling num-traits v0.2.14
[INFO] [stderr]    Compiling num-integer v0.1.44
[INFO] [stderr]    Compiling crossbeam-utils v0.8.3
[INFO] [stderr]    Compiling memoffset v0.6.3
[INFO] [stderr]    Compiling libc v0.2.93
[INFO] [stderr]    Compiling rayon-core v1.9.0
[INFO] [stderr]    Compiling rayon v1.5.0
[INFO] [stderr]    Compiling miniz_oxide v0.4.4
[INFO] [stderr]    Compiling crc32fast v1.2.1
[INFO] [stderr]    Compiling num-iter v0.1.42
[INFO] [stderr]    Compiling num-rational v0.3.2
[INFO] [stderr]     Checking strength_reduce v0.2.3
[INFO] [stderr]     Checking gif v0.11.2
[INFO] [stderr]     Checking bytemuck v1.5.1
[INFO] [stderr]     Checking matrixmultiply v0.3.1
[INFO] [stderr]     Checking png v0.16.8
[INFO] [stderr]     Checking num_cpus v1.13.0
[INFO] [stderr]     Checking crossbeam-epoch v0.9.3
[INFO] [stderr]     Checking crossbeam-channel v0.5.1
[INFO] [stderr]     Checking num-complex v0.3.1
[INFO] [stderr]     Checking num-complex v0.4.0
[INFO] [stderr]     Checking crossbeam-deque v0.8.0
[INFO] [stderr]     Checking transpose v0.2.1
[INFO] [stderr]     Checking primal-check v0.3.1
[INFO] [stderr]     Checking ndarray v0.15.1
[INFO] [stderr]     Checking rustfft v5.1.0
[INFO] [stderr]     Checking jpeg-decoder v0.1.22
[INFO] [stderr]     Checking tiff v0.6.1
[INFO] [stderr]     Checking image v0.23.14
[INFO] [stderr]     Checking rustdct v0.6.0
[INFO] [stderr]     Checking jpeg_encoder v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `EncodableLayout`, `GenericImageView`, and `Pixel`
[INFO] [stdout]  --> src/main.rs:3:19
[INFO] [stdout]   |
[INFO] [stdout] 3 | use image::{self, EncodableLayout, GenericImageView, Pixel};
[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: `ndarray::arr2`
[INFO] [stdout]  --> src/main.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use ndarray::arr2;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Display`
[INFO] [stdout]  --> src/jpeg.rs:1:23
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{fmt::{self, Display}, u16};
[INFO] [stdout]   |                       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `EncodableLayout`, `GenericImageView`, and `Pixel`
[INFO] [stdout]  --> src/main.rs:3:19
[INFO] [stdout]   |
[INFO] [stdout] 3 | use image::{self, EncodableLayout, GenericImageView, Pixel};
[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: `ndarray::arr2`
[INFO] [stdout]  --> src/main.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use ndarray::arr2;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Display`
[INFO] [stdout]  --> src/jpeg.rs:1:23
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{fmt::{self, Display}, u16};
[INFO] [stdout]   |                       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `length` is never read
[INFO] [stdout]   --> src/decoder.rs:19:31
[INFO] [stdout]    |
[INFO] [stdout] 19 |         let mut length: u16 = 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: unused variable: `scan_data`
[INFO] [stdout]    --> src/decoder.rs:178:21
[INFO] [stdout]     |
[INFO] [stdout] 178 | fn read_scan_header(scan_data: &[u8])-> Result<u32, String> {
[INFO] [stdout]     |                     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_scan_data`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:104:9
[INFO] [stdout]     |
[INFO] [stdout] 104 |     let mut y_prime:[[ f32; 8]; 8] = [
[INFO] [stdout]     |         ----^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:132:9
[INFO] [stdout]     |
[INFO] [stdout] 132 |     let mut input = [0f32; 8];
[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:133:9
[INFO] [stdout]     |
[INFO] [stdout] 133 |     let mut intermediate = [5f32; 8];
[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:134:9
[INFO] [stdout]     |
[INFO] [stdout] 134 |     let mut output = [0f32; 8];
[INFO] [stdout]     |         ----^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y_prime`
[INFO] [stdout]    --> src/main.rs:104:9
[INFO] [stdout]     |
[INFO] [stdout] 104 |     let mut y_prime:[[ f32; 8]; 8] = [
[INFO] [stdout]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_y_prime`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]    --> src/main.rs:132:9
[INFO] [stdout]     |
[INFO] [stdout] 132 |     let mut input = [0f32; 8];
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `intermediate`
[INFO] [stdout]    --> src/main.rs:133:9
[INFO] [stdout]     |
[INFO] [stdout] 133 |     let mut intermediate = [5f32; 8];
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_intermediate`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output`
[INFO] [stdout]    --> src/main.rs:134:9
[INFO] [stdout]     |
[INFO] [stdout] 134 |     let mut output = [0f32; 8];
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `length` is never read
[INFO] [stdout]   --> src/decoder.rs:19:31
[INFO] [stdout]    |
[INFO] [stdout] 19 |         let mut length: u16 = 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: unused variable: `scan_data`
[INFO] [stdout]    --> src/decoder.rs:178:21
[INFO] [stdout]     |
[INFO] [stdout] 178 | fn read_scan_header(scan_data: &[u8])-> Result<u32, String> {
[INFO] [stdout]     |                     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_scan_data`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `previous_dc`
[INFO] [stdout]    --> src/main.rs:262:21
[INFO] [stdout]     |
[INFO] [stdout] 262 | fn entropy_encoding(previous_dc: i32, block: [[ i32; 8]; 8]) {
[INFO] [stdout]     |                     ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_previous_dc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:104:9
[INFO] [stdout]     |
[INFO] [stdout] 104 |     let mut y_prime:[[ f32; 8]; 8] = [
[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: unused variable: `temp`
[INFO] [stdout]    --> src/main.rs:264:9
[INFO] [stdout]     |
[INFO] [stdout] 264 |     let temp = get_zigzag(&block, &mut buffer);
[INFO] [stdout]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_temp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:132:9
[INFO] [stdout]     |
[INFO] [stdout] 132 |     let mut input = [0f32; 8];
[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:133:9
[INFO] [stdout]     |
[INFO] [stdout] 133 |     let mut intermediate = [5f32; 8];
[INFO] [stdout]     |         ----^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BLOCK_SIZE` is never used
[INFO] [stdout]   --> src/main.rs:15:7
[INFO] [stdout]    |
[INFO] [stdout] 15 | const BLOCK_SIZE: usize = 8usize;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:134:9
[INFO] [stdout]     |
[INFO] [stdout] 134 |     let mut output = [0f32; 8];
[INFO] [stdout]     |         ----^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y_prime`
[INFO] [stdout]    --> src/main.rs:104:9
[INFO] [stdout]     |
[INFO] [stdout] 104 |     let mut y_prime:[[ f32; 8]; 8] = [
[INFO] [stdout]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_y_prime`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `Q_50_luma` is never used
[INFO] [stdout]   --> src/main.rs:17:7
[INFO] [stdout]    |
[INFO] [stdout] 17 | const Q_50_luma: [[ i32; 8]; 8] = [
[INFO] [stdout]    |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]    --> src/main.rs:132:9
[INFO] [stdout]     |
[INFO] [stdout] 132 |     let mut input = [0f32; 8];
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `intermediate`
[INFO] [stdout]    --> src/main.rs:133:9
[INFO] [stdout]     |
[INFO] [stdout] 133 |     let mut intermediate = [5f32; 8];
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_intermediate`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `Q_50_chroma` is never used
[INFO] [stdout]   --> src/main.rs:28:7
[INFO] [stdout]    |
[INFO] [stdout] 28 | const Q_50_chroma: [[ i32; 8]; 8] = [
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output`
[INFO] [stdout]    --> src/main.rs:134:9
[INFO] [stdout]     |
[INFO] [stdout] 134 |     let mut output = [0f32; 8];
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `S` is never used
[INFO] [stdout]   --> src/main.rs:39:7
[INFO] [stdout]    |
[INFO] [stdout] 39 | const S: [f32; 8] = [
[INFO] [stdout]    |       ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `A` is never used
[INFO] [stdout]   --> src/main.rs:50:7
[INFO] [stdout]    |
[INFO] [stdout] 50 | const A: [f32; 6] = [
[INFO] [stdout]    |       ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `SubsampleType` is never used
[INFO] [stdout]   --> src/main.rs:58:6
[INFO] [stdout]    |
[INFO] [stdout] 58 | enum SubsampleType {
[INFO] [stdout]    |      ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_row_divisor` and `get_col_divisor` are never used
[INFO] [stdout]   --> src/main.rs:65:12
[INFO] [stdout]    |
[INFO] [stdout] 64 | impl SubsampleType {
[INFO] [stdout]    | ------------------ methods in this implementation
[INFO] [stdout] 65 |     pub fn get_row_divisor(&self) -> u8 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 73 |     pub fn get_col_divisor(&self) -> u8 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compress_jpeg_brute` is never used
[INFO] [stdout]    --> src/main.rs:166:4
[INFO] [stdout]     |
[INFO] [stdout] 166 | fn compress_jpeg_brute() {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `transpose` is never used
[INFO] [stdout]    --> src/main.rs:171:4
[INFO] [stdout]     |
[INFO] [stdout] 171 | fn transpose(matrix: &[[ f32; BLOCK_SIZE]; BLOCK_SIZE], new_matrix: &mut [[ f32; 8]; 8]) {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rgb_2_ycrcb` is never used
[INFO] [stdout]    --> src/main.rs:180:4
[INFO] [stdout]     |
[INFO] [stdout] 180 | fn rgb_2_ycrcb(r:u8, b: u8, g:u8) -> [f32; 3] {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ycrcb_2_rgb` is never used
[INFO] [stdout]    --> src/main.rs:197:4
[INFO] [stdout]     |
[INFO] [stdout] 197 | fn ycrcb_2_rgb(y:f32, cr:f32, cb: f32)-> [f32; 3] {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `down_sample` is never used
[INFO] [stdout]    --> src/main.rs:210:4
[INFO] [stdout]     |
[INFO] [stdout] 210 | fn down_sample() -> u32 {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `multiply` is never used
[INFO] [stdout]    --> src/main.rs:214:4
[INFO] [stdout]     |
[INFO] [stdout] 214 | fn multiply(matrix: &'static [[f32; 3]; 3], vector:[f32; 3]) -> [f32; 3] {
[INFO] [stdout]     |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `add` is never used
[INFO] [stdout]    --> src/main.rs:222:4
[INFO] [stdout]     |
[INFO] [stdout] 222 | fn add(vector_a: [f32; 3], vector_b: [f32; 3]) -> [f32; 3] {
[INFO] [stdout]     |    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `subtract` is never used
[INFO] [stdout]    --> src/main.rs:230:4
[INFO] [stdout]     |
[INFO] [stdout] 230 | fn subtract(vector_a: [f32; 3], vector_b: [f32; 3]) -> [f32; 3] {
[INFO] [stdout]     |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_discrete_cosine_transform` is never used
[INFO] [stdout]    --> src/main.rs:238:4
[INFO] [stdout]     |
[INFO] [stdout] 238 | fn apply_discrete_cosine_transform() -> u8 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compress_jpeg_optimal` is never used
[INFO] [stdout]    --> src/main.rs:248:4
[INFO] [stdout]     |
[INFO] [stdout] 248 | fn compress_jpeg_optimal() {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `JPEGData` is never constructed
[INFO] [stdout]    --> src/main.rs:251:8
[INFO] [stdout]     |
[INFO] [stdout] 251 | struct JPEGData {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `to_byte_pair` is never used
[INFO] [stdout]    --> src/main.rs:258:12
[INFO] [stdout]     |
[INFO] [stdout] 257 | impl JPEGData {
[INFO] [stdout]     | ------------- associated function in this implementation
[INFO] [stdout] 258 |     pub fn to_byte_pair() -> u16 {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `previous_dc`
[INFO] [stdout]    --> src/main.rs:262:21
[INFO] [stdout]     |
[INFO] [stdout] 262 | fn entropy_encoding(previous_dc: i32, block: [[ i32; 8]; 8]) {
[INFO] [stdout]     |                     ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_previous_dc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `entropy_encoding` is never used
[INFO] [stdout]    --> src/main.rs:262:4
[INFO] [stdout]     |
[INFO] [stdout] 262 | fn entropy_encoding(previous_dc: i32, block: [[ i32; 8]; 8]) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `temp`
[INFO] [stdout]    --> src/main.rs:264:9
[INFO] [stdout]     |
[INFO] [stdout] 264 |     let temp = get_zigzag(&block, &mut buffer);
[INFO] [stdout]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_temp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_zigzag` is never used
[INFO] [stdout]    --> src/main.rs:267:4
[INFO] [stdout]     |
[INFO] [stdout] 267 | fn get_zigzag(block: &[[ i32; 8]; 8], buffer: &mut [i32; 64]) {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_quantize_table_quality` is never used
[INFO] [stdout]    --> src/main.rs:297:4
[INFO] [stdout]     |
[INFO] [stdout] 297 | fn generate_quantize_table_quality(table: [[ i32; 8]; 8], quality: i32, new_table: &mut [[ i32; 8]; 8]) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `divide_matrix` is never used
[INFO] [stdout]    --> src/main.rs:313:4
[INFO] [stdout]     |
[INFO] [stdout] 313 | fn divide_matrix(matrix_a: &[[ f32; BLOCK_SIZE]; BLOCK_SIZE], matrix_b: &[[ i32; BLOCK_SIZE]; BLOCK_SIZE], matrix_buffer: &mut [[ i...
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `transform` is never used
[INFO] [stdout]    --> src/main.rs:321:4
[INFO] [stdout]     |
[INFO] [stdout] 321 | fn transform(vector: &[f32; BLOCK_SIZE]) -> [f32; BLOCK_SIZE] {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_scan_header` is never used
[INFO] [stdout]    --> src/decoder.rs:178:4
[INFO] [stdout]     |
[INFO] [stdout] 178 | fn read_scan_header(scan_data: &[u8])-> Result<u32, String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `Q_50_luma` should have an upper case name
[INFO] [stdout]   --> src/main.rs:17:7
[INFO] [stdout]    |
[INFO] [stdout] 17 | const Q_50_luma: [[ i32; 8]; 8] = [
[INFO] [stdout]    |       ^^^^^^^^^ help: convert the identifier to upper case: `Q_50_LUMA`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_upper_case_globals)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `Q_50_chroma` should have an upper case name
[INFO] [stdout]   --> src/main.rs:28:7
[INFO] [stdout]    |
[INFO] [stdout] 28 | const Q_50_chroma: [[ i32; 8]; 8] = [
[INFO] [stdout]    |       ^^^^^^^^^^^ help: convert the identifier to upper case: `Q_50_CHROMA`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `offsetTotal` should have a snake case name
[INFO] [stdout]   --> src/jpeg.rs:74:17
[INFO] [stdout]    |
[INFO] [stdout] 74 |         let mut offsetTotal = 0;
[INFO] [stdout]    |                 ^^^^^^^^^^^ help: convert the identifier to snake case: `offset_total`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BLOCK_SIZE` is never used
[INFO] [stdout]   --> src/main.rs:15:7
[INFO] [stdout]    |
[INFO] [stdout] 15 | const BLOCK_SIZE: usize = 8usize;
[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 `Q_50_luma` is never used
[INFO] [stdout]   --> src/main.rs:17:7
[INFO] [stdout]    |
[INFO] [stdout] 17 | const Q_50_luma: [[ i32; 8]; 8] = [
[INFO] [stdout]    |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `Q_50_chroma` is never used
[INFO] [stdout]   --> src/main.rs:28:7
[INFO] [stdout]    |
[INFO] [stdout] 28 | const Q_50_chroma: [[ i32; 8]; 8] = [
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `S` is never used
[INFO] [stdout]   --> src/main.rs:39:7
[INFO] [stdout]    |
[INFO] [stdout] 39 | const S: [f32; 8] = [
[INFO] [stdout]    |       ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `A` is never used
[INFO] [stdout]   --> src/main.rs:50:7
[INFO] [stdout]    |
[INFO] [stdout] 50 | const A: [f32; 6] = [
[INFO] [stdout]    |       ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `SubsampleType` is never used
[INFO] [stdout]   --> src/main.rs:58:6
[INFO] [stdout]    |
[INFO] [stdout] 58 | enum SubsampleType {
[INFO] [stdout]    |      ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_row_divisor` and `get_col_divisor` are never used
[INFO] [stdout]   --> src/main.rs:65:12
[INFO] [stdout]    |
[INFO] [stdout] 64 | impl SubsampleType {
[INFO] [stdout]    | ------------------ methods in this implementation
[INFO] [stdout] 65 |     pub fn get_row_divisor(&self) -> u8 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 73 |     pub fn get_col_divisor(&self) -> u8 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compress_jpeg_brute` is never used
[INFO] [stdout]    --> src/main.rs:166:4
[INFO] [stdout]     |
[INFO] [stdout] 166 | fn compress_jpeg_brute() {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `transpose` is never used
[INFO] [stdout]    --> src/main.rs:171:4
[INFO] [stdout]     |
[INFO] [stdout] 171 | fn transpose(matrix: &[[ f32; BLOCK_SIZE]; BLOCK_SIZE], new_matrix: &mut [[ f32; 8]; 8]) {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rgb_2_ycrcb` is never used
[INFO] [stdout]    --> src/main.rs:180:4
[INFO] [stdout]     |
[INFO] [stdout] 180 | fn rgb_2_ycrcb(r:u8, b: u8, g:u8) -> [f32; 3] {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ycrcb_2_rgb` is never used
[INFO] [stdout]    --> src/main.rs:197:4
[INFO] [stdout]     |
[INFO] [stdout] 197 | fn ycrcb_2_rgb(y:f32, cr:f32, cb: f32)-> [f32; 3] {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `down_sample` is never used
[INFO] [stdout]    --> src/main.rs:210:4
[INFO] [stdout]     |
[INFO] [stdout] 210 | fn down_sample() -> u32 {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `multiply` is never used
[INFO] [stdout]    --> src/main.rs:214:4
[INFO] [stdout]     |
[INFO] [stdout] 214 | fn multiply(matrix: &'static [[f32; 3]; 3], vector:[f32; 3]) -> [f32; 3] {
[INFO] [stdout]     |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `add` is never used
[INFO] [stdout]    --> src/main.rs:222:4
[INFO] [stdout]     |
[INFO] [stdout] 222 | fn add(vector_a: [f32; 3], vector_b: [f32; 3]) -> [f32; 3] {
[INFO] [stdout]     |    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `subtract` is never used
[INFO] [stdout]    --> src/main.rs:230:4
[INFO] [stdout]     |
[INFO] [stdout] 230 | fn subtract(vector_a: [f32; 3], vector_b: [f32; 3]) -> [f32; 3] {
[INFO] [stdout]     |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_discrete_cosine_transform` is never used
[INFO] [stdout]    --> src/main.rs:238:4
[INFO] [stdout]     |
[INFO] [stdout] 238 | fn apply_discrete_cosine_transform() -> u8 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compress_jpeg_optimal` is never used
[INFO] [stdout]    --> src/main.rs:248:4
[INFO] [stdout]     |
[INFO] [stdout] 248 | fn compress_jpeg_optimal() {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `JPEGData` is never constructed
[INFO] [stdout]    --> src/main.rs:251:8
[INFO] [stdout]     |
[INFO] [stdout] 251 | struct JPEGData {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `to_byte_pair` is never used
[INFO] [stdout]    --> src/main.rs:258:12
[INFO] [stdout]     |
[INFO] [stdout] 257 | impl JPEGData {
[INFO] [stdout]     | ------------- associated function in this implementation
[INFO] [stdout] 258 |     pub fn to_byte_pair() -> u16 {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `entropy_encoding` is never used
[INFO] [stdout]    --> src/main.rs:262:4
[INFO] [stdout]     |
[INFO] [stdout] 262 | fn entropy_encoding(previous_dc: i32, block: [[ i32; 8]; 8]) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_zigzag` is never used
[INFO] [stdout]    --> src/main.rs:267:4
[INFO] [stdout]     |
[INFO] [stdout] 267 | fn get_zigzag(block: &[[ i32; 8]; 8], buffer: &mut [i32; 64]) {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_quantize_table_quality` is never used
[INFO] [stdout]    --> src/main.rs:297:4
[INFO] [stdout]     |
[INFO] [stdout] 297 | fn generate_quantize_table_quality(table: [[ i32; 8]; 8], quality: i32, new_table: &mut [[ i32; 8]; 8]) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `divide_matrix` is never used
[INFO] [stdout]    --> src/main.rs:313:4
[INFO] [stdout]     |
[INFO] [stdout] 313 | fn divide_matrix(matrix_a: &[[ f32; BLOCK_SIZE]; BLOCK_SIZE], matrix_b: &[[ i32; BLOCK_SIZE]; BLOCK_SIZE], matrix_buffer: &mut [[ i...
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `transform` is never used
[INFO] [stdout]    --> src/main.rs:321:4
[INFO] [stdout]     |
[INFO] [stdout] 321 | fn transform(vector: &[f32; BLOCK_SIZE]) -> [f32; BLOCK_SIZE] {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_scan_header` is never used
[INFO] [stdout]    --> src/decoder.rs:178:4
[INFO] [stdout]     |
[INFO] [stdout] 178 | fn read_scan_header(scan_data: &[u8])-> Result<u32, String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `Q_50_luma` should have an upper case name
[INFO] [stdout]   --> src/main.rs:17:7
[INFO] [stdout]    |
[INFO] [stdout] 17 | const Q_50_luma: [[ i32; 8]; 8] = [
[INFO] [stdout]    |       ^^^^^^^^^ help: convert the identifier to upper case: `Q_50_LUMA`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_upper_case_globals)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `Q_50_chroma` should have an upper case name
[INFO] [stdout]   --> src/main.rs:28:7
[INFO] [stdout]    |
[INFO] [stdout] 28 | const Q_50_chroma: [[ i32; 8]; 8] = [
[INFO] [stdout]    |       ^^^^^^^^^^^ help: convert the identifier to upper case: `Q_50_CHROMA`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `offsetTotal` should have a snake case name
[INFO] [stdout]   --> src/jpeg.rs:74:17
[INFO] [stdout]    |
[INFO] [stdout] 74 |         let mut offsetTotal = 0;
[INFO] [stdout]    |                 ^^^^^^^^^^^ help: convert the identifier to snake case: `offset_total`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 9.78s
[INFO] running `Command { std: "docker" "inspect" "033957580cb0067d4f4d8ea0caf273f7fb2594d98f75036f79a4d32f1062f682", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "033957580cb0067d4f4d8ea0caf273f7fb2594d98f75036f79a4d32f1062f682", kill_on_drop: false }`
[INFO] [stdout] 033957580cb0067d4f4d8ea0caf273f7fb2594d98f75036f79a4d32f1062f682
