[INFO] cloning repository https://github.com/noorshaik95/axum-grafana-example
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/noorshaik95/axum-grafana-example" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fnoorshaik95%2Faxum-grafana-example", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fnoorshaik95%2Faxum-grafana-example'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 44ea6fee2fb975c793efe6e213eb13bfe0e36216
[INFO] checking noorshaik95/axum-grafana-example against master#642c19bfc3a5c1de985bf5d0cc8207ac9d22708a for pr-148577
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fnoorshaik95%2Faxum-grafana-example" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/noorshaik95/axum-grafana-example
[INFO] finished tweaking git repo https://github.com/noorshaik95/axum-grafana-example
[INFO] tweaked toml for git repo https://github.com/noorshaik95/axum-grafana-example written to /workspace/builds/worker-5-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/noorshaik95/axum-grafana-example 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/noorshaik95/axum-grafana-example 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]  Downloading crates ...
[INFO] [stderr]   Downloaded protobuf-support v3.7.2
[INFO] [stderr]   Downloaded rustc_version_runtime v0.3.0
[INFO] [stderr]   Downloaded opentelemetry-otlp v0.29.0
[INFO] [stderr]   Downloaded deranged v0.5.4
[INFO] [stderr]   Downloaded mongodb-internal-macros v3.3.0
[INFO] [stderr]   Downloaded prost-build v0.13.5
[INFO] [stderr]   Downloaded mongocrypt-sys v0.1.4+1.12.0
[INFO] [stderr]   Downloaded pest_generator v2.8.3
[INFO] [stderr]   Downloaded pest_derive v2.8.3
[INFO] [stderr]   Downloaded pest_meta v2.8.3
[INFO] [stderr]   Downloaded derive-where v1.6.0
[INFO] [stderr]   Downloaded hickory-resolver v0.24.4
[INFO] [stderr]   Downloaded pest v2.8.3
[INFO] [stderr]   Downloaded bson v2.15.0
[INFO] [stderr]   Downloaded opentelemetry-proto v0.29.0
[INFO] [stderr]   Downloaded opentelemetry_sdk v0.29.0
[INFO] [stderr]   Downloaded serde_with v3.15.0
[INFO] [stderr]   Downloaded protobuf v3.7.2
[INFO] [stderr]   Downloaded tracing-opentelemetry v0.30.0
[INFO] [stderr]   Downloaded rustls-webpki v0.103.7
[INFO] [stderr]   Downloaded serde_with_macros v3.15.0
[INFO] [stderr]   Downloaded typed-builder-macro v0.20.1
[INFO] [stderr]   Downloaded typed-builder v0.20.1
[INFO] [stderr]   Downloaded prometheus v0.14.0
[INFO] [stderr]   Downloaded mongocrypt v0.3.1
[INFO] [stderr]   Downloaded hickory-proto v0.24.4
[INFO] [stderr]   Downloaded opentelemetry-http v0.29.0
[INFO] [stderr]   Downloaded opentelemetry v0.29.1
[INFO] [stderr]   Downloaded mongodb v3.3.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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] 1bd0fd17c362e4ded2d7bfae35e561a2e24f95a0797346ef951142a7fd9e520a
[INFO] running `Command { std: "docker" "start" "-a" "1bd0fd17c362e4ded2d7bfae35e561a2e24f95a0797346ef951142a7fd9e520a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "1bd0fd17c362e4ded2d7bfae35e561a2e24f95a0797346ef951142a7fd9e520a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1bd0fd17c362e4ded2d7bfae35e561a2e24f95a0797346ef951142a7fd9e520a", kill_on_drop: false }`
[INFO] [stdout] 1bd0fd17c362e4ded2d7bfae35e561a2e24f95a0797346ef951142a7fd9e520a
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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] 468b88c8cd195a16c7a3ca312cc923afaa400ee3370a33681a3b8a967519a840
[INFO] running `Command { std: "docker" "start" "-a" "468b88c8cd195a16c7a3ca312cc923afaa400ee3370a33681a3b8a967519a840", kill_on_drop: false }`
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling syn v2.0.106
[INFO] [stderr]     Checking indexmap v2.11.4
[INFO] [stderr]    Compiling libc v0.2.177
[INFO] [stderr]     Checking stable_deref_trait v1.2.1
[INFO] [stderr]    Compiling serde_json v1.0.145
[INFO] [stderr]    Compiling anyhow v1.0.100
[INFO] [stderr]    Compiling typenum v1.19.0
[INFO] [stderr]    Compiling generic-array v0.14.9
[INFO] [stderr]     Checking ahash v0.8.12
[INFO] [stderr]    Compiling cc v1.2.41
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]    Compiling indexmap v1.9.3
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]     Checking zeroize v1.8.2
[INFO] [stderr]    Compiling rustix v1.1.2
[INFO] [stderr]     Checking rustls-pki-types v1.12.0
[INFO] [stderr]    Compiling memchr v2.7.6
[INFO] [stderr]    Compiling bytes v1.10.1
[INFO] [stderr]    Compiling prettyplease v0.2.37
[INFO] [stderr]    Compiling linux-raw-sys v0.11.0
[INFO] [stderr]    Compiling getrandom v0.2.16
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]     Checking crypto-common v0.1.6
[INFO] [stderr]    Compiling const-random-macro v0.1.16
[INFO] [stderr]     Checking block-buffer v0.10.4
[INFO] [stderr]    Compiling regex-syntax v0.8.8
[INFO] [stderr]    Compiling bitflags v2.9.4
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]    Compiling const-random v0.1.18
[INFO] [stderr]     Checking hashbrown v0.14.5
[INFO] [stderr]     Checking serde_path_to_error v0.1.20
[INFO] [stderr]    Compiling pest v2.8.3
[INFO] [stderr]     Checking socket2 v0.5.10
[INFO] [stderr]     Checking matchit v0.7.3
[INFO] [stderr]    Compiling time-core v0.1.6
[INFO] [stderr]    Compiling petgraph v0.7.1
[INFO] [stderr]    Compiling time-macros v0.2.24
[INFO] [stderr]    Compiling regex-automata v0.4.13
[INFO] [stderr]     Checking deranged v0.5.4
[INFO] [stderr]    Compiling tempfile v3.23.0
[INFO] [stderr]    Compiling pest_meta v2.8.3
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling multimap v0.10.1
[INFO] [stderr]    Compiling mongocrypt-sys v0.1.4+1.12.0
[INFO] [stderr]    Compiling rustls v0.23.32
[INFO] [stderr]     Checking dlv-list v0.5.2
[INFO] [stderr]    Compiling rustc_version_runtime v0.3.0
[INFO] [stderr]    Compiling regex v1.12.2
[INFO] [stderr]     Checking serde_bytes v0.11.19
[INFO] [stderr]     Checking linked-hash-map v0.5.6
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling darling_core v0.21.3
[INFO] [stderr]     Checking time v0.3.44
[INFO] [stderr]     Checking rustls-webpki v0.103.7
[INFO] [stderr]    Compiling pest_generator v2.8.3
[INFO] [stderr]     Checking semver v1.0.27
[INFO] [stderr]     Checking toml_write v0.1.2
[INFO] [stderr]    Compiling protobuf v3.7.2
[INFO] [stderr]     Checking rustc_version v0.4.1
[INFO] [stderr]     Checking lru-cache v0.1.2
[INFO] [stderr]     Checking ordered-multimap v0.7.3
[INFO] [stderr]     Checking unicode-normalization v0.1.24
[INFO] [stderr]     Checking hashlink v0.8.4
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling tracing-attributes v0.1.30
[INFO] [stderr]    Compiling tokio-macros v2.6.0
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.0
[INFO] [stderr]     Checking tokio v1.48.0
[INFO] [stderr]     Checking futures-util v0.3.31
[INFO] [stderr]     Checking tracing v0.1.41
[INFO] [stderr]    Compiling zerovec-derive v0.11.1
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]     Checking zerofrom v0.1.6
[INFO] [stderr]    Compiling prost-derive v0.13.5
[INFO] [stderr]     Checking yoke v0.8.0
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]     Checking zerotrie v0.2.2
[INFO] [stderr]    Compiling thiserror-impl v2.0.17
[INFO] [stderr]     Checking zerovec v0.11.4
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling pin-project-internal v1.1.10
[INFO] [stderr]    Compiling macro_magic_core_macros v0.5.1
[INFO] [stderr]    Compiling derive-syn-parse v0.2.0
[INFO] [stderr]     Checking thiserror v2.0.17
[INFO] [stderr]     Checking opentelemetry v0.29.1
[INFO] [stderr]     Checking serde v1.0.228
[INFO] [stderr]     Checking tinystr v0.8.1
[INFO] [stderr]     Checking potential_utf v0.1.3
[INFO] [stderr]     Checking pin-project v1.1.10
[INFO] [stderr]     Checking icu_collections v2.0.0
[INFO] [stderr]     Checking icu_locale_core v2.0.0
[INFO] [stderr]     Checking futures-executor v0.3.31
[INFO] [stderr]    Compiling macro_magic_core v0.5.1
[INFO] [stderr]     Checking axum-core v0.4.5
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]    Compiling prost v0.13.5
[INFO] [stderr]    Compiling async-stream-impl v0.3.6
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking icu_provider v2.0.0
[INFO] [stderr]    Compiling macro_magic_macros v0.5.1
[INFO] [stderr]    Compiling prost-types v0.13.5
[INFO] [stderr]    Compiling darling_macro v0.21.3
[INFO] [stderr]     Checking serde_spanned v0.6.9
[INFO] [stderr]     Checking async-stream v0.3.6
[INFO] [stderr]     Checking uuid v1.18.1
[INFO] [stderr]     Checking toml_datetime v0.6.11
[INFO] [stderr]     Checking icu_normalizer v2.0.0
[INFO] [stderr]     Checking icu_properties v2.0.1
[INFO] [stderr]    Compiling darling v0.21.3
[INFO] [stderr]     Checking tokio-util v0.7.16
[INFO] [stderr]     Checking tower v0.5.2
[INFO] [stderr]     Checking tokio-stream v0.1.17
[INFO] [stderr]     Checking opentelemetry_sdk v0.29.0
[INFO] [stderr]    Compiling enum-as-inner v0.6.1
[INFO] [stderr]     Checking h2 v0.4.12
[INFO] [stderr]     Checking tower v0.4.13
[INFO] [stderr]     Checking tower-http v0.6.6
[INFO] [stderr]    Compiling prost-build v0.13.5
[INFO] [stderr]     Checking bson v2.15.0
[INFO] [stderr]     Checking toml_edit v0.22.27
[INFO] [stderr]     Checking idna_adapter v1.2.1
[INFO] [stderr]     Checking idna v1.1.0
[INFO] [stderr]    Compiling serde_with_macros v3.15.0
[INFO] [stderr]     Checking url v2.5.7
[INFO] [stderr]    Compiling tonic-build v0.12.3
[INFO] [stderr]    Compiling macro_magic v0.5.1
[INFO] [stderr]     Checking tracing-serde v0.2.0
[INFO] [stderr]     Checking hickory-proto v0.24.4
[INFO] [stderr]     Checking protobuf-support v3.7.2
[INFO] [stderr]     Checking matchers v0.2.0
[INFO] [stderr]    Compiling pest_derive v2.8.3
[INFO] [stderr]    Compiling typed-builder-macro v0.20.1
[INFO] [stderr]     Checking webpki-roots v1.0.3
[INFO] [stderr]     Checking tracing-log v0.2.0
[INFO] [stderr]     Checking nu-ansi-term v0.50.3
[INFO] [stderr]    Compiling prometheus v0.14.0
[INFO] [stderr]     Checking yaml-rust2 v0.8.1
[INFO] [stderr]     Checking chrono v0.4.42
[INFO] [stderr]    Compiling derive_more v0.99.20
[INFO] [stderr]     Checking tracing-subscriber v0.3.20
[INFO] [stderr]     Checking mongocrypt v0.3.1
[INFO] [stderr]     Checking nom v7.1.3
[INFO] [stderr]     Checking ron v0.8.1
[INFO] [stderr]     Checking typed-builder v0.20.1
[INFO] [stderr]     Checking stringprep v0.1.5
[INFO] [stderr]    Compiling api-gateway v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Checking webpki-roots v0.26.11
[INFO] [stderr]     Checking toml v0.8.23
[INFO] [stderr]     Checking json5 v0.4.1
[INFO] [stderr]     Checking serde_with v3.15.0
[INFO] [stderr]    Compiling mongodb-internal-macros v3.3.0
[INFO] [stderr]     Checking tokio-rustls v0.26.4
[INFO] [stderr]     Checking hickory-resolver v0.24.4
[INFO] [stderr]    Compiling derive-where v1.6.0
[INFO] [stderr]     Checking hyper v1.7.0
[INFO] [stderr]     Checking rust-ini v0.20.0
[INFO] [stderr]     Checking sha1 v0.10.6
[INFO] [stderr]     Checking sha2 v0.10.9
[INFO] [stderr]     Checking md-5 v0.10.6
[INFO] [stderr]     Checking hmac v0.12.1
[INFO] [stderr]     Checking pbkdf2 v0.11.0
[INFO] [stderr]     Checking take_mut v0.2.2
[INFO] [stderr]     Checking config v0.14.1
[INFO] [stderr]     Checking serde_yaml v0.9.34+deprecated
[INFO] [stderr]     Checking tracing-opentelemetry v0.30.0
[INFO] [stderr]     Checking hyper-util v0.1.17
[INFO] [stderr]     Checking mongodb v3.3.0
[INFO] [stderr]     Checking axum v0.7.9
[INFO] [stderr]     Checking hyper-timeout v0.5.2
[INFO] [stderr]     Checking reqwest v0.12.24
[INFO] [stderr]     Checking opentelemetry-http v0.29.0
[INFO] [stderr]     Checking tonic v0.12.3
[INFO] [stderr]     Checking opentelemetry-proto v0.29.0
[INFO] [stderr]     Checking tonic-reflection v0.12.3
[INFO] [stderr]     Checking opentelemetry-otlp v0.29.0
[INFO] [stdout] warning: constant `ERR_MISSING_TOKEN` is never used
[INFO] [stdout]   --> src/auth/constants.rs:16:11
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub const ERR_MISSING_TOKEN: &str = "Missing authentication token";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `config` is never read
[INFO] [stdout]   --> src/auth/service.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub struct AuthService {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] 23 |     auth_client_channel: Channel,
[INFO] [stdout] 24 |     config: AuthConfig,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ERR_NO_ROUTES` is never used
[INFO] [stdout]  --> src/config/constants.rs:6:11
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub const ERR_NO_ROUTES: &str = "At least one route must be configured";
[INFO] [stdout]   |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ERR_EMPTY_ROUTE_PATH` is never used
[INFO] [stdout]  --> src/config/constants.rs:7:11
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub const ERR_EMPTY_ROUTE_PATH: &str = "Route path cannot be empty";
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ERR_EMPTY_ROUTE_METHOD` is never used
[INFO] [stdout]  --> src/config/constants.rs:8:11
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub const ERR_EMPTY_ROUTE_METHOD: &str = "Route method cannot be empty";
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ERR_EMPTY_ROUTE_SERVICE` is never used
[INFO] [stdout]  --> src/config/constants.rs:9:11
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub const ERR_EMPTY_ROUTE_SERVICE: &str = "Route service cannot be empty";
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ERR_EMPTY_ROUTE_GRPC_METHOD` is never used
[INFO] [stdout]   --> src/config/constants.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub const ERR_EMPTY_ROUTE_GRPC_METHOD: &str = "Route grpc_method cannot be empty";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ErrorResponse` is never constructed
[INFO] [stdout]  --> src/response.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct ErrorResponse {
[INFO] [stdout]   |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ResponseResult` is never constructed
[INFO] [stdout]   --> src/response.rs:10:13
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct  ResponseResult<T> {
[INFO] [stdout]    |             ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AuthToken` and `TokenClaims`
[INFO] [stdout]   --> src/auth/mod.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 25 |     AuthToken,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 26 |     TokenClaims,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ERR_MISSING_TOKEN` is never used
[INFO] [stdout]   --> src/auth/constants.rs:16:11
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub const ERR_MISSING_TOKEN: &str = "Missing authentication token";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `config` is never read
[INFO] [stdout]   --> src/auth/service.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub struct AuthService {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] 23 |     auth_client_channel: Channel,
[INFO] [stdout] 24 |     config: AuthConfig,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ERR_NO_ROUTES` is never used
[INFO] [stdout]  --> src/config/constants.rs:6:11
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub const ERR_NO_ROUTES: &str = "At least one route must be configured";
[INFO] [stdout]   |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ERR_EMPTY_ROUTE_PATH` is never used
[INFO] [stdout]  --> src/config/constants.rs:7:11
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub const ERR_EMPTY_ROUTE_PATH: &str = "Route path cannot be empty";
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ERR_EMPTY_ROUTE_METHOD` is never used
[INFO] [stdout]  --> src/config/constants.rs:8:11
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub const ERR_EMPTY_ROUTE_METHOD: &str = "Route method cannot be empty";
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ERR_EMPTY_ROUTE_SERVICE` is never used
[INFO] [stdout]  --> src/config/constants.rs:9:11
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub const ERR_EMPTY_ROUTE_SERVICE: &str = "Route service cannot be empty";
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ERR_EMPTY_ROUTE_GRPC_METHOD` is never used
[INFO] [stdout]   --> src/config/constants.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub const ERR_EMPTY_ROUTE_GRPC_METHOD: &str = "Route grpc_method cannot be empty";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ErrorResponse` is never constructed
[INFO] [stdout]  --> src/response.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct ErrorResponse {
[INFO] [stdout]   |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ResponseResult` is never constructed
[INFO] [stdout]   --> src/response.rs:10:13
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct  ResponseResult<T> {
[INFO] [stdout]    |             ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `constants::*`
[INFO] [stdout]   --> src/discovery/mod.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub use constants::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `metrics::*`
[INFO] [stdout]   --> src/discovery/mod.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub use metrics::*;
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `GrpcResponse`
[INFO] [stdout]  --> src/grpc/mod.rs:9:41
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub use types::{GrpcError, GrpcRequest, GrpcResponse};
[INFO] [stdout]   |                                         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ErrorDetail` and `ErrorResponse`
[INFO] [stdout]   --> src/handlers/mod.rs:10:31
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub use types::{GatewayError, ErrorResponse, ErrorDetail, map_grpc_error_to_status};
[INFO] [stdout]    |                               ^^^^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `gateway::gateway_handler`
[INFO] [stdout]   --> src/handlers/mod.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub use gateway::gateway_handler;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RefreshResponse`
[INFO] [stdout]   --> src/handlers/mod.rs:16:41
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub use admin::{refresh_routes_handler, RefreshResponse};
[INFO] [stdout]    |                                         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `HealthState`, `HealthStatus`, and `ServiceHealth`
[INFO] [stdout]   --> src/health/mod.rs:10:17
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub use types::{HealthState, HealthStatus, ServiceHealth};
[INFO] [stdout]    |                 ^^^^^^^^^^^  ^^^^^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ClientRateState`
[INFO] [stdout]   --> src/rate_limit/mod.rs:10:17
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub use types::{ClientRateState, RateLimitError};
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AppState` and `GatewayMetrics`
[INFO] [stdout]  --> src/shared/mod.rs:3:17
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub use state::{AppState, GatewayMetrics};
[INFO] [stdout]   |                 ^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AuthPolicy`, `AuthToken`, and `TokenClaims`
[INFO] [stdout]   --> src/auth/mod.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 25 |     AuthToken,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 26 |     TokenClaims,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 27 |     AuthResult,
[INFO] [stdout] 28 |     AuthPolicy,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `constants::*`
[INFO] [stdout]   --> src/discovery/mod.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub use constants::*;
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `metrics::*`
[INFO] [stdout]   --> src/discovery/mod.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub use metrics::*;
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `GrpcError`, `GrpcRequest`, and `GrpcResponse`
[INFO] [stdout]  --> src/grpc/mod.rs:9:17
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub use types::{GrpcError, GrpcRequest, GrpcResponse};
[INFO] [stdout]   |                 ^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ErrorDetail`, `ErrorResponse`, `GatewayError`, and `map_grpc_error_to_status`
[INFO] [stdout]   --> src/handlers/mod.rs:10:17
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub use types::{GatewayError, ErrorResponse, ErrorDetail, map_grpc_error_to_status};
[INFO] [stdout]    |                 ^^^^^^^^^^^^  ^^^^^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `gateway::gateway_handler`
[INFO] [stdout]   --> src/handlers/mod.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub use gateway::gateway_handler;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RefreshResponse`
[INFO] [stdout]   --> src/handlers/mod.rs:16:41
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub use admin::{refresh_routes_handler, RefreshResponse};
[INFO] [stdout]    |                                         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `HealthState`, `HealthStatus`, and `ServiceHealth`
[INFO] [stdout]   --> src/health/mod.rs:10:17
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub use types::{HealthState, HealthStatus, ServiceHealth};
[INFO] [stdout]    |                 ^^^^^^^^^^^  ^^^^^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ClientRateState`
[INFO] [stdout]   --> src/rate_limit/mod.rs:10:17
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub use types::{ClientRateState, RateLimitError};
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AppState` and `GatewayMetrics`
[INFO] [stdout]  --> src/shared/mod.rs:3:17
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub use state::{AppState, GatewayMetrics};
[INFO] [stdout]   |                 ^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `ExpiredToken` is never constructed
[INFO] [stdout]   --> src/auth/types.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub enum AuthError {
[INFO] [stdout]    |          --------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 13 |     ExpiredToken,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `AuthError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AuthToken` is never constructed
[INFO] [stdout]   --> src/auth/types.rs:42:12
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub struct AuthToken {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `exp` is never read
[INFO] [stdout]   --> src/auth/types.rs:52:9
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub struct TokenClaims {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 52 |     pub exp: i64,
[INFO] [stdout]    |         ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TokenClaims` 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: constant `ERR_MISSING_TOKEN` is never used
[INFO] [stdout]   --> src/auth/constants.rs:16:11
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub const ERR_MISSING_TOKEN: &str = "Missing authentication token";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ERR_CACHE_CLEAR` is never used
[INFO] [stdout]   --> src/auth/constants.rs:40:11
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub const ERR_CACHE_CLEAR: &str = "Failed to clear policy cache";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `config` is never read
[INFO] [stdout]   --> src/auth/service.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub struct AuthService {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] 23 |     auth_client_channel: Channel,
[INFO] [stdout] 24 |     config: AuthConfig,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `clear_policy_cache` and `cache_stats` are never used
[INFO] [stdout]    --> src/auth/service.rs:282:12
[INFO] [stdout]     |
[INFO] [stdout]  28 | impl AuthService {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 282 |     pub fn clear_policy_cache(&self) -> Result<(), AuthError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 291 |     pub fn cache_stats(&self) -> Result<(usize, usize), AuthError> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ERR_NO_ROUTES` is never used
[INFO] [stdout]  --> src/config/constants.rs:6:11
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub const ERR_NO_ROUTES: &str = "At least one route must be configured";
[INFO] [stdout]   |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ERR_EMPTY_ROUTE_PATH` is never used
[INFO] [stdout]  --> src/config/constants.rs:7:11
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub const ERR_EMPTY_ROUTE_PATH: &str = "Route path cannot be empty";
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ERR_EMPTY_ROUTE_METHOD` is never used
[INFO] [stdout]  --> src/config/constants.rs:8:11
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub const ERR_EMPTY_ROUTE_METHOD: &str = "Route method cannot be empty";
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ERR_EMPTY_ROUTE_SERVICE` is never used
[INFO] [stdout]  --> src/config/constants.rs:9:11
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub const ERR_EMPTY_ROUTE_SERVICE: &str = "Route service cannot be empty";
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ERR_EMPTY_ROUTE_GRPC_METHOD` is never used
[INFO] [stdout]   --> src/config/constants.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub const ERR_EMPTY_ROUTE_GRPC_METHOD: &str = "Route grpc_method cannot be empty";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_REFRESH_INTERVAL_SECONDS` is never used
[INFO] [stdout]  --> src/discovery/constants.rs:2:11
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub const DEFAULT_REFRESH_INTERVAL_SECONDS: u64 = 300;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MIN_REFRESH_INTERVAL_SECONDS` is never used
[INFO] [stdout]  --> src/discovery/constants.rs:5:11
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub const MIN_REFRESH_INTERVAL_SECONDS: u64 = 60;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_REFRESH_INTERVAL_SECONDS` is never used
[INFO] [stdout]  --> src/discovery/constants.rs:8:11
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub const MAX_REFRESH_INTERVAL_SECONDS: u64 = 3600;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `InvalidDescriptor` is never constructed
[INFO] [stdout]   --> src/discovery/types.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub enum DiscoveryError {
[INFO] [stdout]    |          -------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 16 |     InvalidDescriptor(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DiscoveryError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `input_type` and `output_type` are never read
[INFO] [stdout]   --> src/discovery/types.rs:57:9
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub struct MethodDescriptor {
[INFO] [stdout]    |            ---------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 57 |     pub input_type: String,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 58 |     pub output_type: String,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MethodDescriptor` 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: variant `Timeout` is never constructed
[INFO] [stdout]   --> src/grpc/types.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub enum GrpcError {
[INFO] [stdout]    |          --------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 17 |     Timeout(String),
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GrpcError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GrpcRequest` is never constructed
[INFO] [stdout]   --> src/grpc/types.rs:37:12
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub struct GrpcRequest {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GrpcResponse` is never constructed
[INFO] [stdout]   --> src/grpc/types.rs:46:12
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub struct GrpcResponse {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_RETRIES` is never used
[INFO] [stdout]  --> src/grpc/constants.rs:4:11
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub const MAX_RETRIES: u32 = 3;
[INFO] [stdout]   |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `INITIAL_BACKOFF_MS` is never used
[INFO] [stdout]  --> src/grpc/constants.rs:7:11
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub const INITIAL_BACKOFF_MS: u64 = 100;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BACKOFF_MULTIPLIER` is never used
[INFO] [stdout]   --> src/grpc/constants.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub const BACKOFF_MULTIPLIER: u64 = 2;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ERR_GENERIC_CALLS_NOT_IMPLEMENTED` is never used
[INFO] [stdout]   --> src/grpc/constants.rs:37:11
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub const ERR_GENERIC_CALLS_NOT_IMPLEMENTED: &str = 
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ERR_MAX_RETRIES_EXCEEDED` is never used
[INFO] [stdout]   --> src/grpc/constants.rs:41:11
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub const ERR_MAX_RETRIES_EXCEEDED: &str = "Max retries exceeded";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RETRYABLE_STATUS_UNAVAILABLE` is never used
[INFO] [stdout]   --> src/grpc/constants.rs:44:11
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub const RETRYABLE_STATUS_UNAVAILABLE: &str = "Unavailable";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RETRYABLE_STATUS_DEADLINE_EXCEEDED` is never used
[INFO] [stdout]   --> src/grpc/constants.rs:45:11
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub const RETRYABLE_STATUS_DEADLINE_EXCEEDED: &str = "DeadlineExceeded";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RETRYABLE_STATUS_RESOURCE_EXHAUSTED` is never used
[INFO] [stdout]   --> src/grpc/constants.rs:46:11
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub const RETRYABLE_STATUS_RESOURCE_EXHAUSTED: &str = "ResourceExhausted";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `config` is never read
[INFO] [stdout]   --> src/grpc/client.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct GrpcClientPool {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] 13 |     clients: HashMap<String, Channel>,
[INFO] [stdout] 14 |     config: HashMap<String, ServiceConfig>,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GrpcClientPool` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `call`, `call_with_retry`, `execute_call`, `is_retryable_error`, and `has_service` are never used
[INFO] [stdout]    --> src/grpc/client.rs:81:18
[INFO] [stdout]     |
[INFO] [stdout]  17 | impl GrpcClientPool {
[INFO] [stdout]     | ------------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  81 |     pub async fn call(&self, request: GrpcRequest) -> Result<GrpcResponse, GrpcError> {
[INFO] [stdout]     |                  ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 121 |     async fn call_with_retry(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 158 |     async fn execute_call(
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 174 |     pub(crate) fn is_retryable_error(error: &GrpcError) -> bool {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 211 |     pub fn has_service(&self, service: &str) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `GrpcCallFailed`, `Timeout`, and `InternalError` are never constructed
[INFO] [stdout]   --> src/handlers/types.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub enum GatewayError {
[INFO] [stdout]    |          ------------ variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 27 |     GrpcCallFailed(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 30 |     Timeout,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |     InternalError(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GatewayError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Disabled` is never constructed
[INFO] [stdout]   --> src/rate_limit/types.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub enum RateLimitError {
[INFO] [stdout]    |          -------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 20 |     Disabled,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `RateLimitError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CLEANUP_THRESHOLD_MULTIPLIER` is never used
[INFO] [stdout]  --> src/rate_limit/constants.rs:5:11
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub const CLEANUP_THRESHOLD_MULTIPLIER: u32 = 2;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `cleanup_expired`, `tracked_clients_count`, and `get_client_request_count` are never used
[INFO] [stdout]    --> src/rate_limit/limiter.rs:77:18
[INFO] [stdout]     |
[INFO] [stdout]  17 | impl RateLimiter {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  77 |     pub async fn cleanup_expired(&self) {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 101 |     pub async fn tracked_clients_count(&self) -> usize {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 106 |     pub async fn get_client_request_count(&self, client_ip: IpAddr) -> Option<usize> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `route_count` and `get_all_routes` are never used
[INFO] [stdout]    --> src/router/mod.rs:130:12
[INFO] [stdout]     |
[INFO] [stdout]  74 | impl RequestRouter {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 130 |     pub fn route_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 135 |     pub fn get_all_routes(&self) -> Vec<RouteConfig> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `auth_failure_counter` is never read
[INFO] [stdout]   --> src/shared/state.rs:31:9
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub struct GatewayMetrics {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 31 |     pub auth_failure_counter: IntCounter,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GatewayMetrics` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `ExpiredToken` is never constructed
[INFO] [stdout]   --> src/auth/types.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub enum AuthError {
[INFO] [stdout]    |          --------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 13 |     ExpiredToken,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `AuthError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AuthToken` is never constructed
[INFO] [stdout]   --> src/auth/types.rs:42:12
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub struct AuthToken {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `exp` is never read
[INFO] [stdout]   --> src/auth/types.rs:52:9
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub struct TokenClaims {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 52 |     pub exp: i64,
[INFO] [stdout]    |         ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TokenClaims` 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: constant `ERR_MISSING_TOKEN` is never used
[INFO] [stdout]   --> src/auth/constants.rs:16:11
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub const ERR_MISSING_TOKEN: &str = "Missing authentication token";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ERR_CACHE_CLEAR` is never used
[INFO] [stdout]   --> src/auth/constants.rs:40:11
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub const ERR_CACHE_CLEAR: &str = "Failed to clear policy cache";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `config` is never read
[INFO] [stdout]   --> src/auth/service.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub struct AuthService {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] 23 |     auth_client_channel: Channel,
[INFO] [stdout] 24 |     config: AuthConfig,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `clear_policy_cache` and `cache_stats` are never used
[INFO] [stdout]    --> src/auth/service.rs:282:12
[INFO] [stdout]     |
[INFO] [stdout]  28 | impl AuthService {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 282 |     pub fn clear_policy_cache(&self) -> Result<(), AuthError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 291 |     pub fn cache_stats(&self) -> Result<(usize, usize), AuthError> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ERR_NO_ROUTES` is never used
[INFO] [stdout]  --> src/config/constants.rs:6:11
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub const ERR_NO_ROUTES: &str = "At least one route must be configured";
[INFO] [stdout]   |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ERR_EMPTY_ROUTE_PATH` is never used
[INFO] [stdout]  --> src/config/constants.rs:7:11
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub const ERR_EMPTY_ROUTE_PATH: &str = "Route path cannot be empty";
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ERR_EMPTY_ROUTE_METHOD` is never used
[INFO] [stdout]  --> src/config/constants.rs:8:11
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub const ERR_EMPTY_ROUTE_METHOD: &str = "Route method cannot be empty";
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ERR_EMPTY_ROUTE_SERVICE` is never used
[INFO] [stdout]  --> src/config/constants.rs:9:11
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub const ERR_EMPTY_ROUTE_SERVICE: &str = "Route service cannot be empty";
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ERR_EMPTY_ROUTE_GRPC_METHOD` is never used
[INFO] [stdout]   --> src/config/constants.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub const ERR_EMPTY_ROUTE_GRPC_METHOD: &str = "Route grpc_method cannot be empty";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_REFRESH_INTERVAL_SECONDS` is never used
[INFO] [stdout]  --> src/discovery/constants.rs:2:11
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub const DEFAULT_REFRESH_INTERVAL_SECONDS: u64 = 300;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MIN_REFRESH_INTERVAL_SECONDS` is never used
[INFO] [stdout]  --> src/discovery/constants.rs:5:11
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub const MIN_REFRESH_INTERVAL_SECONDS: u64 = 60;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_REFRESH_INTERVAL_SECONDS` is never used
[INFO] [stdout]  --> src/discovery/constants.rs:8:11
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub const MAX_REFRESH_INTERVAL_SECONDS: u64 = 3600;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `InvalidDescriptor` is never constructed
[INFO] [stdout]   --> src/discovery/types.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub enum DiscoveryError {
[INFO] [stdout]    |          -------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 16 |     InvalidDescriptor(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DiscoveryError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `input_type` and `output_type` are never read
[INFO] [stdout]   --> src/discovery/types.rs:57:9
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub struct MethodDescriptor {
[INFO] [stdout]    |            ---------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 57 |     pub input_type: String,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 58 |     pub output_type: String,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MethodDescriptor` 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 `GrpcResponse` is never constructed
[INFO] [stdout]   --> src/grpc/types.rs:46:12
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub struct GrpcResponse {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_RETRIES` is never used
[INFO] [stdout]  --> src/grpc/constants.rs:4:11
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub const MAX_RETRIES: u32 = 3;
[INFO] [stdout]   |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `INITIAL_BACKOFF_MS` is never used
[INFO] [stdout]  --> src/grpc/constants.rs:7:11
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub const INITIAL_BACKOFF_MS: u64 = 100;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BACKOFF_MULTIPLIER` is never used
[INFO] [stdout]   --> src/grpc/constants.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub const BACKOFF_MULTIPLIER: u64 = 2;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ERR_GENERIC_CALLS_NOT_IMPLEMENTED` is never used
[INFO] [stdout]   --> src/grpc/constants.rs:37:11
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub const ERR_GENERIC_CALLS_NOT_IMPLEMENTED: &str = 
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ERR_MAX_RETRIES_EXCEEDED` is never used
[INFO] [stdout]   --> src/grpc/constants.rs:41:11
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub const ERR_MAX_RETRIES_EXCEEDED: &str = "Max retries exceeded";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `config` is never read
[INFO] [stdout]   --> src/grpc/client.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct GrpcClientPool {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] 13 |     clients: HashMap<String, Channel>,
[INFO] [stdout] 14 |     config: HashMap<String, ServiceConfig>,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GrpcClientPool` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `call`, `call_with_retry`, `execute_call`, and `has_service` are never used
[INFO] [stdout]    --> src/grpc/client.rs:81:18
[INFO] [stdout]     |
[INFO] [stdout]  17 | impl GrpcClientPool {
[INFO] [stdout]     | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  81 |     pub async fn call(&self, request: GrpcRequest) -> Result<GrpcResponse, GrpcError> {
[INFO] [stdout]     |                  ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 121 |     async fn call_with_retry(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 158 |     async fn execute_call(
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 211 |     pub fn has_service(&self, service: &str) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `GrpcCallFailed` and `InternalError` are never constructed
[INFO] [stdout]   --> src/handlers/types.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub enum GatewayError {
[INFO] [stdout]    |          ------------ variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 27 |     GrpcCallFailed(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |     InternalError(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GatewayError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Disabled` is never constructed
[INFO] [stdout]   --> src/rate_limit/types.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub enum RateLimitError {
[INFO] [stdout]    |          -------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 20 |     Disabled,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `RateLimitError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `auth_failure_counter` is never read
[INFO] [stdout]   --> src/shared/state.rs:31:9
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub struct GatewayMetrics {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 31 |     pub auth_failure_counter: IntCounter,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GatewayMetrics` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 56s
[INFO] running `Command { std: "docker" "inspect" "468b88c8cd195a16c7a3ca312cc923afaa400ee3370a33681a3b8a967519a840", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "468b88c8cd195a16c7a3ca312cc923afaa400ee3370a33681a3b8a967519a840", kill_on_drop: false }`
[INFO] [stdout] 468b88c8cd195a16c7a3ca312cc923afaa400ee3370a33681a3b8a967519a840
