[INFO] cloning repository https://github.com/expenses/draco-rs
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/expenses/draco-rs" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fexpenses%2Fdraco-rs", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fexpenses%2Fdraco-rs'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] dfd6e112ad16936ac12441bf741355a4999686a3
[INFO] checking expenses/draco-rs against e3d12f3322cb00126b2208c6b9df3ac4467951f5 for pr-159706
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fexpenses%2Fdraco-rs" "/workspace/builds/worker-1-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/expenses/draco-rs
[INFO] finished tweaking git repo https://github.com/expenses/draco-rs
[INFO] tweaked toml for git repo https://github.com/expenses/draco-rs written to /workspace/builds/worker-1-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/expenses/draco-rs on toolchain e3d12f3322cb00126b2208c6b9df3ac4467951f5
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+e3d12f3322cb00126b2208c6b9df3ac4467951f5" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/expenses/draco-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" "+e3d12f3322cb00126b2208c6b9df3ac4467951f5" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:00c5645b54fe3ce5dae1417175e3c7fb6a6646c021d554ecd63a097b8b9f3602" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 52fbe459ea394ddae7bcfc0ff6cdd5329eb8350cc3814bf79dd302cfeb38abb4
[INFO] running `Command { std: "docker" "start" "52fbe459ea394ddae7bcfc0ff6cdd5329eb8350cc3814bf79dd302cfeb38abb4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "52fbe459ea394ddae7bcfc0ff6cdd5329eb8350cc3814bf79dd302cfeb38abb4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "52fbe459ea394ddae7bcfc0ff6cdd5329eb8350cc3814bf79dd302cfeb38abb4" "/opt/rustwide/cargo-home/bin/cargo" "+e3d12f3322cb00126b2208c6b9df3ac4467951f5" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "52fbe459ea394ddae7bcfc0ff6cdd5329eb8350cc3814bf79dd302cfeb38abb4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-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" "-w" "/opt/rustwide/workdir" "--user" "0:0" "52fbe459ea394ddae7bcfc0ff6cdd5329eb8350cc3814bf79dd302cfeb38abb4" "/opt/rustwide/cargo-home/bin/cargo" "+e3d12f3322cb00126b2208c6b9df3ac4467951f5" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]     Checking leb128 v0.2.5
[INFO] [stderr]     Checking draco-rs v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/main.rs:118:15
[INFO] [stdout]     |
[INFO] [stdout] 118 |     } else if (data.num_points < (1  << 16)) {
[INFO] [stdout]     |               ^                            ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 118 -     } else if (data.num_points < (1  << 16)) {
[INFO] [stdout] 118 +     } else if data.num_points < (1  << 16) {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/main.rs:118:15
[INFO] [stdout]     |
[INFO] [stdout] 118 |     } else if (data.num_points < (1  << 16)) {
[INFO] [stdout]     |               ^                            ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 118 -     } else if (data.num_points < (1  << 16)) {
[INFO] [stdout] 118 +     } else if data.num_points < (1  << 16) {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]  --> src/main.rs:4:9
[INFO] [stdout]   |
[INFO] [stdout] 4 |     let mut bytes = std::fs::read(&filename).unwrap();
[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: `indices`
[INFO] [stdout]   --> src/main.rs:14:10
[INFO] [stdout]    |
[INFO] [stdout] 14 |     let (indices, conn_dat) = decode_connectivity_data(&header, &mut bytes);
[INFO] [stdout]    |          ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_indices`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `header`
[INFO] [stdout]   --> src/main.rs:70:40
[INFO] [stdout]    |
[INFO] [stdout] 70 | fn decode_sequential_connectivity_data(header: &Header, bytes: &mut &[u8]) -> (Vec<[u16; 3]>, SequentialConnectivityData) {
[INFO] [stdout]    |                                        ^^^^^^ help: if this is intentional, prefix it with an underscore: `_header`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]  --> src/main.rs:4:9
[INFO] [stdout]   |
[INFO] [stdout] 4 |     let mut bytes = std::fs::read(&filename).unwrap();
[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: `indices`
[INFO] [stdout]   --> src/main.rs:14:10
[INFO] [stdout]    |
[INFO] [stdout] 14 |     let (indices, conn_dat) = decode_connectivity_data(&header, &mut bytes);
[INFO] [stdout]    |          ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_indices`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/main.rs:128:9
[INFO] [stdout]     |
[INFO] [stdout] 128 |     for i in 0 .. data.num_faces {
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `header`
[INFO] [stdout]   --> src/main.rs:70:40
[INFO] [stdout]    |
[INFO] [stdout] 70 | fn decode_sequential_connectivity_data(header: &Header, bytes: &mut &[u8]) -> (Vec<[u16; 3]>, SequentialConnectivityData) {
[INFO] [stdout]    |                                        ^^^^^^ help: if this is intentional, prefix it with an underscore: `_header`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:158:13
[INFO] [stdout]     |
[INFO] [stdout] 158 |         let mut is_face_visited = vec![false; conn_dat.num_faces as usize];
[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:159:13
[INFO] [stdout]     |
[INFO] [stdout] 159 |         let mut is_vertex_visited = vec![false; conn_dat.num_faces as usize * 3];
[INFO] [stdout]     |             ----^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `vertex_visited_point_ids`
[INFO] [stdout]    --> src/main.rs:145:9
[INFO] [stdout]     |
[INFO] [stdout] 145 |     let vertex_visited_point_ids = vec![0; data.attributes.len()];
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_vertex_visited_point_ids`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `is_face_visited`
[INFO] [stdout]    --> src/main.rs:158:13
[INFO] [stdout]     |
[INFO] [stdout] 158 |         let mut is_face_visited = vec![false; conn_dat.num_faces as usize];
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_is_face_visited`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `is_vertex_visited`
[INFO] [stdout]    --> src/main.rs:159:13
[INFO] [stdout]     |
[INFO] [stdout] 159 |         let mut is_vertex_visited = vec![false; conn_dat.num_faces as usize * 3];
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_is_vertex_visited`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `curr_att_dec` is never read
[INFO] [stdout]    --> src/main.rs:147:28
[INFO] [stdout]     |
[INFO] [stdout] 147 |     let mut curr_att_dec = 0;
[INFO] [stdout]     |                            ^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 177 |         curr_att_dec = i;
[INFO] [stdout]     |         ---------------- `curr_att_dec` is overwritten here before the previous value is read
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/main.rs:128:9
[INFO] [stdout]     |
[INFO] [stdout] 128 |     for i in 0 .. data.num_faces {
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `curr_att_dec`
[INFO] [stdout]    --> src/main.rs:183:75
[INFO] [stdout]     |
[INFO] [stdout] 183 | fn decode_portable_attributes(attributes: &Attributes, bytes: &mut &[u8], curr_att_dec: usize) {
[INFO] [stdout]     |                                                                           ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_curr_att_dec`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/main.rs:184:9
[INFO] [stdout]     |
[INFO] [stdout] 184 |     for i in 0 .. attributes.attributes.len() {
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:158:13
[INFO] [stdout]     |
[INFO] [stdout] 158 |         let mut is_face_visited = vec![false; conn_dat.num_faces as usize];
[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:159:13
[INFO] [stdout]     |
[INFO] [stdout] 159 |         let mut is_vertex_visited = vec![false; conn_dat.num_faces as usize * 3];
[INFO] [stdout]     |             ----^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `vertex_visited_point_ids`
[INFO] [stdout]    --> src/main.rs:145:9
[INFO] [stdout]     |
[INFO] [stdout] 145 |     let vertex_visited_point_ids = vec![0; data.attributes.len()];
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_vertex_visited_point_ids`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `is_face_visited`
[INFO] [stdout]    --> src/main.rs:158:13
[INFO] [stdout]     |
[INFO] [stdout] 158 |         let mut is_face_visited = vec![false; conn_dat.num_faces as usize];
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_is_face_visited`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `is_vertex_visited`
[INFO] [stdout]    --> src/main.rs:159:13
[INFO] [stdout]     |
[INFO] [stdout] 159 |         let mut is_vertex_visited = vec![false; conn_dat.num_faces as usize * 3];
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_is_vertex_visited`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `curr_att_dec` is never read
[INFO] [stdout]    --> src/main.rs:147:28
[INFO] [stdout]     |
[INFO] [stdout] 147 |     let mut curr_att_dec = 0;
[INFO] [stdout]     |                            ^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 177 |         curr_att_dec = i;
[INFO] [stdout]     |         ---------------- `curr_att_dec` is overwritten here before the previous value is read
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `curr_att_dec`
[INFO] [stdout]    --> src/main.rs:183:75
[INFO] [stdout]     |
[INFO] [stdout] 183 | fn decode_portable_attributes(attributes: &Attributes, bytes: &mut &[u8], curr_att_dec: usize) {
[INFO] [stdout]     |                                                                           ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_curr_att_dec`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/main.rs:184:9
[INFO] [stdout]     |
[INFO] [stdout] 184 |     for i in 0 .. attributes.attributes.len() {
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `header`
[INFO] [stdout]    --> src/main.rs:284:14
[INFO] [stdout]     |
[INFO] [stdout] 284 |     fn parse(header: &Header, bytes: &mut &[u8]) -> Self {
[INFO] [stdout]     |              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_header`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `major_version`, `minor_version`, `encoder_type`, and `flags` are never read
[INFO] [stdout]   --> src/main.rs:37:5
[INFO] [stdout]    |
[INFO] [stdout] 36 | struct Header {
[INFO] [stdout]    |        ------ fields in this struct
[INFO] [stdout] 37 |     major_version: u8,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 38 |     minor_version: u8,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 39 |     encoder_type: u8,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 40 |     encoder_method: EncoderMethod,
[INFO] [stdout] 41 |     flags: u16,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Header` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PredictionData` is never constructed
[INFO] [stdout]    --> src/main.rs:191:8
[INFO] [stdout]     |
[INFO] [stdout] 191 | struct PredictionData {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `attribute_decoders` is never read
[INFO] [stdout]    --> src/main.rs:212:5
[INFO] [stdout]     |
[INFO] [stdout] 211 | struct AttributeDecodersData {
[INFO] [stdout]     |        --------------------- field in this struct
[INFO] [stdout] 212 |     attribute_decoders: Option<Vec<AttributeDecoder>>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `AttributeDecodersData` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `decoded_types` is never read
[INFO] [stdout]    --> src/main.rs:235:5
[INFO] [stdout]     |
[INFO] [stdout] 233 | struct Attributes {
[INFO] [stdout]     |        ---------- field in this struct
[INFO] [stdout] 234 |     attributes: Vec<Attribute>,
[INFO] [stdout] 235 |     decoded_types: Vec<u8>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Attributes` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `att_type`, `data_type`, `num_components`, `normalized`, and `dec_unique_id` are never read
[INFO] [stdout]    --> src/main.rs:257:5
[INFO] [stdout]     |
[INFO] [stdout] 256 | struct Attribute {
[INFO] [stdout]     |        --------- fields in this struct
[INFO] [stdout] 257 |     att_type: u8,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 258 |     data_type: u8,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 259 |     num_components: u8,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 260 |     normalized: u8,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 261 |     dec_unique_id: u32
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Attribute` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `data_id`, `decoder_type`, and `traversal_method` are never read
[INFO] [stdout]    --> src/main.rs:278:5
[INFO] [stdout]     |
[INFO] [stdout] 277 | struct AttributeDecoder {
[INFO] [stdout]     |        ---------------- fields in this struct
[INFO] [stdout] 278 |     data_id: u8,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 279 |     decoder_type: u8,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 280 |     traversal_method: u8,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `AttributeDecoder` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `parse` is never used
[INFO] [stdout]    --> src/main.rs:284:8
[INFO] [stdout]     |
[INFO] [stdout] 283 | impl AttributeDecoder {
[INFO] [stdout]     | --------------------- associated function in this implementation
[INFO] [stdout] 284 |     fn parse(header: &Header, bytes: &mut &[u8]) -> Self {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `header`
[INFO] [stdout]    --> src/main.rs:284:14
[INFO] [stdout]     |
[INFO] [stdout] 284 |     fn parse(header: &Header, bytes: &mut &[u8]) -> Self {
[INFO] [stdout]     |              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_header`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `major_version`, `minor_version`, `encoder_type`, and `flags` are never read
[INFO] [stdout]   --> src/main.rs:37:5
[INFO] [stdout]    |
[INFO] [stdout] 36 | struct Header {
[INFO] [stdout]    |        ------ fields in this struct
[INFO] [stdout] 37 |     major_version: u8,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 38 |     minor_version: u8,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 39 |     encoder_type: u8,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 40 |     encoder_method: EncoderMethod,
[INFO] [stdout] 41 |     flags: u16,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Header` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PredictionData` is never constructed
[INFO] [stdout]    --> src/main.rs:191:8
[INFO] [stdout]     |
[INFO] [stdout] 191 | struct PredictionData {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `attribute_decoders` is never read
[INFO] [stdout]    --> src/main.rs:212:5
[INFO] [stdout]     |
[INFO] [stdout] 211 | struct AttributeDecodersData {
[INFO] [stdout]     |        --------------------- field in this struct
[INFO] [stdout] 212 |     attribute_decoders: Option<Vec<AttributeDecoder>>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `AttributeDecodersData` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `decoded_types` is never read
[INFO] [stdout]    --> src/main.rs:235:5
[INFO] [stdout]     |
[INFO] [stdout] 233 | struct Attributes {
[INFO] [stdout]     |        ---------- field in this struct
[INFO] [stdout] 234 |     attributes: Vec<Attribute>,
[INFO] [stdout] 235 |     decoded_types: Vec<u8>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Attributes` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `att_type`, `data_type`, `num_components`, `normalized`, and `dec_unique_id` are never read
[INFO] [stdout]    --> src/main.rs:257:5
[INFO] [stdout]     |
[INFO] [stdout] 256 | struct Attribute {
[INFO] [stdout]     |        --------- fields in this struct
[INFO] [stdout] 257 |     att_type: u8,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 258 |     data_type: u8,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 259 |     num_components: u8,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 260 |     normalized: u8,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 261 |     dec_unique_id: u32
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Attribute` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `data_id`, `decoder_type`, and `traversal_method` are never read
[INFO] [stdout]    --> src/main.rs:278:5
[INFO] [stdout]     |
[INFO] [stdout] 277 | struct AttributeDecoder {
[INFO] [stdout]     |        ---------------- fields in this struct
[INFO] [stdout] 278 |     data_id: u8,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 279 |     decoder_type: u8,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 280 |     traversal_method: u8,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `AttributeDecoder` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `parse` is never used
[INFO] [stdout]    --> src/main.rs:284:8
[INFO] [stdout]     |
[INFO] [stdout] 283 | impl AttributeDecoder {
[INFO] [stdout]     | --------------------- associated function in this implementation
[INFO] [stdout] 284 |     fn parse(header: &Header, bytes: &mut &[u8]) -> Self {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.17s
[INFO] running `Command { std: "docker" "inspect" "52fbe459ea394ddae7bcfc0ff6cdd5329eb8350cc3814bf79dd302cfeb38abb4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "52fbe459ea394ddae7bcfc0ff6cdd5329eb8350cc3814bf79dd302cfeb38abb4", kill_on_drop: false }`
[INFO] [stdout] 52fbe459ea394ddae7bcfc0ff6cdd5329eb8350cc3814bf79dd302cfeb38abb4
