[INFO] fetching crate physis 0.3.0...
[INFO] checking physis-0.3.0 against try#31561a63598a0f21fc74c024747ef1310fdd2eb2 for pr-133536
[INFO] extracting crate physis 0.3.0 into /workspace/builds/worker-0-tc2/source
[INFO] validating manifest of crates.io crate physis 0.3.0 on toolchain 31561a63598a0f21fc74c024747ef1310fdd2eb2
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+31561a63598a0f21fc74c024747ef1310fdd2eb2" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking crates.io crate physis 0.3.0
[INFO] finished tweaking crates.io crate physis 0.3.0
[INFO] tweaked toml for crates.io crate physis 0.3.0 written to /workspace/builds/worker-0-tc2/source/Cargo.toml
[INFO] crate crates.io crate physis 0.3.0 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" "+31561a63598a0f21fc74c024747ef1310fdd2eb2" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4a844ea9eb2546a2d2c7022eacef16ef2e8229c7fbb2c7d4d55a9ceca922f72d" "/opt/rustwide/cargo-home/bin/cargo" "+31561a63598a0f21fc74c024747ef1310fdd2eb2" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 602de5e37a09d5cb2210ff22d1c58deea7810bae57df97f438d802dc0904b58a
[INFO] running `Command { std: "docker" "start" "-a" "602de5e37a09d5cb2210ff22d1c58deea7810bae57df97f438d802dc0904b58a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "602de5e37a09d5cb2210ff22d1c58deea7810bae57df97f438d802dc0904b58a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "602de5e37a09d5cb2210ff22d1c58deea7810bae57df97f438d802dc0904b58a", kill_on_drop: false }`
[INFO] [stdout] 602de5e37a09d5cb2210ff22d1c58deea7810bae57df97f438d802dc0904b58a
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4a844ea9eb2546a2d2c7022eacef16ef2e8229c7fbb2c7d4d55a9ceca922f72d" "/opt/rustwide/cargo-home/bin/cargo" "+31561a63598a0f21fc74c024747ef1310fdd2eb2" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 6f6dfd6b35defd36343fabf983b03975f5ccaeab4a4f97d6e567e7bc7f94b0f9
[INFO] running `Command { std: "docker" "start" "-a" "6f6dfd6b35defd36343fabf983b03975f5ccaeab4a4f97d6e567e7bc7f94b0f9", kill_on_drop: false }`
[INFO] [stderr]    Compiling serde v1.0.203
[INFO] [stderr]    Compiling proc-macro2 v1.0.83
[INFO] [stderr]    Compiling unicode-ident v1.0.12
[INFO] [stderr]    Compiling hashbrown v0.14.5
[INFO] [stderr]    Compiling target-lexicon v0.12.14
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling winnow v0.6.13
[INFO] [stderr]    Compiling cc v1.0.98
[INFO] [stderr]    Compiling pkg-config v0.3.30
[INFO] [stderr]    Compiling libc v0.2.155
[INFO] [stderr]    Compiling binrw_derive v0.13.3
[INFO] [stderr]    Compiling indexmap v2.2.6
[INFO] [stderr]    Compiling cmake v0.1.50
[INFO] [stderr]    Compiling cfg-expr v0.15.8
[INFO] [stderr]    Compiling quote v1.0.36
[INFO] [stderr]    Compiling either v1.12.0
[INFO] [stderr]    Compiling dactyl v0.7.1
[INFO] [stderr]     Checking once_cell v1.19.0
[INFO] [stderr]    Compiling binrw v0.13.3
[INFO] [stderr]     Checking tracing-core v0.1.32
[INFO] [stderr]    Compiling libz-ng-sys v1.1.15
[INFO] [stderr]     Checking pin-project-lite v0.2.14
[INFO] [stderr]     Checking array-init v2.1.0
[INFO] [stderr]     Checking bytemuck v1.16.0
[INFO] [stderr]     Checking static_assertions v1.1.0
[INFO] [stderr]     Checking tracing v0.1.40
[INFO] [stderr]     Checking half v2.4.1
[INFO] [stderr]     Checking texture2ddecoder v0.0.5
[INFO] [stderr]     Checking unicode-width v0.1.12
[INFO] [stderr]     Checking crc-catalog v2.4.0
[INFO] [stderr]     Checking crc v3.2.1
[INFO] [stderr]     Checking hmac-sha512 v1.1.5
[INFO] [stderr]     Checking brunch v0.5.3
[INFO] [stderr]    Compiling serde_spanned v0.6.6
[INFO] [stderr]    Compiling toml_datetime v0.6.6
[INFO] [stderr]    Compiling toml_edit v0.22.14
[INFO] [stderr]    Compiling toml v0.8.14
[INFO] [stderr]    Compiling modular-bitfield-impl v0.11.2
[INFO] [stderr]    Compiling system-deps v7.0.1
[INFO] [stderr]    Compiling physis v0.3.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Checking modular-bitfield v0.11.2
[INFO] [stdout] warning: unnecessary parentheses around index expression
[INFO] [stdout]    --> src/model.rs:755:55
[INFO] [stdout]     |
[INFO] [stdout] 755 | ...                   let new_vertex = vertices[(shape_value.replacing_vertex_index
[INFO] [stdout]     |                                                 ^
[INFO] [stdout] 756 | ...                       as usize)];
[INFO] [stdout]     |                                   ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 755 ~                             let new_vertex = vertices[shape_value.replacing_vertex_index
[INFO] [stdout] 756 ~                                 as usize];
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `std`
[INFO] [stdout]    --> src/sha1.rs:289:11
[INFO] [stdout]     |
[INFO] [stdout] 289 |     #[cfg(feature = "std")]
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected values for `feature` are: `default`, `game_install`, `patch_testing`, `retail_game_testing`, and `visual_data`
[INFO] [stdout]     = help: consider adding `std` as a feature in `Cargo.toml`
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]     = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Half1` and `Half3`
[INFO] [stdout]  --> src/stm.rs:6:37
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::common_file_operations::{Half1, Half3};
[INFO] [stdout]   |                                     ^^^^^  ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Path`
[INFO] [stdout]  --> src/existing_dirs.rs:7:17
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tracing::warn`
[INFO] [stdout]  --> src/existing_dirs.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use tracing::warn;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around index expression
[INFO] [stdout]    --> src/model.rs:755:55
[INFO] [stdout]     |
[INFO] [stdout] 755 | ...                   let new_vertex = vertices[(shape_value.replacing_vertex_index
[INFO] [stdout]     |                                                 ^
[INFO] [stdout] 756 | ...                       as usize)];
[INFO] [stdout]     |                                   ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 755 ~                             let new_vertex = vertices[shape_value.replacing_vertex_index
[INFO] [stdout] 756 ~                                 as usize];
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `std`
[INFO] [stdout]    --> src/sha1.rs:289:11
[INFO] [stdout]     |
[INFO] [stdout] 289 |     #[cfg(feature = "std")]
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected values for `feature` are: `default`, `game_install`, `patch_testing`, `retail_game_testing`, and `visual_data`
[INFO] [stdout]     = help: consider adding `std` as a feature in `Cargo.toml`
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]     = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Half1` and `Half3`
[INFO] [stdout]  --> src/stm.rs:6:37
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::common_file_operations::{Half1, Half3};
[INFO] [stdout]   |                                     ^^^^^  ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Path`
[INFO] [stdout]  --> src/existing_dirs.rs:7:17
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tracing::warn`
[INFO] [stdout]  --> src/existing_dirs.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use tracing::warn;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `std::env::home_dir`: This function's behavior may be unexpected on Windows. Consider using a crate from crates.io instead.
[INFO] [stdout]  --> src/existing_dirs.rs:4:15
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::env::home_dir;
[INFO] [stdout]   |               ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `std::env::home_dir`: This function's behavior may be unexpected on Windows. Consider using a crate from crates.io instead.
[INFO] [stdout]    --> src/existing_dirs.rs:114:26
[INFO] [stdout]     |
[INFO] [stdout] 114 |     let Some(home_dir) = home_dir() else {
[INFO] [stdout]     |                          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `std::env::home_dir`: This function's behavior may be unexpected on Windows. Consider using a crate from crates.io instead.
[INFO] [stdout]    --> src/existing_dirs.rs:178:24
[INFO] [stdout]     |
[INFO] [stdout] 178 |     let mut new_path = home_dir().unwrap();
[INFO] [stdout]     |                        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `std::env::home_dir`: This function's behavior may be unexpected on Windows. Consider using a crate from crates.io instead.
[INFO] [stdout]  --> src/existing_dirs.rs:4:15
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::env::home_dir;
[INFO] [stdout]   |               ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `std::env::home_dir`: This function's behavior may be unexpected on Windows. Consider using a crate from crates.io instead.
[INFO] [stdout]    --> src/existing_dirs.rs:114:26
[INFO] [stdout]     |
[INFO] [stdout] 114 |     let Some(home_dir) = home_dir() else {
[INFO] [stdout]     |                          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `std::env::home_dir`: This function's behavior may be unexpected on Windows. Consider using a crate from crates.io instead.
[INFO] [stdout]    --> src/existing_dirs.rs:178:24
[INFO] [stdout]     |
[INFO] [stdout] 178 |     let mut new_path = home_dir().unwrap();
[INFO] [stdout]     |                        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `chunk`
[INFO] [stdout]    --> src/gamedata.rs:200:26
[INFO] [stdout]     |
[INFO] [stdout] 200 |             Some((entry, chunk)) => {
[INFO] [stdout]     |                          ^^^^^ help: if this is intentional, prefix it with an underscore: `_chunk`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `padding`
[INFO] [stdout]   --> src/index.rs:55:5
[INFO] [stdout]    |
[INFO] [stdout] 55 |     padding: u32,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: `padding` is captured in macro and introduced a unused variable
[INFO] [stdout]   --> src/index.rs:45:1
[INFO] [stdout]    |
[INFO] [stdout] 45 | #[binrw]
[INFO] [stdout]    | ^^^^^^^^
[INFO] [stdout]    = note: this warning originates in the attribute macro `binrw` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `chunk`
[INFO] [stdout]    --> src/gamedata.rs:200:26
[INFO] [stdout]     |
[INFO] [stdout] 200 |             Some((entry, chunk)) => {
[INFO] [stdout]     |                          ^^^^^ help: if this is intentional, prefix it with an underscore: `_chunk`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `padding`
[INFO] [stdout]   --> src/index.rs:55:5
[INFO] [stdout]    |
[INFO] [stdout] 55 |     padding: u32,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: `padding` is captured in macro and introduced a unused variable
[INFO] [stdout]   --> src/index.rs:45:1
[INFO] [stdout]    |
[INFO] [stdout] 45 | #[binrw]
[INFO] [stdout]    | ^^^^^^^^
[INFO] [stdout]    = note: this warning originates in the attribute macro `binrw` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `unknown1`
[INFO] [stdout]    --> src/shpk.rs:156:5
[INFO] [stdout]     |
[INFO] [stdout] 156 |     unknown1: u16,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: `unknown1` is captured in macro and introduced a unused variable
[INFO] [stdout]    --> src/shpk.rs:128:1
[INFO] [stdout]     |
[INFO] [stdout] 128 | #[binread]
[INFO] [stdout]     | ^^^^^^^^^^
[INFO] [stdout]     = note: this warning originates in the attribute macro `binread` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `unknown2`
[INFO] [stdout]    --> src/shpk.rs:161:5
[INFO] [stdout]     |
[INFO] [stdout] 161 |     unknown2: u16,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: `unknown2` is captured in macro and introduced a unused variable
[INFO] [stdout]    --> src/shpk.rs:128:1
[INFO] [stdout]     |
[INFO] [stdout] 128 | #[binread]
[INFO] [stdout]     | ^^^^^^^^^^
[INFO] [stdout]     = note: this warning originates in the attribute macro `binread` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `unknown1`
[INFO] [stdout]    --> src/shpk.rs:156:5
[INFO] [stdout]     |
[INFO] [stdout] 156 |     unknown1: u16,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: `unknown1` is captured in macro and introduced a unused variable
[INFO] [stdout]    --> src/shpk.rs:128:1
[INFO] [stdout]     |
[INFO] [stdout] 128 | #[binread]
[INFO] [stdout]     | ^^^^^^^^^^
[INFO] [stdout]     = note: this warning originates in the attribute macro `binread` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `unknown2`
[INFO] [stdout]    --> src/shpk.rs:161:5
[INFO] [stdout]     |
[INFO] [stdout] 161 |     unknown2: u16,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: `unknown2` is captured in macro and introduced a unused variable
[INFO] [stdout]    --> src/shpk.rs:128:1
[INFO] [stdout]     |
[INFO] [stdout] 128 | #[binread]
[INFO] [stdout]     | ^^^^^^^^^^
[INFO] [stdout]     = note: this warning originates in the attribute macro `binread` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `home_dir`
[INFO] [stdout]    --> src/existing_dirs.rs:114:14
[INFO] [stdout]     |
[INFO] [stdout] 114 |     let Some(home_dir) = home_dir() else {
[INFO] [stdout]     |              ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_home_dir`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `home_dir`
[INFO] [stdout]    --> src/existing_dirs.rs:114:14
[INFO] [stdout]     |
[INFO] [stdout] 114 |     let Some(home_dir) = home_dir() else {
[INFO] [stdout]     |              ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_home_dir`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `num_blocks`, `num_used_blocks`, `uncompressed_size`, `compressed_size`, and `index` are never read
[INFO] [stdout]    --> src/dat.rs:93:9
[INFO] [stdout]     |
[INFO] [stdout] 92  | pub struct ModelFileBlock {
[INFO] [stdout]     |            -------------- fields in this struct
[INFO] [stdout] 93  |     pub num_blocks: u32,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 94  |     pub num_used_blocks: u32,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 97  |     pub uncompressed_size: ModelMemorySizes<u32>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 98  |     pub compressed_size: ModelMemorySizes<u32>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 99  |     pub offset: ModelMemorySizes<u32>,
[INFO] [stdout] 100 |     pub index: ModelMemorySizes<u16>,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `duration` and `sample` are never used
[INFO] [stdout]  --> src/havok/animation.rs:7:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub trait HavokAnimation {
[INFO] [stdout]   |           -------------- methods in this trait
[INFO] [stdout] 7 |     fn duration(&self) -> f32;
[INFO] [stdout]   |        ^^^^^^^^
[INFO] [stdout] 8 |     fn sample(&self, time: f32) -> Vec<HavokTransform>;
[INFO] [stdout]   |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `transform_track_to_bone_indices`, `blend_hint`, and `animation` are never read
[INFO] [stdout]   --> src/havok/animation_binding.rs:27:9
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub struct HavokAnimationBinding {
[INFO] [stdout]    |            --------------------- fields in this struct
[INFO] [stdout] 27 |     pub transform_track_to_bone_indices: Vec<u16>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 28 |     pub blend_hint: HavokAnimationBlendHint,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 29 |     pub animation: Box<dyn HavokAnimation>,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `bindings` is never read
[INFO] [stdout]   --> src/havok/animation_container.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct HavokAnimationContainer {
[INFO] [stdout]    |            ----------------------- field in this struct
[INFO] [stdout] 11 |     pub skeletons: Vec<HavokSkeleton>,
[INFO] [stdout] 12 |     pub bindings: Vec<HavokAnimationBinding>,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `tuple_size` is never read
[INFO] [stdout]    --> src/havok/object.rs:168:9
[INFO] [stdout]     |
[INFO] [stdout] 165 | pub struct HavokObjectTypeMember {
[INFO] [stdout]     |            --------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 168 |     pub tuple_size: u32,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `to_int_be` and `to_float_be` are never used
[INFO] [stdout]   --> src/havok/slice_ext.rs:7:8
[INFO] [stdout]    |
[INFO] [stdout] 6  | pub trait SliceByteOrderExt {
[INFO] [stdout]    |           ----------------- methods in this trait
[INFO] [stdout] 7  |     fn to_int_be<T>(&self) -> T
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 15 |     fn to_float_be<T>(&self) -> T
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `bone_name_offsets` is never read
[INFO] [stdout]   --> src/pbd.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | struct RacialDeformer {
[INFO] [stdout]    |        -------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 19 |     bone_name_offsets: Vec<u16>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `RacialDeformer` 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 `first_child_index` is never read
[INFO] [stdout]   --> src/pbd.rs:56:5
[INFO] [stdout]    |
[INFO] [stdout] 54 | struct PreBoneDeformerLink {
[INFO] [stdout]    |        ------------------- field in this struct
[INFO] [stdout] 55 |     parent_index: i16,
[INFO] [stdout] 56 |     first_child_index: i16,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PreBoneDeformerLink` 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 `count` is never read
[INFO] [stdout]   --> src/pbd.rs:65:5
[INFO] [stdout]    |
[INFO] [stdout] 64 | struct PreBoneDeformerHeader {
[INFO] [stdout]    |        --------------------- field in this struct
[INFO] [stdout] 65 |     count: i32,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PreBoneDeformerHeader` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `simd_eq` is never used
[INFO] [stdout]   --> src/sha1.rs:25:8
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub trait SimdExt {
[INFO] [stdout]    |           ------- method in this trait
[INFO] [stdout] 25 |     fn simd_eq(self, rhs: Self) -> Self;
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> src/schd.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 23 | struct SchdHeader {
[INFO] [stdout]    |        ---------- fields in this struct
[INFO] [stdout] 24 |     magic: i32, // TODO: what magic?
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 30 |     version: String,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 31 |
[INFO] [stdout] 32 |     stage: ShaderStage,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 33 |
[INFO] [stdout] 34 |     dxc_magic: u32, // TODO: WHAT MAGIC??
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 35 |
[INFO] [stdout] 36 |     file_length: i32,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 37 |     shader_offset: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 38 |     parameter_offset: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SchdHeader` 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 `version`, `data_type`, `collision_offset`, and `simulator_offset` are never read
[INFO] [stdout]   --> src/phyb.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | struct PhybHeader {
[INFO] [stdout]    |        ---------- fields in this struct
[INFO] [stdout] 14 |     version: [u8; 4],
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 18 |     data_type: u32,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 19 |
[INFO] [stdout] 20 |     collision_offset: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 21 |     simulator_offset: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PhybHeader` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]    --> src/avfx.rs:221:5
[INFO] [stdout]     |
[INFO] [stdout] 178 | pub struct Avfx {
[INFO] [stdout]     |            ---- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 221 |     schedulers: Vec<AvfxBlock>,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 222 |     timelines: Vec<AvfxBlock>,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 223 |     emitters: Vec<AvfxBlock>,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 224 |     particles: Vec<AvfxBlock>,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 225 |     effectors: Vec<AvfxBlock>,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 226 |     binders: Vec<AvfxBlock>,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 227 |     textures: Vec<String>,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 228 |     model: Vec<AvfxBlock>,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Avfx` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_ELEMENTS` is never used
[INFO] [stdout]   --> src/stm.rs:12:7
[INFO] [stdout]    |
[INFO] [stdout] 12 | const MAX_ELEMENTS: usize = 128;
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `diffuse`, `specular`, `emissive`, `gloss`, and `specular_power` are never read
[INFO] [stdout]   --> src/stm.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub struct DyePack {
[INFO] [stdout]    |            ------- fields in this struct
[INFO] [stdout] 30 |     diffuse: [f32; 3],
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 31 |     specular: [f32; 3],
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 32 |     emissive: [f32; 3],
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 33 |     gloss: f32,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 34 |     specular_power: f32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DyePack` 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 `read_array` is never used
[INFO] [stdout]   --> src/stm.rs:70:8
[INFO] [stdout]    |
[INFO] [stdout] 40 | impl StainingTemplate {
[INFO] [stdout]    | --------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 70 |     fn read_array<T: binrw::BinRead<Args<'static> = ()> + Default + Clone + Copy>(
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `num_blocks`, `num_used_blocks`, `uncompressed_size`, `compressed_size`, and `index` are never read
[INFO] [stdout]    --> src/dat.rs:93:9
[INFO] [stdout]     |
[INFO] [stdout] 92  | pub struct ModelFileBlock {
[INFO] [stdout]     |            -------------- fields in this struct
[INFO] [stdout] 93  |     pub num_blocks: u32,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 94  |     pub num_used_blocks: u32,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 97  |     pub uncompressed_size: ModelMemorySizes<u32>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 98  |     pub compressed_size: ModelMemorySizes<u32>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 99  |     pub offset: ModelMemorySizes<u32>,
[INFO] [stdout] 100 |     pub index: ModelMemorySizes<u16>,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `duration` and `sample` are never used
[INFO] [stdout]  --> src/havok/animation.rs:7:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub trait HavokAnimation {
[INFO] [stdout]   |           -------------- methods in this trait
[INFO] [stdout] 7 |     fn duration(&self) -> f32;
[INFO] [stdout]   |        ^^^^^^^^
[INFO] [stdout] 8 |     fn sample(&self, time: f32) -> Vec<HavokTransform>;
[INFO] [stdout]   |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `transform_track_to_bone_indices`, `blend_hint`, and `animation` are never read
[INFO] [stdout]   --> src/havok/animation_binding.rs:27:9
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub struct HavokAnimationBinding {
[INFO] [stdout]    |            --------------------- fields in this struct
[INFO] [stdout] 27 |     pub transform_track_to_bone_indices: Vec<u16>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 28 |     pub blend_hint: HavokAnimationBlendHint,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 29 |     pub animation: Box<dyn HavokAnimation>,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `bindings` is never read
[INFO] [stdout]   --> src/havok/animation_container.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct HavokAnimationContainer {
[INFO] [stdout]    |            ----------------------- field in this struct
[INFO] [stdout] 11 |     pub skeletons: Vec<HavokSkeleton>,
[INFO] [stdout] 12 |     pub bindings: Vec<HavokAnimationBinding>,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `tuple_size` is never read
[INFO] [stdout]    --> src/havok/object.rs:168:9
[INFO] [stdout]     |
[INFO] [stdout] 165 | pub struct HavokObjectTypeMember {
[INFO] [stdout]     |            --------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 168 |     pub tuple_size: u32,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `to_int_be` and `to_float_be` are never used
[INFO] [stdout]   --> src/havok/slice_ext.rs:7:8
[INFO] [stdout]    |
[INFO] [stdout] 6  | pub trait SliceByteOrderExt {
[INFO] [stdout]    |           ----------------- methods in this trait
[INFO] [stdout] 7  |     fn to_int_be<T>(&self) -> T
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 15 |     fn to_float_be<T>(&self) -> T
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `bone_name_offsets` is never read
[INFO] [stdout]   --> src/pbd.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | struct RacialDeformer {
[INFO] [stdout]    |        -------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 19 |     bone_name_offsets: Vec<u16>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `RacialDeformer` 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 `first_child_index` is never read
[INFO] [stdout]   --> src/pbd.rs:56:5
[INFO] [stdout]    |
[INFO] [stdout] 54 | struct PreBoneDeformerLink {
[INFO] [stdout]    |        ------------------- field in this struct
[INFO] [stdout] 55 |     parent_index: i16,
[INFO] [stdout] 56 |     first_child_index: i16,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PreBoneDeformerLink` 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 `count` is never read
[INFO] [stdout]   --> src/pbd.rs:65:5
[INFO] [stdout]    |
[INFO] [stdout] 64 | struct PreBoneDeformerHeader {
[INFO] [stdout]    |        --------------------- field in this struct
[INFO] [stdout] 65 |     count: i32,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PreBoneDeformerHeader` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `simd_eq` is never used
[INFO] [stdout]   --> src/sha1.rs:25:8
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub trait SimdExt {
[INFO] [stdout]    |           ------- method in this trait
[INFO] [stdout] 25 |     fn simd_eq(self, rhs: Self) -> Self;
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> src/schd.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 23 | struct SchdHeader {
[INFO] [stdout]    |        ---------- fields in this struct
[INFO] [stdout] 24 |     magic: i32, // TODO: what magic?
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 30 |     version: String,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 31 |
[INFO] [stdout] 32 |     stage: ShaderStage,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 33 |
[INFO] [stdout] 34 |     dxc_magic: u32, // TODO: WHAT MAGIC??
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 35 |
[INFO] [stdout] 36 |     file_length: i32,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 37 |     shader_offset: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 38 |     parameter_offset: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SchdHeader` 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 `version`, `data_type`, `collision_offset`, and `simulator_offset` are never read
[INFO] [stdout]   --> src/phyb.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | struct PhybHeader {
[INFO] [stdout]    |        ---------- fields in this struct
[INFO] [stdout] 14 |     version: [u8; 4],
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 18 |     data_type: u32,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 19 |
[INFO] [stdout] 20 |     collision_offset: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 21 |     simulator_offset: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PhybHeader` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]    --> src/avfx.rs:221:5
[INFO] [stdout]     |
[INFO] [stdout] 178 | pub struct Avfx {
[INFO] [stdout]     |            ---- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 221 |     schedulers: Vec<AvfxBlock>,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 222 |     timelines: Vec<AvfxBlock>,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 223 |     emitters: Vec<AvfxBlock>,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 224 |     particles: Vec<AvfxBlock>,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 225 |     effectors: Vec<AvfxBlock>,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 226 |     binders: Vec<AvfxBlock>,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 227 |     textures: Vec<String>,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 228 |     model: Vec<AvfxBlock>,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Avfx` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_ELEMENTS` is never used
[INFO] [stdout]   --> src/stm.rs:12:7
[INFO] [stdout]    |
[INFO] [stdout] 12 | const MAX_ELEMENTS: usize = 128;
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `diffuse`, `specular`, `emissive`, `gloss`, and `specular_power` are never read
[INFO] [stdout]   --> src/stm.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub struct DyePack {
[INFO] [stdout]    |            ------- fields in this struct
[INFO] [stdout] 30 |     diffuse: [f32; 3],
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 31 |     specular: [f32; 3],
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 32 |     emissive: [f32; 3],
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 33 |     gloss: f32,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 34 |     specular_power: f32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DyePack` 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 `read_array` is never used
[INFO] [stdout]   --> src/stm.rs:70:8
[INFO] [stdout]    |
[INFO] [stdout] 40 | impl StainingTemplate {
[INFO] [stdout]    | --------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 70 |     fn read_array<T: binrw::BinRead<Args<'static> = ()> + Default + Clone + Copy>(
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `hmac_sha512::Hash`
[INFO] [stdout]  --> tests/integration_test.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use hmac_sha512::Hash;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `physis::patch::apply_patch`
[INFO] [stdout]  --> tests/integration_test.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use physis::patch::apply_patch;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `read_dir`
[INFO] [stdout]  --> tests/integration_test.rs:7:21
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::fs::{read, read_dir};
[INFO] [stdout]   |                     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::process::Command`
[INFO] [stdout]  --> tests/integration_test.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::process::Command;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]   --> tests/integration_test.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::collections::HashMap;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `PathBuf` and `Path`
[INFO] [stdout]   --> tests/integration_test.rs:14:17
[INFO] [stdout]    |
[INFO] [stdout] 14 | use std::path::{Path, PathBuf};
[INFO] [stdout]    |                 ^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> examples/extractor.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 |     /// Collect our arguments
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 19 |     let game_dir = &args[1];
[INFO] [stdout]    |     ------------------------ rustdoc does not generate documentation for statements
[INFO] [stdout]    |
[INFO] [stdout]    = help: use `//` for a plain comment
[INFO] [stdout]    = note: `#[warn(unused_doc_comments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> examples/extractor.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 23 |       /// Create a GameData struct, this manages the repositories. It allows us to easily extract files.
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 24 | /     let Some(mut game_data) = GameData::from_existing(Platform::Win32, game_dir) else {
[INFO] [stdout] 25 | |         println!("Invalid game directory ({})!", game_dir);
[INFO] [stdout] 26 | |         return;
[INFO] [stdout] 27 | |     };
[INFO] [stdout]    | |______- rustdoc does not generate documentation for statements
[INFO] [stdout]    |
[INFO] [stdout]    = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> examples/extractor.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 29 |       /// Extract said file:
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 30 | /     let Some(game_file) = game_data.extract(file_path) else {
[INFO] [stdout] 31 | |         println!("File {} not found!", file_path);
[INFO] [stdout] 32 | |         return;
[INFO] [stdout] 33 | |     };
[INFO] [stdout]    | |______- rustdoc does not generate documentation for statements
[INFO] [stdout]    |
[INFO] [stdout]    = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> examples/extractor.rs:35:5
[INFO] [stdout]    |
[INFO] [stdout] 35 |       /// Create the file to write into.
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 36 | /     let Ok(mut file) = File::create(destination_path) else {
[INFO] [stdout] 37 | |         println!("Failed to open file {} for writing.", destination_path);
[INFO] [stdout] 38 | |         return;
[INFO] [stdout] 39 | |     };
[INFO] [stdout]    | |______- rustdoc does not generate documentation for statements
[INFO] [stdout]    |
[INFO] [stdout]    = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> examples/extractor.rs:41:5
[INFO] [stdout]    |
[INFO] [stdout] 41 |       /// Since GameData::extract returns a byte buffer, it's trivial to write that to a file on disk.
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 42 | /     if !file.write_all(&game_file).is_ok() {
[INFO] [stdout] 43 | |         println!("Failed to write to file {}.", destination_path);
[INFO] [stdout] 44 | |         return;
[INFO] [stdout] 45 | |     };
[INFO] [stdout]    | |_____- rustdoc does not generate documentation for expressions
[INFO] [stdout]    |
[INFO] [stdout]    = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `hmac_sha512::Hash`
[INFO] [stdout]  --> tests/patching_test.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use hmac_sha512::Hash;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `physis::patch::apply_patch`
[INFO] [stdout]  --> tests/patching_test.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use physis::patch::apply_patch;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::env`
[INFO] [stdout]  --> tests/patching_test.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::env;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Write`
[INFO] [stdout]  --> tests/patching_test.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::io::Write;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `read`
[INFO] [stdout]  --> tests/patching_test.rs:8:15
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::fs::{read, read_dir};
[INFO] [stdout]   |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::process::Command`
[INFO] [stdout]  --> tests/patching_test.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::process::Command;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `physis::common::Platform`
[INFO] [stdout]   --> tests/patching_test.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use physis::common::Platform;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `physis::fiin::FileInfo`
[INFO] [stdout]   --> tests/patching_test.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use physis::fiin::FileInfo;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `physis::index`
[INFO] [stdout]   --> tests/patching_test.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use physis::index;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]   --> tests/patching_test.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use std::collections::HashMap;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `fill_dir_hash` in this scope
[INFO] [stdout]    --> tests/patching_test.rs:117:29
[INFO] [stdout]     |
[INFO] [stdout] 117 |     let xivlauncher_files = fill_dir_hash(xivlauncher_dir);
[INFO] [stdout]     |                             ^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `fill_dir_hash` in this scope
[INFO] [stdout]    --> tests/patching_test.rs:118:24
[INFO] [stdout]     |
[INFO] [stdout] 118 |     let physis_files = fill_dir_hash(physis_dir);
[INFO] [stdout]     |                        ^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0425`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `physis` (test "patching_test") due to 2 previous errors; 10 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "6f6dfd6b35defd36343fabf983b03975f5ccaeab4a4f97d6e567e7bc7f94b0f9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6f6dfd6b35defd36343fabf983b03975f5ccaeab4a4f97d6e567e7bc7f94b0f9", kill_on_drop: false }`
[INFO] [stdout] 6f6dfd6b35defd36343fabf983b03975f5ccaeab4a4f97d6e567e7bc7f94b0f9
