[INFO] cloning repository https://github.com/okieraised/rs-ekyc-pipeline
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/okieraised/rs-ekyc-pipeline" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fokieraised%2Frs-ekyc-pipeline", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fokieraised%2Frs-ekyc-pipeline'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 4a6ef737fea7d16e6ee92aa71362b36963134cfa
[INFO] checking okieraised/rs-ekyc-pipeline against master#642c19bfc3a5c1de985bf5d0cc8207ac9d22708a for pr-148577
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fokieraised%2Frs-ekyc-pipeline" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/okieraised/rs-ekyc-pipeline
[INFO] finished tweaking git repo https://github.com/okieraised/rs-ekyc-pipeline
[INFO] tweaked toml for git repo https://github.com/okieraised/rs-ekyc-pipeline written to /workspace/builds/worker-7-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/okieraised/rs-ekyc-pipeline on toolchain 642c19bfc3a5c1de985bf5d0cc8207ac9d22708a
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+642c19bfc3a5c1de985bf5d0cc8207ac9d22708a" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/okieraised/rs-ekyc-pipeline 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" "+642c19bfc3a5c1de985bf5d0cc8207ac9d22708a" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded hyper-timeout v0.5.1
[INFO] [stderr]   Downloaded tonic-build v0.12.2
[INFO] [stderr]   Downloaded py_literal v0.4.0
[INFO] [stderr]   Downloaded lax v0.16.0
[INFO] [stderr]   Downloaded prost v0.13.1
[INFO] [stderr]   Downloaded ndarray-npy v0.8.1
[INFO] [stderr]   Downloaded prost-types v0.13.1
[INFO] [stderr]   Downloaded ndarray-linalg v0.16.0
[INFO] [stderr]   Downloaded serde v1.0.209
[INFO] [stderr]   Downloaded opencv-binding-generator v0.90.2
[INFO] [stderr]   Downloaded tonic v0.12.2
[INFO] [stderr]   Downloaded serde_json v1.0.127
[INFO] [stderr]   Downloaded serde_derive v1.0.209
[INFO] [stderr]   Downloaded cc v1.1.15
[INFO] [stderr]   Downloaded prost-build v0.13.1
[INFO] [stderr]   Downloaded ndarray-rand v0.15.0
[INFO] [stderr]   Downloaded prost-derive v0.13.1
[INFO] [stderr]   Downloaded rustix v0.38.35
[INFO] [stderr]   Downloaded opencv v0.92.2
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+642c19bfc3a5c1de985bf5d0cc8207ac9d22708a" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 352f11809aa0fd08beda48c3cf9b64399b91f39703f240afd5f655c97a4be2a0
[INFO] running `Command { std: "docker" "start" "-a" "352f11809aa0fd08beda48c3cf9b64399b91f39703f240afd5f655c97a4be2a0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "352f11809aa0fd08beda48c3cf9b64399b91f39703f240afd5f655c97a4be2a0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "352f11809aa0fd08beda48c3cf9b64399b91f39703f240afd5f655c97a4be2a0", kill_on_drop: false }`
[INFO] [stdout] 352f11809aa0fd08beda48c3cf9b64399b91f39703f240afd5f655c97a4be2a0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+642c19bfc3a5c1de985bf5d0cc8207ac9d22708a" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 5ee1e5b4ce890d1a51dd568a22b74d8fb3e8b7b4b5d1cea09126fd297ba1883d
[INFO] running `Command { std: "docker" "start" "-a" "5ee1e5b4ce890d1a51dd568a22b74d8fb3e8b7b4b5d1cea09126fd297ba1883d", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.86
[INFO] [stderr]    Compiling libc v0.2.158
[INFO] [stderr]    Compiling libm v0.2.8
[INFO] [stderr]     Checking bytes v1.7.1
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling serde v1.0.209
[INFO] [stderr]    Compiling thiserror v1.0.63
[INFO] [stderr]    Compiling either v1.13.0
[INFO] [stderr]    Compiling itertools v0.13.0
[INFO] [stderr]    Compiling rustix v0.38.35
[INFO] [stderr]    Compiling regex-syntax v0.8.4
[INFO] [stderr]    Compiling prettyplease v0.2.22
[INFO] [stderr]     Checking futures-task v0.3.30
[INFO] [stderr]     Checking indexmap v2.4.0
[INFO] [stderr]     Checking http v1.1.0
[INFO] [stderr]     Checking futures-util v0.3.30
[INFO] [stderr]    Compiling quote v1.0.37
[INFO] [stderr]     Checking getrandom v0.2.15
[INFO] [stderr]    Compiling syn v2.0.76
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking mio v1.0.2
[INFO] [stderr]     Checking socket2 v0.5.7
[INFO] [stderr]    Compiling matrixmultiply v0.3.9
[INFO] [stderr]    Compiling clang-sys v1.8.1
[INFO] [stderr]     Checking http-body v1.0.1
[INFO] [stderr]    Compiling indexmap v1.9.3
[INFO] [stderr]     Checking num-integer v0.1.46
[INFO] [stderr]    Compiling ucd-trie v0.1.6
[INFO] [stderr]     Checking bytemuck v1.17.1
[INFO] [stderr]     Checking unicode-ident v1.0.12
[INFO] [stderr]    Compiling httparse v1.9.4
[INFO] [stderr]    Compiling bitflags v2.6.0
[INFO] [stderr]    Compiling regex-automata v0.4.7
[INFO] [stderr]    Compiling fastrand v2.1.1
[INFO] [stderr]    Compiling petgraph v0.6.5
[INFO] [stderr]    Compiling clang v2.0.0
[INFO] [stderr]    Compiling jobserver v0.1.32
[INFO] [stderr]    Compiling axum-core v0.4.3
[INFO] [stderr]    Compiling percent-encoding v2.3.1
[INFO] [stderr]    Compiling multimap v0.10.0
[INFO] [stderr]    Compiling log v0.4.22
[INFO] [stderr]     Checking linux-raw-sys v0.4.14
[INFO] [stderr]     Checking smallvec v1.13.2
[INFO] [stderr]    Compiling cc v1.1.15
[INFO] [stderr]     Checking miniz_oxide v0.8.0
[INFO] [stderr]    Compiling tempfile v3.12.0
[INFO] [stderr]    Compiling regex v1.10.6
[INFO] [stderr]    Compiling opencv-binding-generator v0.90.2
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]     Checking http-body-util v0.1.2
[INFO] [stderr]     Checking safe_arch v0.7.2
[INFO] [stderr]     Checking approx v0.4.0
[INFO] [stderr]    Compiling axum v0.7.5
[INFO] [stderr]     Checking cblas-sys v0.1.4
[INFO] [stderr]     Checking fixedbitset v0.4.2
[INFO] [stderr]     Checking wide v0.7.28
[INFO] [stderr]    Compiling zerocopy-derive v0.7.35
[INFO] [stderr]    Compiling serde_derive v1.0.209
[INFO] [stderr]    Compiling thiserror-impl v1.0.63
[INFO] [stderr]     Checking zerocopy v0.7.35
[INFO] [stderr]    Compiling prost-derive v0.13.1
[INFO] [stderr]    Compiling tokio-macros v2.4.0
[INFO] [stderr]     Checking ppv-lite86 v0.2.20
[INFO] [stderr]    Compiling tracing-attributes v0.1.27
[INFO] [stderr]    Compiling pin-project-internal v1.1.5
[INFO] [stderr]     Checking tokio v1.39.3
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]    Compiling prost v0.13.1
[INFO] [stderr]     Checking pin-project v1.1.5
[INFO] [stderr]     Checking tracing v0.1.40
[INFO] [stderr]    Compiling pest v2.7.11
[INFO] [stderr]    Compiling prost-types v0.13.1
[INFO] [stderr]    Compiling async-trait v0.1.81
[INFO] [stderr]    Compiling pest_meta v2.7.11
[INFO] [stderr]    Compiling prost-build v0.13.1
[INFO] [stderr]    Compiling katexit v0.1.4
[INFO] [stderr]    Compiling opencv v0.92.2
[INFO] [stderr]    Compiling async-stream-impl v0.3.5
[INFO] [stderr]     Checking flate2 v1.0.33
[INFO] [stderr]    Compiling pest_generator v2.7.11
[INFO] [stderr]    Compiling tonic-build v0.12.2
[INFO] [stderr]     Checking num-bigint v0.4.6
[INFO] [stderr]     Checking approx v0.5.1
[INFO] [stderr]     Checking lapack-sys v0.14.0
[INFO] [stderr]     Checking sync_wrapper v1.0.1
[INFO] [stderr]    Compiling serde_json v1.0.127
[INFO] [stderr]     Checking heck v0.5.0
[INFO] [stderr]     Checking tokio-util v0.7.11
[INFO] [stderr]     Checking tokio-stream v0.1.15
[INFO] [stderr]    Compiling pest_derive v2.7.11
[INFO] [stderr]     Checking zip v0.5.13
[INFO] [stderr]     Checking async-stream v0.3.5
[INFO] [stderr]     Checking num-complex v0.4.6
[INFO] [stderr]     Checking rand_distr v0.4.3
[INFO] [stderr]     Checking tower v0.4.13
[INFO] [stderr]     Checking h2 v0.4.6
[INFO] [stderr]    Compiling rs-ekyc-pipeline v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling nalgebra-macros v0.2.2
[INFO] [stderr]     Checking rgb v0.8.48
[INFO] [stderr]     Checking num-rational v0.4.2
[INFO] [stderr]     Checking ndarray v0.15.6
[INFO] [stderr]     Checking cauchy v0.4.0
[INFO] [stderr]     Checking simba v0.9.0
[INFO] [stderr]     Checking ndarray v0.16.1
[INFO] [stderr]     Checking lax v0.16.0
[INFO] [stderr]     Checking py_literal v0.4.0
[INFO] [stderr]     Checking hyper v1.4.1
[INFO] [stderr]     Checking ndarray-linalg v0.16.0
[INFO] [stderr]     Checking ndarray-rand v0.15.0
[INFO] [stderr]     Checking ndarray-npy v0.8.1
[INFO] [stderr]     Checking hyper-util v0.1.7
[INFO] [stderr]     Checking nalgebra v0.33.0
[INFO] [stderr]     Checking hyper-timeout v0.5.1
[INFO] [stderr]     Checking tonic v0.12.2
[INFO] [stdout] warning: unused imports: `ArrayBase`, `Ix2`, `OwnedRepr`, `ShapeError`, `array`, and `stack`
[INFO] [stdout]  --> src/utils/image.rs:3:15
[INFO] [stdout]   |
[INFO] [stdout] 3 | use ndarray::{array, Array2, ArrayBase, Ix2, OwnedRepr, ShapeError, stack};
[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: `MatTraitConst`, `Range`, and `Vector`
[INFO] [stdout]  --> src/utils/image.rs:4:25
[INFO] [stdout]   |
[INFO] [stdout] 4 | use opencv::core::{Mat, MatTraitConst, Range, Vector};
[INFO] [stdout]   |                         ^^^^^^^^^^^^^  ^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `imwrite`
[INFO] [stdout]  --> src/utils/image.rs:5:49
[INFO] [stdout]   |
[INFO] [stdout] 5 | use opencv::imgcodecs::{imdecode, IMREAD_COLOR, imwrite};
[INFO] [stdout]   |                                                 ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize`
[INFO] [stdout]  --> src/pipeline/pipeline.rs:4:13
[INFO] [stdout]   |
[INFO] [stdout] 4 | use serde::{Deserialize, Serialize};
[INFO] [stdout]   |             ^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> src/pipeline/pipeline.rs:324:65
[INFO] [stdout]     |
[INFO] [stdout] 324 |         let v_card = extracted_vectors.slice(s![0,..]).to_vec();;
[INFO] [stdout]     |                                                                 ^ help: remove this semicolon
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(redundant_semicolons)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/helper/face_helper.rs:279:9
[INFO] [stdout]     |
[INFO] [stdout] 279 | /         /// Calculate vectors
[INFO] [stdout] 280 | |         /// Calculate the cross product (determinant in 2D)
[INFO] [stdout] 281 | |         /// Calculate the norm of vec_lmk
[INFO] [stdout] 282 | |         /// Calculate the final result
[INFO] [stdout]     | |______________________________________^
[INFO] [stdout] 283 |           let lmk0 = Vector2::new(lmk[[0, 0]], lmk[[0, 1]]);
[INFO] [stdout]     |           -------------------------------------------------- rustdoc does not generate documentation for statements
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout]     = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `s`
[INFO] [stdout]  --> src/modules/face_detection_client.rs:3:86
[INFO] [stdout]   |
[INFO] [stdout] 3 | use ndarray::{Array, Array3, Array4, ArrayBase, Axis, concatenate, IxDyn, OwnedRepr, s};
[INFO] [stdout]   |                                                                                      ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ArrayBase`, `Ix2`, `OwnedRepr`, `ShapeError`, `array`, and `stack`
[INFO] [stdout]  --> src/utils/image.rs:3:15
[INFO] [stdout]   |
[INFO] [stdout] 3 | use ndarray::{array, Array2, ArrayBase, Ix2, OwnedRepr, ShapeError, stack};
[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: `MatTraitConst`, `Range`, and `Vector`
[INFO] [stdout]  --> src/utils/image.rs:4:25
[INFO] [stdout]   |
[INFO] [stdout] 4 | use opencv::core::{Mat, MatTraitConst, Range, Vector};
[INFO] [stdout]   |                         ^^^^^^^^^^^^^  ^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `imwrite`
[INFO] [stdout]  --> src/utils/image.rs:5:49
[INFO] [stdout]   |
[INFO] [stdout] 5 | use opencv::imgcodecs::{imdecode, IMREAD_COLOR, imwrite};
[INFO] [stdout]   |                                                 ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `convert_image_to_ndarray`
[INFO] [stdout]   --> src/utils/image.rs:87:31
[INFO] [stdout]    |
[INFO] [stdout] 87 |     use crate::utils::image::{convert_image_to_ndarray, convert_hashmap_metadata_to_ndarray, convert_json_metadata_to_ndarray};
[INFO] [stdout]    |                               ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize`
[INFO] [stdout]  --> src/pipeline/pipeline.rs:4:13
[INFO] [stdout]   |
[INFO] [stdout] 4 | use serde::{Deserialize, Serialize};
[INFO] [stdout]   |             ^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> src/pipeline/pipeline.rs:324:65
[INFO] [stdout]     |
[INFO] [stdout] 324 |         let v_card = extracted_vectors.slice(s![0,..]).to_vec();;
[INFO] [stdout]     |                                                                 ^ help: remove this semicolon
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(redundant_semicolons)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `FASConfig`, `FaceDetectionConfig`, `FaceIDConfig`, and `FaceQualityConfig`
[INFO] [stdout]    --> src/pipeline/pipeline.rs:339:33
[INFO] [stdout]     |
[INFO] [stdout] 339 |     use crate::config::config::{FaceDetectionConfig, FaceIDConfig, FaceQualityConfig, FASConfig};
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::helper::face_helper::FaceHelper`
[INFO] [stdout]    --> src/pipeline/pipeline.rs:340:9
[INFO] [stdout]     |
[INFO] [stdout] 340 |     use crate::helper::face_helper::FaceHelper;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::modules::face_anti_spoofing::FaceFASClient`
[INFO] [stdout]    --> src/pipeline/pipeline.rs:341:9
[INFO] [stdout]     |
[INFO] [stdout] 341 |     use crate::modules::face_anti_spoofing::FaceFASClient;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::modules::face_detection_client::FaceDetectionClient`
[INFO] [stdout]    --> src/pipeline/pipeline.rs:342:9
[INFO] [stdout]     |
[INFO] [stdout] 342 |     use crate::modules::face_detection_client::FaceDetectionClient;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::modules::face_id_client::FaceIDClient`
[INFO] [stdout]    --> src/pipeline/pipeline.rs:343:9
[INFO] [stdout]     |
[INFO] [stdout] 343 |     use crate::modules::face_id_client::FaceIDClient;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::modules::face_quality_client::FaceQualityClient`
[INFO] [stdout]    --> src/pipeline/pipeline.rs:344:9
[INFO] [stdout]     |
[INFO] [stdout] 344 |     use crate::modules::face_quality_client::FaceQualityClient;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::pipeline::pipeline::EKYCPipeline`
[INFO] [stdout]    --> src/pipeline/pipeline.rs:345:9
[INFO] [stdout]     |
[INFO] [stdout] 345 |     use crate::pipeline::pipeline::EKYCPipeline;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::triton_client::client::triton::ModelConfigRequest`
[INFO] [stdout]    --> src/pipeline/pipeline.rs:346:9
[INFO] [stdout]     |
[INFO] [stdout] 346 |     use crate::triton_client::client::triton::ModelConfigRequest;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::triton_client::client::TritonInferenceClient`
[INFO] [stdout]    --> src/pipeline/pipeline.rs:347:9
[INFO] [stdout]     |
[INFO] [stdout] 347 |     use crate::triton_client::client::TritonInferenceClient;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::utils::coordinate::FaceLandmarkMetadata`
[INFO] [stdout]    --> src/pipeline/pipeline.rs:348:9
[INFO] [stdout]     |
[INFO] [stdout] 348 |     use crate::utils::coordinate::FaceLandmarkMetadata;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `convert_image_to_ndarray` and `convert_json_metadata_to_ndarray`
[INFO] [stdout]    --> src/pipeline/pipeline.rs:349:31
[INFO] [stdout]     |
[INFO] [stdout] 349 |     use crate::utils::image::{convert_image_to_ndarray, convert_json_metadata_to_ndarray};
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/helper/face_helper.rs:279:9
[INFO] [stdout]     |
[INFO] [stdout] 279 | /         /// Calculate vectors
[INFO] [stdout] 280 | |         /// Calculate the cross product (determinant in 2D)
[INFO] [stdout] 281 | |         /// Calculate the norm of vec_lmk
[INFO] [stdout] 282 | |         /// Calculate the final result
[INFO] [stdout]     | |______________________________________^
[INFO] [stdout] 283 |           let lmk0 = Vector2::new(lmk[[0, 0]], lmk[[0, 1]]);
[INFO] [stdout]     |           -------------------------------------------------- rustdoc does not generate documentation for statements
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout]     = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `s`
[INFO] [stdout]  --> src/modules/face_detection_client.rs:3:86
[INFO] [stdout]   |
[INFO] [stdout] 3 | use ndarray::{Array, Array3, Array4, ArrayBase, Axis, concatenate, IxDyn, OwnedRepr, s};
[INFO] [stdout]   |                                                                                      ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::*`
[INFO] [stdout]   --> src/lib.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 |     use super::*;
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `ndarray::impl_methods::<impl ndarray::ArrayBase<S, D>>::into_shape`: Use `.into_shape_with_order()` or `.to_shape()`
[INFO] [stdout]    --> src/pipeline/pipeline.rs:124:43
[INFO] [stdout]     |
[INFO] [stdout] 124 |         let lmk = landmarks[0].to_owned().into_shape([5,2]).unwrap();
[INFO] [stdout]     |                                           ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `ndarray::impl_methods::<impl ndarray::ArrayBase<S, D>>::into_shape`: Use `.into_shape_with_order()` or `.to_shape()`
[INFO] [stdout]    --> src/pipeline/pipeline.rs:154:52
[INFO] [stdout]     |
[INFO] [stdout] 154 |         let lmk = landmarks[center_idx].to_owned().into_shape([5,2]).unwrap();
[INFO] [stdout]     |                                                    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `ndarray::impl_methods::<impl ndarray::ArrayBase<S, D>>::into_shape`: Use `.into_shape_with_order()` or `.to_shape()`
[INFO] [stdout]    --> src/pipeline/pipeline.rs:124:43
[INFO] [stdout]     |
[INFO] [stdout] 124 |         let lmk = landmarks[0].to_owned().into_shape([5,2]).unwrap();
[INFO] [stdout]     |                                           ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `ndarray::impl_methods::<impl ndarray::ArrayBase<S, D>>::into_shape`: Use `.into_shape_with_order()` or `.to_shape()`
[INFO] [stdout]    --> src/pipeline/pipeline.rs:154:52
[INFO] [stdout]     |
[INFO] [stdout] 154 |         let lmk = landmarks[center_idx].to_owned().into_shape([5,2]).unwrap();
[INFO] [stdout]     |                                                    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `ndarray::impl_methods::<impl ndarray::ArrayBase<S, D>>::into_shape`: Use `.into_shape_with_order()` or `.to_shape()`
[INFO] [stdout]    --> src/helper/face_helper.rs:147:22
[INFO] [stdout]     |
[INFO] [stdout] 147 |                     .into_shape(IxDyn(&[1, 4]))?;
[INFO] [stdout]     |                      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `ndarray::impl_methods::<impl ndarray::ArrayBase<S, D>>::into_shape`: Use `.into_shape_with_order()` or `.to_shape()`
[INFO] [stdout]    --> src/helper/face_helper.rs:151:22
[INFO] [stdout]     |
[INFO] [stdout] 151 |                     .into_shape(IxDyn(&[1, 10]))?;
[INFO] [stdout]     |                      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `ndarray::impl_methods::<impl ndarray::ArrayBase<S, D>>::into_shape`: Use `.into_shape_with_order()` or `.to_shape()`
[INFO] [stdout]    --> src/helper/face_helper.rs:165:55
[INFO] [stdout]     |
[INFO] [stdout] 165 |                 let filter_landmark = offset_landmark.into_shape([5, 2]).unwrap().to_owned();
[INFO] [stdout]     |                                                       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/modules/face_anti_spoofing.rs:127:13
[INFO] [stdout]     |
[INFO] [stdout] 127 |         let mut sub_result = self.triton_infer_client.model_infer(model_request).await?;
[INFO] [stdout]     |             ----^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `ndarray::impl_methods::<impl ndarray::ArrayBase<S, D>>::into_shape`: Use `.into_shape_with_order()` or `.to_shape()`
[INFO] [stdout]    --> src/helper/face_helper.rs:147:22
[INFO] [stdout]     |
[INFO] [stdout] 147 |                     .into_shape(IxDyn(&[1, 4]))?;
[INFO] [stdout]     |                      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `ndarray::impl_methods::<impl ndarray::ArrayBase<S, D>>::into_shape`: Use `.into_shape_with_order()` or `.to_shape()`
[INFO] [stdout]    --> src/helper/face_helper.rs:151:22
[INFO] [stdout]     |
[INFO] [stdout] 151 |                     .into_shape(IxDyn(&[1, 10]))?;
[INFO] [stdout]     |                      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `ndarray::impl_methods::<impl ndarray::ArrayBase<S, D>>::into_shape`: Use `.into_shape_with_order()` or `.to_shape()`
[INFO] [stdout]    --> src/helper/face_helper.rs:165:55
[INFO] [stdout]     |
[INFO] [stdout] 165 |                 let filter_landmark = offset_landmark.into_shape([5, 2]).unwrap().to_owned();
[INFO] [stdout]     |                                                       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/modules/face_detection_client.rs:183:21
[INFO] [stdout]     |
[INFO] [stdout] 183 |                 let mut sub_tensor: Vec<f32> = input_tensors[idx].clone().into_iter().collect();
[INFO] [stdout]     |                     ----^^^^^^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/modules/face_detection_client.rs:203:17
[INFO] [stdout]     |
[INFO] [stdout] 203 |             let mut sub_result = self.triton_infer_client.model_infer(model_request).await?;
[INFO] [stdout]     |                 ----^^^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/modules/face_quality_client.rs:109:21
[INFO] [stdout]     |
[INFO] [stdout] 109 |                 let mut sub_tensor: Vec<f32> = input_tensors[idx].clone().into_iter().collect();
[INFO] [stdout]     |                     ----^^^^^^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/modules/face_quality_client.rs:131:17
[INFO] [stdout]     |
[INFO] [stdout] 131 |             let mut sub_result = self.triton_infer_client.model_infer(model_request).await?;
[INFO] [stdout]     |                 ----^^^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/modules/face_anti_spoofing.rs:127:13
[INFO] [stdout]     |
[INFO] [stdout] 127 |         let mut sub_result = self.triton_infer_client.model_infer(model_request).await?;
[INFO] [stdout]     |             ----^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/modules/face_id_client.rs:119:21
[INFO] [stdout]     |
[INFO] [stdout] 119 |                 let mut sub_tensor: Vec<f32> = input_tensors[idx].clone().into_iter().collect();
[INFO] [stdout]     |                     ----^^^^^^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/modules/face_id_client.rs:140:17
[INFO] [stdout]     |
[INFO] [stdout] 140 |             let mut sub_result = self.triton_infer_client.model_infer(model_request).await?;
[INFO] [stdout]     |                 ----^^^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/modules/face_detection_client.rs:183:21
[INFO] [stdout]     |
[INFO] [stdout] 183 |                 let mut sub_tensor: Vec<f32> = input_tensors[idx].clone().into_iter().collect();
[INFO] [stdout]     |                     ----^^^^^^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/modules/face_detection_client.rs:203:17
[INFO] [stdout]     |
[INFO] [stdout] 203 |             let mut sub_result = self.triton_infer_client.model_infer(model_request).await?;
[INFO] [stdout]     |                 ----^^^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/modules/face_quality_client.rs:109:21
[INFO] [stdout]     |
[INFO] [stdout] 109 |                 let mut sub_tensor: Vec<f32> = input_tensors[idx].clone().into_iter().collect();
[INFO] [stdout]     |                     ----^^^^^^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/modules/face_quality_client.rs:131:17
[INFO] [stdout]     |
[INFO] [stdout] 131 |             let mut sub_result = self.triton_infer_client.model_infer(model_request).await?;
[INFO] [stdout]     |                 ----^^^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/modules/face_id_client.rs:119:21
[INFO] [stdout]     |
[INFO] [stdout] 119 |                 let mut sub_tensor: Vec<f32> = input_tensors[idx].clone().into_iter().collect();
[INFO] [stdout]     |                     ----^^^^^^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/modules/face_id_client.rs:140:17
[INFO] [stdout]     |
[INFO] [stdout] 140 |             let mut sub_result = self.triton_infer_client.model_infer(model_request).await?;
[INFO] [stdout]     |                 ----^^^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `ndarray::impl_methods::<impl ndarray::ArrayBase<S, D>>::into_shape`: Use `.into_shape_with_order()` or `.to_shape()`
[INFO] [stdout]    --> src/helper/face_helper.rs:271:29
[INFO] [stdout]     |
[INFO] [stdout] 271 |         let reshaped = bbox.into_shape((2, 2))?;
[INFO] [stdout]     |                             ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/utils/image.rs:38:9
[INFO] [stdout]    |
[INFO] [stdout] 38 |     let mut nrows = 5;
[INFO] [stdout]    |         ----^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/utils/image.rs:96:13
[INFO] [stdout]    |
[INFO] [stdout] 96 |         let mut metadata: HashMap<&str, Coordinate2D> = HashMap::from(
[INFO] [stdout]    |             ----^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `ndarray::impl_methods::<impl ndarray::ArrayBase<S, D>>::into_shape`: Use `.into_shape_with_order()` or `.to_shape()`
[INFO] [stdout]    --> src/helper/face_helper.rs:271:29
[INFO] [stdout]     |
[INFO] [stdout] 271 |         let reshaped = bbox.into_shape((2, 2))?;
[INFO] [stdout]     |                             ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/utils/image.rs:38:9
[INFO] [stdout]    |
[INFO] [stdout] 38 |     let mut nrows = 5;
[INFO] [stdout]    |         ----^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sizes`
[INFO] [stdout]   --> src/modules/face_id_client.rs:93:29
[INFO] [stdout]    |
[INFO] [stdout] 93 |         let (input_tensors, sizes) = self.preprocess_batch(raw_input_tensors)?;
[INFO] [stdout]    |                             ^^^^^ help: if this is intentional, prefix it with an underscore: `_sizes`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `max_batch_size`
[INFO] [stdout]    --> src/modules/face_detection_client.rs:151:13
[INFO] [stdout]     |
[INFO] [stdout] 151 |         let max_batch_size = self.triton_model_config.config.clone().unwrap().max_batch_size.to_owned();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_max_batch_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `batch_size`
[INFO] [stdout]    --> src/modules/face_detection_client.rs:155:13
[INFO] [stdout]     |
[INFO] [stdout] 155 |         let batch_size = &input_tensors[0].dim().0;
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_batch_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sizes`
[INFO] [stdout]   --> src/modules/face_quality_client.rs:84:29
[INFO] [stdout]    |
[INFO] [stdout] 84 |         let (input_tensors, sizes) = self.preprocess_batch(raw_input_tensors)?;
[INFO] [stdout]    |                             ^^^^^ help: if this is intentional, prefix it with an underscore: `_sizes`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output_cfgs`
[INFO] [stdout]   --> src/modules/face_anti_spoofing.rs:88:13
[INFO] [stdout]    |
[INFO] [stdout] 88 |         let output_cfgs = &model_config.output;
[INFO] [stdout]    |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_output_cfgs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `affine_matrix_f32`
[INFO] [stdout]    --> src/helper/face_helper.rs:232:17
[INFO] [stdout]     |
[INFO] [stdout] 232 |             let affine_matrix_f32 =  affine_matrix_f64.map(|&x| x as f32);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_affine_matrix_f32`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `affine_matrix_f32`
[INFO] [stdout]    --> src/helper/face_helper.rs:326:13
[INFO] [stdout]     |
[INFO] [stdout] 326 |         let affine_matrix_f32 =  affine_matrix_f64.map(|&x| x as f32);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_affine_matrix_f32`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `affine_matrix_f32`
[INFO] [stdout]    --> src/helper/face_helper.rs:362:17
[INFO] [stdout]     |
[INFO] [stdout] 362 |             let affine_matrix_f32 =  affine_matrix_f64.map(|&x| x as f32);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_affine_matrix_f32`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `h`
[INFO] [stdout]    --> src/helper/face_helper.rs:391:60
[INFO] [stdout]     |
[INFO] [stdout] 391 | pub fn get_largest_face(det_faces: Vec<Array<f32, IxDyn>>, h: i32, w: i32) -> (Array<f32, IxDyn>, usize){
[INFO] [stdout]     |                                                            ^ help: if this is intentional, prefix it with an underscore: `_h`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `FaceDetectionClient` is more private than the item `FaceHelper::new`
[INFO] [stdout]   --> src/helper/face_helper.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 23 | /     pub fn new(
[INFO] [stdout] 24 | |         in_face_size: Option<(i32, i32)>, in_face_template: Option<Array2<f32>>,
[INFO] [stdout] 25 | |         in_fas_size: Option<(i32, i32)>, in_fas_template: Option<Array2<f32>>,
[INFO] [stdout] 26 | |         in_fa_size: Option<(i32, i32)>, in_fa_template: Option<Array2<f32>>,
[INFO] [stdout] 27 | |         face_det: FaceDetectionClient,
[INFO] [stdout] 28 | |     ) -> Self {
[INFO] [stdout]    | |_____________^ associated function `FaceHelper::new` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `FaceDetectionClient` is only usable at visibility `pub(crate)`
[INFO] [stdout]   --> src/modules/face_detection_client.rs:14:1
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub(crate) struct FaceDetectionClient {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `EKYCPipeline` is never constructed
[INFO] [stdout]   --> src/pipeline/pipeline.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct EKYCPipeline {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/pipeline/pipeline.rs:22:12
[INFO] [stdout]     |
[INFO] [stdout]  19 | impl EKYCPipeline {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  22 |     pub fn new(
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  46 |     pub fn similarity_score(&self, a: &Vec<f32>, b: &Vec<f32>)  -> f32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  61 |     async fn extract_embedding(&self, raw_input_tensors: Vec<Vec<Mat>>) -> Result<Array<f32, IxDyn>, Error> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  74 |     pub async fn get_face_vector(&self, img: Mat, landmark: Option<Array2<f32>>) ->  Result<Array<f32, IxDyn>, Error> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     pub async fn get_face_landmarks_5(&self, batch_imgs: Vec<Mat>) -> Result<Vec<Vec<Array<f32, Dim<[Ix; 2]>>>>, Error>{
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 112 |     pub async fn get_face_from_selfie(&self, img: Mat) -> Result<Mat, Error> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 137 |     pub async fn get_face_from_id_card(&self, img: Mat) -> Result<Mat, Error>{
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 172 |     pub async fn get_face_quality(&self, imgs: Vec<Mat>, lmks: Vec<Array2<f32>>) -> Result<(f32, bool), Error> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 199 |     pub async fn check_liveness(&self, imgs: Vec<Mat>, lmks: Vec<Array2<f32>>) -> Result<(f32, f32, bool), Error> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 229 |     pub async fn check_liveness_passive(&self, full_imgs: Vec<Mat>, crop_imgs: Vec<Mat>) -> Result<(f32, f32, bool), Error> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 260 |     pub async fn check_same_person(&self, imgs: Vec<Mat>, lmks: Vec<Array2<f32>>) -> Result<(f32, f32, bool), Error> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 288 |     pub async fn person_card_verify(&self, id_card: Mat, i_f: Mat, in_lmk_f: Option<Array2<f32>>) -> Result<(f32, bool), Error> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/config/config.rs:12:19
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl FaceDetectionConfig {
[INFO] [stdout]    | ------------------------ associated function in this implementation
[INFO] [stdout] 12 |     pub(crate) fn new() -> Self {
[INFO] [stdout]    |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/config/config.rs:34:19
[INFO] [stdout]    |
[INFO] [stdout] 33 | impl FaceIDConfig {
[INFO] [stdout]    | ----------------- associated function in this implementation
[INFO] [stdout] 34 |     pub(crate) fn new() -> Self {
[INFO] [stdout]    |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/config/config.rs:58:19
[INFO] [stdout]    |
[INFO] [stdout] 57 | impl FaceAttributeConfig {
[INFO] [stdout]    | ------------------------ associated function in this implementation
[INFO] [stdout] 58 |     pub(crate) fn new() -> Self {
[INFO] [stdout]    |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/config/config.rs:82:19
[INFO] [stdout]    |
[INFO] [stdout] 81 | impl FaceQualityConfig {
[INFO] [stdout]    | ---------------------- associated function in this implementation
[INFO] [stdout] 82 |     pub(crate) fn new() -> Self {
[INFO] [stdout]    |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new_crop` and `new_full` are never used
[INFO] [stdout]    --> src/config/config.rs:106:19
[INFO] [stdout]     |
[INFO] [stdout] 105 | impl FASConfig {
[INFO] [stdout]     | -------------- associated functions in this implementation
[INFO] [stdout] 106 |     pub(crate) fn new_crop() -> Self {
[INFO] [stdout]     |                   ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 117 |     pub(crate) fn new_full() -> Self {
[INFO] [stdout]     |                   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `fa_size` and `fa_template` are never read
[INFO] [stdout]   --> src/helper/face_helper.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct FaceHelper {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 15 |     fa_size: (i32, i32),
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 16 |     fa_template: Array2<f32>,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `FaceHelper` 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: struct `FaceFASClient` is never constructed
[INFO] [stdout]   --> src/modules/face_anti_spoofing.rs:14:19
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub(crate) struct FaceFASClient {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `preprocess`, and `infer_single` are never used
[INFO] [stdout]   --> src/modules/face_anti_spoofing.rs:26:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | impl FaceFASClient {
[INFO] [stdout]    | ------------------ associated items in this implementation
[INFO] [stdout] 26 |     pub fn new(triton_infer_client: TritonInferenceClient,
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |     fn preprocess(&self, img: &Mat) -> Result<Array3<f32>, Error>{
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 71 |     pub async fn infer_single(&self, imgs: &Vec<Mat>) -> Result<f32, Error> {
[INFO] [stdout]    |                  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `timeout` is never read
[INFO] [stdout]   --> src/modules/face_detection_client.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub(crate) struct FaceDetectionClient {
[INFO] [stdout]    |                   ------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 18 |     timeout: i32,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `FaceDetectionClient` 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: associated items `new`, `preprocess`, `postprocess`, and `infer` are never used
[INFO] [stdout]    --> src/modules/face_detection_client.rs:24:12
[INFO] [stdout]     |
[INFO] [stdout]  23 | impl FaceDetectionClient {
[INFO] [stdout]     | ------------------------ associated items in this implementation
[INFO] [stdout]  24 |     pub fn new(triton_infer_client: TritonInferenceClient,
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  38 |     fn preprocess(&self) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 117 |     fn postprocess(&self) {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 146 |     pub async fn infer(&self) {
[INFO] [stdout]     |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FaceQualityClient` is never constructed
[INFO] [stdout]   --> src/modules/face_quality_client.rs:11:19
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub(crate) struct FaceQualityClient {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `preprocess`, `preprocess_batch`, `postprocess`, `postprocess_batch`, and `infer_batch` are never used
[INFO] [stdout]   --> src/modules/face_quality_client.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | impl FaceQualityClient {
[INFO] [stdout]    | ---------------------- associated items in this implementation
[INFO] [stdout] 24 |     pub fn new(triton_infer_client: TritonInferenceClient,
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |     fn preprocess(&self) {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     fn preprocess_batch(&self, raw_input_tensors: &Vec<Vec<Mat>>) -> Result<(Vec<Array4<f32>>, Vec<(i32, i32)>), Error> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 71 |     fn postprocess(&self) {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 75 |     fn postprocess_batch(&self, outputs: Vec<Array<f32, IxDyn>>) -> Vec<Array1<f32>> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 83 |     pub async fn infer_batch(&self, raw_input_tensors: &Vec<Vec<Mat>>) -> Result<Vec<Array1<f32>>, Error> {
[INFO] [stdout]    |                  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FaceIDClient` is never constructed
[INFO] [stdout]   --> src/modules/face_id_client.rs:13:19
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub(crate) struct FaceIDClient {
[INFO] [stdout]    |                   ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `preprocess`, `preprocess_batch`, `postprocess`, `postprocess_batch`, and `infer_batch` are never used
[INFO] [stdout]   --> src/modules/face_id_client.rs:26:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | impl FaceIDClient {
[INFO] [stdout]    | ----------------- associated items in this implementation
[INFO] [stdout] 26 |     pub fn new(triton_infer_client: TritonInferenceClient,
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     async fn preprocess(&self) {
[INFO] [stdout]    |              ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     fn preprocess_batch(&self, raw_input_tensors: &Vec<Vec<Mat>>) -> Result<(Vec<Array4<f32>>, Vec<(i32, i32)>), Error> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 84 |     async fn postprocess(&self) {
[INFO] [stdout]    |              ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 88 |     fn postprocess_batch(&self, outputs: Vec<Array<f32, IxDyn>>) -> Array<f32, IxDyn> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 92 |     pub async fn infer_batch(&self, raw_input_tensors: &Vec<Vec<Mat>>) -> Result<Array<f32, IxDyn>, Error> {
[INFO] [stdout]    |                  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/helper/face_helper.rs:109:13
[INFO] [stdout]     |
[INFO] [stdout] 109 |             cvt_color(img, &mut converted_img, COLOR_BGR2RGB, 0);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 109 |             let _ = cvt_color(img, &mut converted_img, COLOR_BGR2RGB, 0);
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sizes`
[INFO] [stdout]   --> src/modules/face_id_client.rs:93:29
[INFO] [stdout]    |
[INFO] [stdout] 93 |         let (input_tensors, sizes) = self.preprocess_batch(raw_input_tensors)?;
[INFO] [stdout]    |                             ^^^^^ help: if this is intentional, prefix it with an underscore: `_sizes`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `max_batch_size`
[INFO] [stdout]    --> src/modules/face_detection_client.rs:151:13
[INFO] [stdout]     |
[INFO] [stdout] 151 |         let max_batch_size = self.triton_model_config.config.clone().unwrap().max_batch_size.to_owned();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_max_batch_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `batch_size`
[INFO] [stdout]    --> src/modules/face_detection_client.rs:155:13
[INFO] [stdout]     |
[INFO] [stdout] 155 |         let batch_size = &input_tensors[0].dim().0;
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_batch_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sizes`
[INFO] [stdout]   --> src/modules/face_quality_client.rs:84:29
[INFO] [stdout]    |
[INFO] [stdout] 84 |         let (input_tensors, sizes) = self.preprocess_batch(raw_input_tensors)?;
[INFO] [stdout]    |                             ^^^^^ help: if this is intentional, prefix it with an underscore: `_sizes`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output_cfgs`
[INFO] [stdout]   --> src/modules/face_anti_spoofing.rs:88:13
[INFO] [stdout]    |
[INFO] [stdout] 88 |         let output_cfgs = &model_config.output;
[INFO] [stdout]    |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_output_cfgs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `affine_matrix_f32`
[INFO] [stdout]    --> src/helper/face_helper.rs:232:17
[INFO] [stdout]     |
[INFO] [stdout] 232 |             let affine_matrix_f32 =  affine_matrix_f64.map(|&x| x as f32);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_affine_matrix_f32`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `affine_matrix_f32`
[INFO] [stdout]    --> src/helper/face_helper.rs:326:13
[INFO] [stdout]     |
[INFO] [stdout] 326 |         let affine_matrix_f32 =  affine_matrix_f64.map(|&x| x as f32);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_affine_matrix_f32`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `affine_matrix_f32`
[INFO] [stdout]    --> src/helper/face_helper.rs:362:17
[INFO] [stdout]     |
[INFO] [stdout] 362 |             let affine_matrix_f32 =  affine_matrix_f64.map(|&x| x as f32);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_affine_matrix_f32`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `h`
[INFO] [stdout]    --> src/helper/face_helper.rs:391:60
[INFO] [stdout]     |
[INFO] [stdout] 391 | pub fn get_largest_face(det_faces: Vec<Array<f32, IxDyn>>, h: i32, w: i32) -> (Array<f32, IxDyn>, usize){
[INFO] [stdout]     |                                                            ^ help: if this is intentional, prefix it with an underscore: `_h`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `FaceDetectionClient` is more private than the item `FaceHelper::new`
[INFO] [stdout]   --> src/helper/face_helper.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 23 | /     pub fn new(
[INFO] [stdout] 24 | |         in_face_size: Option<(i32, i32)>, in_face_template: Option<Array2<f32>>,
[INFO] [stdout] 25 | |         in_fas_size: Option<(i32, i32)>, in_fas_template: Option<Array2<f32>>,
[INFO] [stdout] 26 | |         in_fa_size: Option<(i32, i32)>, in_fa_template: Option<Array2<f32>>,
[INFO] [stdout] 27 | |         face_det: FaceDetectionClient,
[INFO] [stdout] 28 | |     ) -> Self {
[INFO] [stdout]    | |_____________^ associated function `FaceHelper::new` is reachable at visibility `pub`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `FaceDetectionClient` is only usable at visibility `pub(crate)`
[INFO] [stdout]   --> src/modules/face_detection_client.rs:14:1
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub(crate) struct FaceDetectionClient {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/triton_client/client.rs:55:25
[INFO] [stdout]    |
[INFO] [stdout] 54 | impl TritonInferenceClient {
[INFO] [stdout]    | -------------------------- associated function in this implementation
[INFO] [stdout] 55 |     pub(crate) async fn new(host: &str, port: &str) -> Result<Self, Error> {
[INFO] [stdout]    |                         ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `EKYCPipeline` is never constructed
[INFO] [stdout]   --> src/pipeline/pipeline.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct EKYCPipeline {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/pipeline/pipeline.rs:22:12
[INFO] [stdout]     |
[INFO] [stdout]  19 | impl EKYCPipeline {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  22 |     pub fn new(
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  46 |     pub fn similarity_score(&self, a: &Vec<f32>, b: &Vec<f32>)  -> f32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  61 |     async fn extract_embedding(&self, raw_input_tensors: Vec<Vec<Mat>>) -> Result<Array<f32, IxDyn>, Error> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  74 |     pub async fn get_face_vector(&self, img: Mat, landmark: Option<Array2<f32>>) ->  Result<Array<f32, IxDyn>, Error> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     pub async fn get_face_landmarks_5(&self, batch_imgs: Vec<Mat>) -> Result<Vec<Vec<Array<f32, Dim<[Ix; 2]>>>>, Error>{
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 112 |     pub async fn get_face_from_selfie(&self, img: Mat) -> Result<Mat, Error> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 137 |     pub async fn get_face_from_id_card(&self, img: Mat) -> Result<Mat, Error>{
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 172 |     pub async fn get_face_quality(&self, imgs: Vec<Mat>, lmks: Vec<Array2<f32>>) -> Result<(f32, bool), Error> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 199 |     pub async fn check_liveness(&self, imgs: Vec<Mat>, lmks: Vec<Array2<f32>>) -> Result<(f32, f32, bool), Error> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 229 |     pub async fn check_liveness_passive(&self, full_imgs: Vec<Mat>, crop_imgs: Vec<Mat>) -> Result<(f32, f32, bool), Error> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 260 |     pub async fn check_same_person(&self, imgs: Vec<Mat>, lmks: Vec<Array2<f32>>) -> Result<(f32, f32, bool), Error> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 288 |     pub async fn person_card_verify(&self, id_card: Mat, i_f: Mat, in_lmk_f: Option<Array2<f32>>) -> Result<(f32, bool), Error> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/config/config.rs:12:19
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl FaceDetectionConfig {
[INFO] [stdout]    | ------------------------ associated function in this implementation
[INFO] [stdout] 12 |     pub(crate) fn new() -> Self {
[INFO] [stdout]    |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/config/config.rs:34:19
[INFO] [stdout]    |
[INFO] [stdout] 33 | impl FaceIDConfig {
[INFO] [stdout]    | ----------------- associated function in this implementation
[INFO] [stdout] 34 |     pub(crate) fn new() -> Self {
[INFO] [stdout]    |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/config/config.rs:58:19
[INFO] [stdout]    |
[INFO] [stdout] 57 | impl FaceAttributeConfig {
[INFO] [stdout]    | ------------------------ associated function in this implementation
[INFO] [stdout] 58 |     pub(crate) fn new() -> Self {
[INFO] [stdout]    |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/config/config.rs:82:19
[INFO] [stdout]    |
[INFO] [stdout] 81 | impl FaceQualityConfig {
[INFO] [stdout]    | ---------------------- associated function in this implementation
[INFO] [stdout] 82 |     pub(crate) fn new() -> Self {
[INFO] [stdout]    |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new_crop` and `new_full` are never used
[INFO] [stdout]    --> src/config/config.rs:106:19
[INFO] [stdout]     |
[INFO] [stdout] 105 | impl FASConfig {
[INFO] [stdout]     | -------------- associated functions in this implementation
[INFO] [stdout] 106 |     pub(crate) fn new_crop() -> Self {
[INFO] [stdout]     |                   ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 117 |     pub(crate) fn new_full() -> Self {
[INFO] [stdout]     |                   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `fa_size` and `fa_template` are never read
[INFO] [stdout]   --> src/helper/face_helper.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct FaceHelper {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 15 |     fa_size: (i32, i32),
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 16 |     fa_template: Array2<f32>,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `FaceHelper` 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: struct `FaceFASClient` is never constructed
[INFO] [stdout]   --> src/modules/face_anti_spoofing.rs:14:19
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub(crate) struct FaceFASClient {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `preprocess`, and `infer_single` are never used
[INFO] [stdout]   --> src/modules/face_anti_spoofing.rs:26:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | impl FaceFASClient {
[INFO] [stdout]    | ------------------ associated items in this implementation
[INFO] [stdout] 26 |     pub fn new(triton_infer_client: TritonInferenceClient,
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |     fn preprocess(&self, img: &Mat) -> Result<Array3<f32>, Error>{
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 71 |     pub async fn infer_single(&self, imgs: &Vec<Mat>) -> Result<f32, Error> {
[INFO] [stdout]    |                  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `timeout` is never read
[INFO] [stdout]   --> src/modules/face_detection_client.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub(crate) struct FaceDetectionClient {
[INFO] [stdout]    |                   ------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 18 |     timeout: i32,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `FaceDetectionClient` 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: associated items `new`, `preprocess`, `postprocess`, and `infer` are never used
[INFO] [stdout]    --> src/modules/face_detection_client.rs:24:12
[INFO] [stdout]     |
[INFO] [stdout]  23 | impl FaceDetectionClient {
[INFO] [stdout]     | ------------------------ associated items in this implementation
[INFO] [stdout]  24 |     pub fn new(triton_infer_client: TritonInferenceClient,
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  38 |     fn preprocess(&self) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 117 |     fn postprocess(&self) {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 146 |     pub async fn infer(&self) {
[INFO] [stdout]     |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FaceQualityClient` is never constructed
[INFO] [stdout]   --> src/modules/face_quality_client.rs:11:19
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub(crate) struct FaceQualityClient {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `preprocess`, `preprocess_batch`, `postprocess`, `postprocess_batch`, and `infer_batch` are never used
[INFO] [stdout]   --> src/modules/face_quality_client.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | impl FaceQualityClient {
[INFO] [stdout]    | ---------------------- associated items in this implementation
[INFO] [stdout] 24 |     pub fn new(triton_infer_client: TritonInferenceClient,
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |     fn preprocess(&self) {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     fn preprocess_batch(&self, raw_input_tensors: &Vec<Vec<Mat>>) -> Result<(Vec<Array4<f32>>, Vec<(i32, i32)>), Error> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 71 |     fn postprocess(&self) {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 75 |     fn postprocess_batch(&self, outputs: Vec<Array<f32, IxDyn>>) -> Vec<Array1<f32>> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 83 |     pub async fn infer_batch(&self, raw_input_tensors: &Vec<Vec<Mat>>) -> Result<Vec<Array1<f32>>, Error> {
[INFO] [stdout]    |                  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FaceIDClient` is never constructed
[INFO] [stdout]   --> src/modules/face_id_client.rs:13:19
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub(crate) struct FaceIDClient {
[INFO] [stdout]    |                   ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `preprocess`, `preprocess_batch`, `postprocess`, `postprocess_batch`, and `infer_batch` are never used
[INFO] [stdout]   --> src/modules/face_id_client.rs:26:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | impl FaceIDClient {
[INFO] [stdout]    | ----------------- associated items in this implementation
[INFO] [stdout] 26 |     pub fn new(triton_infer_client: TritonInferenceClient,
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     async fn preprocess(&self) {
[INFO] [stdout]    |              ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     fn preprocess_batch(&self, raw_input_tensors: &Vec<Vec<Mat>>) -> Result<(Vec<Array4<f32>>, Vec<(i32, i32)>), Error> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 84 |     async fn postprocess(&self) {
[INFO] [stdout]    |              ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 88 |     fn postprocess_batch(&self, outputs: Vec<Array<f32, IxDyn>>) -> Array<f32, IxDyn> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 92 |     pub async fn infer_batch(&self, raw_input_tensors: &Vec<Vec<Mat>>) -> Result<Array<f32, IxDyn>, Error> {
[INFO] [stdout]    |                  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/helper/face_helper.rs:109:13
[INFO] [stdout]     |
[INFO] [stdout] 109 |             cvt_color(img, &mut converted_img, COLOR_BGR2RGB, 0);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 109 |             let _ = cvt_color(img, &mut converted_img, COLOR_BGR2RGB, 0);
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 3m 28s
[INFO] running `Command { std: "docker" "inspect" "5ee1e5b4ce890d1a51dd568a22b74d8fb3e8b7b4b5d1cea09126fd297ba1883d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5ee1e5b4ce890d1a51dd568a22b74d8fb3e8b7b4b5d1cea09126fd297ba1883d", kill_on_drop: false }`
[INFO] [stdout] 5ee1e5b4ce890d1a51dd568a22b74d8fb3e8b7b4b5d1cea09126fd297ba1883d
