[INFO] cloning repository https://github.com/radudiaconu0/sockudo [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/radudiaconu0/sockudo" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fradudiaconu0%2Fsockudo", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fradudiaconu0%2Fsockudo'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 12786fde68057c03801a23595c0764622353bebf [INFO] checking radudiaconu0/sockudo against master#fe348cd1a8e0fa445b772393147ed865904dcd4d for pr-139587-2 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fradudiaconu0%2Fsockudo" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/radudiaconu0/sockudo on toolchain fe348cd1a8e0fa445b772393147ed865904dcd4d [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+fe348cd1a8e0fa445b772393147ed865904dcd4d" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/radudiaconu0/sockudo [INFO] finished tweaking git repo https://github.com/radudiaconu0/sockudo [INFO] tweaked toml for git repo https://github.com/radudiaconu0/sockudo written to /workspace/builds/worker-1-tc1/source/Cargo.toml [INFO] crate git repo https://github.com/radudiaconu0/sockudo 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" "+fe348cd1a8e0fa445b772393147ed865904dcd4d" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Updating crates.io index [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded uuid v1.11.0 [INFO] [stderr] Downloaded tracing-serde v0.1.3 [INFO] [stderr] Downloaded zerofrom v0.1.5 [INFO] [stderr] Downloaded proc-macro2 v1.0.89 [INFO] [stderr] Downloaded urlencoding v2.1.3 [INFO] [stderr] Downloaded tower-layer v0.3.3 [INFO] [stderr] Downloaded icu_provider_macros v1.5.0 [INFO] [stderr] Downloaded equivalent v1.0.2 [INFO] [stderr] Downloaded wasite v0.1.0 [INFO] [stderr] Downloaded writeable v0.5.5 [INFO] [stderr] Downloaded tinystr v0.7.6 [INFO] [stderr] Downloaded zerofrom-derive v0.1.5 [INFO] [stderr] Downloaded etcetera v0.8.0 [INFO] [stderr] Downloaded num-iter v0.1.45 [INFO] [stderr] Downloaded der v0.7.9 [INFO] [stderr] Downloaded errno v0.3.10 [INFO] [stderr] Downloaded rusty-sidekiq v0.11.1 [INFO] [stderr] Downloaded dirs-next v2.0.0 [INFO] [stderr] Downloaded windows-link v0.1.1 [INFO] [stderr] Downloaded sqlx-macros-core v0.8.3 [INFO] [stderr] Downloaded iana-time-zone-haiku v0.1.2 [INFO] [stderr] Downloaded libredox v0.1.3 [INFO] [stderr] Downloaded wit-bindgen-rt v0.39.0 [INFO] [stderr] Downloaded rustls-pki-types v1.11.0 [INFO] [stderr] Downloaded heck v0.5.0 [INFO] [stderr] Downloaded aws-lc-rs v1.13.0 [INFO] [stderr] Downloaded block-buffer v0.11.0-rc.3 [INFO] [stderr] Downloaded thiserror v1.0.66 [INFO] [stderr] Downloaded const-oid v0.10.0-rc.2 [INFO] [stderr] Downloaded openssl-sys v0.9.107 [INFO] [stderr] Downloaded convert_case v0.6.0 [INFO] [stderr] Downloaded unicode-segmentation v1.12.0 [INFO] [stderr] Downloaded wasi v0.14.2+wasi-0.2.4 [INFO] [stderr] Downloaded moka v0.12.10 [INFO] [stderr] Downloaded reqwest v0.12.15 [INFO] [stderr] Downloaded curve25519-dalek v4.1.3 [INFO] [stderr] Downloaded chrono v0.4.38 [INFO] [stderr] Downloaded async-nats v0.40.0 [INFO] [stderr] Downloaded openssl v0.10.72 [INFO] [stderr] Downloaded aws-sdk-sqs v1.65.0 [INFO] [stderr] Downloaded rustix v0.38.44 [INFO] [stderr] Downloaded redis v0.28.1 [INFO] [stderr] Downloaded rustls v0.21.12 [INFO] [stderr] Downloaded webpki-roots v0.26.9 [INFO] [stderr] Downloaded windows_aarch64_gnullvm v0.53.0 [INFO] [stderr] Downloaded rustls-webpki v0.103.1 [INFO] [stderr] Downloaded fiat-crypto v0.2.9 [INFO] [stderr] Downloaded windows_aarch64_msvc v0.53.0 [INFO] [stderr] Downloaded libc v0.2.171 [INFO] [stderr] Downloaded zerocopy v0.8.24 [INFO] [stderr] Downloaded windows_i686_gnu v0.53.0 [INFO] [stderr] Downloaded web-sys v0.3.77 [INFO] [stderr] Downloaded rustls v0.23.25 [INFO] [stderr] Downloaded rsa v0.9.8 [INFO] [stderr] Downloaded protobuf v3.7.2 [INFO] [stderr] Downloaded hyper v0.14.32 [INFO] [stderr] Downloaded aws-sdk-sts v1.65.0 [INFO] [stderr] Downloaded windows_x86_64_gnullvm v0.53.0 [INFO] [stderr] Downloaded axum v0.8.3 [INFO] [stderr] Downloaded windows_x86_64_msvc v0.53.0 [INFO] [stderr] Downloaded portable-atomic v1.11.0 [INFO] [stderr] Downloaded aws-sdk-lambda v1.76.0 [INFO] [stderr] Downloaded windows_i686_gnullvm v0.53.0 [INFO] [stderr] Downloaded sha2 v0.11.0-pre.4 [INFO] [stderr] Downloaded aws-sdk-dynamodb v1.71.1 [INFO] [stderr] Downloaded term v0.7.0 [INFO] [stderr] Downloaded time-macros v0.2.22 [INFO] [stderr] Downloaded rustls-webpki v0.101.7 [INFO] [stderr] Downloaded bindgen v0.69.5 [INFO] [stderr] Downloaded hybrid-array v0.2.1 [INFO] [stderr] Downloaded linux-raw-sys v0.4.15 [INFO] [stderr] Downloaded digest v0.11.0-pre.9 [INFO] [stderr] Downloaded rustversion v1.0.18 [INFO] [stderr] Downloaded deranged v0.4.1 [INFO] [stderr] Downloaded time-core v0.1.4 [INFO] [stderr] Downloaded thiserror-impl v1.0.66 [INFO] [stderr] Downloaded ring v0.17.14 [INFO] [stderr] Downloaded signatory v0.27.1 [INFO] [stderr] Downloaded tokio-websockets v0.10.1 [INFO] [stderr] Downloaded aws-config v1.6.1 [INFO] [stderr] Downloaded r-efi v5.2.0 [INFO] [stderr] Downloaded aws-smithy-runtime v1.8.3 [INFO] [stderr] Downloaded aws-smithy-types v1.3.1 [INFO] [stderr] Downloaded tokio-util v0.7.13 [INFO] [stderr] Downloaded rand v0.9.0 [INFO] [stderr] Downloaded security-framework v3.2.0 [INFO] [stderr] Downloaded uuid-macro-internal v1.11.0 [INFO] [stderr] Downloaded windows_i686_msvc v0.53.0 [INFO] [stderr] Downloaded windows_x86_64_gnu v0.53.0 [INFO] [stderr] Downloaded fastrand v2.3.0 [INFO] [stderr] Downloaded windows-sys v0.48.0 [INFO] [stderr] Downloaded wasm-bindgen-backend v0.2.100 [INFO] [stderr] Downloaded dirs-sys-next v0.1.2 [INFO] [stderr] Downloaded h2 v0.4.8 [INFO] [stderr] Downloaded hyper v1.6.0 [INFO] [stderr] Downloaded cc v1.2.17 [INFO] [stderr] Downloaded ed25519-dalek v2.1.1 [INFO] [stderr] Downloaded aws-sdk-ssooidc v1.65.0 [INFO] [stderr] Downloaded encoding_rs v0.8.35 [INFO] [stderr] Downloaded crossbeam-channel v0.5.15 [INFO] [stderr] Downloaded loom v0.7.2 [INFO] [stderr] Downloaded prometheus v0.14.0 [INFO] [stderr] Downloaded zerocopy-derive v0.8.24 [INFO] [stderr] Downloaded unicode-properties v0.1.3 [INFO] [stderr] Downloaded schannel v0.1.27 [INFO] [stderr] Downloaded wasm-bindgen-macro-support v0.2.100 [INFO] [stderr] Downloaded wasm-bindgen v0.2.100 [INFO] [stderr] Downloaded native-tls v0.2.14 [INFO] [stderr] Downloaded hyper-util v0.1.10 [INFO] [stderr] Downloaded redis v0.22.3 [INFO] [stderr] Downloaded scc v2.3.3 [INFO] [stderr] Downloaded aws-sdk-sso v1.64.0 [INFO] [stderr] Downloaded aws-runtime v1.5.7 [INFO] [stderr] Downloaded aws-smithy-http-client v1.0.1 [INFO] [stderr] Downloaded aws-smithy-runtime-api v1.8.0 [INFO] [stderr] Downloaded tungstenite v0.26.1 [INFO] [stderr] Downloaded prettyplease v0.2.25 [INFO] [stderr] Downloaded tokio v1.44.1 [INFO] [stderr] Downloaded ipnet v2.11.0 [INFO] [stderr] Downloaded openssl-probe v0.1.6 [INFO] [stderr] Downloaded security-framework-sys v2.14.0 [INFO] [stderr] Downloaded android-tzdata v0.1.1 [INFO] [stderr] Downloaded iana-time-zone v0.1.61 [INFO] [stderr] Downloaded js-sys v0.3.77 [INFO] [stderr] Downloaded wasm-bindgen-shared v0.2.100 [INFO] [stderr] Downloaded wasm-bindgen-macro v0.2.100 [INFO] [stderr] Downloaded cron_clock v0.8.0 [INFO] [stderr] Downloaded gethostname v0.2.3 [INFO] [stderr] Downloaded num_cpus v1.16.0 [INFO] [stderr] Downloaded async-trait v0.1.83 [INFO] [stderr] Downloaded redox_users v0.4.6 [INFO] [stderr] Downloaded getrandom v0.3.2 [INFO] [stderr] Downloaded pkcs8 v0.10.2 [INFO] [stderr] Downloaded anyhow v1.0.94 [INFO] [stderr] Downloaded aws-sigv4 v1.3.1 [INFO] [stderr] Downloaded aws-smithy-json v0.61.3 [INFO] [stderr] Downloaded hyper-rustls v0.24.2 [INFO] [stderr] Downloaded matchit v0.8.4 [INFO] [stderr] Downloaded dashmap v6.1.0 [INFO] [stderr] Downloaded pin-project v1.1.7 [INFO] [stderr] Downloaded fastwebsockets v0.10.0 [INFO] [stderr] Downloaded hmac v0.13.0-pre.4 [INFO] [stderr] Downloaded core-foundation v0.10.0 [INFO] [stderr] Downloaded wasm-bindgen-futures v0.4.50 [INFO] [stderr] Downloaded windows-result v0.3.2 [INFO] [stderr] Downloaded bb8 v0.8.6 [INFO] [stderr] Downloaded tempfile v3.17.1 [INFO] [stderr] Downloaded time v0.3.41 [INFO] [stderr] Downloaded pkcs1 v0.7.5 [INFO] [stderr] Downloaded base64ct v1.7.3 [INFO] [stderr] Downloaded nkeys v0.4.4 [INFO] [stderr] Downloaded rustls-native-certs v0.7.3 [INFO] [stderr] Downloaded xmlparser v0.13.6 [INFO] [stderr] Downloaded rustls-native-certs v0.6.3 [INFO] [stderr] Downloaded tokio-rustls v0.24.1 [INFO] [stderr] Downloaded sct v0.7.1 [INFO] [stderr] Downloaded tokio-tungstenite v0.26.1 [INFO] [stderr] Downloaded axum-core v0.5.2 [INFO] [stderr] Downloaded pin-project-internal v1.1.7 [INFO] [stderr] Downloaded simdutf8 v0.1.5 [INFO] [stderr] Downloaded generator v0.8.4 [INFO] [stderr] Downloaded semver v1.0.26 [INFO] [stderr] Downloaded rustls-native-certs v0.8.1 [INFO] [stderr] Downloaded libloading v0.8.6 [INFO] [stderr] Downloaded pem-rfc7468 v0.7.0 [INFO] [stderr] Downloaded curve25519-dalek-derive v0.1.1 [INFO] [stderr] Downloaded serde_repr v0.1.20 [INFO] [stderr] Downloaded tryhard v0.5.1 [INFO] [stderr] Downloaded aws-smithy-eventstream v0.60.8 [INFO] [stderr] Downloaded aws-smithy-http v0.62.1 [INFO] [stderr] Downloaded rustls-pemfile v1.0.4 [INFO] [stderr] Downloaded aws-smithy-observability v0.1.3 [INFO] [stderr] Downloaded aws-credential-types v1.2.3 [INFO] [stderr] Downloaded base64-simd v0.8.0 [INFO] [stderr] Downloaded regex v1.11.1 [INFO] [stderr] Downloaded sqlx-macros v0.8.3 [INFO] [stderr] Downloaded fs_extra v1.3.0 [INFO] [stderr] Downloaded tokio-rustls v0.26.2 [INFO] [stderr] Downloaded hyper-rustls v0.27.5 [INFO] [stderr] Downloaded windows-strings v0.3.1 [INFO] [stderr] Downloaded futures v0.3.31 [INFO] [stderr] Downloaded slog v2.7.0 [INFO] [stderr] Downloaded signature v2.2.0 [INFO] [stderr] Downloaded ed25519 v2.2.3 [INFO] [stderr] Downloaded nuid v0.5.0 [INFO] [stderr] Downloaded serde_nanos v0.1.4 [INFO] [stderr] Downloaded aws-smithy-xml v0.60.9 [INFO] [stderr] Downloaded aws-smithy-async v1.2.5 [INFO] [stderr] Downloaded vsimd v0.8.0 [INFO] [stderr] Downloaded bytes-utils v0.1.4 [INFO] [stderr] Downloaded http-body v0.4.6 [INFO] [stderr] Downloaded serde_path_to_error v0.1.16 [INFO] [stderr] Downloaded colored v2.1.0 [INFO] [stderr] Downloaded event-listener-strategy v0.5.4 [INFO] [stderr] Downloaded scoped-tls v1.0.1 [INFO] [stderr] Downloaded protobuf-support v3.7.2 [INFO] [stderr] Downloaded rand_core v0.9.3 [INFO] [stderr] Downloaded crc16 v0.4.0 [INFO] [stderr] Downloaded hkdf v0.12.4 [INFO] [stderr] Downloaded libm v0.2.11 [INFO] [stderr] Downloaded futures-intrusive v0.5.0 [INFO] [stderr] Downloaded icu_properties_data v1.5.0 [INFO] [stderr] Downloaded sqlx v0.8.3 [INFO] [stderr] Downloaded rayon v1.10.0 [INFO] [stderr] Downloaded sysinfo v0.32.0 [INFO] [stderr] Downloaded serde_json v1.0.134 [INFO] [stderr] Downloaded syn v2.0.87 [INFO] [stderr] Downloaded windows-targets v0.53.0 [INFO] [stderr] Downloaded windows-registry v0.4.0 [INFO] [stderr] Downloaded sdd v3.0.8 [INFO] [stderr] Downloaded serial_test_derive v3.2.0 [INFO] [stderr] Downloaded serial_test v3.2.0 [INFO] [stderr] Downloaded hermit-abi v0.5.0 [INFO] [stderr] Downloaded is-terminal v0.4.16 [INFO] [stderr] Downloaded num-bigint-dig v0.8.4 [INFO] [stderr] Downloaded aws-smithy-query v0.60.7 [INFO] [stderr] Downloaded aws-types v1.3.7 [INFO] [stderr] Downloaded tagptr v0.2.0 [INFO] [stderr] Downloaded rand_chacha v0.9.0 [INFO] [stderr] Downloaded sqlx-postgres v0.8.3 [INFO] [stderr] Downloaded hashbrown v0.15.2 [INFO] [stderr] Downloaded indexmap v2.8.0 [INFO] [stderr] Downloaded sqlx-core v0.8.3 [INFO] [stderr] Downloaded icu_collections v1.5.0 [INFO] [stderr] Downloaded zerovec v0.10.4 [INFO] [stderr] Downloaded idna v1.0.3 [INFO] [stderr] Downloaded tower v0.5.2 [INFO] [stderr] Downloaded tower-http v0.6.1 [INFO] [stderr] Downloaded slog-term v2.9.1 [INFO] [stderr] Downloaded bytes v1.10.1 [INFO] [stderr] Downloaded crypto-common v0.2.0-rc.1 [INFO] [stderr] Downloaded sqlx-mysql v0.8.3 [INFO] [stderr] Downloaded hmac v0.12.1 [INFO] [stderr] Downloaded unicode-bidi v0.3.18 [INFO] [stderr] Downloaded libsqlite3-sys v0.30.1 [INFO] [stderr] Downloaded tinyvec v1.9.0 [INFO] [stderr] Downloaded flume v0.11.1 [INFO] [stderr] Downloaded event-listener v5.4.0 [INFO] [stderr] Downloaded allocator-api2 v0.2.21 [INFO] [stderr] Downloaded const-oid v0.9.6 [INFO] [stderr] Downloaded icu_normalizer_data v1.5.0 [INFO] [stderr] Downloaded icu_normalizer v1.5.0 [INFO] [stderr] Downloaded icu_locid_transform_data v1.5.0 [INFO] [stderr] Downloaded icu_locid_transform v1.5.0 [INFO] [stderr] Downloaded icu_locid v1.5.0 [INFO] [stderr] Downloaded icu_provider v1.5.0 [INFO] [stderr] Downloaded yoke v0.7.5 [INFO] [stderr] Downloaded icu_properties v1.5.1 [INFO] [stderr] Downloaded url v2.5.4 [INFO] [stderr] Downloaded sqlx-sqlite v0.8.3 [INFO] [stderr] Downloaded crossbeam-epoch v0.9.18 [INFO] [stderr] Downloaded rayon-core v1.12.1 [INFO] [stderr] Downloaded windows-core v0.57.0 [INFO] [stderr] Downloaded thiserror v2.0.9 [INFO] [stderr] Downloaded pin-project-lite v0.2.15 [INFO] [stderr] Downloaded serde_derive v1.0.217 [INFO] [stderr] Downloaded serde v1.0.217 [INFO] [stderr] Downloaded outref v0.5.2 [INFO] [stderr] Downloaded dunce v1.0.5 [INFO] [stderr] Downloaded spki v0.7.3 [INFO] [stderr] Downloaded whoami v1.6.0 [INFO] [stderr] Downloaded crossbeam-queue v0.3.12 [INFO] [stderr] Downloaded hashlink v0.10.0 [INFO] [stderr] Downloaded sha2 v0.10.8 [INFO] [stderr] Downloaded tokio-stream v0.1.17 [INFO] [stderr] Downloaded write16 v1.0.0 [INFO] [stderr] Downloaded litemap v0.7.4 [INFO] [stderr] Downloaded displaydoc v0.2.5 [INFO] [stderr] Downloaded glob v0.3.2 [INFO] [stderr] Downloaded which v4.4.2 [INFO] [stderr] Downloaded cmake v0.1.54 [INFO] [stderr] Downloaded dotenvy v0.15.7 [INFO] [stderr] Downloaded home v0.5.11 [INFO] [stderr] Downloaded md-5 v0.10.6 [INFO] [stderr] Downloaded stringprep v0.1.5 [INFO] [stderr] Downloaded pkg-config v0.3.32 [INFO] [stderr] Downloaded crc-catalog v2.4.0 [INFO] [stderr] Downloaded crc v3.2.1 [INFO] [stderr] Downloaded parking v2.2.1 [INFO] [stderr] Downloaded foldhash v0.1.5 [INFO] [stderr] Downloaded utf16_iter v1.0.5 [INFO] [stderr] Downloaded utf8_iter v1.0.4 [INFO] [stderr] Downloaded windows-implement v0.57.0 [INFO] [stderr] Downloaded hex v0.4.3 [INFO] [stderr] Downloaded atoi v2.0.0 [INFO] [stderr] Downloaded futures-executor v0.3.31 [INFO] [stderr] Downloaded futures-io v0.3.31 [INFO] [stderr] Downloaded windows-interface v0.57.0 [INFO] [stderr] Downloaded yoke-derive v0.7.5 [INFO] [stderr] Downloaded synstructure v0.13.1 [INFO] [stderr] Downloaded zerovec-derive v0.10.3 [INFO] [stderr] Downloaded idna_adapter v1.2.0 [INFO] [stderr] Downloaded crossbeam-deque v0.8.5 [INFO] [stderr] Downloaded thiserror-impl v2.0.9 [INFO] [stderr] Downloaded futures-macro v0.3.31 [INFO] [stderr] Downloaded tokio-macros v2.5.0 [INFO] [stderr] Downloaded aws-lc-sys v0.28.0 [INFO] [stderr] Downloaded windows v0.57.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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:b0b074c097205a61b89e8ad263052f976b2b332c4dc5f02aef1fe52501660d6e" "/opt/rustwide/cargo-home/bin/cargo" "+fe348cd1a8e0fa445b772393147ed865904dcd4d" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 67e9eee2b6de0cf606ef699808951665c6f9258db8369b0d57ef123769f09496 [INFO] running `Command { std: "docker" "start" "-a" "67e9eee2b6de0cf606ef699808951665c6f9258db8369b0d57ef123769f09496", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "67e9eee2b6de0cf606ef699808951665c6f9258db8369b0d57ef123769f09496", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "67e9eee2b6de0cf606ef699808951665c6f9258db8369b0d57ef123769f09496", kill_on_drop: false }` [INFO] [stdout] 67e9eee2b6de0cf606ef699808951665c6f9258db8369b0d57ef123769f09496 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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:b0b074c097205a61b89e8ad263052f976b2b332c4dc5f02aef1fe52501660d6e" "/opt/rustwide/cargo-home/bin/cargo" "+fe348cd1a8e0fa445b772393147ed865904dcd4d" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 69277ae19e1d8d2e3c34997bdfe03c0a4de109139fc68979cbb4ce4f85095343 [INFO] running `Command { std: "docker" "start" "-a" "69277ae19e1d8d2e3c34997bdfe03c0a4de109139fc68979cbb4ce4f85095343", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.89 [INFO] [stderr] Compiling unicode-ident v1.0.13 [INFO] [stderr] Compiling serde v1.0.217 [INFO] [stderr] Checking pin-project-lite v0.2.15 [INFO] [stderr] Checking socket2 v0.5.7 [INFO] [stderr] Checking mio v1.0.2 [INFO] [stderr] Checking once_cell v1.20.2 [INFO] [stderr] Compiling libm v0.2.11 [INFO] [stderr] Compiling jobserver v0.1.32 [INFO] [stderr] Compiling typenum v1.17.0 [INFO] [stderr] Checking tracing-core v0.1.32 [INFO] [stderr] Checking hashbrown v0.15.2 [INFO] [stderr] Compiling cc v1.2.17 [INFO] [stderr] Checking cpufeatures v0.2.14 [INFO] [stderr] Compiling httparse v1.9.5 [INFO] [stderr] Checking outref v0.5.2 [INFO] [stderr] Compiling dunce v1.0.5 [INFO] [stderr] Checking vsimd v0.8.0 [INFO] [stderr] Compiling semver v1.0.26 [INFO] [stderr] Compiling quote v1.0.37 [INFO] [stderr] Checking num-traits v0.2.19 [INFO] [stderr] Checking indexmap v2.8.0 [INFO] [stderr] Compiling syn v2.0.87 [INFO] [stderr] Checking base64-simd v0.8.0 [INFO] [stderr] Compiling const-oid v0.9.6 [INFO] [stderr] Compiling aws-lc-rs v1.13.0 [INFO] [stderr] Compiling rustc_version v0.4.1 [INFO] [stderr] Checking litemap v0.7.4 [INFO] [stderr] Checking generic-array v0.14.7 [INFO] [stderr] Compiling cmake v0.1.54 [INFO] [stderr] Checking num-integer v0.1.46 [INFO] [stderr] Compiling thiserror v2.0.9 [INFO] [stderr] Compiling serde_json v1.0.134 [INFO] [stderr] Checking sync_wrapper v1.0.1 [INFO] [stderr] Compiling rustls v0.23.25 [INFO] [stderr] Compiling rustls v0.21.12 [INFO] [stderr] Checking rustls-native-certs v0.6.3 [INFO] [stderr] Checking rustls-native-certs v0.8.1 [INFO] [stderr] Compiling crossbeam-utils v0.8.20 [INFO] [stderr] Compiling aws-types v1.3.7 [INFO] [stderr] Compiling base64ct v1.7.3 [INFO] [stderr] Compiling zeroize v1.8.1 [INFO] [stderr] Checking der v0.7.9 [INFO] [stderr] Checking crypto-common v0.1.6 [INFO] [stderr] Checking block-buffer v0.10.4 [INFO] [stderr] Compiling pem-rfc7468 v0.7.0 [INFO] [stderr] Compiling ring v0.17.14 [INFO] [stderr] Checking digest v0.10.7 [INFO] [stderr] Compiling aws-lc-sys v0.28.0 [INFO] [stderr] Checking sha2 v0.10.8 [INFO] [stderr] Checking hmac v0.12.1 [INFO] [stderr] Compiling openssl-sys v0.9.107 [INFO] [stderr] Compiling foldhash v0.1.5 [INFO] [stderr] Checking lazy_static v1.5.0 [INFO] [stderr] Checking signature v2.2.0 [INFO] [stderr] Checking spki v0.7.3 [INFO] [stderr] Checking concurrent-queue v2.5.0 [INFO] [stderr] Compiling thiserror v1.0.66 [INFO] [stderr] Checking event-listener v5.4.0 [INFO] [stderr] Compiling form_urlencoded v1.2.1 [INFO] [stderr] Compiling tokio v1.44.1 [INFO] [stderr] Checking pkcs8 v0.10.2 [INFO] [stderr] Compiling spin v0.9.8 [INFO] [stderr] Compiling parking v2.2.1 [INFO] [stderr] Checking regex-lite v0.1.6 [INFO] [stderr] Compiling futures-util v0.3.31 [INFO] [stderr] Compiling num-iter v0.1.45 [INFO] [stderr] Compiling hashlink v0.10.0 [INFO] [stderr] Compiling crossbeam-queue v0.3.12 [INFO] [stderr] Checking sha1 v0.10.6 [INFO] [stderr] Compiling rustix v0.38.44 [INFO] [stderr] Compiling openssl v0.10.72 [INFO] [stderr] Compiling hkdf v0.12.4 [INFO] [stderr] Compiling pkcs1 v0.7.5 [INFO] [stderr] Compiling atoi v2.0.0 [INFO] [stderr] Compiling synstructure v0.13.1 [INFO] [stderr] Compiling md-5 v0.10.6 [INFO] [stderr] Compiling curve25519-dalek v4.1.3 [INFO] [stderr] Checking hybrid-array v0.2.1 [INFO] [stderr] Checking crossbeam-epoch v0.9.18 [INFO] [stderr] Compiling linux-raw-sys v0.4.15 [INFO] [stderr] Compiling rustversion v1.0.18 [INFO] [stderr] Compiling getrandom v0.3.2 [INFO] [stderr] Compiling whoami v1.6.0 [INFO] [stderr] Compiling base64 v0.22.1 [INFO] [stderr] Compiling native-tls v0.2.14 [INFO] [stderr] Compiling portable-atomic v1.11.0 [INFO] [stderr] Checking sct v0.7.1 [INFO] [stderr] Checking rustls-webpki v0.101.7 [INFO] [stderr] Checking regex-automata v0.4.8 [INFO] [stderr] Checking crypto-common v0.2.0-rc.1 [INFO] [stderr] Checking block-buffer v0.11.0-rc.3 [INFO] [stderr] Compiling serde_derive v1.0.217 [INFO] [stderr] Compiling tokio-macros v2.5.0 [INFO] [stderr] Compiling futures-macro v0.3.31 [INFO] [stderr] Compiling tracing-attributes v0.1.27 [INFO] [stderr] Compiling zerocopy-derive v0.7.35 [INFO] [stderr] Compiling zerofrom-derive v0.1.5 [INFO] [stderr] Compiling yoke-derive v0.7.5 [INFO] [stderr] Checking tracing v0.1.40 [INFO] [stderr] Compiling zerovec-derive v0.10.3 [INFO] [stderr] Compiling displaydoc v0.2.5 [INFO] [stderr] Checking zerocopy v0.7.35 [INFO] [stderr] Compiling icu_provider_macros v1.5.0 [INFO] [stderr] Compiling thiserror-impl v2.0.9 [INFO] [stderr] Checking ppv-lite86 v0.2.20 [INFO] [stderr] Checking zerofrom v0.1.5 [INFO] [stderr] Checking yoke v0.7.5 [INFO] [stderr] Checking zerovec v0.10.4 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Compiling uuid-macro-internal v1.11.0 [INFO] [stderr] Compiling thiserror-impl v1.0.66 [INFO] [stderr] Checking uuid v1.11.0 [INFO] [stderr] Checking tinystr v0.7.6 [INFO] [stderr] Checking icu_collections v1.5.0 [INFO] [stderr] Checking icu_locid v1.5.0 [INFO] [stderr] Compiling tokio-stream v0.1.17 [INFO] [stderr] Checking icu_provider v1.5.0 [INFO] [stderr] Compiling openssl-macros v0.1.1 [INFO] [stderr] Compiling curve25519-dalek-derive v0.1.1 [INFO] [stderr] Checking icu_locid_transform v1.5.0 [INFO] [stderr] Checking futures-executor v0.3.31 [INFO] [stderr] Compiling pin-project-internal v1.1.7 [INFO] [stderr] Checking crossbeam-deque v0.8.5 [INFO] [stderr] Checking icu_properties v1.5.1 [INFO] [stderr] Checking ed25519 v2.2.3 [INFO] [stderr] Checking rustls-pemfile v2.2.0 [INFO] [stderr] Compiling zerocopy v0.8.24 [INFO] [stderr] Compiling protobuf v3.7.2 [INFO] [stderr] Checking const-oid v0.10.0-rc.2 [INFO] [stderr] Checking xmlparser v0.13.6 [INFO] [stderr] Checking digest v0.11.0-pre.9 [INFO] [stderr] Checking pin-project v1.1.7 [INFO] [stderr] Checking aws-smithy-xml v0.60.9 [INFO] [stderr] Checking ed25519-dalek v2.1.1 [INFO] [stderr] Checking rayon-core v1.12.1 [INFO] [stderr] Checking futures v0.3.31 [INFO] [stderr] Checking protobuf-support v3.7.2 [INFO] [stderr] Checking regex v1.11.1 [INFO] [stderr] Checking rand_core v0.9.3 [INFO] [stderr] Checking signatory v0.27.1 [INFO] [stderr] Checking smallvec v1.13.2 [INFO] [stderr] Checking bytes v1.10.1 [INFO] [stderr] Checking either v1.13.0 [INFO] [stderr] Checking parking_lot_core v0.9.10 [INFO] [stderr] Checking deranged v0.4.1 [INFO] [stderr] Checking parking_lot v0.12.3 [INFO] [stderr] Checking bitflags v2.6.0 [INFO] [stderr] Checking http v1.1.0 [INFO] [stderr] Checking http v0.2.12 [INFO] [stderr] Checking bytes-utils v0.1.4 [INFO] [stderr] Checking icu_normalizer v1.5.0 [INFO] [stderr] Checking idna_adapter v1.2.0 [INFO] [stderr] Checking time v0.3.41 [INFO] [stderr] Checking idna v1.0.3 [INFO] [stderr] Checking http-body v1.0.1 [INFO] [stderr] Checking http-body v0.4.6 [INFO] [stderr] Checking url v2.5.4 [INFO] [stderr] Checking http-body-util v0.1.2 [INFO] [stderr] Compiling num-bigint-dig v0.8.4 [INFO] [stderr] Compiling futures-intrusive v0.5.0 [INFO] [stderr] Compiling rsa v0.9.8 [INFO] [stderr] Checking axum-core v0.5.2 [INFO] [stderr] Compiling sqlx-core v0.8.3 [INFO] [stderr] Checking tungstenite v0.26.1 [INFO] [stderr] Compiling tempfile v3.17.1 [INFO] [stderr] Checking serde_urlencoded v0.7.1 [INFO] [stderr] Checking event-listener-strategy v0.5.4 [INFO] [stderr] Compiling anyhow v1.0.94 [INFO] [stderr] Compiling prometheus v0.14.0 [INFO] [stderr] Compiling moka v0.12.10 [INFO] [stderr] Checking async-lock v3.4.0 [INFO] [stderr] Checking rayon v1.10.0 [INFO] [stderr] Checking nkeys v0.4.4 [INFO] [stderr] Checking serde_path_to_error v0.1.16 [INFO] [stderr] Checking serde_nanos v0.1.4 [INFO] [stderr] Checking rand_chacha v0.9.0 [INFO] [stderr] Checking tokio-util v0.7.13 [INFO] [stderr] Checking aws-smithy-async v1.2.5 [INFO] [stderr] Checking tower v0.5.2 [INFO] [stderr] Checking tokio-rustls v0.24.1 [INFO] [stderr] Checking aws-smithy-types v1.3.1 [INFO] [stderr] Checking h2 v0.4.8 [INFO] [stderr] Checking h2 v0.3.26 [INFO] [stderr] Checking aws-smithy-runtime-api v1.8.0 [INFO] [stderr] Checking aws-smithy-eventstream v0.60.8 [INFO] [stderr] Checking aws-smithy-json v0.61.3 [INFO] [stderr] Compiling sqlx-postgres v0.8.3 [INFO] [stderr] Compiling sqlx-mysql v0.8.3 [INFO] [stderr] Checking aws-credential-types v1.2.3 [INFO] [stderr] Checking aws-smithy-http v0.62.1 [INFO] [stderr] Checking aws-smithy-observability v0.1.3 [INFO] [stderr] Checking aws-sigv4 v1.3.1 [INFO] [stderr] Checking tokio-native-tls v0.3.1 [INFO] [stderr] Checking aws-smithy-query v0.60.7 [INFO] [stderr] Checking combine v4.6.7 [INFO] [stderr] Checking tokio-tungstenite v0.26.1 [INFO] [stderr] Checking tryhard v0.5.1 [INFO] [stderr] Checking hyper v0.14.32 [INFO] [stderr] Checking hyper v1.6.0 [INFO] [stderr] Checking rustls-native-certs v0.7.3 [INFO] [stderr] Checking nuid v0.5.0 [INFO] [stderr] Compiling async-trait v0.1.83 [INFO] [stderr] Checking hyper-util v0.1.10 [INFO] [stderr] Compiling sqlx-macros-core v0.8.3 [INFO] [stderr] Compiling serde_repr v0.1.20 [INFO] [stderr] Checking hyper-tls v0.6.0 [INFO] [stderr] Checking sharded-slab v0.1.7 [INFO] [stderr] Checking num-bigint v0.4.6 [INFO] [stderr] Checking crossbeam-channel v0.5.15 [INFO] [stderr] Checking rustls-webpki v0.102.8 [INFO] [stderr] Checking tracing-log v0.2.0 [INFO] [stderr] Checking thread_local v1.1.8 [INFO] [stderr] Checking tagptr v0.2.0 [INFO] [stderr] Checking simdutf8 v0.1.5 [INFO] [stderr] Checking matchit v0.8.4 [INFO] [stderr] Checking chrono v0.4.38 [INFO] [stderr] Checking fastwebsockets v0.10.0 [INFO] [stderr] Checking hyper-rustls v0.24.2 [INFO] [stderr] Checking redis v0.28.1 [INFO] [stderr] Checking axum v0.8.3 [INFO] [stderr] Checking reqwest v0.12.15 [INFO] [stderr] Checking dashmap v6.1.0 [INFO] [stderr] Compiling sqlx-macros v0.8.3 [INFO] [stderr] Checking tracing-subscriber v0.3.18 [INFO] [stderr] Checking rand v0.9.0 [INFO] [stderr] Checking sysinfo v0.32.0 [INFO] [stderr] Checking sqlx v0.8.3 [INFO] [stderr] Checking tower-http v0.6.1 [INFO] [stderr] Checking sha2 v0.11.0-pre.4 [INFO] [stderr] Checking hmac v0.13.0-pre.4 [INFO] [stderr] Checking colored v2.1.0 [INFO] [stderr] Checking rustls-webpki v0.103.1 [INFO] [stderr] Checking tokio-rustls v0.26.2 [INFO] [stderr] Checking hyper-rustls v0.27.5 [INFO] [stderr] Checking async-nats v0.40.0 [INFO] [stderr] Checking aws-smithy-http-client v1.0.1 [INFO] [stderr] Checking aws-smithy-runtime v1.8.3 [INFO] [stderr] Checking aws-runtime v1.5.7 [INFO] [stderr] Checking aws-sdk-ssooidc v1.65.0 [INFO] [stderr] Checking aws-sdk-sts v1.65.0 [INFO] [stderr] Checking aws-sdk-sso v1.64.0 [INFO] [stderr] Checking aws-sdk-sqs v1.65.0 [INFO] [stderr] Checking aws-sdk-lambda v1.76.0 [INFO] [stderr] Checking aws-sdk-dynamodb v1.71.1 [INFO] [stderr] Checking aws-config v1.6.1 [INFO] [stderr] Checking sockudo v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `Error` [INFO] [stdout] --> src/adapter/adapter.rs:3:20 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::error::{Error, Result}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `HashSet` [INFO] [stdout] --> src/adapter/adapter.rs:12:33 [INFO] [stdout] | [INFO] [stdout] 12 | use std::collections::{HashMap, HashSet}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tracing_subscriber::fmt::format` [INFO] [stdout] --> src/adapter/handler.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | use tracing_subscriber::fmt::format; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `async_trait::async_trait` [INFO] [stdout] --> src/adapter/horizontal_adapter.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | use async_trait::async_trait; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `DashSet` [INFO] [stdout] --> src/adapter/horizontal_adapter.rs:12:24 [INFO] [stdout] | [INFO] [stdout] 12 | use dashmap::{DashMap, DashSet}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `HashSet` [INFO] [stdout] --> src/adapter/local_adapter.rs:13:33 [INFO] [stdout] | [INFO] [stdout] 13 | use std::collections::{HashMap, HashSet}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `RwLock` [INFO] [stdout] --> src/adapter/local_adapter.rs:16:26 [INFO] [stdout] | [INFO] [stdout] 16 | use tokio::sync::{Mutex, RwLock}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `HashSet` [INFO] [stdout] --> src/adapter/redis_adapter.rs:1:33 [INFO] [stdout] | [INFO] [stdout] 1 | use std::collections::{HashMap, HashSet}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Duration` and `Instant` [INFO] [stdout] --> src/adapter/redis_adapter.rs:3:17 [INFO] [stdout] | [INFO] [stdout] 3 | use std::time::{Duration, Instant}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `AsyncConnectionConfig` [INFO] [stdout] --> src/adapter/redis_adapter.rs:11:28 [INFO] [stdout] | [INFO] [stdout] 11 | use redis::{AsyncCommands, AsyncConnectionConfig}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize` [INFO] [stdout] --> src/adapter/redis_adapter.rs:12:13 [INFO] [stdout] | [INFO] [stdout] 12 | use serde::{Deserialize, Serialize}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `serde_json::json` [INFO] [stdout] --> src/adapter/redis_adapter.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | use serde_json::json; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `mpsc` [INFO] [stdout] --> src/adapter/redis_adapter.rs:15:19 [INFO] [stdout] | [INFO] [stdout] 15 | use tokio::sync::{mpsc, Mutex}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `uuid::Uuid` [INFO] [stdout] --> src/adapter/redis_adapter.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | use uuid::Uuid; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `HashSet` [INFO] [stdout] --> src/adapter/redis_cluster_adapter.rs:1:33 [INFO] [stdout] | [INFO] [stdout] 1 | use std::collections::{HashMap, HashSet}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Duration` and `Instant` [INFO] [stdout] --> src/adapter/redis_cluster_adapter.rs:3:17 [INFO] [stdout] | [INFO] [stdout] 3 | use std::time::{Duration, Instant}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `mpsc` [INFO] [stdout] --> src/adapter/redis_cluster_adapter.rs:14:19 [INFO] [stdout] | [INFO] [stdout] 14 | use tokio::sync::{mpsc, Mutex}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `uuid::Uuid` [INFO] [stdout] --> src/adapter/redis_cluster_adapter.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | use uuid::Uuid; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `HashSet` [INFO] [stdout] --> src/adapter/nats_adapter.rs:1:33 [INFO] [stdout] | [INFO] [stdout] 1 | use std::collections::{HashMap, HashSet}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Instant` [INFO] [stdout] --> src/adapter/nats_adapter.rs:3:27 [INFO] [stdout] | [INFO] [stdout] 3 | use std::time::{Duration, Instant}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Message as NatsMessage` [INFO] [stdout] --> src/adapter/nats_adapter.rs:5:40 [INFO] [stdout] | [INFO] [stdout] 5 | use async_nats::{Client as NatsClient, Message as NatsMessage, ConnectOptions as NatsOptions, Subject}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `async_nats::jetstream::AckKind::Nak` [INFO] [stdout] --> src/adapter/nats_adapter.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use async_nats::jetstream::AckKind::Nak; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize` [INFO] [stdout] --> src/adapter/nats_adapter.rs:13:13 [INFO] [stdout] | [INFO] [stdout] 13 | use serde::{Deserialize, Serialize}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `mpsc` [INFO] [stdout] --> src/adapter/nats_adapter.rs:15:19 [INFO] [stdout] | [INFO] [stdout] 15 | use tokio::sync::{mpsc, Mutex}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `uuid::Uuid` [INFO] [stdout] --> src/adapter/nats_adapter.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | use uuid::Uuid; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> src/app/config.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Token` and `secure_compare` [INFO] [stdout] --> src/app/dynamodb_app_manager.rs:5:20 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::token::{secure_compare, Token}; [INFO] [stdout] | ^^^^^^^^^^^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::sync::Arc` [INFO] [stdout] --> src/app/manager.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::sync::Arc; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Error` [INFO] [stdout] --> src/app/manager.rs:4:20 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::error::{Error, Result}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Token` and `secure_compare` [INFO] [stdout] --> src/app/memory_app_manager.rs:5:20 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::token::{secure_compare, Token}; [INFO] [stdout] | ^^^^^^^^^^^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `dashmap::DashMap` [INFO] [stdout] --> src/app/mysql_app_manager.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use dashmap::DashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Instant` [INFO] [stdout] --> src/app/mysql_app_manager.rs:13:27 [INFO] [stdout] | [INFO] [stdout] 13 | use std::time::{Duration, Instant}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tokio::sync::Mutex` [INFO] [stdout] --> src/app/mysql_app_manager.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | use tokio::sync::Mutex; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tokio::time::interval` [INFO] [stdout] --> src/app/mysql_app_manager.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | use tokio::time::interval; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Error` [INFO] [stdout] --> src/cache/memory_cache_manager.rs:2:20 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::error::{Error, Result}; // Assuming Error/Result are defined elsewhere [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `moka::Expiry` [INFO] [stdout] --> src/cache/memory_cache_manager.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use moka::Expiry; // Needed for ttl() method [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Instant` [INFO] [stdout] --> src/cache/memory_cache_manager.rs:7:27 [INFO] [stdout] | [INFO] [stdout] 7 | use std::time::{Duration, Instant}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `dashmap::DashMap` [INFO] [stdout] --> src/channel/manager.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use dashmap::DashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> src/channel/types.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `fmt` [INFO] [stdout] --> src/http_handler.rs:13:33 [INFO] [stdout] | [INFO] [stdout] 13 | use std::{collections::HashMap, fmt, sync::Arc}; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `chrono::Duration` [INFO] [stdout] --> src/http_handler.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | use chrono::Duration; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Error` [INFO] [stdout] --> src/metrics/prometheus.rs:3:20 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::error::{Error, Result}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `lazy_static::lazy_static` [INFO] [stdout] --> src/metrics/prometheus.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use lazy_static::lazy_static; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::app::config::App` [INFO] [stdout] --> src/metrics/mod.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use crate::app::config::App; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `DerefMut` and `Deref` [INFO] [stdout] --> src/namespace.rs:15:16 [INFO] [stdout] | [INFO] [stdout] 15 | use std::ops::{Deref, DerefMut}; [INFO] [stdout] | ^^^^^ ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `HeaderValue` and `middleware::Next` [INFO] [stdout] --> src/rate_limiter/middleware.rs:7:24 [INFO] [stdout] | [INFO] [stdout] 7 | http::{HeaderName, HeaderValue, StatusCode}, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 8 | middleware::Next, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `pin::Pin` [INFO] [stdout] --> src/rate_limiter/middleware.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | pin::Pin, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `RedisResult` [INFO] [stdout] --> src/rate_limiter/redis_limiter.rs:5:36 [INFO] [stdout] | [INFO] [stdout] 5 | use redis::{AsyncCommands, Client, RedisResult}; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::time::Duration` [INFO] [stdout] --> src/rate_limiter/mod.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use std::time::Duration; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `async_trait::async_trait` [INFO] [stdout] --> src/webhook/sender.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use async_trait::async_trait; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Instant` [INFO] [stdout] --> src/webhook/sender.rs:17:27 [INFO] [stdout] | [INFO] [stdout] 17 | use std::time::{Duration, Instant, SystemTime, UNIX_EPOCH}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `BoxFuture` [INFO] [stdout] --> src/webhook/sender.rs:21:41 [INFO] [stdout] | [INFO] [stdout] 21 | use futures::future::{join_all, Future, BoxFuture}; // Import BoxFuture [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::app::manager::AppManager` [INFO] [stdout] --> src/websocket.rs:32:5 [INFO] [stdout] | [INFO] [stdout] 32 | use crate::app::manager::AppManager; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::sync::Arc` [INFO] [stdout] --> src/queue/manager.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::sync::Arc; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `serde::de::DeserializeOwned` [INFO] [stdout] --> src/queue/manager.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use serde::de::DeserializeOwned; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `serde::Serialize` [INFO] [stdout] --> src/queue/manager.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use serde::Serialize; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `JobProcessorFn` [INFO] [stdout] --> src/queue/manager.rs:10:20 [INFO] [stdout] | [INFO] [stdout] 10 | use crate::queue::{JobProcessorFn, QueueInterface}; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `JobProcessorFn` [INFO] [stdout] --> src/queue/redis_queue_manager.rs:10:39 [INFO] [stdout] | [INFO] [stdout] 10 | use crate::queue::{ArcJobProcessorFn, JobProcessorFn, QueueInterface}; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `JobProcessorFn` [INFO] [stdout] --> src/queue/memory_queue_manager.rs:8:39 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::queue::{ArcJobProcessorFn, JobProcessorFn, QueueInterface}; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `JobProcessorFn` [INFO] [stdout] --> src/queue/sqs_queue_manager.rs:4:39 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::queue::{ArcJobProcessorFn, JobProcessorFn, QueueInterface}; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `aws_config::SdkConfig` [INFO] [stdout] --> src/queue/sqs_queue_manager.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use aws_config::SdkConfig; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Serialize` and `de::DeserializeOwned` [INFO] [stdout] --> src/queue/sqs_queue_manager.rs:8:13 [INFO] [stdout] | [INFO] [stdout] 8 | use serde::{de::DeserializeOwned, Serialize}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> src/main.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fs::File` [INFO] [stdout] --> src/main.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | use std::fs::File; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `axum::extract::State` [INFO] [stdout] --> src/main.rs:29:5 [INFO] [stdout] | [INFO] [stdout] 29 | use axum::extract::State; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `StatusCode` [INFO] [stdout] --> src/main.rs:32:31 [INFO] [stdout] | [INFO] [stdout] 32 | use axum::http::{HeaderValue, StatusCode}; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `axum::response::Response` [INFO] [stdout] --> src/main.rs:33:5 [INFO] [stdout] | [INFO] [stdout] 33 | use axum::response::Response; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Value` [INFO] [stdout] --> src/main.rs:36:34 [INFO] [stdout] | [INFO] [stdout] 36 | use serde_json::{from_str, json, Value}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tracing_subscriber::fmt::format` [INFO] [stdout] --> src/main.rs:45:5 [INFO] [stdout] | [INFO] [stdout] 45 | use tracing_subscriber::fmt::format; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `MetricsFactory` [INFO] [stdout] --> src/main.rs:60:22 [INFO] [stdout] | [INFO] [stdout] 60 | use crate::metrics::{MetricsFactory, MetricsInterface}; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `WebhooksConfig` [INFO] [stdout] --> src/main.rs:61:37 [INFO] [stdout] | [INFO] [stdout] 61 | use crate::options::{ServerOptions, WebhooksConfig}; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated function `rand::thread_rng`: renamed to `rng` [INFO] [stdout] --> src/websocket.rs:70:29 [INFO] [stdout] | [INFO] [stdout] 70 | let mut rng = rand::thread_rng(); // Get a random number generator [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Error` [INFO] [stdout] --> src/adapter/adapter.rs:3:20 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::error::{Error, Result}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `HashSet` [INFO] [stdout] --> src/adapter/adapter.rs:12:33 [INFO] [stdout] | [INFO] [stdout] 12 | use std::collections::{HashMap, HashSet}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tracing_subscriber::fmt::format` [INFO] [stdout] --> src/adapter/handler.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | use tracing_subscriber::fmt::format; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `async_trait::async_trait` [INFO] [stdout] --> src/adapter/horizontal_adapter.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | use async_trait::async_trait; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `DashSet` [INFO] [stdout] --> src/adapter/horizontal_adapter.rs:12:24 [INFO] [stdout] | [INFO] [stdout] 12 | use dashmap::{DashMap, DashSet}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `HashSet` [INFO] [stdout] --> src/adapter/local_adapter.rs:13:33 [INFO] [stdout] | [INFO] [stdout] 13 | use std::collections::{HashMap, HashSet}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `RwLock` [INFO] [stdout] --> src/adapter/local_adapter.rs:16:26 [INFO] [stdout] | [INFO] [stdout] 16 | use tokio::sync::{Mutex, RwLock}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `HashSet` [INFO] [stdout] --> src/adapter/redis_adapter.rs:1:33 [INFO] [stdout] | [INFO] [stdout] 1 | use std::collections::{HashMap, HashSet}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Duration` and `Instant` [INFO] [stdout] --> src/adapter/redis_adapter.rs:3:17 [INFO] [stdout] | [INFO] [stdout] 3 | use std::time::{Duration, Instant}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `AsyncConnectionConfig` [INFO] [stdout] --> src/adapter/redis_adapter.rs:11:28 [INFO] [stdout] | [INFO] [stdout] 11 | use redis::{AsyncCommands, AsyncConnectionConfig}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize` [INFO] [stdout] --> src/adapter/redis_adapter.rs:12:13 [INFO] [stdout] | [INFO] [stdout] 12 | use serde::{Deserialize, Serialize}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `serde_json::json` [INFO] [stdout] --> src/adapter/redis_adapter.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | use serde_json::json; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `mpsc` [INFO] [stdout] --> src/adapter/redis_adapter.rs:15:19 [INFO] [stdout] | [INFO] [stdout] 15 | use tokio::sync::{mpsc, Mutex}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `uuid::Uuid` [INFO] [stdout] --> src/adapter/redis_adapter.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | use uuid::Uuid; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `HashSet` [INFO] [stdout] --> src/adapter/redis_cluster_adapter.rs:1:33 [INFO] [stdout] | [INFO] [stdout] 1 | use std::collections::{HashMap, HashSet}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Duration` and `Instant` [INFO] [stdout] --> src/adapter/redis_cluster_adapter.rs:3:17 [INFO] [stdout] | [INFO] [stdout] 3 | use std::time::{Duration, Instant}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `mpsc` [INFO] [stdout] --> src/adapter/redis_cluster_adapter.rs:14:19 [INFO] [stdout] | [INFO] [stdout] 14 | use tokio::sync::{mpsc, Mutex}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `uuid::Uuid` [INFO] [stdout] --> src/adapter/redis_cluster_adapter.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | use uuid::Uuid; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `HashSet` [INFO] [stdout] --> src/adapter/nats_adapter.rs:1:33 [INFO] [stdout] | [INFO] [stdout] 1 | use std::collections::{HashMap, HashSet}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Instant` [INFO] [stdout] --> src/adapter/nats_adapter.rs:3:27 [INFO] [stdout] | [INFO] [stdout] 3 | use std::time::{Duration, Instant}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Message as NatsMessage` [INFO] [stdout] --> src/adapter/nats_adapter.rs:5:40 [INFO] [stdout] | [INFO] [stdout] 5 | use async_nats::{Client as NatsClient, Message as NatsMessage, ConnectOptions as NatsOptions, Subject}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `async_nats::jetstream::AckKind::Nak` [INFO] [stdout] --> src/adapter/nats_adapter.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use async_nats::jetstream::AckKind::Nak; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize` [INFO] [stdout] --> src/adapter/nats_adapter.rs:13:13 [INFO] [stdout] | [INFO] [stdout] 13 | use serde::{Deserialize, Serialize}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `mpsc` [INFO] [stdout] --> src/adapter/nats_adapter.rs:15:19 [INFO] [stdout] | [INFO] [stdout] 15 | use tokio::sync::{mpsc, Mutex}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `uuid::Uuid` [INFO] [stdout] --> src/adapter/nats_adapter.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | use uuid::Uuid; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> src/app/config.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Token` and `secure_compare` [INFO] [stdout] --> src/app/dynamodb_app_manager.rs:5:20 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::token::{secure_compare, Token}; [INFO] [stdout] | ^^^^^^^^^^^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::sync::Arc` [INFO] [stdout] --> src/app/manager.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::sync::Arc; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Error` [INFO] [stdout] --> src/app/manager.rs:4:20 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::error::{Error, Result}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Token` and `secure_compare` [INFO] [stdout] --> src/app/memory_app_manager.rs:5:20 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::token::{secure_compare, Token}; [INFO] [stdout] | ^^^^^^^^^^^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `dashmap::DashMap` [INFO] [stdout] --> src/app/mysql_app_manager.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use dashmap::DashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Instant` [INFO] [stdout] --> src/app/mysql_app_manager.rs:13:27 [INFO] [stdout] | [INFO] [stdout] 13 | use std::time::{Duration, Instant}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tokio::sync::Mutex` [INFO] [stdout] --> src/app/mysql_app_manager.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | use tokio::sync::Mutex; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tokio::time::interval` [INFO] [stdout] --> src/app/mysql_app_manager.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | use tokio::time::interval; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Error` [INFO] [stdout] --> src/cache/memory_cache_manager.rs:2:20 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::error::{Error, Result}; // Assuming Error/Result are defined elsewhere [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `moka::Expiry` [INFO] [stdout] --> src/cache/memory_cache_manager.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use moka::Expiry; // Needed for ttl() method [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Instant` [INFO] [stdout] --> src/cache/memory_cache_manager.rs:7:27 [INFO] [stdout] | [INFO] [stdout] 7 | use std::time::{Duration, Instant}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `dashmap::DashMap` [INFO] [stdout] --> src/channel/manager.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use dashmap::DashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> src/channel/types.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `fmt` [INFO] [stdout] --> src/http_handler.rs:13:33 [INFO] [stdout] | [INFO] [stdout] 13 | use std::{collections::HashMap, fmt, sync::Arc}; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `chrono::Duration` [INFO] [stdout] --> src/http_handler.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | use chrono::Duration; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Error` [INFO] [stdout] --> src/metrics/prometheus.rs:3:20 [INFO] [stdout] | [INFO] [stdout] 3 | use crate::error::{Error, Result}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `lazy_static::lazy_static` [INFO] [stdout] --> src/metrics/prometheus.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use lazy_static::lazy_static; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::app::config::App` [INFO] [stdout] --> src/metrics/mod.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use crate::app::config::App; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `DerefMut` and `Deref` [INFO] [stdout] --> src/namespace.rs:15:16 [INFO] [stdout] | [INFO] [stdout] 15 | use std::ops::{Deref, DerefMut}; [INFO] [stdout] | ^^^^^ ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `HeaderValue` and `middleware::Next` [INFO] [stdout] --> src/rate_limiter/middleware.rs:7:24 [INFO] [stdout] | [INFO] [stdout] 7 | http::{HeaderName, HeaderValue, StatusCode}, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 8 | middleware::Next, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `pin::Pin` [INFO] [stdout] --> src/rate_limiter/middleware.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | pin::Pin, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `RedisResult` [INFO] [stdout] --> src/rate_limiter/redis_limiter.rs:5:36 [INFO] [stdout] | [INFO] [stdout] 5 | use redis::{AsyncCommands, Client, RedisResult}; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::time::Duration` [INFO] [stdout] --> src/rate_limiter/mod.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use std::time::Duration; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `async_trait::async_trait` [INFO] [stdout] --> src/webhook/sender.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use async_trait::async_trait; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Instant` [INFO] [stdout] --> src/webhook/sender.rs:17:27 [INFO] [stdout] | [INFO] [stdout] 17 | use std::time::{Duration, Instant, SystemTime, UNIX_EPOCH}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `BoxFuture` [INFO] [stdout] --> src/webhook/sender.rs:21:41 [INFO] [stdout] | [INFO] [stdout] 21 | use futures::future::{join_all, Future, BoxFuture}; // Import BoxFuture [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::app::manager::AppManager` [INFO] [stdout] --> src/websocket.rs:32:5 [INFO] [stdout] | [INFO] [stdout] 32 | use crate::app::manager::AppManager; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::sync::Arc` [INFO] [stdout] --> src/queue/manager.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::sync::Arc; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `serde::de::DeserializeOwned` [INFO] [stdout] --> src/queue/manager.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use serde::de::DeserializeOwned; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `serde::Serialize` [INFO] [stdout] --> src/queue/manager.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use serde::Serialize; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `JobProcessorFn` [INFO] [stdout] --> src/queue/manager.rs:10:20 [INFO] [stdout] | [INFO] [stdout] 10 | use crate::queue::{JobProcessorFn, QueueInterface}; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `JobProcessorFn` [INFO] [stdout] --> src/queue/redis_queue_manager.rs:10:39 [INFO] [stdout] | [INFO] [stdout] 10 | use crate::queue::{ArcJobProcessorFn, JobProcessorFn, QueueInterface}; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `JobProcessorFn` [INFO] [stdout] --> src/queue/memory_queue_manager.rs:8:39 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::queue::{ArcJobProcessorFn, JobProcessorFn, QueueInterface}; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `JobProcessorFn` [INFO] [stdout] --> src/queue/sqs_queue_manager.rs:4:39 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::queue::{ArcJobProcessorFn, JobProcessorFn, QueueInterface}; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `aws_config::SdkConfig` [INFO] [stdout] --> src/queue/sqs_queue_manager.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use aws_config::SdkConfig; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Serialize` and `de::DeserializeOwned` [INFO] [stdout] --> src/queue/sqs_queue_manager.rs:8:13 [INFO] [stdout] | [INFO] [stdout] 8 | use serde::{de::DeserializeOwned, Serialize}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> src/main.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fs::File` [INFO] [stdout] --> src/main.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | use std::fs::File; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `axum::extract::State` [INFO] [stdout] --> src/main.rs:29:5 [INFO] [stdout] | [INFO] [stdout] 29 | use axum::extract::State; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `StatusCode` [INFO] [stdout] --> src/main.rs:32:31 [INFO] [stdout] | [INFO] [stdout] 32 | use axum::http::{HeaderValue, StatusCode}; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `axum::response::Response` [INFO] [stdout] --> src/main.rs:33:5 [INFO] [stdout] | [INFO] [stdout] 33 | use axum::response::Response; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Value` [INFO] [stdout] --> src/main.rs:36:34 [INFO] [stdout] | [INFO] [stdout] 36 | use serde_json::{from_str, json, Value}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tracing_subscriber::fmt::format` [INFO] [stdout] --> src/main.rs:45:5 [INFO] [stdout] | [INFO] [stdout] 45 | use tracing_subscriber::fmt::format; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `MetricsFactory` [INFO] [stdout] --> src/main.rs:60:22 [INFO] [stdout] | [INFO] [stdout] 60 | use crate::metrics::{MetricsFactory, MetricsInterface}; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `WebhooksConfig` [INFO] [stdout] --> src/main.rs:61:37 [INFO] [stdout] | [INFO] [stdout] 61 | use crate::options::{ServerOptions, WebhooksConfig}; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated function `rand::thread_rng`: renamed to `rng` [INFO] [stdout] --> src/websocket.rs:70:29 [INFO] [stdout] | [INFO] [stdout] 70 | let mut rng = rand::thread_rng(); // Get a random number generator [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `metrics` [INFO] [stdout] --> src/adapter/handler.rs:117:9 [INFO] [stdout] | [INFO] [stdout] 117 | metrics: Option>>, [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_metrics` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `webhook_integration` [INFO] [stdout] --> src/adapter/handler.rs:118:9 [INFO] [stdout] | [INFO] [stdout] 118 | webhook_integration: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_webhook_integration` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/adapter/handler.rs:1019:17 [INFO] [stdout] | [INFO] [stdout] 1019 | let mut metrics = metrics.lock().await; [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `request_json` [INFO] [stdout] --> src/adapter/horizontal_adapter.rs:336:13 [INFO] [stdout] | [INFO] [stdout] 336 | let request_json = serde_json::to_string(&request)?; [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_request_json` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `sockets` [INFO] [stdout] --> src/adapter/horizontal_adapter.rs:405:31 [INFO] [stdout] | [INFO] [stdout] 405 | for (channel, sockets) in response.channels_with_sockets_count { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sockets` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/adapter/redis_adapter.rs:350:41 [INFO] [stdout] | [INFO] [stdout] 350 | ... let mut horizontal_lock = horizontal_clone.lock().await; [INFO] [stdout] | ----^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `metrics` [INFO] [stdout] --> src/adapter/handler.rs:117:9 [INFO] [stdout] | [INFO] [stdout] 117 | metrics: Option>>, [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_metrics` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `webhook_integration` [INFO] [stdout] --> src/adapter/handler.rs:118:9 [INFO] [stdout] | [INFO] [stdout] 118 | webhook_integration: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_webhook_integration` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/adapter/nats_adapter.rs:328:29 [INFO] [stdout] | [INFO] [stdout] 328 | let mut horizontal_lock = response_horizontal.lock().await; [INFO] [stdout] | ----^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `connection_string` [INFO] [stdout] --> src/cache/factory.rs:31:9 [INFO] [stdout] | [INFO] [stdout] 31 | connection_string: &str, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_connection_string` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `prefix` [INFO] [stdout] --> src/cache/factory.rs:32:9 [INFO] [stdout] | [INFO] [stdout] 32 | prefix: Option<&str>, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_prefix` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ttl_duration` [INFO] [stdout] --> src/cache/memory_cache_manager.rs:228:13 [INFO] [stdout] | [INFO] [stdout] 228 | let ttl_duration = if ttl_seconds > 0 { [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ttl_duration` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function depends on never type fallback being `()` [INFO] [stdout] --> src/cache/redis_cache_manager.rs:208:5 [INFO] [stdout] | [INFO] [stdout] 208 | pub async fn set_many(&mut self, pairs: &[(&str, &str)], ttl_seconds: u64) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = help: specify the types explicitly [INFO] [stdout] note: in edition 2024, the requirement `!: FromRedisValue` will fail [INFO] [stdout] --> src/cache/redis_cache_manager.rs:231:14 [INFO] [stdout] | [INFO] [stdout] 231 | pipe.query_async(&mut self.connection) [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] = note: `#[warn(dependency_on_unit_never_type_fallback)]` on by default [INFO] [stdout] help: use `()` annotations to avoid fallback changes [INFO] [stdout] | [INFO] [stdout] 231 | pipe.query_async::<()>(&mut self.connection) [INFO] [stdout] | ++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function depends on never type fallback being `()` [INFO] [stdout] --> src/cache/redis_cache_manager.rs:271:5 [INFO] [stdout] | [INFO] [stdout] 271 | pub async fn flush_db(&mut self) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = help: specify the types explicitly [INFO] [stdout] note: in edition 2024, the requirement `!: FromRedisValue` will fail [INFO] [stdout] --> src/cache/redis_cache_manager.rs:274:14 [INFO] [stdout] | [INFO] [stdout] 274 | .query_async(&mut self.connection) [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] help: use `()` annotations to avoid fallback changes [INFO] [stdout] | [INFO] [stdout] 274 | .query_async::<()>(&mut self.connection) [INFO] [stdout] | ++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/cache/redis_cluster_cache_manager.rs:65:13 [INFO] [stdout] | [INFO] [stdout] 65 | let mut connection = client [INFO] [stdout] | ----^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function depends on never type fallback being `()` [INFO] [stdout] --> src/cache/redis_cluster_cache_manager.rs:219:5 [INFO] [stdout] | [INFO] [stdout] 219 | pub async fn set_many(&mut self, pairs: &[(&str, &str)], ttl_seconds: u64) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = help: specify the types explicitly [INFO] [stdout] note: in edition 2024, the requirement `!: FromRedisValue` will fail [INFO] [stdout] --> src/cache/redis_cluster_cache_manager.rs:234:22 [INFO] [stdout] | [INFO] [stdout] 234 | .set_ex(key, *value, ttl_seconds) [INFO] [stdout] | ^^^^^^ [INFO] [stdout] help: use `()` annotations to avoid fallback changes [INFO] [stdout] | [INFO] [stdout] 234 ~ .set_ex::<_, _, ()>(key, *value, ttl_seconds) [INFO] [stdout] 235 | .await [INFO] [stdout] ... [INFO] [stdout] 238 | self.connection [INFO] [stdout] 239 ~ .set::<_, _, ()>(key, *value) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/adapter/handler.rs:1019:17 [INFO] [stdout] | [INFO] [stdout] 1019 | let mut metrics = metrics.lock().await; [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `request_json` [INFO] [stdout] --> src/adapter/horizontal_adapter.rs:336:13 [INFO] [stdout] | [INFO] [stdout] 336 | let request_json = serde_json::to_string(&request)?; [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_request_json` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `sockets` [INFO] [stdout] --> src/adapter/horizontal_adapter.rs:405:31 [INFO] [stdout] | [INFO] [stdout] 405 | for (channel, sockets) in response.channels_with_sockets_count { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sockets` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/adapter/redis_adapter.rs:350:41 [INFO] [stdout] | [INFO] [stdout] 350 | ... let mut horizontal_lock = horizontal_clone.lock().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/adapter/nats_adapter.rs:328:29 [INFO] [stdout] | [INFO] [stdout] 328 | let mut horizontal_lock = response_horizontal.lock().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/namespace.rs:90:13 [INFO] [stdout] | [INFO] [stdout] 90 | let mut connection = WebSocket { [INFO] [stdout] | ----^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `connection_string` [INFO] [stdout] --> src/cache/factory.rs:31:9 [INFO] [stdout] | [INFO] [stdout] 31 | connection_string: &str, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_connection_string` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `prefix` [INFO] [stdout] --> src/cache/factory.rs:32:9 [INFO] [stdout] | [INFO] [stdout] 32 | prefix: Option<&str>, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_prefix` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/namespace.rs:412:25 [INFO] [stdout] | [INFO] [stdout] 412 | if let Some(mut user_sockets_ref) = self.users.get_mut(&user_id) { [INFO] [stdout] | ----^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ttl_duration` [INFO] [stdout] --> src/cache/memory_cache_manager.rs:228:13 [INFO] [stdout] | [INFO] [stdout] 228 | let ttl_duration = if ttl_seconds > 0 { [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ttl_duration` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/namespace.rs:592:21 [INFO] [stdout] | [INFO] [stdout] 592 | let mut user_sockets_ref = self.users.entry(user_id.clone()).or_default(); [INFO] [stdout] | ----^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function depends on never type fallback being `()` [INFO] [stdout] --> src/cache/redis_cache_manager.rs:208:5 [INFO] [stdout] | [INFO] [stdout] 208 | pub async fn set_many(&mut self, pairs: &[(&str, &str)], ttl_seconds: u64) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = help: specify the types explicitly [INFO] [stdout] note: in edition 2024, the requirement `!: FromRedisValue` will fail [INFO] [stdout] --> src/cache/redis_cache_manager.rs:231:14 [INFO] [stdout] | [INFO] [stdout] 231 | pipe.query_async(&mut self.connection) [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] = note: `#[warn(dependency_on_unit_never_type_fallback)]` on by default [INFO] [stdout] help: use `()` annotations to avoid fallback changes [INFO] [stdout] | [INFO] [stdout] 231 | pipe.query_async::<()>(&mut self.connection) [INFO] [stdout] | ++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function depends on never type fallback being `()` [INFO] [stdout] --> src/cache/redis_cache_manager.rs:271:5 [INFO] [stdout] | [INFO] [stdout] 271 | pub async fn flush_db(&mut self) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = help: specify the types explicitly [INFO] [stdout] note: in edition 2024, the requirement `!: FromRedisValue` will fail [INFO] [stdout] --> src/cache/redis_cache_manager.rs:274:14 [INFO] [stdout] | [INFO] [stdout] 274 | .query_async(&mut self.connection) [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] help: use `()` annotations to avoid fallback changes [INFO] [stdout] | [INFO] [stdout] 274 | .query_async::<()>(&mut self.connection) [INFO] [stdout] | ++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/cache/redis_cluster_cache_manager.rs:65:13 [INFO] [stdout] | [INFO] [stdout] 65 | let mut connection = client [INFO] [stdout] | ----^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function depends on never type fallback being `()` [INFO] [stdout] --> src/cache/redis_cluster_cache_manager.rs:219:5 [INFO] [stdout] | [INFO] [stdout] 219 | pub async fn set_many(&mut self, pairs: &[(&str, &str)], ttl_seconds: u64) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = help: specify the types explicitly [INFO] [stdout] note: in edition 2024, the requirement `!: FromRedisValue` will fail [INFO] [stdout] --> src/cache/redis_cluster_cache_manager.rs:234:22 [INFO] [stdout] | [INFO] [stdout] 234 | .set_ex(key, *value, ttl_seconds) [INFO] [stdout] | ^^^^^^ [INFO] [stdout] help: use `()` annotations to avoid fallback changes [INFO] [stdout] | [INFO] [stdout] 234 ~ .set_ex::<_, _, ()>(key, *value, ttl_seconds) [INFO] [stdout] 235 | .await [INFO] [stdout] ... [INFO] [stdout] 238 | self.connection [INFO] [stdout] 239 ~ .set::<_, _, ()>(key, *value) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `original_signature` [INFO] [stdout] --> src/webhook/sender.rs:139:21 [INFO] [stdout] | [INFO] [stdout] 139 | let original_signature = job_data.original_signature.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_original_signature` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `params` [INFO] [stdout] --> src/ws_handler.rs:19:11 [INFO] [stdout] | [INFO] [stdout] 19 | Query(params): Query, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_params` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/namespace.rs:90:13 [INFO] [stdout] | [INFO] [stdout] 90 | let mut connection = WebSocket { [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/namespace.rs:412:25 [INFO] [stdout] | [INFO] [stdout] 412 | if let Some(mut user_sockets_ref) = self.users.get_mut(&user_id) { [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/namespace.rs:592:21 [INFO] [stdout] | [INFO] [stdout] 592 | let mut user_sockets_ref = self.users.entry(user_id.clone()).or_default(); [INFO] [stdout] | ----^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `original_signature` [INFO] [stdout] --> src/webhook/sender.rs:139:21 [INFO] [stdout] | [INFO] [stdout] 139 | let original_signature = job_data.original_signature.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_original_signature` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `params` [INFO] [stdout] --> src/ws_handler.rs:19:11 [INFO] [stdout] | [INFO] [stdout] 19 | Query(params): Query, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_params` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function depends on never type fallback being `()` [INFO] [stdout] --> src/cache/redis_cache_manager.rs:94:1 [INFO] [stdout] | [INFO] [stdout] 94 | #[async_trait] [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = help: specify the types explicitly [INFO] [stdout] note: in edition 2024, the requirement `!: FromRedisValue` will fail [INFO] [stdout] --> src/cache/redis_cache_manager.rs:124:18 [INFO] [stdout] | [INFO] [stdout] 124 | .set_ex(prefixed_key, value, ttl_seconds) [INFO] [stdout] | ^^^^^^ [INFO] [stdout] help: use `()` annotations to avoid fallback changes [INFO] [stdout] | [INFO] [stdout] 124 ~ .set_ex::<_, _, ()>(prefixed_key, value, ttl_seconds) [INFO] [stdout] 125 | .await [INFO] [stdout] ... [INFO] [stdout] 129 | self.connection [INFO] [stdout] 130 ~ .set::<_, _, ()>(prefixed_key, value) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function depends on never type fallback being `()` [INFO] [stdout] --> src/cache/redis_cluster_cache_manager.rs:94:1 [INFO] [stdout] | [INFO] [stdout] 94 | #[async_trait] [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = help: specify the types explicitly [INFO] [stdout] note: in edition 2024, the requirement `!: FromRedisValue` will fail [INFO] [stdout] --> src/cache/redis_cluster_cache_manager.rs:124:18 [INFO] [stdout] | [INFO] [stdout] 124 | .set_ex(prefixed_key, value, ttl_seconds) [INFO] [stdout] | ^^^^^^ [INFO] [stdout] help: use `()` annotations to avoid fallback changes [INFO] [stdout] | [INFO] [stdout] 124 ~ .set_ex::<_, _, ()>(prefixed_key, value, ttl_seconds) [INFO] [stdout] 125 | .await [INFO] [stdout] ... [INFO] [stdout] 129 | self.connection [INFO] [stdout] 130 ~ .set::<_, _, ()>(prefixed_key, value) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `rand::Rng::gen_range`: Renamed to `random_range` [INFO] [stdout] --> src/websocket.rs:77:67 [INFO] [stdout] | [INFO] [stdout] 77 | let mut random_number = |min: u64, max: u64| -> u64 { rng.gen_range(min..=max) }; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function depends on never type fallback being `()` [INFO] [stdout] --> src/queue/redis_queue_manager.rs:56:1 [INFO] [stdout] | [INFO] [stdout] 56 | #[async_trait] [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = help: specify the types explicitly [INFO] [stdout] note: in edition 2024, the requirement `!: FromRedisValue` will fail [INFO] [stdout] --> src/queue/redis_queue_manager.rs:70:14 [INFO] [stdout] | [INFO] [stdout] 70 | conn.rpush(&queue_key, data_json).await.map_err(|e| { [INFO] [stdout] | ^^^^^ [INFO] [stdout] help: use `()` annotations to avoid fallback changes [INFO] [stdout] | [INFO] [stdout] 70 | conn.rpush::<_, _, ()>(&queue_key, data_json).await.map_err(|e| { [INFO] [stdout] | ++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::Read` [INFO] [stdout] --> src/main.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 22 | use std::io::Read; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `futures::StreamExt` [INFO] [stdout] --> src/adapter/redis_cluster_adapter.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use futures::StreamExt; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `node_id` [INFO] [stdout] --> src/adapter/horizontal_adapter.rs:114:13 [INFO] [stdout] | [INFO] [stdout] 114 | let node_id = self.node_id.clone(); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_node_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function depends on never type fallback being `()` [INFO] [stdout] --> src/cache/redis_cache_manager.rs:94:1 [INFO] [stdout] | [INFO] [stdout] 94 | #[async_trait] [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = help: specify the types explicitly [INFO] [stdout] note: in edition 2024, the requirement `!: FromRedisValue` will fail [INFO] [stdout] --> src/cache/redis_cache_manager.rs:124:18 [INFO] [stdout] | [INFO] [stdout] 124 | .set_ex(prefixed_key, value, ttl_seconds) [INFO] [stdout] | ^^^^^^ [INFO] [stdout] help: use `()` annotations to avoid fallback changes [INFO] [stdout] | [INFO] [stdout] 124 ~ .set_ex::<_, _, ()>(prefixed_key, value, ttl_seconds) [INFO] [stdout] 125 | .await [INFO] [stdout] ... [INFO] [stdout] 129 | self.connection [INFO] [stdout] 130 ~ .set::<_, _, ()>(prefixed_key, value) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/adapter/redis_adapter.rs:620:13 [INFO] [stdout] | [INFO] [stdout] 620 | let mut result = horizontal [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function depends on never type fallback being `()` [INFO] [stdout] --> src/cache/redis_cluster_cache_manager.rs:94:1 [INFO] [stdout] | [INFO] [stdout] 94 | #[async_trait] [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = help: specify the types explicitly [INFO] [stdout] note: in edition 2024, the requirement `!: FromRedisValue` will fail [INFO] [stdout] --> src/cache/redis_cluster_cache_manager.rs:124:18 [INFO] [stdout] | [INFO] [stdout] 124 | .set_ex(prefixed_key, value, ttl_seconds) [INFO] [stdout] | ^^^^^^ [INFO] [stdout] help: use `()` annotations to avoid fallback changes [INFO] [stdout] | [INFO] [stdout] 124 ~ .set_ex::<_, _, ()>(prefixed_key, value, ttl_seconds) [INFO] [stdout] 125 | .await [INFO] [stdout] ... [INFO] [stdout] 129 | self.connection [INFO] [stdout] 130 ~ .set::<_, _, ()>(prefixed_key, value) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/adapter/redis_adapter.rs:898:25 [INFO] [stdout] | [INFO] [stdout] 898 | let mut channels = horizontal [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/adapter/redis_cluster_adapter.rs:623:13 [INFO] [stdout] | [INFO] [stdout] 623 | let mut result = { [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/adapter/nats_adapter.rs:569:13 [INFO] [stdout] | [INFO] [stdout] 569 | let mut result = { [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `rand::Rng::gen_range`: Renamed to `random_range` [INFO] [stdout] --> src/websocket.rs:77:67 [INFO] [stdout] | [INFO] [stdout] 77 | let mut random_number = |min: u64, max: u64| -> u64 { rng.gen_range(min..=max) }; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function depends on never type fallback being `()` [INFO] [stdout] --> src/queue/redis_queue_manager.rs:56:1 [INFO] [stdout] | [INFO] [stdout] 56 | #[async_trait] [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = help: specify the types explicitly [INFO] [stdout] note: in edition 2024, the requirement `!: FromRedisValue` will fail [INFO] [stdout] --> src/queue/redis_queue_manager.rs:70:14 [INFO] [stdout] | [INFO] [stdout] 70 | conn.rpush(&queue_key, data_json).await.map_err(|e| { [INFO] [stdout] | ^^^^^ [INFO] [stdout] help: use `()` annotations to avoid fallback changes [INFO] [stdout] | [INFO] [stdout] 70 | conn.rpush::<_, _, ()>(&queue_key, data_json).await.map_err(|e| { [INFO] [stdout] | ++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ttl` [INFO] [stdout] --> src/cache/memory_cache_manager.rs:150:17 [INFO] [stdout] | [INFO] [stdout] 150 | let ttl = Duration::from_secs(ttl_seconds); [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_ttl` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `default_ttl` [INFO] [stdout] --> src/cache/memory_cache_manager.rs:152:28 [INFO] [stdout] | [INFO] [stdout] 152 | } else if let Some(default_ttl) = self.config.default_ttl { [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_default_ttl` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::Read` [INFO] [stdout] --> src/main.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 22 | use std::io::Read; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `futures::StreamExt` [INFO] [stdout] --> src/adapter/redis_cluster_adapter.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use futures::StreamExt; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `node_id` [INFO] [stdout] --> src/adapter/horizontal_adapter.rs:114:13 [INFO] [stdout] | [INFO] [stdout] 114 | let node_id = self.node_id.clone(); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_node_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/namespace.rs:498:21 [INFO] [stdout] | [INFO] [stdout] 498 | if let Some(mut channel_sockets_ref) = self.channels.get_mut(channel) { [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/adapter/redis_adapter.rs:620:13 [INFO] [stdout] | [INFO] [stdout] 620 | let mut result = horizontal [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/adapter/redis_adapter.rs:898:25 [INFO] [stdout] | [INFO] [stdout] 898 | let mut channels = horizontal [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/adapter/redis_cluster_adapter.rs:623:13 [INFO] [stdout] | [INFO] [stdout] 623 | let mut result = { [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/rate_limiter/middleware.rs:280:25 [INFO] [stdout] | [INFO] [stdout] 280 | let mut ips = forwarded_str.split(','); [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/adapter/nats_adapter.rs:569:13 [INFO] [stdout] | [INFO] [stdout] 569 | let mut result = { [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: irrefutable `if let` pattern [INFO] [stdout] --> src/rate_limiter/middleware.rs:460:8 [INFO] [stdout] | [INFO] [stdout] 460 | if let Ok(value) = result.limit.try_into() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this pattern will always match, so the `if let` is useless [INFO] [stdout] = help: consider replacing the `if let` with a `let` [INFO] [stdout] = note: `#[warn(irrefutable_let_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: irrefutable `if let` pattern [INFO] [stdout] --> src/rate_limiter/middleware.rs:463:8 [INFO] [stdout] | [INFO] [stdout] 463 | if let Ok(value) = result.remaining.try_into() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this pattern will always match, so the `if let` is useless [INFO] [stdout] = help: consider replacing the `if let` with a `let` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: irrefutable `if let` pattern [INFO] [stdout] --> src/rate_limiter/middleware.rs:469:8 [INFO] [stdout] | [INFO] [stdout] 469 | if let Ok(reset_value) = result.reset_after.try_into() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this pattern will always match, so the `if let` is useless [INFO] [stdout] = help: consider replacing the `if let` with a `let` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: irrefutable `if let` pattern [INFO] [stdout] --> src/rate_limiter/middleware.rs:477:16 [INFO] [stdout] | [INFO] [stdout] 477 | if let Ok(retry_value) = result.reset_after.try_into() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this pattern will always match, so the `if let` is useless [INFO] [stdout] = help: consider replacing the `if let` with a `let` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: irrefutable `if let` pattern [INFO] [stdout] --> src/utils.rs:22:34 [INFO] [stdout] | [INFO] [stdout] 22 | let string_data = if let Ok(s) = element.as_ref().to_string().parse::() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this pattern will always match, so the `if let` is useless [INFO] [stdout] = help: consider replacing the `if let` with a `let` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ttl` [INFO] [stdout] --> src/cache/memory_cache_manager.rs:150:17 [INFO] [stdout] | [INFO] [stdout] 150 | let ttl = Duration::from_secs(ttl_seconds); [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_ttl` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `default_ttl` [INFO] [stdout] --> src/cache/memory_cache_manager.rs:152:28 [INFO] [stdout] | [INFO] [stdout] 152 | } else if let Some(default_ttl) = self.config.default_ttl { [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_default_ttl` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/namespace.rs:498:21 [INFO] [stdout] | [INFO] [stdout] 498 | if let Some(mut channel_sockets_ref) = self.channels.get_mut(channel) { [INFO] [stdout] | ----^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `PendingRequest` is more private than the item `HorizontalAdapter::pending_requests` [INFO] [stdout] --> src/adapter/horizontal_adapter.rs:91:5 [INFO] [stdout] | [INFO] [stdout] 91 | pub pending_requests: DashMap, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ field `HorizontalAdapter::pending_requests` is reachable at visibility `pub(crate)` [INFO] [stdout] | [INFO] [stdout] note: but type `PendingRequest` is only usable at visibility `pub(self)` [INFO] [stdout] --> src/adapter/horizontal_adapter.rs:76:1 [INFO] [stdout] | [INFO] [stdout] 76 | struct PendingRequest { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: `#[warn(private_interfaces)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `auth_validator` and `webhooks_integration` are never read [INFO] [stdout] --> src/main.rs:73:5 [INFO] [stdout] | [INFO] [stdout] 69 | struct ServerState { [INFO] [stdout] | ----------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 73 | auth_validator: Arc, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 74 | cache_manager: Arc>, [INFO] [stdout] 75 | webhooks_integration: Arc, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ServerState` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `stop` and `register_apps` are never used [INFO] [stdout] --> src/main.rs:404:14 [INFO] [stdout] | [INFO] [stdout] 87 | impl SockudoServer { [INFO] [stdout] | ------------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 404 | async fn stop(&self) -> Result<()> { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 436 | async fn register_apps(&self, apps: Vec) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `send_webhook`, `channel`, `channels`, and `channel_users` are never used [INFO] [stdout] --> src/adapter/handler.rs:52:14 [INFO] [stdout] | [INFO] [stdout] 33 | impl ConnectionHandler { [INFO] [stdout] | ---------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 52 | async fn send_webhook(&self, app: &App, webhook_fn: F) -> Result<()> [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 951 | pub async fn channel(&self, app_id: &str, channel_name: &str) -> Value { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 966 | pub async fn channels(&self, app_id: &str) -> Value { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 983 | pub async fn channel_users( [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `app_id` is never read [INFO] [stdout] --> src/adapter/horizontal_adapter.rs:78:5 [INFO] [stdout] | [INFO] [stdout] 76 | struct PendingRequest { [INFO] [stdout] | -------------- field in this struct [INFO] [stdout] 77 | start_time: Instant, [INFO] [stdout] 78 | app_id: String, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `PendingRequest` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `prefix` is never read [INFO] [stdout] --> src/adapter/redis_adapter.rs:78:9 [INFO] [stdout] | [INFO] [stdout] 65 | pub struct RedisAdapter { [INFO] [stdout] | ------------ field in this struct [INFO] [stdout] ... [INFO] [stdout] 78 | pub prefix: String, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `set_metrics`, `init_with_metrics`, and `with_url` are never used [INFO] [stdout] --> src/adapter/redis_adapter.rs:136:18 [INFO] [stdout] | [INFO] [stdout] 87 | impl RedisAdapter { [INFO] [stdout] | ----------------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 136 | pub async fn set_metrics(&mut self, metrics: Arc>) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 147 | pub async fn init_with_metrics(&mut self, metrics: Option>>) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 160 | pub async fn with_url(redis_url: &str) -> Result { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `BROADCAST_SUFFIX` is never used [INFO] [stdout] --> src/adapter/redis_cluster_adapter.rs:31:7 [INFO] [stdout] | [INFO] [stdout] 31 | const BROADCAST_SUFFIX: &str = "#broadcast"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `REQUESTS_SUFFIX` is never used [INFO] [stdout] --> src/adapter/redis_cluster_adapter.rs:32:7 [INFO] [stdout] | [INFO] [stdout] 32 | const REQUESTS_SUFFIX: &str = "#requests"; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `RESPONSES_SUFFIX` is never used [INFO] [stdout] --> src/adapter/redis_cluster_adapter.rs:33:7 [INFO] [stdout] | [INFO] [stdout] 33 | const RESPONSES_SUFFIX: &str = "#responses"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `prefix`, `request_timeout_ms`, and `use_connection_manager` are never read [INFO] [stdout] --> src/adapter/redis_cluster_adapter.rs:41:9 [INFO] [stdout] | [INFO] [stdout] 37 | pub struct RedisClusterAdapterConfig { [INFO] [stdout] | ------------------------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 41 | pub prefix: String, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 42 | /// Request timeout in milliseconds [INFO] [stdout] 43 | pub request_timeout_ms: u64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 44 | /// Use connection manager for auto-reconnection [INFO] [stdout] 45 | pub use_connection_manager: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `RedisClusterAdapterConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `client` and `prefix` are never read [INFO] [stdout] --> src/adapter/redis_cluster_adapter.rs:67:9 [INFO] [stdout] | [INFO] [stdout] 60 | pub struct RedisClusterAdapter { [INFO] [stdout] | ------------------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 67 | pub client: redis::cluster::ClusterClient, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 73 | pub prefix: String, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `new` and `with_nodes` are never used [INFO] [stdout] --> src/adapter/redis_cluster_adapter.rs:84:18 [INFO] [stdout] | [INFO] [stdout] 82 | impl RedisClusterAdapter { [INFO] [stdout] | ------------------------ associated functions in this implementation [INFO] [stdout] 83 | /// Create a new Redis adapter [INFO] [stdout] 84 | pub async fn new(config: RedisClusterAdapterConfig) -> Result { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 129 | pub async fn with_nodes(nodes: Vec) -> Result { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `BROADCAST_SUFFIX` is never used [INFO] [stdout] --> src/adapter/nats_adapter.rs:33:7 [INFO] [stdout] | [INFO] [stdout] 33 | const BROADCAST_SUFFIX: &str = ".broadcast"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `REQUESTS_SUFFIX` is never used [INFO] [stdout] --> src/adapter/nats_adapter.rs:34:7 [INFO] [stdout] | [INFO] [stdout] 34 | const REQUESTS_SUFFIX: &str = ".requests"; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `RESPONSES_SUFFIX` is never used [INFO] [stdout] --> src/adapter/nats_adapter.rs:35:7 [INFO] [stdout] | [INFO] [stdout] 35 | const RESPONSES_SUFFIX: &str = ".responses"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple fields are never read [INFO] [stdout] --> src/adapter/nats_adapter.rs:41:9 [INFO] [stdout] | [INFO] [stdout] 39 | pub struct NatsAdapterConfig { [INFO] [stdout] | ----------------- fields in this struct [INFO] [stdout] 40 | /// NATS server URLs [INFO] [stdout] 41 | pub servers: Vec, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 42 | /// Channel prefix [INFO] [stdout] 43 | pub prefix: String, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 44 | /// Request timeout in milliseconds [INFO] [stdout] 45 | pub request_timeout_ms: u64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 46 | /// Username for NATS authentication [INFO] [stdout] 47 | pub username: Option, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 48 | /// Password for NATS authentication [INFO] [stdout] 49 | pub password: Option, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 50 | /// Token for NATS authentication [INFO] [stdout] 51 | pub token: Option, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 52 | /// Connection timeout in milliseconds [INFO] [stdout] 53 | pub connection_timeout_ms: u64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `NatsAdapterConfig` 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: field `prefix` is never read [INFO] [stdout] --> src/adapter/nats_adapter.rs:82:9 [INFO] [stdout] | [INFO] [stdout] 74 | pub struct NatsAdapter { [INFO] [stdout] | ----------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 82 | pub prefix: String, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `with_servers`, `set_metrics`, and `init_with_metrics` are never used [INFO] [stdout] --> src/adapter/nats_adapter.rs:93:18 [INFO] [stdout] | [INFO] [stdout] 91 | impl NatsAdapter { [INFO] [stdout] | ---------------- associated items in this implementation [INFO] [stdout] 92 | /// Create a new NATS adapter [INFO] [stdout] 93 | pub async fn new(config: NatsAdapterConfig) -> Result { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 147 | pub async fn with_servers(servers: Vec) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 363 | pub async fn set_metrics(&mut self, metrics: Arc>) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 374 | pub async fn init_with_metrics(&mut self, metrics: Option>>) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `channel_name`, `socket_id`, and `user_data` are never read [INFO] [stdout] --> src/app/auth.rs:11:9 [INFO] [stdout] | [INFO] [stdout] 10 | pub struct ChannelAuth { [INFO] [stdout] | ----------- fields in this struct [INFO] [stdout] 11 | pub channel_name: String, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 12 | pub socket_id: String, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 13 | #[serde(default)] [INFO] [stdout] 14 | pub user_data: Option, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ChannelAuth` 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 `AuthValidationResult` is never constructed [INFO] [stdout] --> src/app/auth.rs:22:12 [INFO] [stdout] | [INFO] [stdout] 22 | pub struct AuthValidationResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `AuthValidationResult` 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 `region`, `endpoint`, `access_key`, `secret_key`, and `profile_name` are never read [INFO] [stdout] --> src/app/dynamodb_app_manager.rs:20:9 [INFO] [stdout] | [INFO] [stdout] 19 | pub struct DynamoDbConfig { [INFO] [stdout] | -------------- fields in this struct [INFO] [stdout] 20 | pub region: String, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 21 | pub table_name: String, [INFO] [stdout] 22 | pub endpoint: Option, // For local development [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 23 | pub access_key: Option, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 24 | pub secret_key: Option, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 25 | pub cache_ttl: u64, // in seconds [INFO] [stdout] 26 | pub profile_name: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `DynamoDbConfig` 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` and `start_cache_cleanup` are never used [INFO] [stdout] --> src/app/dynamodb_app_manager.rs:55:18 [INFO] [stdout] | [INFO] [stdout] 54 | impl DynamoDbAppManager { [INFO] [stdout] | ----------------------- associated items in this implementation [INFO] [stdout] 55 | pub async fn new(config: DynamoDbConfig) -> Result { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 108 | fn start_cache_cleanup(&self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/app/manager.rs:12:14 [INFO] [stdout] | [INFO] [stdout] 10 | pub trait AppManager: Send + Sync + 'static { [INFO] [stdout] | ---------- methods in this trait [INFO] [stdout] 11 | /// Initialize the App Manager [INFO] [stdout] 12 | async fn init(&self) -> Result<()>; [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 18 | async fn update_app(&self, config: App) -> Result<()>; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 21 | async fn remove_app(&self, app_id: &str) -> Result<()>; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 27 | async fn validate_key(&self, app_id: &str) -> Result; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 36 | async fn validate_signature(&self, app_id: &str, signature: &str, body: &str) -> Result; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 42 | async fn validate_channel_name(&self, app_id: &str, channel: &str) -> Result<()>; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 48 | async fn validate_user_auth(&self, socket_id: &SocketId, auth: &str) -> Result; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `enabled` and `ttl` are never read [INFO] [stdout] --> src/app/memory_app_manager.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 14 | struct CacheConfig { [INFO] [stdout] | ----------- fields in this struct [INFO] [stdout] 15 | enabled: bool, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 16 | ttl: usize, [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `cache` is never read [INFO] [stdout] --> src/app/memory_app_manager.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 19 | pub struct MemoryAppManager { [INFO] [stdout] | ---------------- field in this struct [INFO] [stdout] 20 | apps: DashMap, [INFO] [stdout] 21 | cache: CacheConfig, [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple fields are never read [INFO] [stdout] --> src/app/mysql_app_manager.rs:20:9 [INFO] [stdout] | [INFO] [stdout] 19 | pub struct MySQLConfig { [INFO] [stdout] | ----------- fields in this struct [INFO] [stdout] 20 | pub host: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] 21 | pub port: u16, [INFO] [stdout] | ^^^^ [INFO] [stdout] 22 | pub username: String, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 23 | pub password: String, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 24 | pub database: String, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 27 | pub cache_ttl: u64, // in seconds [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 28 | pub cache_cleanup_interval: u64, // in seconds [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 29 | pub cache_max_capacity: u64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `MySQLConfig` 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` and `ensure_table_exists` are never used [INFO] [stdout] --> src/app/mysql_app_manager.rs:58:18 [INFO] [stdout] | [INFO] [stdout] 56 | impl MySQLAppManager { [INFO] [stdout] | -------------------- associated items in this implementation [INFO] [stdout] 57 | /// Create a new MySQL-based AppManager with the provided configuration [INFO] [stdout] 58 | pub async fn new(config: MySQLConfig) -> Result { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 99 | async fn ensure_table_exists(&self) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CacheFactory` is never constructed [INFO] [stdout] --> src/cache/factory.rs:25:12 [INFO] [stdout] | [INFO] [stdout] 25 | pub struct CacheFactory; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `create` and `create_redis` are never used [INFO] [stdout] --> src/cache/factory.rs:29:18 [INFO] [stdout] | [INFO] [stdout] 27 | impl CacheFactory { [INFO] [stdout] | ----------------- associated functions in this implementation [INFO] [stdout] 28 | /// Create a new cache manager based on the specified driver [INFO] [stdout] 29 | pub async fn create( [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 47 | pub async fn create_redis( [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `has`, `disconnect`, and `is_healthy` are never used [INFO] [stdout] --> src/cache/manager.rs:9:14 [INFO] [stdout] | [INFO] [stdout] 7 | pub trait CacheManager: Send + Sync { [INFO] [stdout] | ------------ methods in this trait [INFO] [stdout] 8 | /// Check if the given key exists in cache [INFO] [stdout] 9 | async fn has(&mut self, key: &str) -> Result; [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 19 | async fn disconnect(&self) -> Result<()>; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 20 | [INFO] [stdout] 21 | async fn is_healthy(&self) -> Result { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `response_timeout` and `max_capacity` are never read [INFO] [stdout] --> src/cache/memory_cache_manager.rs:54:9 [INFO] [stdout] | [INFO] [stdout] 50 | pub struct MemoryCacheConfig { [INFO] [stdout] | ----------------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 54 | pub response_timeout: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 59 | pub max_capacity: u64, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `MemoryCacheConfig` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `new` and `with_prefix` are never used [INFO] [stdout] --> src/cache/memory_cache_manager.rs:87:12 [INFO] [stdout] | [INFO] [stdout] 85 | impl MemoryCacheManager { [INFO] [stdout] | ----------------------- associated functions in this implementation [INFO] [stdout] 86 | /// Creates a new Memory cache manager with Moka configuration. [INFO] [stdout] 87 | pub fn new(config: MemoryCacheConfig) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 103 | pub fn with_prefix(prefix: &str) -> Self { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `delete`, `get_many`, and `set_many` are never used [INFO] [stdout] --> src/cache/memory_cache_manager.rs:202:18 [INFO] [stdout] | [INFO] [stdout] 200 | impl MemoryCacheManager { [INFO] [stdout] | ----------------------- methods in this implementation [INFO] [stdout] 201 | /// Delete a key from the cache. [INFO] [stdout] 202 | pub async fn delete(&mut self, key: &str) -> Result { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 216 | pub async fn get_many(&mut self, keys: &[&str]) -> Result>> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 226 | pub async fn set_many(&mut self, pairs: &[(&str, &str)], ttl_seconds: u64) -> Result<()> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `create_memory` is never used [INFO] [stdout] --> src/cache/memory_cache_manager.rs:246:12 [INFO] [stdout] | [INFO] [stdout] 244 | impl crate::cache::factory::CacheFactory { [INFO] [stdout] | ---------------------------------------- associated function in this implementation [INFO] [stdout] 245 | /// Create a new memory cache manager using Moka [INFO] [stdout] 246 | pub fn create_memory(prefix: Option<&str>) -> Result>>> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `client` is never read [INFO] [stdout] --> src/cache/redis_cache_manager.rs:34:5 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct RedisCacheManager { [INFO] [stdout] | ----------------- field in this struct [INFO] [stdout] 33 | /// Redis client [INFO] [stdout] 34 | client: Client, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `with_url` is never used [INFO] [stdout] --> src/cache/redis_cache_manager.rs:78:18 [INFO] [stdout] | [INFO] [stdout] 41 | impl RedisCacheManager { [INFO] [stdout] | ---------------------- associated function in this implementation [INFO] [stdout] ... [INFO] [stdout] 78 | pub async fn with_url(redis_url: &str, prefix: Option<&str>) -> Result { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/cache/redis_cache_manager.rs:173:18 [INFO] [stdout] | [INFO] [stdout] 171 | impl RedisCacheManager { [INFO] [stdout] | ---------------------- methods in this implementation [INFO] [stdout] 172 | /// Delete a key from the cache [INFO] [stdout] 173 | pub async fn delete(&mut self, key: &str) -> Result { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 183 | pub async fn clear_prefix(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 208 | pub async fn set_many(&mut self, pairs: &[(&str, &str)], ttl_seconds: u64) -> Result<()> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 239 | pub async fn increment(&mut self, key: &str, by: i64) -> Result { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 252 | pub async fn get_many(&mut self, keys: &[&str]) -> Result>> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 271 | pub async fn flush_db(&mut self) -> Result<()> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 282 | pub fn get_connection(&self) -> MultiplexedConnection { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CacheManagerFactory` is never constructed [INFO] [stdout] --> src/cache/redis_cache_manager.rs:288:12 [INFO] [stdout] | [INFO] [stdout] 288 | pub struct CacheManagerFactory; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `create_redis` and `create_redis_resp3` are never used [INFO] [stdout] --> src/cache/redis_cache_manager.rs:292:18 [INFO] [stdout] | [INFO] [stdout] 290 | impl CacheManagerFactory { [INFO] [stdout] | ------------------------ associated functions in this implementation [INFO] [stdout] 291 | /// Create a new Redis cache manager [INFO] [stdout] 292 | pub async fn create_redis( [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 309 | pub async fn create_redis_resp3( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `nodes`, `prefix`, `response_timeout`, and `read_from_replicas` are never read [INFO] [stdout] --> src/cache/redis_cluster_cache_manager.rs:13:9 [INFO] [stdout] | [INFO] [stdout] 11 | pub struct RedisClusterCacheConfig { [INFO] [stdout] | ----------------------- fields in this struct [INFO] [stdout] 12 | /// Redis cluster nodes (array of "host:port" strings) [INFO] [stdout] 13 | pub nodes: Vec, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 14 | /// Key prefix [INFO] [stdout] 15 | pub prefix: String, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 16 | /// Response timeout [INFO] [stdout] 17 | pub response_timeout: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 18 | /// Read from replicas (if supported) [INFO] [stdout] 19 | pub read_from_replicas: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `RedisClusterCacheConfig` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `new` and `with_nodes` are never used [INFO] [stdout] --> src/cache/redis_cluster_cache_manager.rs:45:18 [INFO] [stdout] | [INFO] [stdout] 43 | impl RedisClusterCacheManager { [INFO] [stdout] | ----------------------------- associated functions in this implementation [INFO] [stdout] 44 | /// Creates a new Redis Cluster cache manager with configuration [INFO] [stdout] 45 | pub async fn new(config: RedisClusterCacheConfig) -> Result { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 78 | pub async fn with_nodes(nodes: Vec, prefix: Option<&str>) -> Result { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/cache/redis_cluster_cache_manager.rs:177:18 [INFO] [stdout] | [INFO] [stdout] 175 | impl RedisClusterCacheManager { [INFO] [stdout] | ----------------------------- methods in this implementation [INFO] [stdout] 176 | /// Delete a key from the cache [INFO] [stdout] 177 | pub async fn delete(&mut self, key: &str) -> Result { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 187 | pub async fn clear_prefix(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 219 | pub async fn set_many(&mut self, pairs: &[(&str, &str)], ttl_seconds: u64) -> Result<()> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 249 | pub async fn increment(&mut self, key: &str, by: i64) -> Result { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 261 | pub async fn get_many(&mut self, keys: &[&str]) -> Result>> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 281 | pub fn get_client(&self) -> ClusterClient { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 286 | pub async fn get_connection(&self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 293 | pub async fn get_cluster_info(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 304 | pub async fn get_cluster_nodes(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ClusterCacheManagerFactory` is never constructed [INFO] [stdout] --> src/cache/redis_cluster_cache_manager.rs:316:12 [INFO] [stdout] | [INFO] [stdout] 316 | pub struct ClusterCacheManagerFactory; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `create_redis_cluster` is never used [INFO] [stdout] --> src/cache/redis_cluster_cache_manager.rs:320:18 [INFO] [stdout] | [INFO] [stdout] 318 | impl ClusterCacheManagerFactory { [INFO] [stdout] | ------------------------------- associated function in this implementation [INFO] [stdout] 319 | /// Create a new Redis Cluster cache manager [INFO] [stdout] 320 | pub async fn create_redis_cluster( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `PresenceData` is never constructed [INFO] [stdout] --> src/channel/manager.rs:17:8 [INFO] [stdout] | [INFO] [stdout] 17 | struct PresenceData { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple variants are never constructed [INFO] [stdout] --> src/error/mod.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 4 | pub enum Error { [INFO] [stdout] | ----- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 7 | SSLRequired, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 10 | ApplicationNotFound, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 13 | ApplicationDisabled, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 16 | OverConnectionQuota, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 19 | PathNotFound, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 22 | InvalidVersionFormat, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 25 | UnsupportedProtocolVersion(String), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 28 | NoProtocolVersion, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 31 | Unauthorized, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 35 | OverCapacity, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 39 | ReconnectImmediately, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 42 | PongNotReceived, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 45 | InactivityTimeout, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 49 | ClientEventRateLimit, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 52 | WatchlistLimitExceeded, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 62 | ChannelExists, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 65 | ChannelNotFound, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 72 | InvalidSignature, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 75 | InvalidKey, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 82 | ConnectionExists, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 89 | ProtocolError(String), [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 127 | BroadcastError(String), [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 136 | RequestTimeout, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 142 | HorizontalAdapterError(String), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Error` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `is_fatal` and `should_reconnect` are never used [INFO] [stdout] --> src/error/mod.rs:199:12 [INFO] [stdout] | [INFO] [stdout] 155 | impl Error { [INFO] [stdout] | ---------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 199 | pub fn is_fatal(&self) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 214 | pub fn should_reconnect(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `auth_key`, `auth_timestamp`, `auth_version`, `body_md5`, and `auth_signature` are never read [INFO] [stdout] --> src/http_handler.rs:62:9 [INFO] [stdout] | [INFO] [stdout] 60 | pub struct EventQuery { [INFO] [stdout] | ---------- fields in this struct [INFO] [stdout] 61 | #[serde(default)] [INFO] [stdout] 62 | pub auth_key: String, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 63 | #[serde(default)] [INFO] [stdout] 64 | pub auth_timestamp: String, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 65 | #[serde(default)] [INFO] [stdout] 66 | pub auth_version: String, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 67 | #[serde(default)] [INFO] [stdout] 68 | pub body_md5: String, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 69 | #[serde(default)] [INFO] [stdout] 70 | pub auth_signature: String, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `EventQuery` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `init`, `mark_horizontal_adapter_request_received`, `get_metrics_as_json`, and `clear` are never used [INFO] [stdout] --> src/metrics/mod.rs:17:14 [INFO] [stdout] | [INFO] [stdout] 15 | pub trait MetricsInterface: Send + Sync { [INFO] [stdout] | ---------------- methods in this trait [INFO] [stdout] 16 | /// Initialize the metrics driver [INFO] [stdout] 17 | async fn init(&self) -> crate::error::Result<()>; [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 49 | fn mark_horizontal_adapter_request_received(&self, app_id: &str); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 58 | async fn get_metrics_as_json(&self) -> Value; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 61 | async fn clear(&self); [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `MetricsFactory` is never constructed [INFO] [stdout] --> src/metrics/mod.rs:65:12 [INFO] [stdout] | [INFO] [stdout] 65 | pub struct MetricsFactory; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `create` is never used [INFO] [stdout] --> src/metrics/mod.rs:69:18 [INFO] [stdout] | [INFO] [stdout] 67 | impl MetricsFactory { [INFO] [stdout] | ------------------- associated function in this implementation [INFO] [stdout] 68 | /// Create a new metrics driver based on the specified driver type [INFO] [stdout] 69 | pub async fn create( [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `prefix` is never read [INFO] [stdout] --> src/metrics/prometheus.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 17 | pub struct PrometheusMetricsDriver { [INFO] [stdout] | ----------------------- field in this struct [INFO] [stdout] 18 | prefix: String, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `get_connection_from_channel`, `send_message`, `broadcast`, and `get_channel_subscribers` are never used [INFO] [stdout] --> src/namespace.rs:148:12 [INFO] [stdout] | [INFO] [stdout] 35 | impl Namespace { [INFO] [stdout] | -------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 148 | pub fn get_connection_from_channel( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 164 | pub async fn send_message(&self, socket_id: &SocketId, message: PusherMessage) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 195 | pub async fn broadcast( [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 535 | pub fn get_channel_subscribers(&self, channel: &str) -> Option> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `PROTOCOL_VERSION` is never used [INFO] [stdout] --> src/protocol/constants.rs:1:11 [INFO] [stdout] | [INFO] [stdout] 1 | pub const PROTOCOL_VERSION: u8 = 7; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `ACTIVITY_TIMEOUT` is never used [INFO] [stdout] --> src/protocol/constants.rs:2:11 [INFO] [stdout] | [INFO] [stdout] 2 | pub const ACTIVITY_TIMEOUT: u32 = 120; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `PONG_TIMEOUT` is never used [INFO] [stdout] --> src/protocol/constants.rs:3:11 [INFO] [stdout] | [INFO] [stdout] 3 | pub const PONG_TIMEOUT: u32 = 30; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `CHANNEL_NAME_MAX_LENGTH` is never used [INFO] [stdout] --> src/protocol/constants.rs:5:11 [INFO] [stdout] | [INFO] [stdout] 5 | pub const CHANNEL_NAME_MAX_LENGTH: usize = 200; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `CHANNEL_NAME_REGEX` is never used [INFO] [stdout] --> src/protocol/constants.rs:6:11 [INFO] [stdout] | [INFO] [stdout] 6 | pub const CHANNEL_NAME_REGEX: &str = r"^[a-zA-Z0-9_\-=@,.;]+$"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `EVENT_NAME_MAX_LENGTH` is never used [INFO] [stdout] --> src/protocol/constants.rs:8:11 [INFO] [stdout] | [INFO] [stdout] 8 | pub const EVENT_NAME_MAX_LENGTH: usize = 200; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `CLIENT_EVENT_PREFIX` is never used [INFO] [stdout] --> src/protocol/constants.rs:9:11 [INFO] [stdout] | [INFO] [stdout] 9 | pub const CLIENT_EVENT_PREFIX: &str = "client-"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `as_string`, `into_string`, and `as_value` are never used [INFO] [stdout] --> src/protocol/messages.rs:81:12 [INFO] [stdout] | [INFO] [stdout] 80 | impl MessageData { [INFO] [stdout] | ---------------- methods in this implementation [INFO] [stdout] 81 | pub fn as_string(&self) -> Option<&str> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 88 | pub fn into_string(self) -> Option { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 95 | pub fn as_value(&self) -> Option<&Value> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `channel_event`, `pong`, `user_list`, `batch_response`, and `success_response` are never used [INFO] [stdout] --> src/protocol/messages.rs:154:12 [INFO] [stdout] | [INFO] [stdout] 115 | impl PusherMessage { [INFO] [stdout] | ------------------ associated functions in this implementation [INFO] [stdout] ... [INFO] [stdout] 154 | pub fn channel_event>(event: S, channel: S, data: Value) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 187 | pub fn pong() -> Self { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 228 | pub fn user_list(user_ids: Vec) -> Value { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 237 | pub fn batch_response(batch_info: Vec) -> Value { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 242 | pub fn success_response() -> Value { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `identifier` is never read [INFO] [stdout] --> src/rate_limiter/mod.rs:18:9 [INFO] [stdout] | [INFO] [stdout] 12 | pub struct RateLimitConfig { [INFO] [stdout] | --------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 18 | pub identifier: Option, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `RateLimitConfig` 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: methods `reset` and `get_remaining` are never used [INFO] [stdout] --> src/rate_limiter/mod.rs:55:14 [INFO] [stdout] | [INFO] [stdout] 46 | pub trait RateLimiter: Send + Sync { [INFO] [stdout] | ----------- methods in this trait [INFO] [stdout] ... [INFO] [stdout] 55 | async fn reset(&self, key: &str) -> Result<()>; [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 58 | async fn get_remaining(&self, key: &str) -> Result; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `create_rate_limiter` is never used [INFO] [stdout] --> src/rate_limiter/mod.rs:62:14 [INFO] [stdout] | [INFO] [stdout] 62 | pub async fn create_rate_limiter( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `new` and `with_config` are never used [INFO] [stdout] --> src/rate_limiter/memory_limiter.rs:35:12 [INFO] [stdout] | [INFO] [stdout] 33 | impl MemoryRateLimiter { [INFO] [stdout] | ---------------------- associated functions in this implementation [INFO] [stdout] 34 | /// Create a new memory-based rate limiter [INFO] [stdout] 35 | pub fn new(max_requests: u32, window_secs: u64) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 84 | pub fn with_config(config: RateLimitConfig) -> Self { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `InvalidHeaderName` is never constructed [INFO] [stdout] --> src/rate_limiter/middleware.rs:27:5 [INFO] [stdout] | [INFO] [stdout] 26 | pub enum RateLimitMiddlewareError { [INFO] [stdout] | ------------------------ variant in this enum [INFO] [stdout] 27 | InvalidHeaderName(String), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `RateLimitMiddlewareError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `new` and `with_options` are never used [INFO] [stdout] --> src/rate_limiter/middleware.rs:84:12 [INFO] [stdout] | [INFO] [stdout] 79 | / impl RateLimitLayer [INFO] [stdout] 80 | | where [INFO] [stdout] 81 | | K: KeyExtractor + Clone + Send + Sync + 'static, [INFO] [stdout] | |____________________________________________________- associated functions in this implementation [INFO] [stdout] ... [INFO] [stdout] 84 | pub fn new(limiter: Arc, key_extractor: K) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 93 | pub fn with_options( [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `trusting` is never used [INFO] [stdout] --> src/rate_limiter/middleware.rs:271:12 [INFO] [stdout] | [INFO] [stdout] 264 | impl IpKeyExtractor { [INFO] [stdout] | ------------------- associated function in this implementation [INFO] [stdout] ... [INFO] [stdout] 271 | pub fn trusting(hops: usize) -> Self { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/rate_limiter/middleware.rs:348:12 [INFO] [stdout] | [INFO] [stdout] 345 | impl HeaderKeyExtractor { [INFO] [stdout] | ----------------------- associated function in this implementation [INFO] [stdout] ... [INFO] [stdout] 348 | pub fn new(header_name: &str) -> Result { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/rate_limiter/middleware.rs:398:12 [INFO] [stdout] | [INFO] [stdout] 393 | / impl FnKeyExtractor [INFO] [stdout] 394 | | where [INFO] [stdout] 395 | | F: Fn(&Request) -> String + Send + Sync + Clone + 'static, // Added Clone bound [INFO] [stdout] | |____________________________________________________________________- associated function in this implementation [INFO] [stdout] ... [INFO] [stdout] 398 | pub fn new(extractor: F) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `with_ip_limiter` is never used [INFO] [stdout] --> src/rate_limiter/middleware.rs:496:8 [INFO] [stdout] | [INFO] [stdout] 496 | pub fn with_ip_limiter( [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `with_ip_limiter_trusting` is never used [INFO] [stdout] --> src/rate_limiter/middleware.rs:504:8 [INFO] [stdout] | [INFO] [stdout] 504 | pub fn with_ip_limiter_trusting( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `with_header_limiter` is never used [INFO] [stdout] --> src/rate_limiter/middleware.rs:513:8 [INFO] [stdout] | [INFO] [stdout] 513 | pub fn with_header_limiter( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `with_path_limiter` is never used [INFO] [stdout] --> src/rate_limiter/middleware.rs:523:8 [INFO] [stdout] | [INFO] [stdout] 523 | pub fn with_path_limiter( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `with_fn_limiter` is never used [INFO] [stdout] --> src/rate_limiter/middleware.rs:531:8 [INFO] [stdout] | [INFO] [stdout] 531 | pub fn with_fn_limiter( [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `client` is never read [INFO] [stdout] --> src/rate_limiter/redis_limiter.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 9 | pub struct RedisRateLimiter { [INFO] [stdout] | ---------------- field in this struct [INFO] [stdout] 10 | /// Redis client [INFO] [stdout] 11 | client: Client, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `new` and `with_config` are never used [INFO] [stdout] --> src/rate_limiter/redis_limiter.rs:22:18 [INFO] [stdout] | [INFO] [stdout] 20 | impl RedisRateLimiter { [INFO] [stdout] | --------------------- associated functions in this implementation [INFO] [stdout] 21 | /// Create a new Redis-based rate limiter [INFO] [stdout] 22 | pub async fn new( [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 48 | pub async fn with_config( [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `key` is never read [INFO] [stdout] --> src/token.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 20 | pub struct Token { [INFO] [stdout] | ----- field in this struct [INFO] [stdout] 21 | key: String, [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `config` is never read [INFO] [stdout] --> src/webhook/integration.rs:59:5 [INFO] [stdout] | [INFO] [stdout] 57 | pub struct WebhookIntegration { [INFO] [stdout] | ------------------ field in this struct [INFO] [stdout] 58 | sender: Option>, [INFO] [stdout] 59 | config: WebhookConfig, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `is_enabled` is never used [INFO] [stdout] --> src/webhook/integration.rs:111:12 [INFO] [stdout] | [INFO] [stdout] 62 | impl WebhookIntegration { [INFO] [stdout] | ----------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 111 | pub fn is_enabled(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `process_id`, `batching_enabled`, and `batching_duration` are never read [INFO] [stdout] --> src/webhook/sender.rs:33:9 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct WebhookSenderConfig { [INFO] [stdout] | ------------------- fields in this struct [INFO] [stdout] 33 | pub process_id: String, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 34 | pub debug: bool, [INFO] [stdout] 35 | pub batching_enabled: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 36 | pub batching_duration: u64, // milliseconds [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `WebhookSenderConfig` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `batch` and `batch_leaders` are never read [INFO] [stdout] --> src/webhook/sender.rs:62:5 [INFO] [stdout] | [INFO] [stdout] 60 | pub struct WebhookSender { [INFO] [stdout] | ------------- fields in this struct [INFO] [stdout] 61 | queue_manager: Arc, // Use dyn trait object [INFO] [stdout] 62 | batch: Arc>>>, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 63 | batch_leaders: Arc>>, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `send_webhook_by_batching` is never used [INFO] [stdout] --> src/webhook/sender.rs:517:14 [INFO] [stdout] | [INFO] [stdout] 70 | impl WebhookSender { [INFO] [stdout] | ------------------ method in this implementation [INFO] [stdout] ... [INFO] [stdout] 517 | async fn send_webhook_by_batching( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `webhooks` is never used [INFO] [stdout] --> src/webhook/types.rs:217:12 [INFO] [stdout] | [INFO] [stdout] 216 | impl App { [INFO] [stdout] | -------- method in this implementation [INFO] [stdout] 217 | pub fn webhooks(&self) -> Option<&Vec> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `is_presence`, `is_subscribed`, `add_subscription`, and `remove_subscription` are never used [INFO] [stdout] --> src/websocket.rs:107:12 [INFO] [stdout] | [INFO] [stdout] 94 | impl ConnectionState { [INFO] [stdout] | -------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 107 | pub fn is_presence(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 111 | pub fn is_subscribed(&self, channel: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 115 | pub fn add_subscription(&mut self, channel: String) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 119 | pub fn remove_subscription(&mut self, channel: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `protocol`, `client`, and `version` are never read [INFO] [stdout] --> src/ws_handler.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 10 | pub struct ConnectionQuery { [INFO] [stdout] | --------------- fields in this struct [INFO] [stdout] 11 | protocol: Option, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 12 | client: Option, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 13 | version: Option, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ConnectionQuery` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `JobProcessorFn` is never used [INFO] [stdout] --> src/queue/mod.rs:19:6 [INFO] [stdout] | [INFO] [stdout] 19 | type JobProcessorFn = Box Result<()> + Send + Sync + 'static>; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `disconnect` is never used [INFO] [stdout] --> src/queue/mod.rs:30:14 [INFO] [stdout] | [INFO] [stdout] 26 | pub trait QueueInterface: Send + Sync { [INFO] [stdout] | -------------- method in this trait [INFO] [stdout] ... [INFO] [stdout] 30 | async fn disconnect(&self) -> crate::error::Result<()>; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `disconnect` is never used [INFO] [stdout] --> src/queue/manager.rs:73:18 [INFO] [stdout] | [INFO] [stdout] 56 | impl QueueManager { [INFO] [stdout] | ----------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 73 | pub async fn disconnect(&self) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `start_processing` is never used [INFO] [stdout] --> src/queue/redis_queue_manager.rs:46:12 [INFO] [stdout] | [INFO] [stdout] 22 | impl RedisQueueManager { [INFO] [stdout] | ---------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 46 | pub fn start_processing(&self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/queue/sqs_queue_manager.rs:32:18 [INFO] [stdout] | [INFO] [stdout] 30 | impl SqsQueueManager { [INFO] [stdout] | -------------------- associated function in this implementation [INFO] [stdout] 31 | /// Create a new SQS queue manager [INFO] [stdout] 32 | pub async fn new(config: SqsQueueConfig) -> Result { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/adapter/handler.rs:826:9 [INFO] [stdout] | [INFO] [stdout] 826 | / self.connection_manager [INFO] [stdout] 827 | | .lock() [INFO] [stdout] 828 | | .await [INFO] [stdout] 829 | | .send(channel_name, message.clone(), Some(socket_id), app_id) [INFO] [stdout] 830 | | .await; [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)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 826 | let _ = self.connection_manager [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/adapter/handler.rs:835:13 [INFO] [stdout] | [INFO] [stdout] 835 | ... self.webhook_integration.clone().unwrap().send_client_event(&app.unwrap(), channel_name, message.event.unwrap().as_str(), value, Some(socket_id.as_ref()), Some(&*user_id)).await; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 835 | let _ = self.webhook_integration.clone().unwrap().send_client_event(&app.unwrap(), channel_name, message.event.unwrap().as_str(), value, Some(socket_id.as_ref()), Some(&*user_id)).await; [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/rate_limiter/middleware.rs:280:25 [INFO] [stdout] | [INFO] [stdout] 280 | let mut ips = forwarded_str.split(','); [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: irrefutable `if let` pattern [INFO] [stdout] --> src/rate_limiter/middleware.rs:460:8 [INFO] [stdout] | [INFO] [stdout] 460 | if let Ok(value) = result.limit.try_into() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this pattern will always match, so the `if let` is useless [INFO] [stdout] = help: consider replacing the `if let` with a `let` [INFO] [stdout] = note: `#[warn(irrefutable_let_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: irrefutable `if let` pattern [INFO] [stdout] --> src/rate_limiter/middleware.rs:463:8 [INFO] [stdout] | [INFO] [stdout] 463 | if let Ok(value) = result.remaining.try_into() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this pattern will always match, so the `if let` is useless [INFO] [stdout] = help: consider replacing the `if let` with a `let` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: irrefutable `if let` pattern [INFO] [stdout] --> src/rate_limiter/middleware.rs:469:8 [INFO] [stdout] | [INFO] [stdout] 469 | if let Ok(reset_value) = result.reset_after.try_into() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this pattern will always match, so the `if let` is useless [INFO] [stdout] = help: consider replacing the `if let` with a `let` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: irrefutable `if let` pattern [INFO] [stdout] --> src/rate_limiter/middleware.rs:477:16 [INFO] [stdout] | [INFO] [stdout] 477 | if let Ok(retry_value) = result.reset_after.try_into() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this pattern will always match, so the `if let` is useless [INFO] [stdout] = help: consider replacing the `if let` with a `let` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: irrefutable `if let` pattern [INFO] [stdout] --> src/utils.rs:22:34 [INFO] [stdout] | [INFO] [stdout] 22 | let string_data = if let Ok(s) = element.as_ref().to_string().parse::() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this pattern will always match, so the `if let` is useless [INFO] [stdout] = help: consider replacing the `if let` with a `let` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `PendingRequest` is more private than the item `HorizontalAdapter::pending_requests` [INFO] [stdout] --> src/adapter/horizontal_adapter.rs:91:5 [INFO] [stdout] | [INFO] [stdout] 91 | pub pending_requests: DashMap, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ field `HorizontalAdapter::pending_requests` is reachable at visibility `pub(crate)` [INFO] [stdout] | [INFO] [stdout] note: but type `PendingRequest` is only usable at visibility `pub(self)` [INFO] [stdout] --> src/adapter/horizontal_adapter.rs:76:1 [INFO] [stdout] | [INFO] [stdout] 76 | struct PendingRequest { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: `#[warn(private_interfaces)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `auth_validator` and `webhooks_integration` are never read [INFO] [stdout] --> src/main.rs:73:5 [INFO] [stdout] | [INFO] [stdout] 69 | struct ServerState { [INFO] [stdout] | ----------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 73 | auth_validator: Arc, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 74 | cache_manager: Arc>, [INFO] [stdout] 75 | webhooks_integration: Arc, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ServerState` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `stop` and `register_apps` are never used [INFO] [stdout] --> src/main.rs:404:14 [INFO] [stdout] | [INFO] [stdout] 87 | impl SockudoServer { [INFO] [stdout] | ------------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 404 | async fn stop(&self) -> Result<()> { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 436 | async fn register_apps(&self, apps: Vec) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `send_webhook`, `channel`, `channels`, and `channel_users` are never used [INFO] [stdout] --> src/adapter/handler.rs:52:14 [INFO] [stdout] | [INFO] [stdout] 33 | impl ConnectionHandler { [INFO] [stdout] | ---------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 52 | async fn send_webhook(&self, app: &App, webhook_fn: F) -> Result<()> [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 951 | pub async fn channel(&self, app_id: &str, channel_name: &str) -> Value { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 966 | pub async fn channels(&self, app_id: &str) -> Value { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 983 | pub async fn channel_users( [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `app_id` is never read [INFO] [stdout] --> src/adapter/horizontal_adapter.rs:78:5 [INFO] [stdout] | [INFO] [stdout] 76 | struct PendingRequest { [INFO] [stdout] | -------------- field in this struct [INFO] [stdout] 77 | start_time: Instant, [INFO] [stdout] 78 | app_id: String, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `PendingRequest` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `prefix` is never read [INFO] [stdout] --> src/adapter/redis_adapter.rs:78:9 [INFO] [stdout] | [INFO] [stdout] 65 | pub struct RedisAdapter { [INFO] [stdout] | ------------ field in this struct [INFO] [stdout] ... [INFO] [stdout] 78 | pub prefix: String, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `set_metrics`, `init_with_metrics`, and `with_url` are never used [INFO] [stdout] --> src/adapter/redis_adapter.rs:136:18 [INFO] [stdout] | [INFO] [stdout] 87 | impl RedisAdapter { [INFO] [stdout] | ----------------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 136 | pub async fn set_metrics(&mut self, metrics: Arc>) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 147 | pub async fn init_with_metrics(&mut self, metrics: Option>>) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 160 | pub async fn with_url(redis_url: &str) -> Result { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `BROADCAST_SUFFIX` is never used [INFO] [stdout] --> src/adapter/redis_cluster_adapter.rs:31:7 [INFO] [stdout] | [INFO] [stdout] 31 | const BROADCAST_SUFFIX: &str = "#broadcast"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `REQUESTS_SUFFIX` is never used [INFO] [stdout] --> src/adapter/redis_cluster_adapter.rs:32:7 [INFO] [stdout] | [INFO] [stdout] 32 | const REQUESTS_SUFFIX: &str = "#requests"; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `RESPONSES_SUFFIX` is never used [INFO] [stdout] --> src/adapter/redis_cluster_adapter.rs:33:7 [INFO] [stdout] | [INFO] [stdout] 33 | const RESPONSES_SUFFIX: &str = "#responses"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `prefix`, `request_timeout_ms`, and `use_connection_manager` are never read [INFO] [stdout] --> src/adapter/redis_cluster_adapter.rs:41:9 [INFO] [stdout] | [INFO] [stdout] 37 | pub struct RedisClusterAdapterConfig { [INFO] [stdout] | ------------------------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 41 | pub prefix: String, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 42 | /// Request timeout in milliseconds [INFO] [stdout] 43 | pub request_timeout_ms: u64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 44 | /// Use connection manager for auto-reconnection [INFO] [stdout] 45 | pub use_connection_manager: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `RedisClusterAdapterConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `client` and `prefix` are never read [INFO] [stdout] --> src/adapter/redis_cluster_adapter.rs:67:9 [INFO] [stdout] | [INFO] [stdout] 60 | pub struct RedisClusterAdapter { [INFO] [stdout] | ------------------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 67 | pub client: redis::cluster::ClusterClient, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 73 | pub prefix: String, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `new` and `with_nodes` are never used [INFO] [stdout] --> src/adapter/redis_cluster_adapter.rs:84:18 [INFO] [stdout] | [INFO] [stdout] 82 | impl RedisClusterAdapter { [INFO] [stdout] | ------------------------ associated functions in this implementation [INFO] [stdout] 83 | /// Create a new Redis adapter [INFO] [stdout] 84 | pub async fn new(config: RedisClusterAdapterConfig) -> Result { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 129 | pub async fn with_nodes(nodes: Vec) -> Result { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `BROADCAST_SUFFIX` is never used [INFO] [stdout] --> src/adapter/nats_adapter.rs:33:7 [INFO] [stdout] | [INFO] [stdout] 33 | const BROADCAST_SUFFIX: &str = ".broadcast"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `REQUESTS_SUFFIX` is never used [INFO] [stdout] --> src/adapter/nats_adapter.rs:34:7 [INFO] [stdout] | [INFO] [stdout] 34 | const REQUESTS_SUFFIX: &str = ".requests"; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `RESPONSES_SUFFIX` is never used [INFO] [stdout] --> src/adapter/nats_adapter.rs:35:7 [INFO] [stdout] | [INFO] [stdout] 35 | const RESPONSES_SUFFIX: &str = ".responses"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple fields are never read [INFO] [stdout] --> src/adapter/nats_adapter.rs:41:9 [INFO] [stdout] | [INFO] [stdout] 39 | pub struct NatsAdapterConfig { [INFO] [stdout] | ----------------- fields in this struct [INFO] [stdout] 40 | /// NATS server URLs [INFO] [stdout] 41 | pub servers: Vec, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 42 | /// Channel prefix [INFO] [stdout] 43 | pub prefix: String, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 44 | /// Request timeout in milliseconds [INFO] [stdout] 45 | pub request_timeout_ms: u64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 46 | /// Username for NATS authentication [INFO] [stdout] 47 | pub username: Option, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 48 | /// Password for NATS authentication [INFO] [stdout] 49 | pub password: Option, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 50 | /// Token for NATS authentication [INFO] [stdout] 51 | pub token: Option, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 52 | /// Connection timeout in milliseconds [INFO] [stdout] 53 | pub connection_timeout_ms: u64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `NatsAdapterConfig` 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: field `prefix` is never read [INFO] [stdout] --> src/adapter/nats_adapter.rs:82:9 [INFO] [stdout] | [INFO] [stdout] 74 | pub struct NatsAdapter { [INFO] [stdout] | ----------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 82 | pub prefix: String, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `with_servers`, `set_metrics`, and `init_with_metrics` are never used [INFO] [stdout] --> src/adapter/nats_adapter.rs:93:18 [INFO] [stdout] | [INFO] [stdout] 91 | impl NatsAdapter { [INFO] [stdout] | ---------------- associated items in this implementation [INFO] [stdout] 92 | /// Create a new NATS adapter [INFO] [stdout] 93 | pub async fn new(config: NatsAdapterConfig) -> Result { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 147 | pub async fn with_servers(servers: Vec) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 363 | pub async fn set_metrics(&mut self, metrics: Arc>) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 374 | pub async fn init_with_metrics(&mut self, metrics: Option>>) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `channel_name`, `socket_id`, and `user_data` are never read [INFO] [stdout] --> src/app/auth.rs:11:9 [INFO] [stdout] | [INFO] [stdout] 10 | pub struct ChannelAuth { [INFO] [stdout] | ----------- fields in this struct [INFO] [stdout] 11 | pub channel_name: String, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 12 | pub socket_id: String, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 13 | #[serde(default)] [INFO] [stdout] 14 | pub user_data: Option, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ChannelAuth` 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 `AuthValidationResult` is never constructed [INFO] [stdout] --> src/app/auth.rs:22:12 [INFO] [stdout] | [INFO] [stdout] 22 | pub struct AuthValidationResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `AuthValidationResult` 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 `region`, `endpoint`, `access_key`, `secret_key`, and `profile_name` are never read [INFO] [stdout] --> src/app/dynamodb_app_manager.rs:20:9 [INFO] [stdout] | [INFO] [stdout] 19 | pub struct DynamoDbConfig { [INFO] [stdout] | -------------- fields in this struct [INFO] [stdout] 20 | pub region: String, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 21 | pub table_name: String, [INFO] [stdout] 22 | pub endpoint: Option, // For local development [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 23 | pub access_key: Option, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 24 | pub secret_key: Option, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 25 | pub cache_ttl: u64, // in seconds [INFO] [stdout] 26 | pub profile_name: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `DynamoDbConfig` 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` and `start_cache_cleanup` are never used [INFO] [stdout] --> src/app/dynamodb_app_manager.rs:55:18 [INFO] [stdout] | [INFO] [stdout] 54 | impl DynamoDbAppManager { [INFO] [stdout] | ----------------------- associated items in this implementation [INFO] [stdout] 55 | pub async fn new(config: DynamoDbConfig) -> Result { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 108 | fn start_cache_cleanup(&self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/app/manager.rs:12:14 [INFO] [stdout] | [INFO] [stdout] 10 | pub trait AppManager: Send + Sync + 'static { [INFO] [stdout] | ---------- methods in this trait [INFO] [stdout] 11 | /// Initialize the App Manager [INFO] [stdout] 12 | async fn init(&self) -> Result<()>; [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 18 | async fn update_app(&self, config: App) -> Result<()>; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 21 | async fn remove_app(&self, app_id: &str) -> Result<()>; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 27 | async fn validate_key(&self, app_id: &str) -> Result; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 36 | async fn validate_signature(&self, app_id: &str, signature: &str, body: &str) -> Result; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 42 | async fn validate_channel_name(&self, app_id: &str, channel: &str) -> Result<()>; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 48 | async fn validate_user_auth(&self, socket_id: &SocketId, auth: &str) -> Result; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `enabled` and `ttl` are never read [INFO] [stdout] --> src/app/memory_app_manager.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 14 | struct CacheConfig { [INFO] [stdout] | ----------- fields in this struct [INFO] [stdout] 15 | enabled: bool, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 16 | ttl: usize, [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `cache` is never read [INFO] [stdout] --> src/app/memory_app_manager.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 19 | pub struct MemoryAppManager { [INFO] [stdout] | ---------------- field in this struct [INFO] [stdout] 20 | apps: DashMap, [INFO] [stdout] 21 | cache: CacheConfig, [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `cache_cleanup_interval` is never read [INFO] [stdout] --> src/app/mysql_app_manager.rs:28:9 [INFO] [stdout] | [INFO] [stdout] 19 | pub struct MySQLConfig { [INFO] [stdout] | ----------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 28 | pub cache_cleanup_interval: u64, // in seconds [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `MySQLConfig` 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 `CacheFactory` is never constructed [INFO] [stdout] --> src/cache/factory.rs:25:12 [INFO] [stdout] | [INFO] [stdout] 25 | pub struct CacheFactory; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `create` and `create_redis` are never used [INFO] [stdout] --> src/cache/factory.rs:29:18 [INFO] [stdout] | [INFO] [stdout] 27 | impl CacheFactory { [INFO] [stdout] | ----------------- associated functions in this implementation [INFO] [stdout] 28 | /// Create a new cache manager based on the specified driver [INFO] [stdout] 29 | pub async fn create( [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 47 | pub async fn create_redis( [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `has`, `disconnect`, and `is_healthy` are never used [INFO] [stdout] --> src/cache/manager.rs:9:14 [INFO] [stdout] | [INFO] [stdout] 7 | pub trait CacheManager: Send + Sync { [INFO] [stdout] | ------------ methods in this trait [INFO] [stdout] 8 | /// Check if the given key exists in cache [INFO] [stdout] 9 | async fn has(&mut self, key: &str) -> Result; [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 19 | async fn disconnect(&self) -> Result<()>; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 20 | [INFO] [stdout] 21 | async fn is_healthy(&self) -> Result { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `response_timeout` and `max_capacity` are never read [INFO] [stdout] --> src/cache/memory_cache_manager.rs:54:9 [INFO] [stdout] | [INFO] [stdout] 50 | pub struct MemoryCacheConfig { [INFO] [stdout] | ----------------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 54 | pub response_timeout: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 59 | pub max_capacity: u64, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `MemoryCacheConfig` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `new` and `with_prefix` are never used [INFO] [stdout] --> src/cache/memory_cache_manager.rs:87:12 [INFO] [stdout] | [INFO] [stdout] 85 | impl MemoryCacheManager { [INFO] [stdout] | ----------------------- associated functions in this implementation [INFO] [stdout] 86 | /// Creates a new Memory cache manager with Moka configuration. [INFO] [stdout] 87 | pub fn new(config: MemoryCacheConfig) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 103 | pub fn with_prefix(prefix: &str) -> Self { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `delete`, `get_many`, and `set_many` are never used [INFO] [stdout] --> src/cache/memory_cache_manager.rs:202:18 [INFO] [stdout] | [INFO] [stdout] 200 | impl MemoryCacheManager { [INFO] [stdout] | ----------------------- methods in this implementation [INFO] [stdout] 201 | /// Delete a key from the cache. [INFO] [stdout] 202 | pub async fn delete(&mut self, key: &str) -> Result { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 216 | pub async fn get_many(&mut self, keys: &[&str]) -> Result>> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 226 | pub async fn set_many(&mut self, pairs: &[(&str, &str)], ttl_seconds: u64) -> Result<()> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `create_memory` is never used [INFO] [stdout] --> src/cache/memory_cache_manager.rs:246:12 [INFO] [stdout] | [INFO] [stdout] 244 | impl crate::cache::factory::CacheFactory { [INFO] [stdout] | ---------------------------------------- associated function in this implementation [INFO] [stdout] 245 | /// Create a new memory cache manager using Moka [INFO] [stdout] 246 | pub fn create_memory(prefix: Option<&str>) -> Result>>> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `client` is never read [INFO] [stdout] --> src/cache/redis_cache_manager.rs:34:5 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct RedisCacheManager { [INFO] [stdout] | ----------------- field in this struct [INFO] [stdout] 33 | /// Redis client [INFO] [stdout] 34 | client: Client, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `with_url` is never used [INFO] [stdout] --> src/cache/redis_cache_manager.rs:78:18 [INFO] [stdout] | [INFO] [stdout] 41 | impl RedisCacheManager { [INFO] [stdout] | ---------------------- associated function in this implementation [INFO] [stdout] ... [INFO] [stdout] 78 | pub async fn with_url(redis_url: &str, prefix: Option<&str>) -> Result { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/cache/redis_cache_manager.rs:173:18 [INFO] [stdout] | [INFO] [stdout] 171 | impl RedisCacheManager { [INFO] [stdout] | ---------------------- methods in this implementation [INFO] [stdout] 172 | /// Delete a key from the cache [INFO] [stdout] 173 | pub async fn delete(&mut self, key: &str) -> Result { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 183 | pub async fn clear_prefix(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 208 | pub async fn set_many(&mut self, pairs: &[(&str, &str)], ttl_seconds: u64) -> Result<()> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 239 | pub async fn increment(&mut self, key: &str, by: i64) -> Result { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 252 | pub async fn get_many(&mut self, keys: &[&str]) -> Result>> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 271 | pub async fn flush_db(&mut self) -> Result<()> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 282 | pub fn get_connection(&self) -> MultiplexedConnection { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CacheManagerFactory` is never constructed [INFO] [stdout] --> src/cache/redis_cache_manager.rs:288:12 [INFO] [stdout] | [INFO] [stdout] 288 | pub struct CacheManagerFactory; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `create_redis` and `create_redis_resp3` are never used [INFO] [stdout] --> src/cache/redis_cache_manager.rs:292:18 [INFO] [stdout] | [INFO] [stdout] 290 | impl CacheManagerFactory { [INFO] [stdout] | ------------------------ associated functions in this implementation [INFO] [stdout] 291 | /// Create a new Redis cache manager [INFO] [stdout] 292 | pub async fn create_redis( [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 309 | pub async fn create_redis_resp3( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `nodes`, `prefix`, `response_timeout`, and `read_from_replicas` are never read [INFO] [stdout] --> src/cache/redis_cluster_cache_manager.rs:13:9 [INFO] [stdout] | [INFO] [stdout] 11 | pub struct RedisClusterCacheConfig { [INFO] [stdout] | ----------------------- fields in this struct [INFO] [stdout] 12 | /// Redis cluster nodes (array of "host:port" strings) [INFO] [stdout] 13 | pub nodes: Vec, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 14 | /// Key prefix [INFO] [stdout] 15 | pub prefix: String, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 16 | /// Response timeout [INFO] [stdout] 17 | pub response_timeout: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 18 | /// Read from replicas (if supported) [INFO] [stdout] 19 | pub read_from_replicas: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `RedisClusterCacheConfig` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `new` and `with_nodes` are never used [INFO] [stdout] --> src/cache/redis_cluster_cache_manager.rs:45:18 [INFO] [stdout] | [INFO] [stdout] 43 | impl RedisClusterCacheManager { [INFO] [stdout] | ----------------------------- associated functions in this implementation [INFO] [stdout] 44 | /// Creates a new Redis Cluster cache manager with configuration [INFO] [stdout] 45 | pub async fn new(config: RedisClusterCacheConfig) -> Result { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 78 | pub async fn with_nodes(nodes: Vec, prefix: Option<&str>) -> Result { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/cache/redis_cluster_cache_manager.rs:177:18 [INFO] [stdout] | [INFO] [stdout] 175 | impl RedisClusterCacheManager { [INFO] [stdout] | ----------------------------- methods in this implementation [INFO] [stdout] 176 | /// Delete a key from the cache [INFO] [stdout] 177 | pub async fn delete(&mut self, key: &str) -> Result { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 187 | pub async fn clear_prefix(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 219 | pub async fn set_many(&mut self, pairs: &[(&str, &str)], ttl_seconds: u64) -> Result<()> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 249 | pub async fn increment(&mut self, key: &str, by: i64) -> Result { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 261 | pub async fn get_many(&mut self, keys: &[&str]) -> Result>> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 281 | pub fn get_client(&self) -> ClusterClient { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 286 | pub async fn get_connection(&self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 293 | pub async fn get_cluster_info(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 304 | pub async fn get_cluster_nodes(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ClusterCacheManagerFactory` is never constructed [INFO] [stdout] --> src/cache/redis_cluster_cache_manager.rs:316:12 [INFO] [stdout] | [INFO] [stdout] 316 | pub struct ClusterCacheManagerFactory; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `create_redis_cluster` is never used [INFO] [stdout] --> src/cache/redis_cluster_cache_manager.rs:320:18 [INFO] [stdout] | [INFO] [stdout] 318 | impl ClusterCacheManagerFactory { [INFO] [stdout] | ------------------------------- associated function in this implementation [INFO] [stdout] 319 | /// Create a new Redis Cluster cache manager [INFO] [stdout] 320 | pub async fn create_redis_cluster( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `PresenceData` is never constructed [INFO] [stdout] --> src/channel/manager.rs:17:8 [INFO] [stdout] | [INFO] [stdout] 17 | struct PresenceData { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple variants are never constructed [INFO] [stdout] --> src/error/mod.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 4 | pub enum Error { [INFO] [stdout] | ----- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 7 | SSLRequired, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 10 | ApplicationNotFound, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 13 | ApplicationDisabled, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 16 | OverConnectionQuota, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 19 | PathNotFound, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 22 | InvalidVersionFormat, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 25 | UnsupportedProtocolVersion(String), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 28 | NoProtocolVersion, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 31 | Unauthorized, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 35 | OverCapacity, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 39 | ReconnectImmediately, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 42 | PongNotReceived, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 45 | InactivityTimeout, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 49 | ClientEventRateLimit, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 52 | WatchlistLimitExceeded, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 62 | ChannelExists, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 65 | ChannelNotFound, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 72 | InvalidSignature, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 75 | InvalidKey, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 82 | ConnectionExists, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 89 | ProtocolError(String), [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 127 | BroadcastError(String), [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 136 | RequestTimeout, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 142 | HorizontalAdapterError(String), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Error` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `is_fatal` and `should_reconnect` are never used [INFO] [stdout] --> src/error/mod.rs:199:12 [INFO] [stdout] | [INFO] [stdout] 155 | impl Error { [INFO] [stdout] | ---------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 199 | pub fn is_fatal(&self) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 214 | pub fn should_reconnect(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `auth_key`, `auth_timestamp`, `auth_version`, `body_md5`, and `auth_signature` are never read [INFO] [stdout] --> src/http_handler.rs:62:9 [INFO] [stdout] | [INFO] [stdout] 60 | pub struct EventQuery { [INFO] [stdout] | ---------- fields in this struct [INFO] [stdout] 61 | #[serde(default)] [INFO] [stdout] 62 | pub auth_key: String, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 63 | #[serde(default)] [INFO] [stdout] 64 | pub auth_timestamp: String, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 65 | #[serde(default)] [INFO] [stdout] 66 | pub auth_version: String, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 67 | #[serde(default)] [INFO] [stdout] 68 | pub body_md5: String, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 69 | #[serde(default)] [INFO] [stdout] 70 | pub auth_signature: String, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `EventQuery` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `init`, `mark_horizontal_adapter_request_received`, `get_metrics_as_json`, and `clear` are never used [INFO] [stdout] --> src/metrics/mod.rs:17:14 [INFO] [stdout] | [INFO] [stdout] 15 | pub trait MetricsInterface: Send + Sync { [INFO] [stdout] | ---------------- methods in this trait [INFO] [stdout] 16 | /// Initialize the metrics driver [INFO] [stdout] 17 | async fn init(&self) -> crate::error::Result<()>; [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 49 | fn mark_horizontal_adapter_request_received(&self, app_id: &str); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 58 | async fn get_metrics_as_json(&self) -> Value; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 61 | async fn clear(&self); [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `MetricsFactory` is never constructed [INFO] [stdout] --> src/metrics/mod.rs:65:12 [INFO] [stdout] | [INFO] [stdout] 65 | pub struct MetricsFactory; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `create` is never used [INFO] [stdout] --> src/metrics/mod.rs:69:18 [INFO] [stdout] | [INFO] [stdout] 67 | impl MetricsFactory { [INFO] [stdout] | ------------------- associated function in this implementation [INFO] [stdout] 68 | /// Create a new metrics driver based on the specified driver type [INFO] [stdout] 69 | pub async fn create( [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `prefix` is never read [INFO] [stdout] --> src/metrics/prometheus.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 17 | pub struct PrometheusMetricsDriver { [INFO] [stdout] | ----------------------- field in this struct [INFO] [stdout] 18 | prefix: String, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `get_connection_from_channel`, `send_message`, `broadcast`, and `get_channel_subscribers` are never used [INFO] [stdout] --> src/namespace.rs:148:12 [INFO] [stdout] | [INFO] [stdout] 35 | impl Namespace { [INFO] [stdout] | -------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 148 | pub fn get_connection_from_channel( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 164 | pub async fn send_message(&self, socket_id: &SocketId, message: PusherMessage) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 195 | pub async fn broadcast( [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 535 | pub fn get_channel_subscribers(&self, channel: &str) -> Option> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `PROTOCOL_VERSION` is never used [INFO] [stdout] --> src/protocol/constants.rs:1:11 [INFO] [stdout] | [INFO] [stdout] 1 | pub const PROTOCOL_VERSION: u8 = 7; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `ACTIVITY_TIMEOUT` is never used [INFO] [stdout] --> src/protocol/constants.rs:2:11 [INFO] [stdout] | [INFO] [stdout] 2 | pub const ACTIVITY_TIMEOUT: u32 = 120; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `PONG_TIMEOUT` is never used [INFO] [stdout] --> src/protocol/constants.rs:3:11 [INFO] [stdout] | [INFO] [stdout] 3 | pub const PONG_TIMEOUT: u32 = 30; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `CHANNEL_NAME_MAX_LENGTH` is never used [INFO] [stdout] --> src/protocol/constants.rs:5:11 [INFO] [stdout] | [INFO] [stdout] 5 | pub const CHANNEL_NAME_MAX_LENGTH: usize = 200; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `CHANNEL_NAME_REGEX` is never used [INFO] [stdout] --> src/protocol/constants.rs:6:11 [INFO] [stdout] | [INFO] [stdout] 6 | pub const CHANNEL_NAME_REGEX: &str = r"^[a-zA-Z0-9_\-=@,.;]+$"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `EVENT_NAME_MAX_LENGTH` is never used [INFO] [stdout] --> src/protocol/constants.rs:8:11 [INFO] [stdout] | [INFO] [stdout] 8 | pub const EVENT_NAME_MAX_LENGTH: usize = 200; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `CLIENT_EVENT_PREFIX` is never used [INFO] [stdout] --> src/protocol/constants.rs:9:11 [INFO] [stdout] | [INFO] [stdout] 9 | pub const CLIENT_EVENT_PREFIX: &str = "client-"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `as_string`, `into_string`, and `as_value` are never used [INFO] [stdout] --> src/protocol/messages.rs:81:12 [INFO] [stdout] | [INFO] [stdout] 80 | impl MessageData { [INFO] [stdout] | ---------------- methods in this implementation [INFO] [stdout] 81 | pub fn as_string(&self) -> Option<&str> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 88 | pub fn into_string(self) -> Option { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 95 | pub fn as_value(&self) -> Option<&Value> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `channel_event`, `pong`, `user_list`, `batch_response`, and `success_response` are never used [INFO] [stdout] --> src/protocol/messages.rs:154:12 [INFO] [stdout] | [INFO] [stdout] 115 | impl PusherMessage { [INFO] [stdout] | ------------------ associated functions in this implementation [INFO] [stdout] ... [INFO] [stdout] 154 | pub fn channel_event>(event: S, channel: S, data: Value) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 187 | pub fn pong() -> Self { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 228 | pub fn user_list(user_ids: Vec) -> Value { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 237 | pub fn batch_response(batch_info: Vec) -> Value { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 242 | pub fn success_response() -> Value { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `identifier` is never read [INFO] [stdout] --> src/rate_limiter/mod.rs:18:9 [INFO] [stdout] | [INFO] [stdout] 12 | pub struct RateLimitConfig { [INFO] [stdout] | --------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 18 | pub identifier: Option, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `RateLimitConfig` 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: methods `reset` and `get_remaining` are never used [INFO] [stdout] --> src/rate_limiter/mod.rs:55:14 [INFO] [stdout] | [INFO] [stdout] 46 | pub trait RateLimiter: Send + Sync { [INFO] [stdout] | ----------- methods in this trait [INFO] [stdout] ... [INFO] [stdout] 55 | async fn reset(&self, key: &str) -> Result<()>; [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 58 | async fn get_remaining(&self, key: &str) -> Result; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `create_rate_limiter` is never used [INFO] [stdout] --> src/rate_limiter/mod.rs:62:14 [INFO] [stdout] | [INFO] [stdout] 62 | pub async fn create_rate_limiter( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `new` and `with_config` are never used [INFO] [stdout] --> src/rate_limiter/memory_limiter.rs:35:12 [INFO] [stdout] | [INFO] [stdout] 33 | impl MemoryRateLimiter { [INFO] [stdout] | ---------------------- associated functions in this implementation [INFO] [stdout] 34 | /// Create a new memory-based rate limiter [INFO] [stdout] 35 | pub fn new(max_requests: u32, window_secs: u64) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 84 | pub fn with_config(config: RateLimitConfig) -> Self { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `InvalidHeaderName` is never constructed [INFO] [stdout] --> src/rate_limiter/middleware.rs:27:5 [INFO] [stdout] | [INFO] [stdout] 26 | pub enum RateLimitMiddlewareError { [INFO] [stdout] | ------------------------ variant in this enum [INFO] [stdout] 27 | InvalidHeaderName(String), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `RateLimitMiddlewareError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `new` and `with_options` are never used [INFO] [stdout] --> src/rate_limiter/middleware.rs:84:12 [INFO] [stdout] | [INFO] [stdout] 79 | / impl RateLimitLayer [INFO] [stdout] 80 | | where [INFO] [stdout] 81 | | K: KeyExtractor + Clone + Send + Sync + 'static, [INFO] [stdout] | |____________________________________________________- associated functions in this implementation [INFO] [stdout] ... [INFO] [stdout] 84 | pub fn new(limiter: Arc, key_extractor: K) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 93 | pub fn with_options( [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `trusting` is never used [INFO] [stdout] --> src/rate_limiter/middleware.rs:271:12 [INFO] [stdout] | [INFO] [stdout] 264 | impl IpKeyExtractor { [INFO] [stdout] | ------------------- associated function in this implementation [INFO] [stdout] ... [INFO] [stdout] 271 | pub fn trusting(hops: usize) -> Self { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/rate_limiter/middleware.rs:348:12 [INFO] [stdout] | [INFO] [stdout] 345 | impl HeaderKeyExtractor { [INFO] [stdout] | ----------------------- associated function in this implementation [INFO] [stdout] ... [INFO] [stdout] 348 | pub fn new(header_name: &str) -> Result { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/rate_limiter/middleware.rs:398:12 [INFO] [stdout] | [INFO] [stdout] 393 | / impl FnKeyExtractor [INFO] [stdout] 394 | | where [INFO] [stdout] 395 | | F: Fn(&Request) -> String + Send + Sync + Clone + 'static, // Added Clone bound [INFO] [stdout] | |____________________________________________________________________- associated function in this implementation [INFO] [stdout] ... [INFO] [stdout] 398 | pub fn new(extractor: F) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `with_ip_limiter` is never used [INFO] [stdout] --> src/rate_limiter/middleware.rs:496:8 [INFO] [stdout] | [INFO] [stdout] 496 | pub fn with_ip_limiter( [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `with_ip_limiter_trusting` is never used [INFO] [stdout] --> src/rate_limiter/middleware.rs:504:8 [INFO] [stdout] | [INFO] [stdout] 504 | pub fn with_ip_limiter_trusting( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `with_header_limiter` is never used [INFO] [stdout] --> src/rate_limiter/middleware.rs:513:8 [INFO] [stdout] | [INFO] [stdout] 513 | pub fn with_header_limiter( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `with_path_limiter` is never used [INFO] [stdout] --> src/rate_limiter/middleware.rs:523:8 [INFO] [stdout] | [INFO] [stdout] 523 | pub fn with_path_limiter( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `with_fn_limiter` is never used [INFO] [stdout] --> src/rate_limiter/middleware.rs:531:8 [INFO] [stdout] | [INFO] [stdout] 531 | pub fn with_fn_limiter( [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `client` is never read [INFO] [stdout] --> src/rate_limiter/redis_limiter.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 9 | pub struct RedisRateLimiter { [INFO] [stdout] | ---------------- field in this struct [INFO] [stdout] 10 | /// Redis client [INFO] [stdout] 11 | client: Client, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `new` and `with_config` are never used [INFO] [stdout] --> src/rate_limiter/redis_limiter.rs:22:18 [INFO] [stdout] | [INFO] [stdout] 20 | impl RedisRateLimiter { [INFO] [stdout] | --------------------- associated functions in this implementation [INFO] [stdout] 21 | /// Create a new Redis-based rate limiter [INFO] [stdout] 22 | pub async fn new( [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 48 | pub async fn with_config( [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `key` is never read [INFO] [stdout] --> src/token.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 20 | pub struct Token { [INFO] [stdout] | ----- field in this struct [INFO] [stdout] 21 | key: String, [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `config` is never read [INFO] [stdout] --> src/webhook/integration.rs:59:5 [INFO] [stdout] | [INFO] [stdout] 57 | pub struct WebhookIntegration { [INFO] [stdout] | ------------------ field in this struct [INFO] [stdout] 58 | sender: Option>, [INFO] [stdout] 59 | config: WebhookConfig, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `is_enabled` is never used [INFO] [stdout] --> src/webhook/integration.rs:111:12 [INFO] [stdout] | [INFO] [stdout] 62 | impl WebhookIntegration { [INFO] [stdout] | ----------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 111 | pub fn is_enabled(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `process_id`, `batching_enabled`, and `batching_duration` are never read [INFO] [stdout] --> src/webhook/sender.rs:33:9 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct WebhookSenderConfig { [INFO] [stdout] | ------------------- fields in this struct [INFO] [stdout] 33 | pub process_id: String, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 34 | pub debug: bool, [INFO] [stdout] 35 | pub batching_enabled: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 36 | pub batching_duration: u64, // milliseconds [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `WebhookSenderConfig` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `batch` and `batch_leaders` are never read [INFO] [stdout] --> src/webhook/sender.rs:62:5 [INFO] [stdout] | [INFO] [stdout] 60 | pub struct WebhookSender { [INFO] [stdout] | ------------- fields in this struct [INFO] [stdout] 61 | queue_manager: Arc, // Use dyn trait object [INFO] [stdout] 62 | batch: Arc>>>, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 63 | batch_leaders: Arc>>, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `send_webhook_by_batching` is never used [INFO] [stdout] --> src/webhook/sender.rs:517:14 [INFO] [stdout] | [INFO] [stdout] 70 | impl WebhookSender { [INFO] [stdout] | ------------------ method in this implementation [INFO] [stdout] ... [INFO] [stdout] 517 | async fn send_webhook_by_batching( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `webhooks` is never used [INFO] [stdout] --> src/webhook/types.rs:217:12 [INFO] [stdout] | [INFO] [stdout] 216 | impl App { [INFO] [stdout] | -------- method in this implementation [INFO] [stdout] 217 | pub fn webhooks(&self) -> Option<&Vec> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `is_presence`, `is_subscribed`, `add_subscription`, and `remove_subscription` are never used [INFO] [stdout] --> src/websocket.rs:107:12 [INFO] [stdout] | [INFO] [stdout] 94 | impl ConnectionState { [INFO] [stdout] | -------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 107 | pub fn is_presence(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 111 | pub fn is_subscribed(&self, channel: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 115 | pub fn add_subscription(&mut self, channel: String) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 119 | pub fn remove_subscription(&mut self, channel: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `protocol`, `client`, and `version` are never read [INFO] [stdout] --> src/ws_handler.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 10 | pub struct ConnectionQuery { [INFO] [stdout] | --------------- fields in this struct [INFO] [stdout] 11 | protocol: Option, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 12 | client: Option, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 13 | version: Option, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ConnectionQuery` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `JobProcessorFn` is never used [INFO] [stdout] --> src/queue/mod.rs:19:6 [INFO] [stdout] | [INFO] [stdout] 19 | type JobProcessorFn = Box Result<()> + Send + Sync + 'static>; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `disconnect` is never used [INFO] [stdout] --> src/queue/mod.rs:30:14 [INFO] [stdout] | [INFO] [stdout] 26 | pub trait QueueInterface: Send + Sync { [INFO] [stdout] | -------------- method in this trait [INFO] [stdout] ... [INFO] [stdout] 30 | async fn disconnect(&self) -> crate::error::Result<()>; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `disconnect` is never used [INFO] [stdout] --> src/queue/manager.rs:73:18 [INFO] [stdout] | [INFO] [stdout] 56 | impl QueueManager { [INFO] [stdout] | ----------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 73 | pub async fn disconnect(&self) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `start_processing` is never used [INFO] [stdout] --> src/queue/redis_queue_manager.rs:46:12 [INFO] [stdout] | [INFO] [stdout] 22 | impl RedisQueueManager { [INFO] [stdout] | ---------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 46 | pub fn start_processing(&self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/queue/sqs_queue_manager.rs:32:18 [INFO] [stdout] | [INFO] [stdout] 30 | impl SqsQueueManager { [INFO] [stdout] | -------------------- associated function in this implementation [INFO] [stdout] 31 | /// Create a new SQS queue manager [INFO] [stdout] 32 | pub async fn new(config: SqsQueueConfig) -> Result { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/adapter/handler.rs:826:9 [INFO] [stdout] | [INFO] [stdout] 826 | / self.connection_manager [INFO] [stdout] 827 | | .lock() [INFO] [stdout] 828 | | .await [INFO] [stdout] 829 | | .send(channel_name, message.clone(), Some(socket_id), app_id) [INFO] [stdout] 830 | | .await; [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)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 826 | let _ = self.connection_manager [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/adapter/handler.rs:835:13 [INFO] [stdout] | [INFO] [stdout] 835 | ... self.webhook_integration.clone().unwrap().send_client_event(&app.unwrap(), channel_name, message.event.unwrap().as_str(), value, Some(socket_id.as_ref()), Some(&*user_id)).await; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 835 | let _ = self.webhook_integration.clone().unwrap().send_client_event(&app.unwrap(), channel_name, message.event.unwrap().as_str(), value, Some(socket_id.as_ref()), Some(&*user_id)).await; [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 4m 34s [INFO] running `Command { std: "docker" "inspect" "69277ae19e1d8d2e3c34997bdfe03c0a4de109139fc68979cbb4ce4f85095343", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "69277ae19e1d8d2e3c34997bdfe03c0a4de109139fc68979cbb4ce4f85095343", kill_on_drop: false }` [INFO] [stdout] 69277ae19e1d8d2e3c34997bdfe03c0a4de109139fc68979cbb4ce4f85095343