[INFO] cloning repository https://github.com/conanbitter/rvc2
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/conanbitter/rvc2" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fconanbitter%2Frvc2", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fconanbitter%2Frvc2'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] d066b238253eedbe77984c61f2dfc937361da390
[INFO] building conanbitter/rvc2 against master#c7f6aa2869acdbf014d094c6e427e554e160b6db for pr-146237-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fconanbitter%2Frvc2" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/conanbitter/rvc2
[INFO] finished tweaking git repo https://github.com/conanbitter/rvc2
[INFO] tweaked toml for git repo https://github.com/conanbitter/rvc2 written to /workspace/builds/worker-7-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/conanbitter/rvc2 on toolchain c7f6aa2869acdbf014d094c6e427e554e160b6db
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c7f6aa2869acdbf014d094c6e427e554e160b6db" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/conanbitter/rvc2 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" "+c7f6aa2869acdbf014d094c6e427e554e160b6db" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded rand_distr v0.4.3
[INFO] [stderr]   Downloaded kdam v0.6.1
[INFO] [stderr]   Downloaded profiling-procmacros v1.0.16
[INFO] [stderr]   Downloaded noisy_float v0.2.0
[INFO] [stderr]   Downloaded ndarray-stats v0.6.0
[INFO] [stderr]   Downloaded fdeflate v0.3.6
[INFO] [stderr]   Downloaded avif-serialize v0.8.2
[INFO] [stderr]   Downloaded built v0.7.5
[INFO] [stderr]   Downloaded ravif v0.11.11
[INFO] [stderr]   Downloaded rgb v0.8.50
[INFO] [stderr]   Downloaded clap v4.5.22
[INFO] [stderr]   Downloaded clap_builder v4.5.22
[INFO] [stderr]   Downloaded imageproc v0.25.0
[INFO] [stderr]   Downloaded ndarray v0.16.1
[INFO] [stderr]   Downloaded imgref v1.11.0
[INFO] [stderr]   Downloaded nalgebra v0.32.6
[INFO] [stderr]   Downloaded png v0.17.14
[INFO] [stderr]   Downloaded wide v0.7.30
[INFO] [stderr]   Downloaded image-webp v0.2.0
[INFO] [stderr]   Downloaded exr v1.73.0
[INFO] [stderr]   Downloaded anyhow v1.0.94
[INFO] [stderr]   Downloaded bitstream-io v2.6.0
[INFO] [stderr]   Downloaded wild v2.2.1
[INFO] [stderr]   Downloaded libfuzzer-sys v0.4.8
[INFO] [stderr]   Downloaded terminal_size v0.4.1
[INFO] [stderr]   Downloaded matrixmultiply v0.3.9
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+c7f6aa2869acdbf014d094c6e427e554e160b6db" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 2cdc2af3707b0105a31f79f7715eff56db09c57629c309281839e86dc74e67aa
[INFO] running `Command { std: "docker" "start" "-a" "2cdc2af3707b0105a31f79f7715eff56db09c57629c309281839e86dc74e67aa", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "2cdc2af3707b0105a31f79f7715eff56db09c57629c309281839e86dc74e67aa", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2cdc2af3707b0105a31f79f7715eff56db09c57629c309281839e86dc74e67aa", kill_on_drop: false }`
[INFO] [stdout] 2cdc2af3707b0105a31f79f7715eff56db09c57629c309281839e86dc74e67aa
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+c7f6aa2869acdbf014d094c6e427e554e160b6db" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 52ddeebd498f1790998483b0e64ffbcd9d19fbca74fc667ce76e103a0f8190c1
[INFO] running `Command { std: "docker" "start" "-a" "52ddeebd498f1790998483b0e64ffbcd9d19fbca74fc667ce76e103a0f8190c1", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.92
[INFO] [stderr]    Compiling unicode-ident v1.0.14
[INFO] [stderr]    Compiling libm v0.2.11
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling libc v0.2.167
[INFO] [stderr]    Compiling simd-adler32 v0.3.7
[INFO] [stderr]    Compiling either v1.13.0
[INFO] [stderr]    Compiling anyhow v1.0.94
[INFO] [stderr]    Compiling bytemuck v1.20.0
[INFO] [stderr]    Compiling adler2 v2.0.0
[INFO] [stderr]    Compiling matrixmultiply v0.3.9
[INFO] [stderr]    Compiling aligned-vec v0.5.0
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling built v0.7.5
[INFO] [stderr]    Compiling nom v7.1.3
[INFO] [stderr]    Compiling crc32fast v1.4.2
[INFO] [stderr]    Compiling rawpointer v0.2.1
[INFO] [stderr]    Compiling quick-error v2.0.1
[INFO] [stderr]    Compiling rustix v0.38.41
[INFO] [stderr]    Compiling weezl v0.1.8
[INFO] [stderr]    Compiling miniz_oxide v0.8.0
[INFO] [stderr]    Compiling rayon v1.10.0
[INFO] [stderr]    Compiling itertools v0.12.1
[INFO] [stderr]    Compiling once_cell v1.20.2
[INFO] [stderr]    Compiling bitstream-io v2.6.0
[INFO] [stderr]    Compiling rav1e v0.7.1
[INFO] [stderr]    Compiling imgref v1.11.0
[INFO] [stderr]    Compiling noop_proc_macro v0.3.0
[INFO] [stderr]    Compiling safe_arch v0.7.2
[INFO] [stderr]    Compiling loop9 v0.1.5
[INFO] [stderr]    Compiling anstyle-parse v0.2.6
[INFO] [stderr]    Compiling fdeflate v0.3.6
[INFO] [stderr]    Compiling zune-inflate v0.2.54
[INFO] [stderr]    Compiling avif-serialize v0.8.2
[INFO] [stderr]    Compiling half v2.4.1
[INFO] [stderr]    Compiling flate2 v1.0.35
[INFO] [stderr]    Compiling wide v0.7.30
[INFO] [stderr]    Compiling anstyle-query v1.1.2
[INFO] [stderr]    Compiling linux-raw-sys v0.4.14
[INFO] [stderr]    Compiling jpeg-decoder v0.3.1
[INFO] [stderr]    Compiling quote v1.0.37
[INFO] [stderr]    Compiling colorchoice v1.0.3
[INFO] [stderr]    Compiling byteorder-lite v0.1.0
[INFO] [stderr]    Compiling syn v2.0.90
[INFO] [stderr]    Compiling bit_field v0.10.2
[INFO] [stderr]    Compiling getrandom v0.2.15
[INFO] [stderr]    Compiling rgb v0.8.50
[INFO] [stderr]    Compiling zune-core v0.4.12
[INFO] [stderr]    Compiling ttf-parser v0.25.1
[INFO] [stderr]    Compiling smallvec v1.13.2
[INFO] [stderr]    Compiling lebe v0.5.2
[INFO] [stderr]    Compiling simd_helpers v0.1.0
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling anstyle v1.0.10
[INFO] [stderr]    Compiling num-integer v0.1.46
[INFO] [stderr]    Compiling num-complex v0.4.6
[INFO] [stderr]    Compiling v_frame v0.3.8
[INFO] [stderr]    Compiling approx v0.5.1
[INFO] [stderr]    Compiling anstream v0.6.18
[INFO] [stderr]    Compiling zune-jpeg v0.4.13
[INFO] [stderr]    Compiling exr v1.73.0
[INFO] [stderr]    Compiling tiff v0.9.1
[INFO] [stderr]    Compiling num-bigint v0.4.6
[INFO] [stderr]    Compiling num-iter v0.1.45
[INFO] [stderr]    Compiling image-webp v0.2.0
[INFO] [stderr]    Compiling png v0.17.14
[INFO] [stderr]    Compiling gif v0.13.1
[INFO] [stderr]    Compiling simba v0.8.1
[INFO] [stderr]    Compiling qoi v0.4.1
[INFO] [stderr]    Compiling clap_lex v0.7.3
[INFO] [stderr]    Compiling hashbrown v0.15.2
[INFO] [stderr]    Compiling clap_builder v4.5.22
[INFO] [stderr]    Compiling ndarray v0.16.1
[INFO] [stderr]    Compiling noisy_float v0.2.0
[INFO] [stderr]    Compiling itertools v0.13.0
[INFO] [stderr]    Compiling humansize v2.1.3
[INFO] [stderr]    Compiling wild v2.2.1
[INFO] [stderr]    Compiling terminal_size v0.4.1
[INFO] [stderr]    Compiling indexmap v2.7.0
[INFO] [stderr]    Compiling kdam v0.6.1
[INFO] [stderr]    Compiling maybe-rayon v0.1.1
[INFO] [stderr]    Compiling num-rational v0.4.2
[INFO] [stderr]    Compiling av1-grain v0.2.3
[INFO] [stderr]    Compiling num v0.4.3
[INFO] [stderr]    Compiling owned_ttf_parser v0.25.0
[INFO] [stderr]    Compiling ab_glyph v0.2.29
[INFO] [stderr]    Compiling zerocopy-derive v0.7.35
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling profiling-procmacros v1.0.16
[INFO] [stderr]    Compiling arg_enum_proc_macro v0.3.4
[INFO] [stderr]    Compiling num-derive v0.4.2
[INFO] [stderr]    Compiling clap_derive v4.5.18
[INFO] [stderr]    Compiling profiling v1.0.16
[INFO] [stderr]    Compiling zerocopy v0.7.35
[INFO] [stderr]    Compiling ppv-lite86 v0.2.20
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling clap v4.5.22
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling rand_distr v0.4.3
[INFO] [stderr]    Compiling ndarray-stats v0.6.0
[INFO] [stderr]    Compiling nalgebra v0.32.6
[INFO] [stderr]    Compiling ravif v0.11.11
[INFO] [stderr]    Compiling image v0.25.5
[INFO] [stderr]    Compiling imageproc v0.25.0
[INFO] [stderr]    Compiling rvc2 v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `Path`, `f64::consts::PI`, and `max`
[INFO] [stdout]  --> src/main.rs:3:11
[INFO] [stdout]   |
[INFO] [stdout] 3 |     cmp::{max, min},
[INFO] [stdout]   |           ^^^
[INFO] [stdout] 4 |     f64::consts::PI,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 7 |     path::{Path, PathBuf},
[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: `std::path::Path`
[INFO] [stdout]  --> src/planes.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::path::Path;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `anyhow::Result`
[INFO] [stdout]  --> src/planes.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use anyhow::Result;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ImageReader`, `RgbImage`, and `Rgb`
[INFO] [stdout]  --> src/planes.rs:4:24
[INFO] [stdout]   |
[INFO] [stdout] 4 | use image::{GrayImage, ImageReader, Luma, Rgb, RgbImage};
[INFO] [stdout]   |                        ^^^^^^^^^^^        ^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BINARY` and `format_size`
[INFO] [stdout]   --> src/main.rs:23:17
[INFO] [stdout]    |
[INFO] [stdout] 23 | use humansize::{format_size, BINARY};
[INFO] [stdout]    |                 ^^^^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `GrayImage`, `ImageBuffer`, `Luma`, `RgbImage`, and `Rgb`
[INFO] [stdout]   --> src/main.rs:24:13
[INFO] [stdout]    |
[INFO] [stdout] 24 | use image::{GrayImage, ImageBuffer, ImageReader, Luma, Rgb, RgbImage};
[INFO] [stdout]    |             ^^^^^^^^^  ^^^^^^^^^^^               ^^^^  ^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `imageproc::drawing::BresenhamLineIter`
[INFO] [stdout]   --> src/main.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 25 | use imageproc::drawing::BresenhamLineIter;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `block_stat`
[INFO] [stdout]   --> src/main.rs:27:14
[INFO] [stdout]    |
[INFO] [stdout] 27 | use motion::{block_stat, BlockType, MotionMap};
[INFO] [stdout]    |              ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Array2`, `Array`, `ShapeBuilder`, and `s`
[INFO] [stdout]   --> src/main.rs:28:15
[INFO] [stdout]    |
[INFO] [stdout] 28 | use ndarray::{s, Array, Array2, ShapeBuilder};
[INFO] [stdout]    |               ^  ^^^^^  ^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ndarray_stats::QuantileExt`
[INFO] [stdout]   --> src/main.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 29 | use ndarray_stats::QuantileExt;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `once_cell::sync::Lazy`
[INFO] [stdout]   --> src/main.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 30 | use once_cell::sync::Lazy;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `FrameType`
[INFO] [stdout]   --> src/main.rs:32:26
[INFO] [stdout]    |
[INFO] [stdout] 32 | use videocode::{Encoder, FrameType, MacroBlock, VideoFrame};
[INFO] [stdout]    |                          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pb_matrices`
[INFO] [stdout]    --> src/main.rs:315:9
[INFO] [stdout]     |
[INFO] [stdout] 315 |     let pb_matrices = QMatrices::from_file(&mut file)?;
[INFO] [stdout]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pb_matrices`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dct_size`
[INFO] [stdout]    --> src/main.rs:348:21
[INFO] [stdout]     |
[INFO] [stdout] 348 |                 let dct_size = file.read_u32::<LE>()?;
[INFO] [stdout]     |                     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dct_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mtn_size`
[INFO] [stdout]    --> src/main.rs:379:21
[INFO] [stdout]     |
[INFO] [stdout] 379 |                 let mtn_size = file.read_u32::<LE>()?;
[INFO] [stdout]     |                     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mtn_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dct_size`
[INFO] [stdout]    --> src/main.rs:381:21
[INFO] [stdout]     |
[INFO] [stdout] 381 |                 let dct_size = file.read_u32::<LE>()?;
[INFO] [stdout]     |                     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dct_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mtn_size`
[INFO] [stdout]    --> src/main.rs:412:21
[INFO] [stdout]     |
[INFO] [stdout] 412 |                 let mtn_size = file.read_u32::<LE>()?;
[INFO] [stdout]     |                     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mtn_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mtn_size`
[INFO] [stdout]    --> src/main.rs:414:21
[INFO] [stdout]     |
[INFO] [stdout] 414 |                 let mtn_size = file.read_u32::<LE>()?;
[INFO] [stdout]     |                     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mtn_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dct_size`
[INFO] [stdout]    --> src/main.rs:416:21
[INFO] [stdout]     |
[INFO] [stdout] 416 |                 let dct_size = file.read_u32::<LE>()?;
[INFO] [stdout]     |                     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dct_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compress_plane` is never used
[INFO] [stdout]    --> src/main.rs:102:4
[INFO] [stdout]     |
[INFO] [stdout] 102 | fn compress_plane(plane: &Plane, writer: &mut BitWriter, is_luma: bool, quality: f64) -> Result<()> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `unpack_plane` is never used
[INFO] [stdout]    --> src/main.rs:114:4
[INFO] [stdout]     |
[INFO] [stdout] 114 | fn unpack_plane(plane: &mut Plane, reader: &mut BitReader, is_luma: bool, quality: f64) -> Result<()> {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FILE_A` is never used
[INFO] [stdout]    --> src/main.rs:126:7
[INFO] [stdout]     |
[INFO] [stdout] 126 | const FILE_A: &str = "1492.tif";
[INFO] [stdout]     |       ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FILE_B` is never used
[INFO] [stdout]    --> src/main.rs:127:7
[INFO] [stdout]     |
[INFO] [stdout] 127 | const FILE_B: &str = "1495.tif";
[INFO] [stdout]     |       ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FILE_RES` is never used
[INFO] [stdout]    --> src/main.rs:128:7
[INFO] [stdout]     |
[INFO] [stdout] 128 | const FILE_RES: &str = "0693_motion.png";
[INFO] [stdout]     |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `decode` is never used
[INFO] [stdout]    --> src/main.rs:290:4
[INFO] [stdout]     |
[INFO] [stdout] 290 | fn decode() -> Result<()> {
[INFO] [stdout]     |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BitReader` is never constructed
[INFO] [stdout]   --> src/bitio.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct BitReader<'a> {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WIDTH_OFFSETS` is never used
[INFO] [stdout]    --> src/bitio.rs:120:7
[INFO] [stdout]     |
[INFO] [stdout] 120 | const WIDTH_OFFSETS: [i16; 12] = [0, 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024];
[INFO] [stdout]     |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `read_bit`, `decode_huffman`, and `read_varint` are never used
[INFO] [stdout]    --> src/bitio.rs:123:12
[INFO] [stdout]     |
[INFO] [stdout] 122 | impl<'a> BitReader<'a> {
[INFO] [stdout]     | ---------------------- associated items in this implementation
[INFO] [stdout] 123 |     pub fn new(reader: &'a mut dyn Read) -> BitReader {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 131 |     pub fn read_bit(&mut self) -> Result<u8> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 143 |     pub fn decode_huffman(&mut self, decoder: &[[i16; 2]]) -> Result<u8> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 156 |     pub fn read_varint(&mut self, width: u8) -> Result<i16> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WRAP_PATTERN` is never used
[INFO] [stdout]   --> src/blocks.rs:54:7
[INFO] [stdout]    |
[INFO] [stdout] 54 | const WRAP_PATTERN: [usize; 8 * 8] = [
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HUFFMAN_SIZE_DC_LUMA` is never used
[INFO] [stdout]    --> src/blocks.rs:613:7
[INFO] [stdout]     |
[INFO] [stdout] 613 | const HUFFMAN_SIZE_DC_LUMA: [usize; 12] = [2, 3, 3, 3, 3, 3, 4, 5, 6, 7, 8, 9];
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HUFFMAN_SIZE_AC_LUMA` is never used
[INFO] [stdout]    --> src/blocks.rs:615:7
[INFO] [stdout]     |
[INFO] [stdout] 615 | const HUFFMAN_SIZE_AC_LUMA: [usize; 256] = [
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HUFFMAN_SIZE_DC_CHROMA` is never used
[INFO] [stdout]    --> src/blocks.rs:626:7
[INFO] [stdout]     |
[INFO] [stdout] 626 | const HUFFMAN_SIZE_DC_CHROMA: [usize; 12] = [2, 2, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HUFFMAN_SIZE_AC_CHROMA` is never used
[INFO] [stdout]    --> src/blocks.rs:628:7
[INFO] [stdout]     |
[INFO] [stdout] 628 | const HUFFMAN_SIZE_AC_CHROMA: [usize; 256] = [
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HUFFMAN_DECODE_DC_LUMA` is never used
[INFO] [stdout]    --> src/blocks.rs:639:7
[INFO] [stdout]     |
[INFO] [stdout] 639 | const HUFFMAN_DECODE_DC_LUMA: [[i16; 2]; 12] = [
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HUFFMAN_DECODE_AC_LUMA` is never used
[INFO] [stdout]    --> src/blocks.rs:654:7
[INFO] [stdout]     |
[INFO] [stdout] 654 | const HUFFMAN_DECODE_AC_LUMA: [[i16; 2]; 162] = [
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HUFFMAN_DECODE_DC_CHROMA` is never used
[INFO] [stdout]    --> src/blocks.rs:819:7
[INFO] [stdout]     |
[INFO] [stdout] 819 | const HUFFMAN_DECODE_DC_CHROMA: [[i16; 2]; 12] = [
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HUFFMAN_DECODE_AC_CHROMA` is never used
[INFO] [stdout]    --> src/blocks.rs:834:7
[INFO] [stdout]     |
[INFO] [stdout] 834 | const HUFFMAN_DECODE_AC_CHROMA: [[i16; 2]; 162] = [
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `DctMatrix` is never used
[INFO] [stdout]    --> src/blocks.rs:999:6
[INFO] [stdout]     |
[INFO] [stdout] 999 | type DctMatrix = [[f64; 8 * 8]; 8 * 8];
[INFO] [stdout]     |      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `DCT_K` is never used
[INFO] [stdout]     --> src/blocks.rs:1002:8
[INFO] [stdout]      |
[INFO] [stdout] 1002 | static DCT_K: Lazy<DctMatrix> = Lazy::<DctMatrix>::new(|| {
[INFO] [stdout]      |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `UNDCT_K` is never used
[INFO] [stdout]     --> src/blocks.rs:1025:8
[INFO] [stdout]      |
[INFO] [stdout] 1025 | static UNDCT_K: Lazy<DctMatrix> = Lazy::<DctMatrix>::new(|| {
[INFO] [stdout]      |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `UNDCT1D_K` is never used
[INFO] [stdout]     --> src/blocks.rs:1061:8
[INFO] [stdout]      |
[INFO] [stdout] 1061 | static UNDCT1D_K: Lazy<DctVector> = Lazy::<DctVector>::new(|| {
[INFO] [stdout]      |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]     --> src/blocks.rs:1095:12
[INFO] [stdout]      |
[INFO] [stdout] 1090 | impl Block {
[INFO] [stdout]      | ---------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 1095 |     pub fn apply_dct(&self, dst: &mut Block) {
[INFO] [stdout]      |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1125 |     pub fn revert_dct2(&mut self) {
[INFO] [stdout]      |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1129 |     pub fn revert_dct(&self, dst: &mut Block) {
[INFO] [stdout]      |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1135 |     pub fn quantization(&mut self) {
[INFO] [stdout]      |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1141 |     pub fn dequantization(&mut self) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1147 |     pub fn unwrap(&self, dst: &mut Block) {
[INFO] [stdout]      |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1153 |     pub fn wrap(&self, dst: &mut Block) {
[INFO] [stdout]      |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1236 |     fn process_pixel(&self, index: usize) -> i16 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1250 |     pub fn encode2(&mut self, writer: &mut BitWriter, is_luma: bool, quality: f64) -> Result<()> {
[INFO] [stdout]      |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1401 |     pub fn get_encoded_size(&self, qmatrix: &[f64], is_luma: bool) -> usize {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1456 |     pub fn decode2(&mut self, reader: &mut BitReader, is_luma: bool, quality: f64) -> Result<()> {
[INFO] [stdout]      |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1510 |     pub fn decode3(&mut self, qmatrix: &[f64]) {
[INFO] [stdout]      |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1517 |     pub fn read(&mut self, reader: &mut BitReader, is_luma: bool) -> Result<()> {
[INFO] [stdout]      |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1560 |     pub fn normalize(&mut self) {
[INFO] [stdout]      |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1566 |     pub fn denormalize(&mut self) {
[INFO] [stdout]      |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_file` is never used
[INFO] [stdout]     --> src/blocks.rs:1590:12
[INFO] [stdout]      |
[INFO] [stdout] 1573 | impl QMatrices {
[INFO] [stdout]      | -------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 1590 |     pub fn from_file(file: &mut dyn Read) -> Result<QMatrices> {
[INFO] [stdout]      |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `yuv2rgb` is never used
[INFO] [stdout]   --> src/colors.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub fn yuv2rgb(y: f64, u: f64, v: f64) -> (u8, u8, u8) {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `block_stat` is never used
[INFO] [stdout]   --> src/motion.rs:44:8
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub fn block_stat(a: &Plane, ax: u32, ay: u32, b: &Plane, bx: u32, by: u32) -> (f64, f64) {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `block_diff_ult` is never used
[INFO] [stdout]   --> src/motion.rs:66:4
[INFO] [stdout]    |
[INFO] [stdout] 66 | fn block_diff_ult(a: &VideoFrame, ax: u32, ay: u32, b: &VideoFrame, bx: u32, by: u32, qmatrices: &QMatrices) -> usize {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `calculate_ult` and `read` are never used
[INFO] [stdout]    --> src/motion.rs:125:12
[INFO] [stdout]     |
[INFO] [stdout]  76 | impl MotionMap {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 125 |     pub fn calculate_ult(&mut self, cur_frame: &VideoFrame, prev_frame: &VideoFrame, qmatrices: &QMatrices) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 190 |     pub fn read(&mut self, reader: &mut dyn Read) -> Result<()> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `height` is never read
[INFO] [stdout]   --> src/planes.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub struct Plane {
[INFO] [stdout]    |            ----- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 12 |     height: u32,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Plane` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `height`, `get`, `plane2luma`, and `apply_block` are never used
[INFO] [stdout]   --> src/planes.rs:28:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl Plane {
[INFO] [stdout]    | ---------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub fn height(&self) -> u32 {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 52 |     pub fn get(&self, x: u32, y: u32) -> f64 {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 56 |     pub fn plane2luma(plane: &Plane, image: &mut GrayImage) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 70 |     pub fn apply_block(&mut self, x: u32, y: u32, block: &Block) {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `source_width` and `source_height` are never read
[INFO] [stdout]   --> src/videocode.rs:27:9
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub struct VideoFrame {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 27 |     pub source_width: u32,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 28 |     pub source_height: u32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `VideoFrame` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `save_to_image` and `apply_macroblock` are never used
[INFO] [stdout]    --> src/videocode.rs:85:12
[INFO] [stdout]     |
[INFO] [stdout]  42 | impl VideoFrame {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  85 |     pub fn save_to_image<P: AsRef<Path>>(&self, filename: P) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 107 |     pub fn apply_macroblock(&mut self, x: u32, y: u32, block: &MacroBlock) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `add`, `get_encoded_size`, `decode`, and `read` are never used
[INFO] [stdout]    --> src/videocode.rs:130:12
[INFO] [stdout]     |
[INFO] [stdout] 117 | impl MacroBlock {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 130 |     pub fn add(&mut self, other: &MacroBlock) {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 165 |     pub fn get_encoded_size(&self, qmatrices: &QMatrices) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 174 |     pub fn decode(&mut self, qmatrices: &QMatrices) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 183 |     pub fn read(&mut self, reader: &mut BitReader) -> Result<()> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]   --> src/bitio.rs:18:46
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub fn new(writer: &'a mut dyn Write) -> BitWriter {
[INFO] [stdout]    |                         --                   ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                         |
[INFO] [stdout]    |                         the lifetime is named here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub fn new(writer: &'a mut dyn Write) -> BitWriter<'a> {
[INFO] [stdout]    |                                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]    --> src/bitio.rs:123:45
[INFO] [stdout]     |
[INFO] [stdout] 123 |     pub fn new(reader: &'a mut dyn Read) -> BitReader {
[INFO] [stdout]     |                         --                  ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         the lifetime is named here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]     |
[INFO] [stdout] 123 |     pub fn new(reader: &'a mut dyn Read) -> BitReader<'a> {
[INFO] [stdout]     |                                                      ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 08s
[INFO] running `Command { std: "docker" "inspect" "52ddeebd498f1790998483b0e64ffbcd9d19fbca74fc667ce76e103a0f8190c1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "52ddeebd498f1790998483b0e64ffbcd9d19fbca74fc667ce76e103a0f8190c1", kill_on_drop: false }`
[INFO] [stdout] 52ddeebd498f1790998483b0e64ffbcd9d19fbca74fc667ce76e103a0f8190c1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+c7f6aa2869acdbf014d094c6e427e554e160b6db" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 923ed222ce9d1bb50a8e6f39c3ed4f0050362c9f4e922104b34f84ba85fc6e82
[INFO] running `Command { std: "docker" "start" "-a" "923ed222ce9d1bb50a8e6f39c3ed4f0050362c9f4e922104b34f84ba85fc6e82", kill_on_drop: false }`
[INFO] [stderr]    Compiling rvc2 v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `Path`, `f64::consts::PI`, and `max`
[INFO] [stdout]  --> src/main.rs:3:11
[INFO] [stdout]   |
[INFO] [stdout] 3 |     cmp::{max, min},
[INFO] [stdout]   |           ^^^
[INFO] [stdout] 4 |     f64::consts::PI,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 7 |     path::{Path, PathBuf},
[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: `std::path::Path`
[INFO] [stdout]  --> src/planes.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::path::Path;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `anyhow::Result`
[INFO] [stdout]  --> src/planes.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use anyhow::Result;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ImageReader`, `RgbImage`, and `Rgb`
[INFO] [stdout]  --> src/planes.rs:4:24
[INFO] [stdout]   |
[INFO] [stdout] 4 | use image::{GrayImage, ImageReader, Luma, Rgb, RgbImage};
[INFO] [stdout]   |                        ^^^^^^^^^^^        ^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BINARY` and `format_size`
[INFO] [stdout]   --> src/main.rs:23:17
[INFO] [stdout]    |
[INFO] [stdout] 23 | use humansize::{format_size, BINARY};
[INFO] [stdout]    |                 ^^^^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `GrayImage`, `ImageBuffer`, `Luma`, `RgbImage`, and `Rgb`
[INFO] [stdout]   --> src/main.rs:24:13
[INFO] [stdout]    |
[INFO] [stdout] 24 | use image::{GrayImage, ImageBuffer, ImageReader, Luma, Rgb, RgbImage};
[INFO] [stdout]    |             ^^^^^^^^^  ^^^^^^^^^^^               ^^^^  ^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `imageproc::drawing::BresenhamLineIter`
[INFO] [stdout]   --> src/main.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 25 | use imageproc::drawing::BresenhamLineIter;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `block_stat`
[INFO] [stdout]   --> src/main.rs:27:14
[INFO] [stdout]    |
[INFO] [stdout] 27 | use motion::{block_stat, BlockType, MotionMap};
[INFO] [stdout]    |              ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Array2`, `Array`, `ShapeBuilder`, and `s`
[INFO] [stdout]   --> src/main.rs:28:15
[INFO] [stdout]    |
[INFO] [stdout] 28 | use ndarray::{s, Array, Array2, ShapeBuilder};
[INFO] [stdout]    |               ^  ^^^^^  ^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ndarray_stats::QuantileExt`
[INFO] [stdout]   --> src/main.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 29 | use ndarray_stats::QuantileExt;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `once_cell::sync::Lazy`
[INFO] [stdout]   --> src/main.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 30 | use once_cell::sync::Lazy;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `FrameType`
[INFO] [stdout]   --> src/main.rs:32:26
[INFO] [stdout]    |
[INFO] [stdout] 32 | use videocode::{Encoder, FrameType, MacroBlock, VideoFrame};
[INFO] [stdout]    |                          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pb_matrices`
[INFO] [stdout]    --> src/main.rs:315:9
[INFO] [stdout]     |
[INFO] [stdout] 315 |     let pb_matrices = QMatrices::from_file(&mut file)?;
[INFO] [stdout]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pb_matrices`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dct_size`
[INFO] [stdout]    --> src/main.rs:348:21
[INFO] [stdout]     |
[INFO] [stdout] 348 |                 let dct_size = file.read_u32::<LE>()?;
[INFO] [stdout]     |                     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dct_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mtn_size`
[INFO] [stdout]    --> src/main.rs:379:21
[INFO] [stdout]     |
[INFO] [stdout] 379 |                 let mtn_size = file.read_u32::<LE>()?;
[INFO] [stdout]     |                     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mtn_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dct_size`
[INFO] [stdout]    --> src/main.rs:381:21
[INFO] [stdout]     |
[INFO] [stdout] 381 |                 let dct_size = file.read_u32::<LE>()?;
[INFO] [stdout]     |                     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dct_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mtn_size`
[INFO] [stdout]    --> src/main.rs:412:21
[INFO] [stdout]     |
[INFO] [stdout] 412 |                 let mtn_size = file.read_u32::<LE>()?;
[INFO] [stdout]     |                     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mtn_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mtn_size`
[INFO] [stdout]    --> src/main.rs:414:21
[INFO] [stdout]     |
[INFO] [stdout] 414 |                 let mtn_size = file.read_u32::<LE>()?;
[INFO] [stdout]     |                     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mtn_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dct_size`
[INFO] [stdout]    --> src/main.rs:416:21
[INFO] [stdout]     |
[INFO] [stdout] 416 |                 let dct_size = file.read_u32::<LE>()?;
[INFO] [stdout]     |                     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dct_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compress_plane` is never used
[INFO] [stdout]    --> src/main.rs:102:4
[INFO] [stdout]     |
[INFO] [stdout] 102 | fn compress_plane(plane: &Plane, writer: &mut BitWriter, is_luma: bool, quality: f64) -> Result<()> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `unpack_plane` is never used
[INFO] [stdout]    --> src/main.rs:114:4
[INFO] [stdout]     |
[INFO] [stdout] 114 | fn unpack_plane(plane: &mut Plane, reader: &mut BitReader, is_luma: bool, quality: f64) -> Result<()> {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FILE_A` is never used
[INFO] [stdout]    --> src/main.rs:126:7
[INFO] [stdout]     |
[INFO] [stdout] 126 | const FILE_A: &str = "1492.tif";
[INFO] [stdout]     |       ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FILE_B` is never used
[INFO] [stdout]    --> src/main.rs:127:7
[INFO] [stdout]     |
[INFO] [stdout] 127 | const FILE_B: &str = "1495.tif";
[INFO] [stdout]     |       ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FILE_RES` is never used
[INFO] [stdout]    --> src/main.rs:128:7
[INFO] [stdout]     |
[INFO] [stdout] 128 | const FILE_RES: &str = "0693_motion.png";
[INFO] [stdout]     |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `decode` is never used
[INFO] [stdout]    --> src/main.rs:290:4
[INFO] [stdout]     |
[INFO] [stdout] 290 | fn decode() -> Result<()> {
[INFO] [stdout]     |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BitReader` is never constructed
[INFO] [stdout]   --> src/bitio.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct BitReader<'a> {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WIDTH_OFFSETS` is never used
[INFO] [stdout]    --> src/bitio.rs:120:7
[INFO] [stdout]     |
[INFO] [stdout] 120 | const WIDTH_OFFSETS: [i16; 12] = [0, 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024];
[INFO] [stdout]     |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `read_bit`, `decode_huffman`, and `read_varint` are never used
[INFO] [stdout]    --> src/bitio.rs:123:12
[INFO] [stdout]     |
[INFO] [stdout] 122 | impl<'a> BitReader<'a> {
[INFO] [stdout]     | ---------------------- associated items in this implementation
[INFO] [stdout] 123 |     pub fn new(reader: &'a mut dyn Read) -> BitReader {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 131 |     pub fn read_bit(&mut self) -> Result<u8> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 143 |     pub fn decode_huffman(&mut self, decoder: &[[i16; 2]]) -> Result<u8> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 156 |     pub fn read_varint(&mut self, width: u8) -> Result<i16> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WRAP_PATTERN` is never used
[INFO] [stdout]   --> src/blocks.rs:54:7
[INFO] [stdout]    |
[INFO] [stdout] 54 | const WRAP_PATTERN: [usize; 8 * 8] = [
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HUFFMAN_SIZE_DC_LUMA` is never used
[INFO] [stdout]    --> src/blocks.rs:613:7
[INFO] [stdout]     |
[INFO] [stdout] 613 | const HUFFMAN_SIZE_DC_LUMA: [usize; 12] = [2, 3, 3, 3, 3, 3, 4, 5, 6, 7, 8, 9];
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HUFFMAN_SIZE_AC_LUMA` is never used
[INFO] [stdout]    --> src/blocks.rs:615:7
[INFO] [stdout]     |
[INFO] [stdout] 615 | const HUFFMAN_SIZE_AC_LUMA: [usize; 256] = [
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HUFFMAN_SIZE_DC_CHROMA` is never used
[INFO] [stdout]    --> src/blocks.rs:626:7
[INFO] [stdout]     |
[INFO] [stdout] 626 | const HUFFMAN_SIZE_DC_CHROMA: [usize; 12] = [2, 2, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HUFFMAN_SIZE_AC_CHROMA` is never used
[INFO] [stdout]    --> src/blocks.rs:628:7
[INFO] [stdout]     |
[INFO] [stdout] 628 | const HUFFMAN_SIZE_AC_CHROMA: [usize; 256] = [
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HUFFMAN_DECODE_DC_LUMA` is never used
[INFO] [stdout]    --> src/blocks.rs:639:7
[INFO] [stdout]     |
[INFO] [stdout] 639 | const HUFFMAN_DECODE_DC_LUMA: [[i16; 2]; 12] = [
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HUFFMAN_DECODE_AC_LUMA` is never used
[INFO] [stdout]    --> src/blocks.rs:654:7
[INFO] [stdout]     |
[INFO] [stdout] 654 | const HUFFMAN_DECODE_AC_LUMA: [[i16; 2]; 162] = [
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HUFFMAN_DECODE_DC_CHROMA` is never used
[INFO] [stdout]    --> src/blocks.rs:819:7
[INFO] [stdout]     |
[INFO] [stdout] 819 | const HUFFMAN_DECODE_DC_CHROMA: [[i16; 2]; 12] = [
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HUFFMAN_DECODE_AC_CHROMA` is never used
[INFO] [stdout]    --> src/blocks.rs:834:7
[INFO] [stdout]     |
[INFO] [stdout] 834 | const HUFFMAN_DECODE_AC_CHROMA: [[i16; 2]; 162] = [
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `DctMatrix` is never used
[INFO] [stdout]    --> src/blocks.rs:999:6
[INFO] [stdout]     |
[INFO] [stdout] 999 | type DctMatrix = [[f64; 8 * 8]; 8 * 8];
[INFO] [stdout]     |      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `DCT_K` is never used
[INFO] [stdout]     --> src/blocks.rs:1002:8
[INFO] [stdout]      |
[INFO] [stdout] 1002 | static DCT_K: Lazy<DctMatrix> = Lazy::<DctMatrix>::new(|| {
[INFO] [stdout]      |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `UNDCT_K` is never used
[INFO] [stdout]     --> src/blocks.rs:1025:8
[INFO] [stdout]      |
[INFO] [stdout] 1025 | static UNDCT_K: Lazy<DctMatrix> = Lazy::<DctMatrix>::new(|| {
[INFO] [stdout]      |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `UNDCT1D_K` is never used
[INFO] [stdout]     --> src/blocks.rs:1061:8
[INFO] [stdout]      |
[INFO] [stdout] 1061 | static UNDCT1D_K: Lazy<DctVector> = Lazy::<DctVector>::new(|| {
[INFO] [stdout]      |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]     --> src/blocks.rs:1095:12
[INFO] [stdout]      |
[INFO] [stdout] 1090 | impl Block {
[INFO] [stdout]      | ---------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 1095 |     pub fn apply_dct(&self, dst: &mut Block) {
[INFO] [stdout]      |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1125 |     pub fn revert_dct2(&mut self) {
[INFO] [stdout]      |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1129 |     pub fn revert_dct(&self, dst: &mut Block) {
[INFO] [stdout]      |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1135 |     pub fn quantization(&mut self) {
[INFO] [stdout]      |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1141 |     pub fn dequantization(&mut self) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1147 |     pub fn unwrap(&self, dst: &mut Block) {
[INFO] [stdout]      |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1153 |     pub fn wrap(&self, dst: &mut Block) {
[INFO] [stdout]      |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1236 |     fn process_pixel(&self, index: usize) -> i16 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1250 |     pub fn encode2(&mut self, writer: &mut BitWriter, is_luma: bool, quality: f64) -> Result<()> {
[INFO] [stdout]      |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1401 |     pub fn get_encoded_size(&self, qmatrix: &[f64], is_luma: bool) -> usize {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1456 |     pub fn decode2(&mut self, reader: &mut BitReader, is_luma: bool, quality: f64) -> Result<()> {
[INFO] [stdout]      |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1510 |     pub fn decode3(&mut self, qmatrix: &[f64]) {
[INFO] [stdout]      |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1517 |     pub fn read(&mut self, reader: &mut BitReader, is_luma: bool) -> Result<()> {
[INFO] [stdout]      |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1560 |     pub fn normalize(&mut self) {
[INFO] [stdout]      |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1566 |     pub fn denormalize(&mut self) {
[INFO] [stdout]      |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_file` is never used
[INFO] [stdout]     --> src/blocks.rs:1590:12
[INFO] [stdout]      |
[INFO] [stdout] 1573 | impl QMatrices {
[INFO] [stdout]      | -------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 1590 |     pub fn from_file(file: &mut dyn Read) -> Result<QMatrices> {
[INFO] [stdout]      |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `yuv2rgb` is never used
[INFO] [stdout]   --> src/colors.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub fn yuv2rgb(y: f64, u: f64, v: f64) -> (u8, u8, u8) {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `block_stat` is never used
[INFO] [stdout]   --> src/motion.rs:44:8
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub fn block_stat(a: &Plane, ax: u32, ay: u32, b: &Plane, bx: u32, by: u32) -> (f64, f64) {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `block_diff_ult` is never used
[INFO] [stdout]   --> src/motion.rs:66:4
[INFO] [stdout]    |
[INFO] [stdout] 66 | fn block_diff_ult(a: &VideoFrame, ax: u32, ay: u32, b: &VideoFrame, bx: u32, by: u32, qmatrices: &QMatrices) -> usize {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `calculate_ult` and `read` are never used
[INFO] [stdout]    --> src/motion.rs:125:12
[INFO] [stdout]     |
[INFO] [stdout]  76 | impl MotionMap {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 125 |     pub fn calculate_ult(&mut self, cur_frame: &VideoFrame, prev_frame: &VideoFrame, qmatrices: &QMatrices) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 190 |     pub fn read(&mut self, reader: &mut dyn Read) -> Result<()> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `height` is never read
[INFO] [stdout]   --> src/planes.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub struct Plane {
[INFO] [stdout]    |            ----- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 12 |     height: u32,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Plane` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `height`, `get`, `plane2luma`, and `apply_block` are never used
[INFO] [stdout]   --> src/planes.rs:28:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl Plane {
[INFO] [stdout]    | ---------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub fn height(&self) -> u32 {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 52 |     pub fn get(&self, x: u32, y: u32) -> f64 {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 56 |     pub fn plane2luma(plane: &Plane, image: &mut GrayImage) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 70 |     pub fn apply_block(&mut self, x: u32, y: u32, block: &Block) {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `source_width` and `source_height` are never read
[INFO] [stdout]   --> src/videocode.rs:27:9
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub struct VideoFrame {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 27 |     pub source_width: u32,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 28 |     pub source_height: u32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `VideoFrame` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `save_to_image` and `apply_macroblock` are never used
[INFO] [stdout]    --> src/videocode.rs:85:12
[INFO] [stdout]     |
[INFO] [stdout]  42 | impl VideoFrame {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  85 |     pub fn save_to_image<P: AsRef<Path>>(&self, filename: P) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 107 |     pub fn apply_macroblock(&mut self, x: u32, y: u32, block: &MacroBlock) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `add`, `get_encoded_size`, `decode`, and `read` are never used
[INFO] [stdout]    --> src/videocode.rs:130:12
[INFO] [stdout]     |
[INFO] [stdout] 117 | impl MacroBlock {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 130 |     pub fn add(&mut self, other: &MacroBlock) {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 165 |     pub fn get_encoded_size(&self, qmatrices: &QMatrices) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 174 |     pub fn decode(&mut self, qmatrices: &QMatrices) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 183 |     pub fn read(&mut self, reader: &mut BitReader) -> Result<()> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]   --> src/bitio.rs:18:46
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub fn new(writer: &'a mut dyn Write) -> BitWriter {
[INFO] [stdout]    |                         --                   ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                         |
[INFO] [stdout]    |                         the lifetime is named here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub fn new(writer: &'a mut dyn Write) -> BitWriter<'a> {
[INFO] [stdout]    |                                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]    --> src/bitio.rs:123:45
[INFO] [stdout]     |
[INFO] [stdout] 123 |     pub fn new(reader: &'a mut dyn Read) -> BitReader {
[INFO] [stdout]     |                         --                  ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         the lifetime is named here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]     |
[INFO] [stdout] 123 |     pub fn new(reader: &'a mut dyn Read) -> BitReader<'a> {
[INFO] [stdout]     |                                                      ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1.41s
[INFO] running `Command { std: "docker" "inspect" "923ed222ce9d1bb50a8e6f39c3ed4f0050362c9f4e922104b34f84ba85fc6e82", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "923ed222ce9d1bb50a8e6f39c3ed4f0050362c9f4e922104b34f84ba85fc6e82", kill_on_drop: false }`
[INFO] [stdout] 923ed222ce9d1bb50a8e6f39c3ed4f0050362c9f4e922104b34f84ba85fc6e82
