[INFO] cloning repository https://github.com/kmgill/psyche_raw_utils
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/kmgill/psyche_raw_utils" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkmgill%2Fpsyche_raw_utils", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkmgill%2Fpsyche_raw_utils'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 40b7bf565fdf8513d78047ba246a72857fb4fefd
[INFO] checking kmgill/psyche_raw_utils against master#1b8f2e46e14b08208a53585570edd9206374aae8 for pr-155418
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkmgill%2Fpsyche_raw_utils" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/kmgill/psyche_raw_utils
[INFO] finished tweaking git repo https://github.com/kmgill/psyche_raw_utils
[INFO] tweaked toml for git repo https://github.com/kmgill/psyche_raw_utils written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/kmgill/psyche_raw_utils on toolchain 1b8f2e46e14b08208a53585570edd9206374aae8
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1b8f2e46e14b08208a53585570edd9206374aae8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/kmgill/psyche_raw_utils 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" "+1b8f2e46e14b08208a53585570edd9206374aae8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Updating git repository `https://github.com/MarsRaw/sciimg.git`
[INFO] [stderr]     Updating git repository `https://github.com/MarsRaw/stump.git`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded string-builder v0.2.0
[INFO] [stderr]   Downloaded zmij v1.0.17
[INFO] [stderr]   Downloaded toml v0.9.11+spec-1.1.0
[INFO] [stderr]   Downloaded cli-table-derive v0.5.0
[INFO] [stderr]   Downloaded platforms v3.7.0
[INFO] [stderr]   Downloaded termsize v0.1.9
[INFO] [stderr]   Downloaded cli-table v0.5.0
[INFO] [stderr]   Downloaded zune-jpeg v0.5.11
[INFO] [stderr]   Downloaded dng v1.5.4
[INFO] [stderr]   Downloaded async-compression v0.4.37
[INFO] [stderr]   Downloaded nalgebra v0.30.1
[INFO] [stderr]   Downloaded imageproc v0.23.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1b8f2e46e14b08208a53585570edd9206374aae8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] ca7d1506c2eed26cc79b8700c710b45c4478830ad5d876c83a1b8704e272beed
[INFO] running `Command { std: "docker" "start" "-a" "ca7d1506c2eed26cc79b8700c710b45c4478830ad5d876c83a1b8704e272beed", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "ca7d1506c2eed26cc79b8700c710b45c4478830ad5d876c83a1b8704e272beed", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ca7d1506c2eed26cc79b8700c710b45c4478830ad5d876c83a1b8704e272beed", kill_on_drop: false }`
[INFO] [stdout] ca7d1506c2eed26cc79b8700c710b45c4478830ad5d876c83a1b8704e272beed
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1b8f2e46e14b08208a53585570edd9206374aae8" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] b8ee1f60dc8ef0694739f2357d3fab4ca2fda9c77c2dbc073f9d2d765ddc5823
[INFO] running `Command { std: "docker" "start" "-a" "b8ee1f60dc8ef0694739f2357d3fab4ca2fda9c77c2dbc073f9d2d765ddc5823", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.180
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]    Compiling zerocopy v0.8.34
[INFO] [stderr]    Compiling find-msvc-tools v0.1.8
[INFO] [stderr]     Checking flate2 v1.1.8
[INFO] [stderr]     Checking bytemuck v1.24.0
[INFO] [stderr]     Checking http v1.4.0
[INFO] [stderr]     Checking num-bigint v0.4.6
[INFO] [stderr]     Checking rustls-pki-types v1.14.0
[INFO] [stderr]     Checking brotli-decompressor v5.0.0
[INFO] [stderr]     Checking tracing v0.1.44
[INFO] [stderr]     Checking num-complex v0.4.6
[INFO] [stderr]    Compiling matrixmultiply v0.3.10
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling rustls v0.23.36
[INFO] [stderr]     Checking jpeg-decoder v0.3.2
[INFO] [stderr]    Compiling cc v1.2.54
[INFO] [stderr]     Checking approx v0.5.1
[INFO] [stderr]     Checking core2 v0.4.0
[INFO] [stderr]     Checking nom v8.0.0
[INFO] [stderr]     Checking ttf-parser v0.15.2
[INFO] [stderr]    Compiling json v0.12.4
[INFO] [stderr]     Checking ryu v1.0.22
[INFO] [stderr]     Checking compression-core v0.4.31
[INFO] [stderr]     Checking png v0.17.16
[INFO] [stderr]     Checking safe_arch v0.7.4
[INFO] [stderr]     Checking qoi v0.4.1
[INFO] [stderr]     Checking bitstream-io v4.9.0
[INFO] [stderr]    Compiling quote v1.0.44
[INFO] [stderr]     Checking brotli v8.0.2
[INFO] [stderr]     Checking tiff v0.9.1
[INFO] [stderr]     Checking gif v0.13.3
[INFO] [stderr]     Checking http-body v1.0.1
[INFO] [stderr]     Checking wide v0.7.33
[INFO] [stderr]     Checking num-iter v0.1.45
[INFO] [stderr]    Compiling syn v2.0.114
[INFO] [stderr]    Compiling simd_helpers v0.1.0
[INFO] [stderr]     Checking custom_derive v0.1.7
[INFO] [stderr]    Compiling rustix v1.1.3
[INFO] [stderr]    Compiling zmij v1.0.17
[INFO] [stderr]     Checking clap_lex v0.7.7
[INFO] [stderr]     Checking num-rational v0.4.2
[INFO] [stderr]    Compiling dng v1.5.4
[INFO] [stderr]    Compiling portable-atomic v1.13.0
[INFO] [stderr]     Checking clap_builder v4.5.54
[INFO] [stderr]     Checking chrono v0.4.43
[INFO] [stderr]     Checking conv v0.3.3
[INFO] [stderr]     Checking num v0.4.3
[INFO] [stderr]     Checking zune-jpeg v0.4.21
[INFO] [stderr]     Checking http-body-util v0.1.3
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]     Checking errno v0.3.14
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]     Checking signal-hook-registry v1.4.8
[INFO] [stderr]     Checking mio v1.1.1
[INFO] [stderr]     Checking socket2 v0.6.2
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]     Checking getrandom v0.2.17
[INFO] [stderr]     Checking getrandom v0.1.16
[INFO] [stderr]     Checking owned_ttf_parser v0.15.2
[INFO] [stderr]     Checking webpki-roots v1.0.5
[INFO] [stderr]     Checking avif-serialize v0.8.6
[INFO] [stderr]     Checking pxfm v0.1.27
[INFO] [stderr]     Checking rusttype v0.9.3
[INFO] [stderr]     Checking rand_core v0.5.1
[INFO] [stderr]     Checking itertools v0.10.5
[INFO] [stderr]     Checking rgb v0.8.52
[INFO] [stderr]     Checking winnow v0.7.14
[INFO] [stderr]     Checking regex-automata v0.4.13
[INFO] [stderr]     Checking zune-jpeg v0.5.11
[INFO] [stderr]    Compiling const_format_proc_macros v0.2.34
[INFO] [stderr]     Checking dirs-sys v0.5.0
[INFO] [stderr]     Checking csv v1.4.0
[INFO] [stderr]     Checking simba v0.7.3
[INFO] [stderr]     Checking memmap v0.7.0
[INFO] [stderr]     Checking termsize v0.1.9
[INFO] [stderr]     Checking getrandom v0.3.4
[INFO] [stderr]     Checking console v0.16.2
[INFO] [stderr]     Checking object v0.37.3
[INFO] [stderr]     Checking png v0.18.0
[INFO] [stderr]     Checking toml_datetime v0.7.5+spec-1.1.0
[INFO] [stderr]     Checking serde_spanned v1.0.4
[INFO] [stderr]     Checking string-builder v0.2.0
[INFO] [stderr]     Checking unit-prefix v0.5.2
[INFO] [stderr]     Checking lab v0.11.0
[INFO] [stderr]     Checking toml_writer v1.0.6+spec-1.1.0
[INFO] [stderr]     Checking toml_parser v1.0.6+spec-1.1.0
[INFO] [stderr]     Checking serde_json v1.0.149
[INFO] [stderr]     Checking const_format v0.2.35
[INFO] [stderr]     Checking indicatif v0.18.3
[INFO] [stderr]     Checking stump v0.2.1 (https://github.com/MarsRaw/stump.git#10c091eb)
[INFO] [stderr]     Checking dirs v6.0.0
[INFO] [stderr]     Checking wild v2.2.1
[INFO] [stderr]     Checking platforms v3.7.0
[INFO] [stderr]    Compiling derivative v2.2.0
[INFO] [stderr]     Checking toml v0.9.11+spec-1.1.0
[INFO] [stderr]     Checking compression-codecs v0.4.36
[INFO] [stderr]     Checking regex v1.12.2
[INFO] [stderr]     Checking tempfile v3.24.0
[INFO] [stderr]     Checking moxcms v0.7.11
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.1
[INFO] [stderr]    Compiling zerocopy-derive v0.8.34
[INFO] [stderr]    Compiling zerovec-derive v0.11.2
[INFO] [stderr]    Compiling tokio-macros v2.6.0
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling equator-macro v0.4.2
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling arg_enum_proc_macro v0.3.4
[INFO] [stderr]    Compiling profiling-procmacros v1.0.17
[INFO] [stderr]     Checking profiling v1.0.17
[INFO] [stderr]    Compiling num-derive v0.4.2
[INFO] [stderr]    Compiling fax_derive v0.2.0
[INFO] [stderr]     Checking tokio v1.49.0
[INFO] [stderr]     Checking rustls-webpki v0.103.9
[INFO] [stderr]     Checking nalgebra v0.30.1
[INFO] [stderr]    Compiling clap_derive v4.5.49
[INFO] [stderr]     Checking futures-util v0.3.31
[INFO] [stderr]    Compiling cli-table-derive v0.5.0
[INFO] [stderr]     Checking equator v0.4.2
[INFO] [stderr]     Checking backtrace v0.3.76
[INFO] [stderr]     Checking fax v0.2.6
[INFO] [stderr]     Checking aligned-vec v0.6.4
[INFO] [stderr]     Checking zerofrom v0.1.6
[INFO] [stderr]     Checking yoke v0.8.1
[INFO] [stderr]     Checking v_frame v0.3.9
[INFO] [stderr]     Checking cli-table v0.5.0
[INFO] [stderr]     Checking thiserror v2.0.18
[INFO] [stderr]     Checking av1-grain v0.2.5
[INFO] [stderr]     Checking zerovec v0.11.5
[INFO] [stderr]     Checking zerotrie v0.2.3
[INFO] [stderr]     Checking av-scenechange v0.14.1
[INFO] [stderr]     Checking clap v4.5.54
[INFO] [stderr]     Checking clap_complete v4.5.65
[INFO] [stderr]     Checking rav1e v0.8.1
[INFO] [stderr]     Checking tinystr v0.8.2
[INFO] [stderr]     Checking potential_utf v0.1.4
[INFO] [stderr]     Checking icu_collections v2.1.1
[INFO] [stderr]     Checking icu_locale_core v2.1.1
[INFO] [stderr]     Checking serde v1.0.228
[INFO] [stderr]     Checking icu_provider v2.1.1
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking icu_properties v2.1.2
[INFO] [stderr]     Checking icu_normalizer v2.1.1
[INFO] [stderr]     Checking futures-executor v0.3.31
[INFO] [stderr]     Checking futures v0.3.31
[INFO] [stderr]     Checking tokio-util v0.7.18
[INFO] [stderr]     Checking tower v0.5.3
[INFO] [stderr]     Checking async-compression v0.4.37
[INFO] [stderr]     Checking tokio-rustls v0.26.4
[INFO] [stderr]     Checking half v2.7.1
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]     Checking h2 v0.4.13
[INFO] [stderr]     Checking tower-http v0.6.8
[INFO] [stderr]     Checking idna_adapter v1.2.1
[INFO] [stderr]     Checking rand_chacha v0.2.2
[INFO] [stderr]     Checking exr v1.74.0
[INFO] [stderr]     Checking tiff v0.10.3
[INFO] [stderr]     Checking idna v1.1.0
[INFO] [stderr]     Checking rand v0.7.3
[INFO] [stderr]     Checking url v2.5.8
[INFO] [stderr]     Checking ravif v0.12.0
[INFO] [stderr]     Checking rand_distr v0.2.2
[INFO] [stderr]     Checking hyper v1.8.1
[INFO] [stderr]     Checking image v0.24.9
[INFO] [stderr]     Checking image v0.25.9
[INFO] [stderr]     Checking hyper-util v0.1.19
[INFO] [stderr]     Checking hyper-rustls v0.27.7
[INFO] [stderr]     Checking reqwest v0.12.28
[INFO] [stderr]     Checking imageproc v0.23.0
[INFO] [stderr]     Checking sciimg v0.5.0 (https://github.com/MarsRaw/sciimg.git?branch=kmgill_develop#0660577f)
[INFO] [stderr]     Checking psyche-raw-utils v0.0.1 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `crate::serializers`
[INFO] [stdout]  --> src/metadata.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::serializers;
[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 imports: `Deserialize` and `Serialize`
[INFO] [stdout]   --> src/psyche/fetch.rs:11:13
[INFO] [stdout]    |
[INFO] [stdout] 11 | use serde::{Deserialize, Serialize};
[INFO] [stdout]    |             ^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::serializers`
[INFO] [stdout]  --> src/metadata.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::serializers;
[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 imports: `Deserialize` and `Serialize`
[INFO] [stdout]   --> src/psyche/fetch.rs:11:13
[INFO] [stdout]    |
[INFO] [stdout] 11 | use serde::{Deserialize, Serialize};
[INFO] [stdout]    |             ^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_RED_WEIGHT` is never used
[INFO] [stdout]  --> src/constants.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub const DEFAULT_RED_WEIGHT: f32 = 1.0;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_GREEN_WEIGHT` is never used
[INFO] [stdout]  --> src/constants.rs:2:11
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub const DEFAULT_GREEN_WEIGHT: f32 = 1.0;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_BLUE_WEIGHT` is never used
[INFO] [stdout]  --> src/constants.rs:3:11
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub const DEFAULT_BLUE_WEIGHT: f32 = 1.0;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OUTPUT_FILENAME_APPEND` is never used
[INFO] [stdout]  --> src/constants.rs:5:11
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub const OUTPUT_FILENAME_APPEND: &str = "rjcal";
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `EMPTY` is never used
[INFO] [stdout]   --> src/constants.rs:18:15
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub const EMPTY: &str = "";
[INFO] [stdout]    |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OK` is never used
[INFO] [stdout]   --> src/constants.rs:19:15
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub const OK: &str = "ok";
[INFO] [stdout]    |               ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `STRUCT_IS_EMPTY` is never used
[INFO] [stdout]   --> src/constants.rs:20:15
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub const STRUCT_IS_EMPTY: &str = "Structure is empty";
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `INVALID_PIXEL_COORDINATES` is never used
[INFO] [stdout]   --> src/constants.rs:21:15
[INFO] [stdout]    |
[INFO] [stdout] 21 |     pub const INVALID_PIXEL_COORDINATES: &str = "Invalid pixel coordinates";
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARENT_NOT_EXISTS_OR_UNWRITABLE` is never used
[INFO] [stdout]   --> src/constants.rs:22:15
[INFO] [stdout]    |
[INFO] [stdout] 22 |     pub const PARENT_NOT_EXISTS_OR_UNWRITABLE: &str = "Parent does not exist or cannot be written";
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FILE_NOT_FOUND` is never used
[INFO] [stdout]   --> src/constants.rs:23:15
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub const FILE_NOT_FOUND: &str = "File not found";
[INFO] [stdout]    |               ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ARRAY_SIZE_MISMATCH` is never used
[INFO] [stdout]   --> src/constants.rs:24:15
[INFO] [stdout]    |
[INFO] [stdout] 24 |     pub const ARRAY_SIZE_MISMATCH: &str = "Array size mismatch";
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NOT_IMPLEMENTED` is never used
[INFO] [stdout]   --> src/constants.rs:25:15
[INFO] [stdout]    |
[INFO] [stdout] 25 |     pub const NOT_IMPLEMENTED: &str = "Not yet implemented";
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DIMENSIONS_DO_NOT_MATCH_VECTOR_LENGTH` is never used
[INFO] [stdout]   --> src/constants.rs:26:15
[INFO] [stdout]    |
[INFO] [stdout] 26 |     pub const DIMENSIONS_DO_NOT_MATCH_VECTOR_LENGTH: &str =
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ERROR_PARSING_JSON` is never used
[INFO] [stdout]   --> src/constants.rs:28:15
[INFO] [stdout]    |
[INFO] [stdout] 28 |     pub const ERROR_PARSING_JSON: &str = "Error parsing JSON";
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `INVALID_ENUM_VALUE` is never used
[INFO] [stdout]   --> src/constants.rs:29:15
[INFO] [stdout]    |
[INFO] [stdout] 29 |     pub const INVALID_ENUM_VALUE: &str = "Invalid enum value";
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `INVALID_RAW_VALUE` is never used
[INFO] [stdout]   --> src/constants.rs:30:15
[INFO] [stdout]    |
[INFO] [stdout] 30 |     pub const INVALID_RAW_VALUE: &str = "Invalid raw image value";
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `INVALID_FLOAT_VALUE` is never used
[INFO] [stdout]   --> src/constants.rs:31:15
[INFO] [stdout]    |
[INFO] [stdout] 31 |     pub const INVALID_FLOAT_VALUE: &str = "Invalid float value";
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `EVEN_NUMBER_REQUIRED` is never used
[INFO] [stdout]   --> src/constants.rs:33:15
[INFO] [stdout]    |
[INFO] [stdout] 33 |     pub const EVEN_NUMBER_REQUIRED: &str = "Value error: Even number required";
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `REMOTE_SERVER_ERROR` is never used
[INFO] [stdout]   --> src/constants.rs:34:15
[INFO] [stdout]    |
[INFO] [stdout] 34 |     pub const REMOTE_SERVER_ERROR: &str = "Remote server error";
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DOWNLOADING` is never used
[INFO] [stdout]   --> src/constants.rs:37:15
[INFO] [stdout]    |
[INFO] [stdout] 37 |     pub const DOWNLOADING: &str = "Downloading";
[INFO] [stdout]    |               ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `INVALID_CALIBRATION_FILE_ID` is never used
[INFO] [stdout]   --> src/constants.rs:38:15
[INFO] [stdout]    |
[INFO] [stdout] 38 |     pub const INVALID_CALIBRATION_FILE_ID: &str = "Invalid calibration file";
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARAM_VERBOSE` is never used
[INFO] [stdout]   --> src/constants.rs:43:15
[INFO] [stdout]    |
[INFO] [stdout] 43 |     pub const PARAM_VERBOSE: &str = "v";
[INFO] [stdout]    |               ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARAM_OUTPUT` is never used
[INFO] [stdout]   --> src/constants.rs:44:15
[INFO] [stdout]    |
[INFO] [stdout] 44 |     pub const PARAM_OUTPUT: &str = "output";
[INFO] [stdout]    |               ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARAM_OUTPUT_SHORT` is never used
[INFO] [stdout]   --> src/constants.rs:45:15
[INFO] [stdout]    |
[INFO] [stdout] 45 |     pub const PARAM_OUTPUT_SHORT: &str = "o";
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARAM_INPUTS` is never used
[INFO] [stdout]   --> src/constants.rs:46:15
[INFO] [stdout]    |
[INFO] [stdout] 46 |     pub const PARAM_INPUTS: &str = "inputs";
[INFO] [stdout]    |               ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARAM_INPUTS_SHORT` is never used
[INFO] [stdout]   --> src/constants.rs:47:15
[INFO] [stdout]    |
[INFO] [stdout] 47 |     pub const PARAM_INPUTS_SHORT: &str = "i";
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARAM_RED_WEIGHT` is never used
[INFO] [stdout]   --> src/constants.rs:49:15
[INFO] [stdout]    |
[INFO] [stdout] 49 |     pub const PARAM_RED_WEIGHT: &str = "red";
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARAM_RED_WEIGHT_SHORT` is never used
[INFO] [stdout]   --> src/constants.rs:50:15
[INFO] [stdout]    |
[INFO] [stdout] 50 |     pub const PARAM_RED_WEIGHT_SHORT: &str = "R";
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARAM_GREEN_WEIGHT` is never used
[INFO] [stdout]   --> src/constants.rs:52:15
[INFO] [stdout]    |
[INFO] [stdout] 52 |     pub const PARAM_GREEN_WEIGHT: &str = "green";
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARAM_GREEN_WEIGHT_SHORT` is never used
[INFO] [stdout]   --> src/constants.rs:53:15
[INFO] [stdout]    |
[INFO] [stdout] 53 |     pub const PARAM_GREEN_WEIGHT_SHORT: &str = "G";
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARAM_BLUE_WEIGHT` is never used
[INFO] [stdout]   --> src/constants.rs:55:15
[INFO] [stdout]    |
[INFO] [stdout] 55 |     pub const PARAM_BLUE_WEIGHT: &str = "blue";
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARAM_BLUE_WEIGHT_SHORT` is never used
[INFO] [stdout]   --> src/constants.rs:56:15
[INFO] [stdout]    |
[INFO] [stdout] 56 |     pub const PARAM_BLUE_WEIGHT_SHORT: &str = "B";
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARAM_COLOR_NOISE_REDUCTION` is never used
[INFO] [stdout]   --> src/constants.rs:58:15
[INFO] [stdout]    |
[INFO] [stdout] 58 |     pub const PARAM_COLOR_NOISE_REDUCTION: &str = "color_noise_reduction";
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARAM_COLOR_NOISE_REDUCTION_SHORT` is never used
[INFO] [stdout]   --> src/constants.rs:59:15
[INFO] [stdout]    |
[INFO] [stdout] 59 |     pub const PARAM_COLOR_NOISE_REDUCTION_SHORT: &str = "c";
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARAM_CAL_PROFILE` is never used
[INFO] [stdout]   --> src/constants.rs:61:15
[INFO] [stdout]    |
[INFO] [stdout] 61 |     pub const PARAM_CAL_PROFILE: &str = "profile";
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARAM_CAL_PROFILE_SHORT` is never used
[INFO] [stdout]   --> src/constants.rs:62:15
[INFO] [stdout]    |
[INFO] [stdout] 62 |     pub const PARAM_CAL_PROFILE_SHORT: &str = "P";
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARAM_RAW_COLOR` is never used
[INFO] [stdout]   --> src/constants.rs:65:15
[INFO] [stdout]    |
[INFO] [stdout] 65 |     pub const PARAM_RAW_COLOR: &str = "raw";
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARAM_RAW_COLOR_SHORT` is never used
[INFO] [stdout]   --> src/constants.rs:66:15
[INFO] [stdout]    |
[INFO] [stdout] 66 |     pub const PARAM_RAW_COLOR_SHORT: &str = "r";
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARAM_HPC_THRESHOLD` is never used
[INFO] [stdout]   --> src/constants.rs:69:15
[INFO] [stdout]    |
[INFO] [stdout] 69 |     pub const PARAM_HPC_THRESHOLD: &str = "hpc_threshold";
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARAM_HPC_THRESHOLD_SHORT` is never used
[INFO] [stdout]   --> src/constants.rs:70:15
[INFO] [stdout]    |
[INFO] [stdout] 70 |     pub const PARAM_HPC_THRESHOLD_SHORT: &str = "t";
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARAM_HPC_WINDOW_SIZE` is never used
[INFO] [stdout]   --> src/constants.rs:73:15
[INFO] [stdout]    |
[INFO] [stdout] 73 |     pub const PARAM_HPC_WINDOW_SIZE: &str = "hpc_window";
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARAM_HPC_WINDOW_SIZE_SHORT` is never used
[INFO] [stdout]   --> src/constants.rs:74:15
[INFO] [stdout]    |
[INFO] [stdout] 74 |     pub const PARAM_HPC_WINDOW_SIZE_SHORT: &str = "w";
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARAM_ONLY_NEW` is never used
[INFO] [stdout]   --> src/constants.rs:76:15
[INFO] [stdout]    |
[INFO] [stdout] 76 |     pub const PARAM_ONLY_NEW: &str = "new";
[INFO] [stdout]    |               ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARAM_ONLY_NEW_SHORT` is never used
[INFO] [stdout]   --> src/constants.rs:77:15
[INFO] [stdout]    |
[INFO] [stdout] 77 |     pub const PARAM_ONLY_NEW_SHORT: &str = "n";
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARAM_SCALE_FACTOR` is never used
[INFO] [stdout]   --> src/constants.rs:79:15
[INFO] [stdout]    |
[INFO] [stdout] 79 |     pub const PARAM_SCALE_FACTOR: &str = "factor";
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARAM_SCALE_FACTOR_SHORT` is never used
[INFO] [stdout]   --> src/constants.rs:80:15
[INFO] [stdout]    |
[INFO] [stdout] 80 |     pub const PARAM_SCALE_FACTOR_SHORT: &str = "f";
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARAM_LEVELS_WHITE_LEVEL` is never used
[INFO] [stdout]   --> src/constants.rs:82:15
[INFO] [stdout]    |
[INFO] [stdout] 82 |     pub const PARAM_LEVELS_WHITE_LEVEL: &str = "whitelevel";
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARAM_LEVELS_WHITE_LEVEL_SHORT` is never used
[INFO] [stdout]   --> src/constants.rs:83:15
[INFO] [stdout]    |
[INFO] [stdout] 83 |     pub const PARAM_LEVELS_WHITE_LEVEL_SHORT: &str = "w";
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARAM_LEVELS_BLACK_LEVEL` is never used
[INFO] [stdout]   --> src/constants.rs:85:15
[INFO] [stdout]    |
[INFO] [stdout] 85 |     pub const PARAM_LEVELS_BLACK_LEVEL: &str = "blacklevel";
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARAM_LEVELS_BLACK_LEVEL_SHORT` is never used
[INFO] [stdout]   --> src/constants.rs:86:15
[INFO] [stdout]    |
[INFO] [stdout] 86 |     pub const PARAM_LEVELS_BLACK_LEVEL_SHORT: &str = "b";
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARAM_GAMMA` is never used
[INFO] [stdout]   --> src/constants.rs:88:15
[INFO] [stdout]    |
[INFO] [stdout] 88 |     pub const PARAM_GAMMA: &str = "gamma";
[INFO] [stdout]    |               ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARAM_GAMMA_SHORT` is never used
[INFO] [stdout]   --> src/constants.rs:89:15
[INFO] [stdout]    |
[INFO] [stdout] 89 |     pub const PARAM_GAMMA_SHORT: &str = "g";
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARAM_DELAY` is never used
[INFO] [stdout]   --> src/constants.rs:91:15
[INFO] [stdout]    |
[INFO] [stdout] 91 |     pub const PARAM_DELAY: &str = "delay";
[INFO] [stdout]    |               ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARAM_DELAY_SHORT` is never used
[INFO] [stdout]   --> src/constants.rs:92:15
[INFO] [stdout]    |
[INFO] [stdout] 92 |     pub const PARAM_DELAY_SHORT: &str = "d";
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARAM_LOWPASS` is never used
[INFO] [stdout]   --> src/constants.rs:94:15
[INFO] [stdout]    |
[INFO] [stdout] 94 |     pub const PARAM_LOWPASS: &str = "lowpass";
[INFO] [stdout]    |               ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARAM_LOWPASS_SHORT` is never used
[INFO] [stdout]   --> src/constants.rs:95:15
[INFO] [stdout]    |
[INFO] [stdout] 95 |     pub const PARAM_LOWPASS_SHORT: &str = "l";
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARAM_PRODUCT_TYPE` is never used
[INFO] [stdout]   --> src/constants.rs:97:15
[INFO] [stdout]    |
[INFO] [stdout] 97 |     pub const PARAM_PRODUCT_TYPE: &str = "prodtype";
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARAM_PRODUCT_TYPE_SHORT` is never used
[INFO] [stdout]   --> src/constants.rs:98:15
[INFO] [stdout]    |
[INFO] [stdout] 98 |     pub const PARAM_PRODUCT_TYPE_SHORT: &str = "p";
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARAM_QUALITY_WINDOW_SIZE` is never used
[INFO] [stdout]    --> src/constants.rs:100:15
[INFO] [stdout]     |
[INFO] [stdout] 100 |     pub const PARAM_QUALITY_WINDOW_SIZE: &str = "window";
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARAM_QUALITY_WINDOW_SIZE_SHORT` is never used
[INFO] [stdout]    --> src/constants.rs:101:15
[INFO] [stdout]     |
[INFO] [stdout] 101 |     pub const PARAM_QUALITY_WINDOW_SIZE_SHORT: &str = "w";
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARAM_LIST` is never used
[INFO] [stdout]    --> src/constants.rs:103:15
[INFO] [stdout]     |
[INFO] [stdout] 103 |     pub const PARAM_LIST: &str = "list";
[INFO] [stdout]     |               ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARAM_LIST_SHORT` is never used
[INFO] [stdout]    --> src/constants.rs:104:15
[INFO] [stdout]     |
[INFO] [stdout] 104 |     pub const PARAM_LIST_SHORT: &str = "l";
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARAM_INSTRUMENT` is never used
[INFO] [stdout]    --> src/constants.rs:106:15
[INFO] [stdout]     |
[INFO] [stdout] 106 |     pub const PARAM_INSTRUMENT: &str = "instrument";
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARAM_INSTRUMENT_SHORT` is never used
[INFO] [stdout]    --> src/constants.rs:107:15
[INFO] [stdout]     |
[INFO] [stdout] 107 |     pub const PARAM_INSTRUMENT_SHORT: &str = "I";
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARAM_ANAGLYPH` is never used
[INFO] [stdout]    --> src/constants.rs:109:15
[INFO] [stdout]     |
[INFO] [stdout] 109 |     pub const PARAM_ANAGLYPH: &str = "anaglyph";
[INFO] [stdout]     |               ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARAM_ANAGLYPH_SHORT` is never used
[INFO] [stdout]    --> src/constants.rs:110:15
[INFO] [stdout]     |
[INFO] [stdout] 110 |     pub const PARAM_ANAGLYPH_SHORT: &str = "a";
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARAM_AZIMUTH` is never used
[INFO] [stdout]    --> src/constants.rs:112:15
[INFO] [stdout]     |
[INFO] [stdout] 112 |     pub const PARAM_AZIMUTH: &str = "azimuth";
[INFO] [stdout]     |               ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARAM_AZIMUTH_SHORT` is never used
[INFO] [stdout]    --> src/constants.rs:113:15
[INFO] [stdout]     |
[INFO] [stdout] 113 |     pub const PARAM_AZIMUTH_SHORT: &str = "A";
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `PSYCHE` is never constructed
[INFO] [stdout]  --> src/enums.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub enum Mission {
[INFO] [stdout]   |          ------- variant in this enum
[INFO] [stdout] 8 |     PSYCHE, // Psyche
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Mission` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Instrument` is never used
[INFO] [stdout]   --> src/enums.rs:13:10
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub enum Instrument {
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `CalFileType` is never used
[INFO] [stdout]   --> src/enums.rs:33:10
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub enum CalFileType {
[INFO] [stdout]    |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `timeout` is never read
[INFO] [stdout]   --> src/httpfetch.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct HttpFetcher {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 19 |     timeout: std::time::Duration, //would normally just leave this in the ClientBuilder..
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `status` is never read
[INFO] [stdout]   --> src/httpfetch.rs:33:9
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub struct SimpleHttpResponseString {
[INFO] [stdout]    |            ------------------------ field in this struct
[INFO] [stdout] 32 |     pub text: String,
[INFO] [stdout] 33 |     pub status: u16,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_timeout`, `fetch_monitored`, `into_bytes`, `into_bytes_monitored`, and `into_string_monitored` are never used
[INFO] [stdout]    --> src/httpfetch.rs:55:12
[INFO] [stdout]     |
[INFO] [stdout]  37 | impl HttpFetcher {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  55 |     pub fn set_timeout(&mut self, seconds: u64) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  82 |     async fn fetch_monitored<F: Fn(u64, u64, f32)>(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 118 |     pub async fn into_bytes(&self) -> Result<SimpleHttpResponse> {
[INFO] [stdout]     |                  ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 122 |     pub async fn into_bytes_monitored<F: Fn(u64, u64, f32)>(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 137 |     pub async fn into_string_monitored<F: Fn(u64, u64, f32)>(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `simple_fetch_text` is never used
[INFO] [stdout]    --> src/httpfetch.rs:154:14
[INFO] [stdout]     |
[INFO] [stdout] 154 | pub async fn simple_fetch_text(uri: &str) -> Result<String> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `simple_fetch_bin_monitored` is never used
[INFO] [stdout]    --> src/httpfetch.rs:161:14
[INFO] [stdout]     |
[INFO] [stdout] 161 | pub async fn simple_fetch_bin_monitored<F: Fn(u64, u64, f32)>(uri: &str, f: F) -> Result<Vec<u8>> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `simple_fetch_text_monitored` is never used
[INFO] [stdout]    --> src/httpfetch.rs:166:14
[INFO] [stdout]     |
[INFO] [stdout] 166 | pub async fn simple_fetch_text_monitored<F: Fn(u64, u64, f32)>(uri: &str, f: F) -> Result<String> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `fetch` is never used
[INFO] [stdout]   --> src/jsonfetch.rs:23:18
[INFO] [stdout]    |
[INFO] [stdout]  9 | impl JsonFetcher {
[INFO] [stdout]    | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 23 |     pub async fn fetch(&self) -> Result<Value> {
[INFO] [stdout]    |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_image_metadata` is never used
[INFO] [stdout]   --> src/metadata.rs:77:8
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub fn load_image_metadata(json_path: &String) -> Result<Metadata> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_metadata_file` is never used
[INFO] [stdout]    --> src/psyche/metadata.rs:120:8
[INFO] [stdout]     |
[INFO] [stdout] 120 | pub fn load_metadata_file(file_path: String) -> Result<Metadata> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `filter_num` and `filter` are never read
[INFO] [stdout]   --> src/remotequery.rs:23:9
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct RemoteQuery {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 23 |     pub filter_num: Option<u8>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 24 |     pub filter: Option<Vec<String>>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `RemoteQuery` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `more`, `error_message`, `page`, and `total_images` are never read
[INFO] [stdout]   --> src/remotequery.rs:34:9
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub struct RemoteStats {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout] 34 |     pub more: bool,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 35 |     pub error_message: String,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 36 |     pub total_results: i32,
[INFO] [stdout] 37 |     pub page: i32,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 38 |     pub total_images: i32,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `RemoteStats` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `FetchType` is never used
[INFO] [stdout]   --> src/remotequery.rs:41:10
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub type FetchType = Box<dyn Fetch + 'static + Sync + Send>;
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ReturnsFetch` is never used
[INFO] [stdout]   --> src/remotequery.rs:43:10
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub type ReturnsFetch = dyn Fn() -> FetchType;
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `FileExists`, `MissionNotSupportedError`, `SkippingFile`, and `ParseError` are never constructed
[INFO] [stdout]   --> src/remotequery.rs:48:5
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub enum FetchError {
[INFO] [stdout]    |          ---------- variants in this enum
[INFO] [stdout] 47 |     RemoteError(String),
[INFO] [stdout] 48 |     FileExists,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 51 |     MissionNotSupportedError(Mission),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 52 |     SkippingFile,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 53 |     ParseError(String),
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `FetchError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `vec_to_str` is never used
[INFO] [stdout]  --> src/serializers.rs:5:4
[INFO] [stdout]   |
[INFO] [stdout] 5 | fn vec_to_str(v: &[f64]) -> String {
[INFO] [stdout]   |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `str_to_vec` is never used
[INFO] [stdout]   --> src/serializers.rs:20:4
[INFO] [stdout]    |
[INFO] [stdout] 20 | fn str_to_vec(s: &str) -> Result<Vec<f64>> {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_vec_f64_none` is never used
[INFO] [stdout]    --> src/serializers.rs:579:8
[INFO] [stdout]     |
[INFO] [stdout] 579 | pub fn default_vec_f64_none() -> Option<Vec<f64>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_false` is never used
[INFO] [stdout]    --> src/serializers.rs:583:8
[INFO] [stdout]     |
[INFO] [stdout] 583 | pub fn default_false() -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_blank` is never used
[INFO] [stdout]    --> src/serializers.rs:587:8
[INFO] [stdout]     |
[INFO] [stdout] 587 | pub fn default_blank() -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_vec` is never used
[INFO] [stdout]    --> src/serializers.rs:591:8
[INFO] [stdout]     |
[INFO] [stdout] 591 | pub fn default_vec<T>() -> Vec<T> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `serialize` is never used
[INFO] [stdout]   --> src/serializers.rs:45:12
[INFO] [stdout]    |
[INFO] [stdout] 45 |     pub fn serialize<S>(num: &f64, serializer: S) -> Result<S::Ok, S::Error>
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `deserialize` is never used
[INFO] [stdout]   --> src/serializers.rs:52:12
[INFO] [stdout]    |
[INFO] [stdout] 52 |     pub fn deserialize<'de, D>(deserializer: D) -> Result<f64, D::Error>
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `serialize` is never used
[INFO] [stdout]   --> src/serializers.rs:74:12
[INFO] [stdout]    |
[INFO] [stdout] 74 |     pub fn serialize<S>(num: &Option<f64>, serializer: S) -> Result<S::Ok, S::Error>
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `deserialize` is never used
[INFO] [stdout]   --> src/serializers.rs:85:12
[INFO] [stdout]    |
[INFO] [stdout] 85 |     pub fn deserialize<'de, D>(deserializer: D) -> Result<Option<f64>, D::Error>
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `serialize` is never used
[INFO] [stdout]    --> src/serializers.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 |     pub fn serialize<S>(num: &f32, serializer: S) -> Result<S::Ok, S::Error>
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `deserialize` is never used
[INFO] [stdout]    --> src/serializers.rs:119:12
[INFO] [stdout]     |
[INFO] [stdout] 119 |     pub fn deserialize<'de, D>(deserializer: D) -> Result<f32, D::Error>
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `serialize` is never used
[INFO] [stdout]    --> src/serializers.rs:141:12
[INFO] [stdout]     |
[INFO] [stdout] 141 |     pub fn serialize<S>(num: &Option<f32>, serializer: S) -> Result<S::Ok, S::Error>
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `deserialize` is never used
[INFO] [stdout]    --> src/serializers.rs:152:12
[INFO] [stdout]     |
[INFO] [stdout] 152 |     pub fn deserialize<'de, D>(deserializer: D) -> Result<Option<f32>, D::Error>
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `serialize` is never used
[INFO] [stdout]    --> src/serializers.rs:179:12
[INFO] [stdout]     |
[INFO] [stdout] 179 |     pub fn serialize<S>(num: &i64, serializer: S) -> Result<S::Ok, S::Error>
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `deserialize` is never used
[INFO] [stdout]    --> src/serializers.rs:186:12
[INFO] [stdout]     |
[INFO] [stdout] 186 |     pub fn deserialize<'de, D>(deserializer: D) -> Result<i64, D::Error>
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `serialize` is never used
[INFO] [stdout]    --> src/serializers.rs:208:12
[INFO] [stdout]     |
[INFO] [stdout] 208 |     pub fn serialize<S>(num: &Option<i64>, serializer: S) -> Result<S::Ok, S::Error>
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `deserialize` is never used
[INFO] [stdout]    --> src/serializers.rs:219:12
[INFO] [stdout]     |
[INFO] [stdout] 219 |     pub fn deserialize<'de, D>(deserializer: D) -> Result<Option<i64>, D::Error>
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `serialize` is never used
[INFO] [stdout]    --> src/serializers.rs:246:12
[INFO] [stdout]     |
[INFO] [stdout] 246 |     pub fn serialize<S>(num: &i32, serializer: S) -> Result<S::Ok, S::Error>
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `deserialize` is never used
[INFO] [stdout]    --> src/serializers.rs:253:12
[INFO] [stdout]     |
[INFO] [stdout] 253 |     pub fn deserialize<'de, D>(deserializer: D) -> Result<i32, D::Error>
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `serialize` is never used
[INFO] [stdout]    --> src/serializers.rs:275:12
[INFO] [stdout]     |
[INFO] [stdout] 275 |     pub fn serialize<S>(num: &Option<i32>, serializer: S) -> Result<S::Ok, S::Error>
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `deserialize` is never used
[INFO] [stdout]    --> src/serializers.rs:286:12
[INFO] [stdout]     |
[INFO] [stdout] 286 |     pub fn deserialize<'de, D>(deserializer: D) -> Result<Option<i32>, D::Error>
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FORMAT` is never used
[INFO] [stdout]    --> src/serializers.rs:315:11
[INFO] [stdout]     |
[INFO] [stdout] 315 |     const FORMAT: &str = "%Y-%jT%H:%M:%S%.3f %z";
[INFO] [stdout]     |           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `serialize` is never used
[INFO] [stdout]    --> src/serializers.rs:317:12
[INFO] [stdout]     |
[INFO] [stdout] 317 |     pub fn serialize<S>(date: &DateTime<FixedOffset>, serializer: S) -> Result<S::Ok, S::Error>
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `deserialize` is never used
[INFO] [stdout]    --> src/serializers.rs:325:12
[INFO] [stdout]     |
[INFO] [stdout] 325 |     pub fn deserialize<'de, D>(deserializer: D) -> Result<DateTime<FixedOffset>, D::Error>
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FORMAT` is never used
[INFO] [stdout]    --> src/serializers.rs:348:11
[INFO] [stdout]     |
[INFO] [stdout] 348 |     const FORMAT: &str = "%Y-%m-%dT%H:%M:%S%.3f %z";
[INFO] [stdout]     |           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `serialize` is never used
[INFO] [stdout]    --> src/serializers.rs:350:12
[INFO] [stdout]     |
[INFO] [stdout] 350 |     pub fn serialize<S>(date: &DateTime<FixedOffset>, serializer: S) -> Result<S::Ok, S::Error>
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `deserialize` is never used
[INFO] [stdout]    --> src/serializers.rs:358:12
[INFO] [stdout]     |
[INFO] [stdout] 358 |     pub fn deserialize<'de, D>(deserializer: D) -> Result<DateTime<FixedOffset>, D::Error>
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `serialize` is never used
[INFO] [stdout]    --> src/serializers.rs:384:12
[INFO] [stdout]     |
[INFO] [stdout] 384 |     pub fn serialize<S>(model_opt: &CameraModel, serializer: S) -> Result<S::Ok, S::Error>
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `deserialize` is never used
[INFO] [stdout]    --> src/serializers.rs:395:12
[INFO] [stdout]     |
[INFO] [stdout] 395 |     pub fn deserialize<'de, D>(deserializer: D) -> Result<CameraModel, D::Error>
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `serialize` is never used
[INFO] [stdout]    --> src/serializers.rs:544:12
[INFO] [stdout]     |
[INFO] [stdout] 544 |     pub fn serialize<S>(tuple_vec_opt: &Option<Vec<f64>>, serializer: S) -> Result<S::Ok, S::Error>
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `deserialize` is never used
[INFO] [stdout]    --> src/serializers.rs:557:12
[INFO] [stdout]     |
[INFO] [stdout] 557 |     pub fn deserialize<'de, D>(deserializer: D) -> Result<Option<Vec<f64>>, D::Error>
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `string_is_valid_f64` is never used
[INFO] [stdout]   --> src/util.rs:26:8
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub fn string_is_valid_f64(s: &str) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `string_is_valid_f32` is never used
[INFO] [stdout]   --> src/util.rs:30:8
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub fn string_is_valid_f32(s: &str) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `string_is_valid_i32` is never used
[INFO] [stdout]   --> src/util.rs:34:8
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub fn string_is_valid_i32(s: &str) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `string_is_valid_u16` is never used
[INFO] [stdout]   --> src/util.rs:38:8
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub fn string_is_valid_u16(s: &str) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `filename_char_at_pos` is never used
[INFO] [stdout]   --> src/util.rs:42:8
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub fn filename_char_at_pos(filename: &str, pos: usize) -> char {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `remote_instrument_names` is never used
[INFO] [stdout]   --> src/util.rs:94:12
[INFO] [stdout]    |
[INFO] [stdout] 82 | impl InstrumentMap {
[INFO] [stdout]    | ------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 94 |     pub fn remote_instrument_names(&self) -> Vec<String> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `image_exists_on_filesystem` is never used
[INFO] [stdout]    --> src/util.rs:162:8
[INFO] [stdout]     |
[INFO] [stdout] 162 | pub fn image_exists_on_filesystem(image_url: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `append_file_name` is never used
[INFO] [stdout]    --> src/util.rs:200:8
[INFO] [stdout]     |
[INFO] [stdout] 200 | pub fn append_file_name(input_file: &str, append: &str) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `replace_extension` is never used
[INFO] [stdout]    --> src/util.rs:205:8
[INFO] [stdout]     |
[INFO] [stdout] 205 | pub fn replace_extension<S>(from_file: &S, new_extension: &str) -> Result<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `replace_image_extension` is never used
[INFO] [stdout]    --> src/util.rs:216:8
[INFO] [stdout]     |
[INFO] [stdout] 216 | pub fn replace_image_extension(input_file: &str, append: &str) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_RED_WEIGHT` is never used
[INFO] [stdout]  --> src/constants.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub const DEFAULT_RED_WEIGHT: f32 = 1.0;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_GREEN_WEIGHT` is never used
[INFO] [stdout]  --> src/constants.rs:2:11
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub const DEFAULT_GREEN_WEIGHT: f32 = 1.0;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_BLUE_WEIGHT` is never used
[INFO] [stdout]  --> src/constants.rs:3:11
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub const DEFAULT_BLUE_WEIGHT: f32 = 1.0;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OUTPUT_FILENAME_APPEND` is never used
[INFO] [stdout]  --> src/constants.rs:5:11
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub const OUTPUT_FILENAME_APPEND: &str = "rjcal";
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `EMPTY` is never used
[INFO] [stdout]   --> src/constants.rs:18:15
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub const EMPTY: &str = "";
[INFO] [stdout]    |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OK` is never used
[INFO] [stdout]   --> src/constants.rs:19:15
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub const OK: &str = "ok";
[INFO] [stdout]    |               ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `STRUCT_IS_EMPTY` is never used
[INFO] [stdout]   --> src/constants.rs:20:15
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub const STRUCT_IS_EMPTY: &str = "Structure is empty";
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `INVALID_PIXEL_COORDINATES` is never used
[INFO] [stdout]   --> src/constants.rs:21:15
[INFO] [stdout]    |
[INFO] [stdout] 21 |     pub const INVALID_PIXEL_COORDINATES: &str = "Invalid pixel coordinates";
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARENT_NOT_EXISTS_OR_UNWRITABLE` is never used
[INFO] [stdout]   --> src/constants.rs:22:15
[INFO] [stdout]    |
[INFO] [stdout] 22 |     pub const PARENT_NOT_EXISTS_OR_UNWRITABLE: &str = "Parent does not exist or cannot be written";
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FILE_NOT_FOUND` is never used
[INFO] [stdout]   --> src/constants.rs:23:15
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub const FILE_NOT_FOUND: &str = "File not found";
[INFO] [stdout]    |               ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ARRAY_SIZE_MISMATCH` is never used
[INFO] [stdout]   --> src/constants.rs:24:15
[INFO] [stdout]    |
[INFO] [stdout] 24 |     pub const ARRAY_SIZE_MISMATCH: &str = "Array size mismatch";
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NOT_IMPLEMENTED` is never used
[INFO] [stdout]   --> src/constants.rs:25:15
[INFO] [stdout]    |
[INFO] [stdout] 25 |     pub const NOT_IMPLEMENTED: &str = "Not yet implemented";
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DIMENSIONS_DO_NOT_MATCH_VECTOR_LENGTH` is never used
[INFO] [stdout]   --> src/constants.rs:26:15
[INFO] [stdout]    |
[INFO] [stdout] 26 |     pub const DIMENSIONS_DO_NOT_MATCH_VECTOR_LENGTH: &str =
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ERROR_PARSING_JSON` is never used
[INFO] [stdout]   --> src/constants.rs:28:15
[INFO] [stdout]    |
[INFO] [stdout] 28 |     pub const ERROR_PARSING_JSON: &str = "Error parsing JSON";
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `INVALID_ENUM_VALUE` is never used
[INFO] [stdout]   --> src/constants.rs:29:15
[INFO] [stdout]    |
[INFO] [stdout] 29 |     pub const INVALID_ENUM_VALUE: &str = "Invalid enum value";
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `INVALID_RAW_VALUE` is never used
[INFO] [stdout]   --> src/constants.rs:30:15
[INFO] [stdout]    |
[INFO] [stdout] 30 |     pub const INVALID_RAW_VALUE: &str = "Invalid raw image value";
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `INVALID_FLOAT_VALUE` is never used
[INFO] [stdout]   --> src/constants.rs:31:15
[INFO] [stdout]    |
[INFO] [stdout] 31 |     pub const INVALID_FLOAT_VALUE: &str = "Invalid float value";
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `EVEN_NUMBER_REQUIRED` is never used
[INFO] [stdout]   --> src/constants.rs:33:15
[INFO] [stdout]    |
[INFO] [stdout] 33 |     pub const EVEN_NUMBER_REQUIRED: &str = "Value error: Even number required";
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `REMOTE_SERVER_ERROR` is never used
[INFO] [stdout]   --> src/constants.rs:34:15
[INFO] [stdout]    |
[INFO] [stdout] 34 |     pub const REMOTE_SERVER_ERROR: &str = "Remote server error";
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DOWNLOADING` is never used
[INFO] [stdout]   --> src/constants.rs:37:15
[INFO] [stdout]    |
[INFO] [stdout] 37 |     pub const DOWNLOADING: &str = "Downloading";
[INFO] [stdout]    |               ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `INVALID_CALIBRATION_FILE_ID` is never used
[INFO] [stdout]   --> src/constants.rs:38:15
[INFO] [stdout]    |
[INFO] [stdout] 38 |     pub const INVALID_CALIBRATION_FILE_ID: &str = "Invalid calibration file";
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARAM_VERBOSE` is never used
[INFO] [stdout]   --> src/constants.rs:43:15
[INFO] [stdout]    |
[INFO] [stdout] 43 |     pub const PARAM_VERBOSE: &str = "v";
[INFO] [stdout]    |               ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARAM_OUTPUT` is never used
[INFO] [stdout]   --> src/constants.rs:44:15
[INFO] [stdout]    |
[INFO] [stdout] 44 |     pub const PARAM_OUTPUT: &str = "output";
[INFO] [stdout]    |               ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARAM_OUTPUT_SHORT` is never used
[INFO] [stdout]   --> src/constants.rs:45:15
[INFO] [stdout]    |
[INFO] [stdout] 45 |     pub const PARAM_OUTPUT_SHORT: &str = "o";
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARAM_INPUTS` is never used
[INFO] [stdout]   --> src/constants.rs:46:15
[INFO] [stdout]    |
[INFO] [stdout] 46 |     pub const PARAM_INPUTS: &str = "inputs";
[INFO] [stdout]    |               ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARAM_INPUTS_SHORT` is never used
[INFO] [stdout]   --> src/constants.rs:47:15
[INFO] [stdout]    |
[INFO] [stdout] 47 |     pub const PARAM_INPUTS_SHORT: &str = "i";
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARAM_RED_WEIGHT` is never used
[INFO] [stdout]   --> src/constants.rs:49:15
[INFO] [stdout]    |
[INFO] [stdout] 49 |     pub const PARAM_RED_WEIGHT: &str = "red";
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARAM_RED_WEIGHT_SHORT` is never used
[INFO] [stdout]   --> src/constants.rs:50:15
[INFO] [stdout]    |
[INFO] [stdout] 50 |     pub const PARAM_RED_WEIGHT_SHORT: &str = "R";
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARAM_GREEN_WEIGHT` is never used
[INFO] [stdout]   --> src/constants.rs:52:15
[INFO] [stdout]    |
[INFO] [stdout] 52 |     pub const PARAM_GREEN_WEIGHT: &str = "green";
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARAM_GREEN_WEIGHT_SHORT` is never used
[INFO] [stdout]   --> src/constants.rs:53:15
[INFO] [stdout]    |
[INFO] [stdout] 53 |     pub const PARAM_GREEN_WEIGHT_SHORT: &str = "G";
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARAM_BLUE_WEIGHT` is never used
[INFO] [stdout]   --> src/constants.rs:55:15
[INFO] [stdout]    |
[INFO] [stdout] 55 |     pub const PARAM_BLUE_WEIGHT: &str = "blue";
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARAM_BLUE_WEIGHT_SHORT` is never used
[INFO] [stdout]   --> src/constants.rs:56:15
[INFO] [stdout]    |
[INFO] [stdout] 56 |     pub const PARAM_BLUE_WEIGHT_SHORT: &str = "B";
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARAM_COLOR_NOISE_REDUCTION` is never used
[INFO] [stdout]   --> src/constants.rs:58:15
[INFO] [stdout]    |
[INFO] [stdout] 58 |     pub const PARAM_COLOR_NOISE_REDUCTION: &str = "color_noise_reduction";
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARAM_COLOR_NOISE_REDUCTION_SHORT` is never used
[INFO] [stdout]   --> src/constants.rs:59:15
[INFO] [stdout]    |
[INFO] [stdout] 59 |     pub const PARAM_COLOR_NOISE_REDUCTION_SHORT: &str = "c";
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARAM_CAL_PROFILE` is never used
[INFO] [stdout]   --> src/constants.rs:61:15
[INFO] [stdout]    |
[INFO] [stdout] 61 |     pub const PARAM_CAL_PROFILE: &str = "profile";
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARAM_CAL_PROFILE_SHORT` is never used
[INFO] [stdout]   --> src/constants.rs:62:15
[INFO] [stdout]    |
[INFO] [stdout] 62 |     pub const PARAM_CAL_PROFILE_SHORT: &str = "P";
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARAM_RAW_COLOR` is never used
[INFO] [stdout]   --> src/constants.rs:65:15
[INFO] [stdout]    |
[INFO] [stdout] 65 |     pub const PARAM_RAW_COLOR: &str = "raw";
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARAM_RAW_COLOR_SHORT` is never used
[INFO] [stdout]   --> src/constants.rs:66:15
[INFO] [stdout]    |
[INFO] [stdout] 66 |     pub const PARAM_RAW_COLOR_SHORT: &str = "r";
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARAM_HPC_THRESHOLD` is never used
[INFO] [stdout]   --> src/constants.rs:69:15
[INFO] [stdout]    |
[INFO] [stdout] 69 |     pub const PARAM_HPC_THRESHOLD: &str = "hpc_threshold";
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARAM_HPC_THRESHOLD_SHORT` is never used
[INFO] [stdout]   --> src/constants.rs:70:15
[INFO] [stdout]    |
[INFO] [stdout] 70 |     pub const PARAM_HPC_THRESHOLD_SHORT: &str = "t";
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARAM_HPC_WINDOW_SIZE` is never used
[INFO] [stdout]   --> src/constants.rs:73:15
[INFO] [stdout]    |
[INFO] [stdout] 73 |     pub const PARAM_HPC_WINDOW_SIZE: &str = "hpc_window";
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARAM_HPC_WINDOW_SIZE_SHORT` is never used
[INFO] [stdout]   --> src/constants.rs:74:15
[INFO] [stdout]    |
[INFO] [stdout] 74 |     pub const PARAM_HPC_WINDOW_SIZE_SHORT: &str = "w";
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARAM_ONLY_NEW` is never used
[INFO] [stdout]   --> src/constants.rs:76:15
[INFO] [stdout]    |
[INFO] [stdout] 76 |     pub const PARAM_ONLY_NEW: &str = "new";
[INFO] [stdout]    |               ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARAM_ONLY_NEW_SHORT` is never used
[INFO] [stdout]   --> src/constants.rs:77:15
[INFO] [stdout]    |
[INFO] [stdout] 77 |     pub const PARAM_ONLY_NEW_SHORT: &str = "n";
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARAM_SCALE_FACTOR` is never used
[INFO] [stdout]   --> src/constants.rs:79:15
[INFO] [stdout]    |
[INFO] [stdout] 79 |     pub const PARAM_SCALE_FACTOR: &str = "factor";
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARAM_SCALE_FACTOR_SHORT` is never used
[INFO] [stdout]   --> src/constants.rs:80:15
[INFO] [stdout]    |
[INFO] [stdout] 80 |     pub const PARAM_SCALE_FACTOR_SHORT: &str = "f";
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARAM_LEVELS_WHITE_LEVEL` is never used
[INFO] [stdout]   --> src/constants.rs:82:15
[INFO] [stdout]    |
[INFO] [stdout] 82 |     pub const PARAM_LEVELS_WHITE_LEVEL: &str = "whitelevel";
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARAM_LEVELS_WHITE_LEVEL_SHORT` is never used
[INFO] [stdout]   --> src/constants.rs:83:15
[INFO] [stdout]    |
[INFO] [stdout] 83 |     pub const PARAM_LEVELS_WHITE_LEVEL_SHORT: &str = "w";
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARAM_LEVELS_BLACK_LEVEL` is never used
[INFO] [stdout]   --> src/constants.rs:85:15
[INFO] [stdout]    |
[INFO] [stdout] 85 |     pub const PARAM_LEVELS_BLACK_LEVEL: &str = "blacklevel";
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARAM_LEVELS_BLACK_LEVEL_SHORT` is never used
[INFO] [stdout]   --> src/constants.rs:86:15
[INFO] [stdout]    |
[INFO] [stdout] 86 |     pub const PARAM_LEVELS_BLACK_LEVEL_SHORT: &str = "b";
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARAM_GAMMA` is never used
[INFO] [stdout]   --> src/constants.rs:88:15
[INFO] [stdout]    |
[INFO] [stdout] 88 |     pub const PARAM_GAMMA: &str = "gamma";
[INFO] [stdout]    |               ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARAM_GAMMA_SHORT` is never used
[INFO] [stdout]   --> src/constants.rs:89:15
[INFO] [stdout]    |
[INFO] [stdout] 89 |     pub const PARAM_GAMMA_SHORT: &str = "g";
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARAM_DELAY` is never used
[INFO] [stdout]   --> src/constants.rs:91:15
[INFO] [stdout]    |
[INFO] [stdout] 91 |     pub const PARAM_DELAY: &str = "delay";
[INFO] [stdout]    |               ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARAM_DELAY_SHORT` is never used
[INFO] [stdout]   --> src/constants.rs:92:15
[INFO] [stdout]    |
[INFO] [stdout] 92 |     pub const PARAM_DELAY_SHORT: &str = "d";
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARAM_LOWPASS` is never used
[INFO] [stdout]   --> src/constants.rs:94:15
[INFO] [stdout]    |
[INFO] [stdout] 94 |     pub const PARAM_LOWPASS: &str = "lowpass";
[INFO] [stdout]    |               ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARAM_LOWPASS_SHORT` is never used
[INFO] [stdout]   --> src/constants.rs:95:15
[INFO] [stdout]    |
[INFO] [stdout] 95 |     pub const PARAM_LOWPASS_SHORT: &str = "l";
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARAM_PRODUCT_TYPE` is never used
[INFO] [stdout]   --> src/constants.rs:97:15
[INFO] [stdout]    |
[INFO] [stdout] 97 |     pub const PARAM_PRODUCT_TYPE: &str = "prodtype";
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARAM_PRODUCT_TYPE_SHORT` is never used
[INFO] [stdout]   --> src/constants.rs:98:15
[INFO] [stdout]    |
[INFO] [stdout] 98 |     pub const PARAM_PRODUCT_TYPE_SHORT: &str = "p";
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARAM_QUALITY_WINDOW_SIZE` is never used
[INFO] [stdout]    --> src/constants.rs:100:15
[INFO] [stdout]     |
[INFO] [stdout] 100 |     pub const PARAM_QUALITY_WINDOW_SIZE: &str = "window";
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARAM_QUALITY_WINDOW_SIZE_SHORT` is never used
[INFO] [stdout]    --> src/constants.rs:101:15
[INFO] [stdout]     |
[INFO] [stdout] 101 |     pub const PARAM_QUALITY_WINDOW_SIZE_SHORT: &str = "w";
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARAM_LIST` is never used
[INFO] [stdout]    --> src/constants.rs:103:15
[INFO] [stdout]     |
[INFO] [stdout] 103 |     pub const PARAM_LIST: &str = "list";
[INFO] [stdout]     |               ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARAM_LIST_SHORT` is never used
[INFO] [stdout]    --> src/constants.rs:104:15
[INFO] [stdout]     |
[INFO] [stdout] 104 |     pub const PARAM_LIST_SHORT: &str = "l";
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARAM_INSTRUMENT` is never used
[INFO] [stdout]    --> src/constants.rs:106:15
[INFO] [stdout]     |
[INFO] [stdout] 106 |     pub const PARAM_INSTRUMENT: &str = "instrument";
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARAM_INSTRUMENT_SHORT` is never used
[INFO] [stdout]    --> src/constants.rs:107:15
[INFO] [stdout]     |
[INFO] [stdout] 107 |     pub const PARAM_INSTRUMENT_SHORT: &str = "I";
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARAM_ANAGLYPH` is never used
[INFO] [stdout]    --> src/constants.rs:109:15
[INFO] [stdout]     |
[INFO] [stdout] 109 |     pub const PARAM_ANAGLYPH: &str = "anaglyph";
[INFO] [stdout]     |               ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARAM_ANAGLYPH_SHORT` is never used
[INFO] [stdout]    --> src/constants.rs:110:15
[INFO] [stdout]     |
[INFO] [stdout] 110 |     pub const PARAM_ANAGLYPH_SHORT: &str = "a";
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARAM_AZIMUTH` is never used
[INFO] [stdout]    --> src/constants.rs:112:15
[INFO] [stdout]     |
[INFO] [stdout] 112 |     pub const PARAM_AZIMUTH: &str = "azimuth";
[INFO] [stdout]     |               ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PARAM_AZIMUTH_SHORT` is never used
[INFO] [stdout]    --> src/constants.rs:113:15
[INFO] [stdout]     |
[INFO] [stdout] 113 |     pub const PARAM_AZIMUTH_SHORT: &str = "A";
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `PSYCHE` is never constructed
[INFO] [stdout]  --> src/enums.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub enum Mission {
[INFO] [stdout]   |          ------- variant in this enum
[INFO] [stdout] 8 |     PSYCHE, // Psyche
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Mission` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Instrument` is never used
[INFO] [stdout]   --> src/enums.rs:13:10
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub enum Instrument {
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `CalFileType` is never used
[INFO] [stdout]   --> src/enums.rs:33:10
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub enum CalFileType {
[INFO] [stdout]    |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `timeout` is never read
[INFO] [stdout]   --> src/httpfetch.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct HttpFetcher {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 19 |     timeout: std::time::Duration, //would normally just leave this in the ClientBuilder..
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `status` is never read
[INFO] [stdout]   --> src/httpfetch.rs:33:9
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub struct SimpleHttpResponseString {
[INFO] [stdout]    |            ------------------------ field in this struct
[INFO] [stdout] 32 |     pub text: String,
[INFO] [stdout] 33 |     pub status: u16,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_timeout`, `fetch_monitored`, `into_bytes`, `into_bytes_monitored`, and `into_string_monitored` are never used
[INFO] [stdout]    --> src/httpfetch.rs:55:12
[INFO] [stdout]     |
[INFO] [stdout]  37 | impl HttpFetcher {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  55 |     pub fn set_timeout(&mut self, seconds: u64) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  82 |     async fn fetch_monitored<F: Fn(u64, u64, f32)>(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 118 |     pub async fn into_bytes(&self) -> Result<SimpleHttpResponse> {
[INFO] [stdout]     |                  ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 122 |     pub async fn into_bytes_monitored<F: Fn(u64, u64, f32)>(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 137 |     pub async fn into_string_monitored<F: Fn(u64, u64, f32)>(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `simple_fetch_text` is never used
[INFO] [stdout]    --> src/httpfetch.rs:154:14
[INFO] [stdout]     |
[INFO] [stdout] 154 | pub async fn simple_fetch_text(uri: &str) -> Result<String> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `simple_fetch_bin_monitored` is never used
[INFO] [stdout]    --> src/httpfetch.rs:161:14
[INFO] [stdout]     |
[INFO] [stdout] 161 | pub async fn simple_fetch_bin_monitored<F: Fn(u64, u64, f32)>(uri: &str, f: F) -> Result<Vec<u8>> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `simple_fetch_text_monitored` is never used
[INFO] [stdout]    --> src/httpfetch.rs:166:14
[INFO] [stdout]     |
[INFO] [stdout] 166 | pub async fn simple_fetch_text_monitored<F: Fn(u64, u64, f32)>(uri: &str, f: F) -> Result<String> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `fetch` is never used
[INFO] [stdout]   --> src/jsonfetch.rs:23:18
[INFO] [stdout]    |
[INFO] [stdout]  9 | impl JsonFetcher {
[INFO] [stdout]    | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 23 |     pub async fn fetch(&self) -> Result<Value> {
[INFO] [stdout]    |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_image_metadata` is never used
[INFO] [stdout]   --> src/metadata.rs:77:8
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub fn load_image_metadata(json_path: &String) -> Result<Metadata> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_metadata_file` is never used
[INFO] [stdout]    --> src/psyche/metadata.rs:120:8
[INFO] [stdout]     |
[INFO] [stdout] 120 | pub fn load_metadata_file(file_path: String) -> Result<Metadata> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `filter_num` and `filter` are never read
[INFO] [stdout]   --> src/remotequery.rs:23:9
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct RemoteQuery {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 23 |     pub filter_num: Option<u8>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 24 |     pub filter: Option<Vec<String>>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `RemoteQuery` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `more`, `error_message`, `page`, and `total_images` are never read
[INFO] [stdout]   --> src/remotequery.rs:34:9
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub struct RemoteStats {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout] 34 |     pub more: bool,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 35 |     pub error_message: String,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 36 |     pub total_results: i32,
[INFO] [stdout] 37 |     pub page: i32,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 38 |     pub total_images: i32,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `RemoteStats` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `FetchType` is never used
[INFO] [stdout]   --> src/remotequery.rs:41:10
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub type FetchType = Box<dyn Fetch + 'static + Sync + Send>;
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ReturnsFetch` is never used
[INFO] [stdout]   --> src/remotequery.rs:43:10
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub type ReturnsFetch = dyn Fn() -> FetchType;
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `FileExists`, `MissionNotSupportedError`, `SkippingFile`, and `ParseError` are never constructed
[INFO] [stdout]   --> src/remotequery.rs:48:5
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub enum FetchError {
[INFO] [stdout]    |          ---------- variants in this enum
[INFO] [stdout] 47 |     RemoteError(String),
[INFO] [stdout] 48 |     FileExists,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 51 |     MissionNotSupportedError(Mission),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 52 |     SkippingFile,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 53 |     ParseError(String),
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `FetchError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `vec_to_str` is never used
[INFO] [stdout]  --> src/serializers.rs:5:4
[INFO] [stdout]   |
[INFO] [stdout] 5 | fn vec_to_str(v: &[f64]) -> String {
[INFO] [stdout]   |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `str_to_vec` is never used
[INFO] [stdout]   --> src/serializers.rs:20:4
[INFO] [stdout]    |
[INFO] [stdout] 20 | fn str_to_vec(s: &str) -> Result<Vec<f64>> {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_vec_f64_none` is never used
[INFO] [stdout]    --> src/serializers.rs:579:8
[INFO] [stdout]     |
[INFO] [stdout] 579 | pub fn default_vec_f64_none() -> Option<Vec<f64>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_false` is never used
[INFO] [stdout]    --> src/serializers.rs:583:8
[INFO] [stdout]     |
[INFO] [stdout] 583 | pub fn default_false() -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_blank` is never used
[INFO] [stdout]    --> src/serializers.rs:587:8
[INFO] [stdout]     |
[INFO] [stdout] 587 | pub fn default_blank() -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_vec` is never used
[INFO] [stdout]    --> src/serializers.rs:591:8
[INFO] [stdout]     |
[INFO] [stdout] 591 | pub fn default_vec<T>() -> Vec<T> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `serialize` is never used
[INFO] [stdout]   --> src/serializers.rs:45:12
[INFO] [stdout]    |
[INFO] [stdout] 45 |     pub fn serialize<S>(num: &f64, serializer: S) -> Result<S::Ok, S::Error>
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `deserialize` is never used
[INFO] [stdout]   --> src/serializers.rs:52:12
[INFO] [stdout]    |
[INFO] [stdout] 52 |     pub fn deserialize<'de, D>(deserializer: D) -> Result<f64, D::Error>
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `serialize` is never used
[INFO] [stdout]   --> src/serializers.rs:74:12
[INFO] [stdout]    |
[INFO] [stdout] 74 |     pub fn serialize<S>(num: &Option<f64>, serializer: S) -> Result<S::Ok, S::Error>
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `deserialize` is never used
[INFO] [stdout]   --> src/serializers.rs:85:12
[INFO] [stdout]    |
[INFO] [stdout] 85 |     pub fn deserialize<'de, D>(deserializer: D) -> Result<Option<f64>, D::Error>
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `serialize` is never used
[INFO] [stdout]    --> src/serializers.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 |     pub fn serialize<S>(num: &f32, serializer: S) -> Result<S::Ok, S::Error>
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `deserialize` is never used
[INFO] [stdout]    --> src/serializers.rs:119:12
[INFO] [stdout]     |
[INFO] [stdout] 119 |     pub fn deserialize<'de, D>(deserializer: D) -> Result<f32, D::Error>
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `serialize` is never used
[INFO] [stdout]    --> src/serializers.rs:141:12
[INFO] [stdout]     |
[INFO] [stdout] 141 |     pub fn serialize<S>(num: &Option<f32>, serializer: S) -> Result<S::Ok, S::Error>
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `deserialize` is never used
[INFO] [stdout]    --> src/serializers.rs:152:12
[INFO] [stdout]     |
[INFO] [stdout] 152 |     pub fn deserialize<'de, D>(deserializer: D) -> Result<Option<f32>, D::Error>
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `serialize` is never used
[INFO] [stdout]    --> src/serializers.rs:179:12
[INFO] [stdout]     |
[INFO] [stdout] 179 |     pub fn serialize<S>(num: &i64, serializer: S) -> Result<S::Ok, S::Error>
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `deserialize` is never used
[INFO] [stdout]    --> src/serializers.rs:186:12
[INFO] [stdout]     |
[INFO] [stdout] 186 |     pub fn deserialize<'de, D>(deserializer: D) -> Result<i64, D::Error>
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `serialize` is never used
[INFO] [stdout]    --> src/serializers.rs:208:12
[INFO] [stdout]     |
[INFO] [stdout] 208 |     pub fn serialize<S>(num: &Option<i64>, serializer: S) -> Result<S::Ok, S::Error>
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `deserialize` is never used
[INFO] [stdout]    --> src/serializers.rs:219:12
[INFO] [stdout]     |
[INFO] [stdout] 219 |     pub fn deserialize<'de, D>(deserializer: D) -> Result<Option<i64>, D::Error>
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `serialize` is never used
[INFO] [stdout]    --> src/serializers.rs:246:12
[INFO] [stdout]     |
[INFO] [stdout] 246 |     pub fn serialize<S>(num: &i32, serializer: S) -> Result<S::Ok, S::Error>
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `deserialize` is never used
[INFO] [stdout]    --> src/serializers.rs:253:12
[INFO] [stdout]     |
[INFO] [stdout] 253 |     pub fn deserialize<'de, D>(deserializer: D) -> Result<i32, D::Error>
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `serialize` is never used
[INFO] [stdout]    --> src/serializers.rs:275:12
[INFO] [stdout]     |
[INFO] [stdout] 275 |     pub fn serialize<S>(num: &Option<i32>, serializer: S) -> Result<S::Ok, S::Error>
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `deserialize` is never used
[INFO] [stdout]    --> src/serializers.rs:286:12
[INFO] [stdout]     |
[INFO] [stdout] 286 |     pub fn deserialize<'de, D>(deserializer: D) -> Result<Option<i32>, D::Error>
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FORMAT` is never used
[INFO] [stdout]    --> src/serializers.rs:315:11
[INFO] [stdout]     |
[INFO] [stdout] 315 |     const FORMAT: &str = "%Y-%jT%H:%M:%S%.3f %z";
[INFO] [stdout]     |           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `serialize` is never used
[INFO] [stdout]    --> src/serializers.rs:317:12
[INFO] [stdout]     |
[INFO] [stdout] 317 |     pub fn serialize<S>(date: &DateTime<FixedOffset>, serializer: S) -> Result<S::Ok, S::Error>
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `deserialize` is never used
[INFO] [stdout]    --> src/serializers.rs:325:12
[INFO] [stdout]     |
[INFO] [stdout] 325 |     pub fn deserialize<'de, D>(deserializer: D) -> Result<DateTime<FixedOffset>, D::Error>
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FORMAT` is never used
[INFO] [stdout]    --> src/serializers.rs:348:11
[INFO] [stdout]     |
[INFO] [stdout] 348 |     const FORMAT: &str = "%Y-%m-%dT%H:%M:%S%.3f %z";
[INFO] [stdout]     |           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `serialize` is never used
[INFO] [stdout]    --> src/serializers.rs:350:12
[INFO] [stdout]     |
[INFO] [stdout] 350 |     pub fn serialize<S>(date: &DateTime<FixedOffset>, serializer: S) -> Result<S::Ok, S::Error>
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `deserialize` is never used
[INFO] [stdout]    --> src/serializers.rs:358:12
[INFO] [stdout]     |
[INFO] [stdout] 358 |     pub fn deserialize<'de, D>(deserializer: D) -> Result<DateTime<FixedOffset>, D::Error>
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `serialize` is never used
[INFO] [stdout]    --> src/serializers.rs:384:12
[INFO] [stdout]     |
[INFO] [stdout] 384 |     pub fn serialize<S>(model_opt: &CameraModel, serializer: S) -> Result<S::Ok, S::Error>
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `deserialize` is never used
[INFO] [stdout]    --> src/serializers.rs:395:12
[INFO] [stdout]     |
[INFO] [stdout] 395 |     pub fn deserialize<'de, D>(deserializer: D) -> Result<CameraModel, D::Error>
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `serialize` is never used
[INFO] [stdout]    --> src/serializers.rs:544:12
[INFO] [stdout]     |
[INFO] [stdout] 544 |     pub fn serialize<S>(tuple_vec_opt: &Option<Vec<f64>>, serializer: S) -> Result<S::Ok, S::Error>
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `deserialize` is never used
[INFO] [stdout]    --> src/serializers.rs:557:12
[INFO] [stdout]     |
[INFO] [stdout] 557 |     pub fn deserialize<'de, D>(deserializer: D) -> Result<Option<Vec<f64>>, D::Error>
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `string_is_valid_f64` is never used
[INFO] [stdout]   --> src/util.rs:26:8
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub fn string_is_valid_f64(s: &str) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `string_is_valid_f32` is never used
[INFO] [stdout]   --> src/util.rs:30:8
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub fn string_is_valid_f32(s: &str) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `string_is_valid_i32` is never used
[INFO] [stdout]   --> src/util.rs:34:8
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub fn string_is_valid_i32(s: &str) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `string_is_valid_u16` is never used
[INFO] [stdout]   --> src/util.rs:38:8
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub fn string_is_valid_u16(s: &str) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `filename_char_at_pos` is never used
[INFO] [stdout]   --> src/util.rs:42:8
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub fn filename_char_at_pos(filename: &str, pos: usize) -> char {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `remote_instrument_names` is never used
[INFO] [stdout]   --> src/util.rs:94:12
[INFO] [stdout]    |
[INFO] [stdout] 82 | impl InstrumentMap {
[INFO] [stdout]    | ------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 94 |     pub fn remote_instrument_names(&self) -> Vec<String> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `image_exists_on_filesystem` is never used
[INFO] [stdout]    --> src/util.rs:162:8
[INFO] [stdout]     |
[INFO] [stdout] 162 | pub fn image_exists_on_filesystem(image_url: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `append_file_name` is never used
[INFO] [stdout]    --> src/util.rs:200:8
[INFO] [stdout]     |
[INFO] [stdout] 200 | pub fn append_file_name(input_file: &str, append: &str) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `replace_extension` is never used
[INFO] [stdout]    --> src/util.rs:205:8
[INFO] [stdout]     |
[INFO] [stdout] 205 | pub fn replace_extension<S>(from_file: &S, new_extension: &str) -> Result<String>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `replace_image_extension` is never used
[INFO] [stdout]    --> src/util.rs:216:8
[INFO] [stdout]     |
[INFO] [stdout] 216 | pub fn replace_image_extension(input_file: &str, append: &str) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 54.77s
[INFO] running `Command { std: "docker" "inspect" "b8ee1f60dc8ef0694739f2357d3fab4ca2fda9c77c2dbc073f9d2d765ddc5823", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b8ee1f60dc8ef0694739f2357d3fab4ca2fda9c77c2dbc073f9d2d765ddc5823", kill_on_drop: false }`
[INFO] [stdout] b8ee1f60dc8ef0694739f2357d3fab4ca2fda9c77c2dbc073f9d2d765ddc5823
