[INFO] fetching crate clamber-web-core 0.1.3... [INFO] linting clamber-web-core-0.1.3 against nightly for clippy-nonminimal_bool-denied [INFO] extracting crate clamber-web-core 0.1.3 into /workspace/builds/worker-0-tc1/source [INFO] started tweaking crates.io crate clamber-web-core 0.1.3 [INFO] removed 0 missing examples [INFO] finished tweaking crates.io crate clamber-web-core 0.1.3 [INFO] tweaked toml for crates.io crate clamber-web-core 0.1.3 written to /workspace/builds/worker-0-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate clamber-web-core 0.1.3 on toolchain nightly [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate clamber-web-core 0.1.3 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" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded pingora-timeout v0.6.0 [INFO] [stderr] Downloaded pingora v0.6.0 [INFO] [stderr] Downloaded sea-orm-macros v1.1.15 [INFO] [stderr] Downloaded inherent v1.0.12 [INFO] [stderr] Downloaded pingora-openssl v0.6.0 [INFO] [stderr] Downloaded backon v1.5.2 [INFO] [stderr] Downloaded hostname v0.4.1 [INFO] [stderr] Downloaded lru v0.14.0 [INFO] [stderr] Downloaded neli-proc-macros v0.1.4 [INFO] [stderr] Downloaded daemonize v0.5.0 [INFO] [stderr] Downloaded twitter_snowflake v1.0.2 [INFO] [stderr] Downloaded tokio-tungstenite v0.26.2 [INFO] [stderr] Downloaded jwt v0.16.0 [INFO] [stderr] Downloaded clamber-core v0.1.6 [INFO] [stderr] Downloaded tungstenite v0.26.2 [INFO] [stderr] Downloaded cf-rustracing-jaeger v1.2.2 [INFO] [stderr] Downloaded pingora-proxy v0.6.0 [INFO] [stderr] Downloaded pingora-cache v0.6.0 [INFO] [stderr] Downloaded axum-extra v0.10.1 [INFO] [stderr] Downloaded yaml-rust2 v0.10.3 [INFO] [stderr] Downloaded brotli-decompressor v2.5.1 [INFO] [stderr] Downloaded config v0.15.15 [INFO] [stderr] Downloaded pingora-core v0.6.0 [INFO] [stderr] Downloaded rdkafka v0.36.2 [INFO] [stderr] Downloaded pingora-ketama v0.6.0 [INFO] [stderr] Downloaded pingora-load-balancing v0.6.0 [INFO] [stderr] Downloaded neli v0.6.5 [INFO] [stderr] Downloaded local-ip-address v0.6.5 [INFO] [stderr] Downloaded redis v0.32.5 [INFO] [stderr] Downloaded pingora-lru v0.6.0 [INFO] [stderr] Downloaded pingora-runtime v0.6.0 [INFO] [stderr] Downloaded sfv v0.10.4 [INFO] [stderr] Downloaded cf-rustracing v1.1.0 [INFO] [stderr] Downloaded thrift_codec v0.3.2 [INFO] [stderr] Downloaded trackable_derive v1.0.0 [INFO] [stderr] Downloaded libz-ng-sys v1.1.22 [INFO] [stderr] Downloaded trackable v1.3.0 [INFO] [stderr] Downloaded pingora-pool v0.6.0 [INFO] [stderr] Downloaded pingora-header-serde v0.6.0 [INFO] [stderr] Downloaded tokio-openssl v0.6.5 [INFO] [stderr] Downloaded pingora-error v0.6.0 [INFO] [stderr] Downloaded pingora-http v0.6.0 [INFO] [stderr] Downloaded brotli v3.5.0 [INFO] [stderr] Downloaded sea-orm v1.1.15 [INFO] [stderr] Downloaded rdkafka-sys v4.9.0+2.10.0 [INFO] [stderr] Downloaded openssl-src v300.5.2+3.5.2 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] c01818fc997e3864f039941c811715ccf4d42bfd13f6cfd0fd8896e4fd0d355e [INFO] running `Command { std: "docker" "start" "-a" "c01818fc997e3864f039941c811715ccf4d42bfd13f6cfd0fd8896e4fd0d355e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "c01818fc997e3864f039941c811715ccf4d42bfd13f6cfd0fd8896e4fd0d355e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "c01818fc997e3864f039941c811715ccf4d42bfd13f6cfd0fd8896e4fd0d355e", kill_on_drop: false }` [INFO] [stdout] c01818fc997e3864f039941c811715ccf4d42bfd13f6cfd0fd8896e4fd0d355e [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 0492601433c7bc4d65b47538fba72588db98337cc100bcd0d4df0100df95795f [INFO] running `Command { std: "docker" "start" "-a" "0492601433c7bc4d65b47538fba72588db98337cc100bcd0d4df0100df95795f", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.175 [INFO] [stderr] Compiling serde v1.0.219 [INFO] [stderr] Compiling find-msvc-tools v0.1.0 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling thiserror v2.0.16 [INFO] [stderr] Compiling syn v2.0.106 [INFO] [stderr] Checking socket2 v0.6.0 [INFO] [stderr] Checking mio v1.0.4 [INFO] [stderr] Checking getrandom v0.2.16 [INFO] [stderr] Checking generic-array v0.14.7 [INFO] [stderr] Checking spin v0.9.8 [INFO] [stderr] Compiling syn v1.0.109 [INFO] [stderr] Checking indexmap v2.11.0 [INFO] [stderr] Compiling lock_api v0.4.13 [INFO] [stderr] Checking parking_lot_core v0.9.11 [INFO] [stderr] Compiling rust_decimal v1.37.2 [INFO] [stderr] Checking lazy_static v1.5.0 [INFO] [stderr] Compiling serde_json v1.0.143 [INFO] [stderr] Checking crossbeam-queue v0.3.12 [INFO] [stderr] Checking aho-corasick v1.1.3 [INFO] [stderr] Checking rand_chacha v0.9.0 [INFO] [stderr] Checking rustls-pki-types v1.12.0 [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Compiling openssl v0.10.73 [INFO] [stderr] Compiling zstd-safe v7.2.4 [INFO] [stderr] Checking parking_lot v0.12.4 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking rand v0.9.2 [INFO] [stderr] Checking der v0.7.10 [INFO] [stderr] Compiling proc-macro-error-attr v1.0.4 [INFO] [stderr] Compiling bigdecimal v0.4.8 [INFO] [stderr] Compiling tokio-openssl v0.6.5 [INFO] [stderr] Checking block-buffer v0.10.4 [INFO] [stderr] Checking crypto-common v0.1.6 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Checking alloc-no-stdlib v2.0.4 [INFO] [stderr] Compiling cfg-if v1.0.3 [INFO] [stderr] Checking digest v0.10.7 [INFO] [stderr] Compiling protobuf v2.28.0 [INFO] [stderr] Compiling prometheus v0.13.4 [INFO] [stderr] Checking os_str_bytes v6.6.1 [INFO] [stderr] Checking sha1 v0.10.6 [INFO] [stderr] Checking alloc-stdlib v0.2.2 [INFO] [stderr] Checking hmac v0.12.1 [INFO] [stderr] Checking sha2 v0.10.9 [INFO] [stderr] Checking pingora-error v0.6.0 [INFO] [stderr] Compiling either v1.15.0 [INFO] [stderr] Compiling rustls v0.23.31 [INFO] [stderr] Compiling num-bigint-dig v0.8.4 [INFO] [stderr] Checking clap_lex v0.2.4 [INFO] [stderr] Checking addr2line v0.24.2 [INFO] [stderr] Checking pingora-http v0.6.0 [INFO] [stderr] Checking brotli-decompressor v2.5.1 [INFO] [stderr] Checking yaml-rust v0.4.5 [INFO] [stderr] Checking webpki-roots v1.0.2 [INFO] [stderr] Checking spki v0.7.3 [INFO] [stderr] Checking memoffset v0.6.5 [INFO] [stderr] Checking num-integer v0.1.46 [INFO] [stderr] Checking object v0.36.7 [INFO] [stderr] Checking concurrent-queue v2.5.0 [INFO] [stderr] Checking pkcs8 v0.10.2 [INFO] [stderr] Checking lru v0.14.0 [INFO] [stderr] Compiling jobserver v0.1.34 [INFO] [stderr] Checking num-bigint v0.4.6 [INFO] [stderr] Checking num-iter v0.1.45 [INFO] [stderr] Checking atty v0.2.14 [INFO] [stderr] Checking encoding_rs v0.8.35 [INFO] [stderr] Checking rustc-demangle v0.1.26 [INFO] [stderr] Checking textwrap v0.16.2 [INFO] [stderr] Checking crc v3.3.0 [INFO] [stderr] Checking regex-automata v0.4.10 [INFO] [stderr] Checking event-listener v5.4.1 [INFO] [stderr] Compiling const-random-macro v0.1.16 [INFO] [stderr] Checking pkcs1 v0.7.5 [INFO] [stderr] Checking webpki-roots v0.26.11 [INFO] [stderr] Checking nix v0.24.3 [INFO] [stderr] Checking ahash v0.8.12 [INFO] [stderr] Compiling cc v1.2.35 [INFO] [stderr] Checking unicode-normalization v0.1.24 [INFO] [stderr] Checking signature v2.2.0 [INFO] [stderr] Checking blake2 v0.10.6 [INFO] [stderr] Checking const-random v0.1.18 [INFO] [stderr] Checking futures-intrusive v0.5.0 [INFO] [stderr] Checking brotli v3.5.0 [INFO] [stderr] Compiling toml_edit v0.22.27 [INFO] [stderr] Checking daemonize v0.5.0 [INFO] [stderr] Compiling proc-macro2-diagnostics v0.10.1 [INFO] [stderr] Checking unicode-properties v0.1.3 [INFO] [stderr] Checking dlv-list v0.5.2 [INFO] [stderr] Checking rmp v0.8.14 [INFO] [stderr] Checking atoi v2.0.0 [INFO] [stderr] Checking stringprep v0.1.5 [INFO] [stderr] Checking hkdf v0.12.4 [INFO] [stderr] Checking md-5 v0.10.6 [INFO] [stderr] Compiling proc-macro-error-attr2 v2.0.0 [INFO] [stderr] Checking hostname v0.4.1 [INFO] [stderr] Compiling multer v3.1.0 [INFO] [stderr] Compiling yansi v1.0.1 [INFO] [stderr] Checking whoami v1.6.1 [INFO] [stderr] Checking utf-8 v0.7.6 [INFO] [stderr] Checking toml_parser v1.0.2 [INFO] [stderr] Checking ordered-multimap v0.7.3 [INFO] [stderr] Checking pingora-lru v0.6.0 [INFO] [stderr] Checking ordered-float v4.6.0 [INFO] [stderr] Checking rsa v0.9.8 [INFO] [stderr] Checking sharded-slab v0.1.7 [INFO] [stderr] Compiling anyhow v1.0.99 [INFO] [stderr] Checking toml_writer v1.0.2 [INFO] [stderr] Checking rust-ini v0.21.3 [INFO] [stderr] Compiling openssl-src v300.5.2+3.5.2 [INFO] [stderr] Compiling cmake v0.1.54 [INFO] [stderr] Checking yaml-rust2 v0.10.3 [INFO] [stderr] Checking pingora-ketama v0.6.0 [INFO] [stderr] Checking password-hash v0.5.0 [INFO] [stderr] Checking aliasable v0.1.3 [INFO] [stderr] Checking fastrand v2.3.0 [INFO] [stderr] Checking backon v1.5.2 [INFO] [stderr] Compiling proc-macro-error v1.0.4 [INFO] [stderr] Compiling openssl-sys v0.9.109 [INFO] [stderr] Compiling zstd-sys v2.0.16+zstd.1.5.7 [INFO] [stderr] Compiling ring v0.17.14 [INFO] [stderr] Compiling libz-ng-sys v1.1.22 [INFO] [stderr] Compiling libz-sys v1.1.22 [INFO] [stderr] Compiling rdkafka-sys v4.9.0+2.10.0 [INFO] [stderr] Checking argon2 v0.5.3 [INFO] [stderr] Compiling proc-macro-crate v3.3.0 [INFO] [stderr] Checking backtrace v0.3.75 [INFO] [stderr] Checking regex v1.11.2 [INFO] [stderr] Checking matchers v0.2.0 [INFO] [stderr] Compiling trackable_derive v1.0.0 [INFO] [stderr] Compiling clap_derive v3.2.25 [INFO] [stderr] Compiling derivative v2.2.0 [INFO] [stderr] Checking trackable v1.3.0 [INFO] [stderr] Checking thrift_codec v0.3.2 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Compiling darling_core v0.20.11 [INFO] [stderr] Compiling proc-macro-error2 v2.0.1 [INFO] [stderr] Checking clap v3.2.25 [INFO] [stderr] Compiling serde_derive v1.0.219 [INFO] [stderr] Compiling tokio-macros v2.5.0 [INFO] [stderr] Compiling thiserror-impl v2.0.16 [INFO] [stderr] Compiling tracing-attributes v0.1.30 [INFO] [stderr] Compiling futures-macro v0.3.31 [INFO] [stderr] Compiling zerofrom-derive v0.1.6 [INFO] [stderr] Compiling yoke-derive v0.8.0 [INFO] [stderr] Compiling zerovec-derive v0.11.1 [INFO] [stderr] Checking tokio v1.47.1 [INFO] [stderr] Compiling displaydoc v0.2.5 [INFO] [stderr] Checking futures-util v0.3.31 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling async-stream-impl v0.3.6 [INFO] [stderr] Compiling async-trait v0.1.89 [INFO] [stderr] Checking tracing v0.1.41 [INFO] [stderr] Compiling openssl-macros v0.1.1 [INFO] [stderr] Checking zerofrom v0.1.6 [INFO] [stderr] Compiling strum_macros v0.26.4 [INFO] [stderr] Compiling pest v2.8.1 [INFO] [stderr] Checking yoke v0.8.0 [INFO] [stderr] Checking async-stream v0.3.6 [INFO] [stderr] Checking rustls-webpki v0.103.4 [INFO] [stderr] Checking tungstenite v0.26.2 [INFO] [stderr] Checking zerovec v0.11.4 [INFO] [stderr] Checking zerotrie v0.2.2 [INFO] [stderr] Checking zstd v0.13.3 [INFO] [stderr] Compiling pest_meta v2.8.1 [INFO] [stderr] Compiling num_enum_derive v0.7.4 [INFO] [stderr] Compiling darling_macro v0.20.11 [INFO] [stderr] Checking thiserror v1.0.69 [INFO] [stderr] Checking pingora-header-serde v0.6.0 [INFO] [stderr] Compiling darling v0.20.11 [INFO] [stderr] Compiling inherent v1.0.12 [INFO] [stderr] Compiling derive_builder_core v0.20.2 [INFO] [stderr] Checking axum-core v0.5.2 [INFO] [stderr] Compiling pest_generator v2.8.1 [INFO] [stderr] Compiling sea-bae v0.2.1 [INFO] [stderr] Checking tinystr v0.8.1 [INFO] [stderr] Checking icu_locale_core v2.0.0 [INFO] [stderr] Checking potential_utf v0.1.3 [INFO] [stderr] Checking icu_collections v2.0.0 [INFO] [stderr] Checking strum v0.26.3 [INFO] [stderr] Checking num_enum v0.7.4 [INFO] [stderr] Compiling ouroboros_macro v0.18.5 [INFO] [stderr] Compiling axum-macros v0.5.0 [INFO] [stderr] Compiling sea-orm-macros v1.1.15 [INFO] [stderr] Compiling derive_builder_macro v0.20.2 [INFO] [stderr] Checking icu_provider v2.0.0 [INFO] [stderr] Compiling pest_derive v2.8.1 [INFO] [stderr] Checking derive_builder v0.20.2 [INFO] [stderr] Checking icu_normalizer v2.0.0 [INFO] [stderr] Checking icu_properties v2.0.1 [INFO] [stderr] Checking twitter_snowflake v1.0.2 [INFO] [stderr] Checking tokio-util v0.7.16 [INFO] [stderr] Checking tokio-stream v0.1.17 [INFO] [stderr] Checking pingora-timeout v0.6.0 [INFO] [stderr] Checking pingora-pool v0.6.0 [INFO] [stderr] Checking pingora-runtime v0.6.0 [INFO] [stderr] Checking cf-rustracing v1.1.0 [INFO] [stderr] Checking tokio-test v0.4.4 [INFO] [stderr] Checking futures-executor v0.3.31 [INFO] [stderr] Checking h2 v0.4.12 [INFO] [stderr] Checking futures v0.3.31 [INFO] [stderr] Checking tokio-tungstenite v0.26.2 [INFO] [stderr] Checking tower v0.5.2 [INFO] [stderr] Checking combine v4.6.7 [INFO] [stderr] Checking idna_adapter v1.2.1 [INFO] [stderr] Checking idna v1.1.0 [INFO] [stderr] Checking ouroboros v0.18.5 [INFO] [stderr] Checking bitflags v2.9.4 [INFO] [stderr] Checking chrono v0.4.41 [INFO] [stderr] Checking deranged v0.5.3 [INFO] [stderr] Checking url v2.5.7 [INFO] [stderr] Checking uuid v1.18.1 [INFO] [stderr] Checking serde_yaml v0.8.26 [INFO] [stderr] Checking rmp-serde v1.3.0 [INFO] [stderr] Checking toml_datetime v0.7.0 [INFO] [stderr] Checking sfv v0.10.4 [INFO] [stderr] Checking serde_spanned v1.0.0 [INFO] [stderr] Checking erased-serde v0.4.6 [INFO] [stderr] Checking ron v0.8.1 [INFO] [stderr] Checking toml v0.9.5 [INFO] [stderr] Checking json5 v0.4.1 [INFO] [stderr] Checking serde_urlencoded v0.7.1 [INFO] [stderr] Checking serde_path_to_error v0.1.17 [INFO] [stderr] Checking jwt v0.16.0 [INFO] [stderr] Checking serde_yaml v0.9.34+deprecated [INFO] [stderr] Checking serde-untagged v0.1.8 [INFO] [stderr] Checking tracing-subscriber v0.3.20 [INFO] [stderr] Checking tower-http v0.6.6 [INFO] [stderr] Checking config v0.15.15 [INFO] [stderr] Compiling neli-proc-macros v0.1.4 [INFO] [stderr] Checking time v0.3.43 [INFO] [stderr] Checking neli v0.6.5 [INFO] [stderr] Checking flate2 v1.1.2 [INFO] [stderr] Checking hyper v1.7.0 [INFO] [stderr] Checking local-ip-address v0.6.5 [INFO] [stderr] Checking cf-rustracing-jaeger v1.2.2 [INFO] [stderr] Checking sqlx-core v0.8.6 [INFO] [stderr] Checking sea-query v0.32.7 [INFO] [stderr] Checking tracing-appender v0.2.3 [INFO] [stderr] Checking hyper-util v0.1.16 [INFO] [stderr] Checking clamber-core v0.1.6 [INFO] [stderr] Checking redis v0.32.5 [INFO] [stderr] Checking axum v0.8.4 [INFO] [stderr] Checking sqlx-mysql v0.8.6 [INFO] [stderr] Checking rdkafka v0.36.2 [INFO] [stderr] Checking sqlx v0.8.6 [INFO] [stderr] Checking sea-query-binder v0.7.0 [INFO] [stderr] Checking sea-orm v1.1.15 [INFO] [stderr] Checking axum-extra v0.10.1 [INFO] [stderr] Checking pingora-openssl v0.6.0 [INFO] [stderr] Checking pingora-core v0.6.0 [INFO] [stderr] Checking pingora-cache v0.6.0 [INFO] [stderr] Checking pingora-load-balancing v0.6.0 [INFO] [stderr] Checking pingora-proxy v0.6.0 [INFO] [stderr] Checking pingora v0.6.0 [INFO] [stderr] Checking clamber-web-core v0.1.3 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused imports: `ResponseHeader` and `StatusCode` [INFO] [stdout] --> src/proxy/enhanced_proxy_service.rs:9:36 [INFO] [stdout] | [INFO] [stdout] 9 | use pingora::http::{RequestHeader, ResponseHeader, StatusCode}; [INFO] [stdout] | ^^^^^^^^^^^^^^ ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded unit expression [INFO] [stdout] --> src/proxy/enhanced_proxy_service.rs:80:9 [INFO] [stdout] | [INFO] [stdout] 80 | () [INFO] [stdout] | ^^ help: remove the final `()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stdout] = note: `#[warn(clippy::unused_unit)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded unit expression [INFO] [stdout] --> src/proxy/proxy_service.rs:48:9 [INFO] [stdout] | [INFO] [stdout] 48 | () [INFO] [stdout] | ^^ help: remove the final `()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded unit expression [INFO] [stdout] --> src/proxy/simple_proxy_service.rs:65:9 [INFO] [stdout] | [INFO] [stdout] 65 | () [INFO] [stdout] | ^^ help: remove the final `()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ResponseHeader` and `StatusCode` [INFO] [stdout] --> src/proxy/enhanced_proxy_service.rs:9:36 [INFO] [stdout] | [INFO] [stdout] 9 | use pingora::http::{RequestHeader, ResponseHeader, StatusCode}; [INFO] [stdout] | ^^^^^^^^^^^^^^ ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded unit expression [INFO] [stdout] --> src/proxy/enhanced_proxy_service.rs:80:9 [INFO] [stdout] | [INFO] [stdout] 80 | () [INFO] [stdout] | ^^ help: remove the final `()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stdout] = note: `#[warn(clippy::unused_unit)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded unit expression [INFO] [stdout] --> src/proxy/proxy_service.rs:48:9 [INFO] [stdout] | [INFO] [stdout] 48 | () [INFO] [stdout] | ^^ help: remove the final `()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded unit expression [INFO] [stdout] --> src/proxy/simple_proxy_service.rs:65:9 [INFO] [stdout] | [INFO] [stdout] 65 | () [INFO] [stdout] | ^^ help: remove the final `()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `config` is never read [INFO] [stdout] --> src/kafka/kafka_consumer.rs:182:5 [INFO] [stdout] | [INFO] [stdout] 180 | pub struct AdvancedKafkaConsumer { [INFO] [stdout] | --------------------- field in this struct [INFO] [stdout] 181 | consumer: StreamConsumer, [INFO] [stdout] 182 | config: KafkaConsumerConfig, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `config` is never read [INFO] [stdout] --> src/kafka/kafka_consumer.rs:248:5 [INFO] [stdout] | [INFO] [stdout] 246 | pub struct ConsumerGroupManager { [INFO] [stdout] | -------------------- field in this struct [INFO] [stdout] 247 | consumers: Vec, [INFO] [stdout] 248 | config: KafkaConsumerConfig, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `static_services` is never read [INFO] [stdout] --> src/proxy/enhanced_proxy_service.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 17 | pub struct EnhancedProxyService { [INFO] [stdout] | -------------------- field in this struct [INFO] [stdout] 18 | config: Arc, [INFO] [stdout] 19 | static_services: HashMap, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `guess_content_type` is never used [INFO] [stdout] --> src/proxy/static_file_service.rs:70:8 [INFO] [stdout] | [INFO] [stdout] 15 | impl StaticFileService { [INFO] [stdout] | ---------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 70 | fn guess_content_type(&self, path: &Path) -> &'static str { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/database/database_connection.rs:24:22 [INFO] [stdout] | [INFO] [stdout] 24 | .map_err(|msg| DatabaseError::config(msg))?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `DatabaseError::config` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] = note: `#[warn(clippy::redundant_closure)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/database/database_connection.rs:128:5 [INFO] [stdout] | [INFO] [stdout] 128 | / if let Some(at_pos) = url.find('@') { [INFO] [stdout] 129 | | if let Some(colon_pos) = url[..at_pos].rfind(':') { [INFO] [stdout] 130 | | if let Some(slash_pos) = url[..colon_pos].rfind('/') { [INFO] [stdout] 131 | | let before = &url[..slash_pos + 1]; [INFO] [stdout] ... | [INFO] [stdout] 136 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 128 ~ if let Some(at_pos) = url.find('@') [INFO] [stdout] 129 ~ && let Some(colon_pos) = url[..at_pos].rfind(':') { [INFO] [stdout] 130 | if let Some(slash_pos) = url[..colon_pos].rfind('/') { [INFO] [stdout] ... [INFO] [stdout] 134 | } [INFO] [stdout] 135 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/database/database_connection.rs:129:9 [INFO] [stdout] | [INFO] [stdout] 129 | / if let Some(colon_pos) = url[..at_pos].rfind(':') { [INFO] [stdout] 130 | | if let Some(slash_pos) = url[..colon_pos].rfind('/') { [INFO] [stdout] 131 | | let before = &url[..slash_pos + 1]; [INFO] [stdout] 132 | | let after = &url[at_pos..]; [INFO] [stdout] ... | [INFO] [stdout] 135 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 129 ~ if let Some(colon_pos) = url[..at_pos].rfind(':') [INFO] [stdout] 130 ~ && let Some(slash_pos) = url[..colon_pos].rfind('/') { [INFO] [stdout] 131 | let before = &url[..slash_pos + 1]; [INFO] [stdout] 132 | let after = &url[at_pos..]; [INFO] [stdout] 133 | return format!("{}***:***{}", before, after); [INFO] [stdout] 134 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `config` is never read [INFO] [stdout] --> src/kafka/kafka_consumer.rs:182:5 [INFO] [stdout] | [INFO] [stdout] 180 | pub struct AdvancedKafkaConsumer { [INFO] [stdout] | --------------------- field in this struct [INFO] [stdout] 181 | consumer: StreamConsumer, [INFO] [stdout] 182 | config: KafkaConsumerConfig, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `config` is never read [INFO] [stdout] --> src/kafka/kafka_consumer.rs:248:5 [INFO] [stdout] | [INFO] [stdout] 246 | pub struct ConsumerGroupManager { [INFO] [stdout] | -------------------- field in this struct [INFO] [stdout] 247 | consumers: Vec, [INFO] [stdout] 248 | config: KafkaConsumerConfig, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `static_services` is never read [INFO] [stdout] --> src/proxy/enhanced_proxy_service.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 17 | pub struct EnhancedProxyService { [INFO] [stdout] | -------------------- field in this struct [INFO] [stdout] 18 | config: Arc, [INFO] [stdout] 19 | static_services: HashMap, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `guess_content_type` is never used [INFO] [stdout] --> src/proxy/static_file_service.rs:70:8 [INFO] [stdout] | [INFO] [stdout] 15 | impl StaticFileService { [INFO] [stdout] | ---------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 70 | fn guess_content_type(&self, path: &Path) -> &'static str { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/redis/redis_connection.rs:24:35 [INFO] [stdout] | [INFO] [stdout] 24 | config.validate().map_err(|msg| RedisError::config(msg))?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `RedisError::config` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field assignment outside of initializer for an instance created with Default::default() [INFO] [stdout] --> src/database/database_config.rs:154:9 [INFO] [stdout] | [INFO] [stdout] 154 | config.url = String::new(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: consider initializing the variable with `database::database_config::DatabaseConfig { url: String::new(), ..Default::default() }` and removing relevant reassignments [INFO] [stdout] --> src/database/database_config.rs:151:9 [INFO] [stdout] | [INFO] [stdout] 151 | let mut config = DatabaseConfig::default(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#field_reassign_with_default [INFO] [stdout] = note: `#[warn(clippy::field_reassign_with_default)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/database/database_connection.rs:24:22 [INFO] [stdout] | [INFO] [stdout] 24 | .map_err(|msg| DatabaseError::config(msg))?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `DatabaseError::config` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] = note: `#[warn(clippy::redundant_closure)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/redis/redis_connection.rs:220:5 [INFO] [stdout] | [INFO] [stdout] 220 | / if let Some(at_pos) = url.find('@') { [INFO] [stdout] 221 | | if let Some(colon_pos) = url[..at_pos].rfind(':') { [INFO] [stdout] 222 | | if let Some(slash_pos) = url[..colon_pos].rfind('/') { [INFO] [stdout] 223 | | let before = &url[..slash_pos + 1]; [INFO] [stdout] ... | [INFO] [stdout] 228 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 220 ~ if let Some(at_pos) = url.find('@') [INFO] [stdout] 221 ~ && let Some(colon_pos) = url[..at_pos].rfind(':') { [INFO] [stdout] 222 | if let Some(slash_pos) = url[..colon_pos].rfind('/') { [INFO] [stdout] ... [INFO] [stdout] 226 | } [INFO] [stdout] 227 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/redis/redis_connection.rs:221:9 [INFO] [stdout] | [INFO] [stdout] 221 | / if let Some(colon_pos) = url[..at_pos].rfind(':') { [INFO] [stdout] 222 | | if let Some(slash_pos) = url[..colon_pos].rfind('/') { [INFO] [stdout] 223 | | let before = &url[..slash_pos + 1]; [INFO] [stdout] 224 | | let after = &url[at_pos..]; [INFO] [stdout] ... | [INFO] [stdout] 227 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 221 ~ if let Some(colon_pos) = url[..at_pos].rfind(':') [INFO] [stdout] 222 ~ && let Some(slash_pos) = url[..colon_pos].rfind('/') { [INFO] [stdout] 223 | let before = &url[..slash_pos + 1]; [INFO] [stdout] 224 | let after = &url[at_pos..]; [INFO] [stdout] 225 | return format!("{}***:***{}", before, after); [INFO] [stdout] 226 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/database/database_connection.rs:128:5 [INFO] [stdout] | [INFO] [stdout] 128 | / if let Some(at_pos) = url.find('@') { [INFO] [stdout] 129 | | if let Some(colon_pos) = url[..at_pos].rfind(':') { [INFO] [stdout] 130 | | if let Some(slash_pos) = url[..colon_pos].rfind('/') { [INFO] [stdout] 131 | | let before = &url[..slash_pos + 1]; [INFO] [stdout] ... | [INFO] [stdout] 136 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 128 ~ if let Some(at_pos) = url.find('@') [INFO] [stdout] 129 ~ && let Some(colon_pos) = url[..at_pos].rfind(':') { [INFO] [stdout] 130 | if let Some(slash_pos) = url[..colon_pos].rfind('/') { [INFO] [stdout] ... [INFO] [stdout] 134 | } [INFO] [stdout] 135 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/database/database_connection.rs:129:9 [INFO] [stdout] | [INFO] [stdout] 129 | / if let Some(colon_pos) = url[..at_pos].rfind(':') { [INFO] [stdout] 130 | | if let Some(slash_pos) = url[..colon_pos].rfind('/') { [INFO] [stdout] 131 | | let before = &url[..slash_pos + 1]; [INFO] [stdout] 132 | | let after = &url[at_pos..]; [INFO] [stdout] ... | [INFO] [stdout] 135 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 129 ~ if let Some(colon_pos) = url[..at_pos].rfind(':') [INFO] [stdout] 130 ~ && let Some(slash_pos) = url[..colon_pos].rfind('/') { [INFO] [stdout] 131 | let before = &url[..slash_pos + 1]; [INFO] [stdout] 132 | let after = &url[at_pos..]; [INFO] [stdout] 133 | return format!("{}***:***{}", before, after); [INFO] [stdout] 134 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field assignment outside of initializer for an instance created with Default::default() [INFO] [stdout] --> src/database/database_connection.rs:169:9 [INFO] [stdout] | [INFO] [stdout] 169 | config.url = String::new(); // 无效的 URL [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: consider initializing the variable with `database::database_config::DatabaseConfig { url: String::new(), ..Default::default() }` and removing relevant reassignments [INFO] [stdout] --> src/database/database_connection.rs:168:9 [INFO] [stdout] | [INFO] [stdout] 168 | let mut config = DatabaseConfig::default(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#field_reassign_with_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field assignment outside of initializer for an instance created with Default::default() [INFO] [stdout] --> src/redis/redis_config.rs:119:9 [INFO] [stdout] | [INFO] [stdout] 119 | config.url = String::new(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: consider initializing the variable with `redis::redis_config::RedisConfig { url: String::new(), ..Default::default() }` and removing relevant reassignments [INFO] [stdout] --> src/redis/redis_config.rs:116:9 [INFO] [stdout] | [INFO] [stdout] 116 | let mut config = RedisConfig::default(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#field_reassign_with_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field assignment outside of initializer for an instance created with Default::default() [INFO] [stdout] --> src/redis/redis_config.rs:126:9 [INFO] [stdout] | [INFO] [stdout] 126 | config.url = "redis://localhost:6379".to_string(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: consider initializing the variable with `redis::redis_config::RedisConfig { url: "redis://localhost:6379".to_string(), ..Default::default() }` and removing relevant reassignments [INFO] [stdout] --> src/redis/redis_config.rs:125:9 [INFO] [stdout] | [INFO] [stdout] 125 | let mut config = RedisConfig::default(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#field_reassign_with_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/redis/redis_connection.rs:24:35 [INFO] [stdout] | [INFO] [stdout] 24 | config.validate().map_err(|msg| RedisError::config(msg))?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `RedisError::config` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/redis/redis_connection.rs:220:5 [INFO] [stdout] | [INFO] [stdout] 220 | / if let Some(at_pos) = url.find('@') { [INFO] [stdout] 221 | | if let Some(colon_pos) = url[..at_pos].rfind(':') { [INFO] [stdout] 222 | | if let Some(slash_pos) = url[..colon_pos].rfind('/') { [INFO] [stdout] 223 | | let before = &url[..slash_pos + 1]; [INFO] [stdout] ... | [INFO] [stdout] 228 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 220 ~ if let Some(at_pos) = url.find('@') [INFO] [stdout] 221 ~ && let Some(colon_pos) = url[..at_pos].rfind(':') { [INFO] [stdout] 222 | if let Some(slash_pos) = url[..colon_pos].rfind('/') { [INFO] [stdout] ... [INFO] [stdout] 226 | } [INFO] [stdout] 227 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/redis/redis_connection.rs:221:9 [INFO] [stdout] | [INFO] [stdout] 221 | / if let Some(colon_pos) = url[..at_pos].rfind(':') { [INFO] [stdout] 222 | | if let Some(slash_pos) = url[..colon_pos].rfind('/') { [INFO] [stdout] 223 | | let before = &url[..slash_pos + 1]; [INFO] [stdout] 224 | | let after = &url[at_pos..]; [INFO] [stdout] ... | [INFO] [stdout] 227 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 221 ~ if let Some(colon_pos) = url[..at_pos].rfind(':') [INFO] [stdout] 222 ~ && let Some(slash_pos) = url[..colon_pos].rfind('/') { [INFO] [stdout] 223 | let before = &url[..slash_pos + 1]; [INFO] [stdout] 224 | let after = &url[at_pos..]; [INFO] [stdout] 225 | return format!("{}***:***{}", before, after); [INFO] [stdout] 226 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/kafka/kafka_consumer.rs:223:13 [INFO] [stdout] | [INFO] [stdout] 223 | / if let Some(handler) = self.message_handlers.get(topic) { [INFO] [stdout] 224 | | if let Err(e) = handler(message.detach()) { [INFO] [stdout] 225 | | eprintln!("处理消息失败: {}", e); [INFO] [stdout] ... | [INFO] [stdout] 228 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 223 ~ if let Some(handler) = self.message_handlers.get(topic) [INFO] [stdout] 224 ~ && let Err(e) = handler(message.detach()) { [INFO] [stdout] 225 | eprintln!("处理消息失败: {}", e); [INFO] [stdout] 226 | // 可以选择继续处理或返回错误 [INFO] [stdout] 227 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field assignment outside of initializer for an instance created with Default::default() [INFO] [stdout] --> src/kafka/mod.rs:112:5 [INFO] [stdout] | [INFO] [stdout] 112 | config.group_id = group_id; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: consider initializing the variable with `kafka::kafka_config::KafkaConsumerConfig { group_id: group_id, ..Default::default() }` and removing relevant reassignments [INFO] [stdout] --> src/kafka/mod.rs:111:5 [INFO] [stdout] | [INFO] [stdout] 111 | let mut config = KafkaConsumerConfig::default(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#field_reassign_with_default [INFO] [stdout] = note: `#[warn(clippy::field_reassign_with_default)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/proxy/enhanced_proxy_service.rs:29:13 [INFO] [stdout] | [INFO] [stdout] 29 | / if let LocationType::Static = location.location_type { [INFO] [stdout] 30 | | if let Some(ref root) = location.root { [INFO] [stdout] 31 | | static_services.insert(location.path.clone(), StaticFileService::new(root)); [INFO] [stdout] 32 | | } [INFO] [stdout] 33 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 29 ~ if let LocationType::Static = location.location_type [INFO] [stdout] 30 ~ && let Some(ref root) = location.root { [INFO] [stdout] 31 | static_services.insert(location.path.clone(), StaticFileService::new(root)); [INFO] [stdout] 32 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> src/proxy/enhanced_proxy_service.rs:46:9 [INFO] [stdout] | [INFO] [stdout] 46 | locations.sort_by(|a, b| b.path.len().cmp(&a.path.len())); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] = note: `#[warn(clippy::unnecessary_sort_by)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 46 - locations.sort_by(|a, b| b.path.len().cmp(&a.path.len())); [INFO] [stdout] 46 + locations.sort_by_key(|b| std::cmp::Reverse(b.path.len())); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `Iterator::find` [INFO] [stdout] --> src/proxy/enhanced_proxy_service.rs:48:9 [INFO] [stdout] | [INFO] [stdout] 48 | / for location in locations { [INFO] [stdout] 49 | | if path.starts_with(&location.path) { [INFO] [stdout] 50 | | return Some(location); [INFO] [stdout] ... | [INFO] [stdout] 53 | | None [INFO] [stdout] | |____________^ help: replace with an iterator: `locations.into_iter().find(|&location| path.starts_with(&location.path)).map(|v| v as _)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_find [INFO] [stdout] = note: `#[warn(clippy::manual_find)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/proxy/enhanced_proxy_service.rs:146:21 [INFO] [stdout] | [INFO] [stdout] 146 | / if let Some(proxy_pass) = &location.proxy_pass { [INFO] [stdout] 147 | | if let Some(upstream_config) = self.get_upstream_config(proxy_pass) { [INFO] [stdout] 148 | | if let Some(server) = self.select_upstream_server(upstream_config) { [INFO] [stdout] ... | [INFO] [stdout] 167 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 146 ~ if let Some(proxy_pass) = &location.proxy_pass [INFO] [stdout] 147 ~ && let Some(upstream_config) = self.get_upstream_config(proxy_pass) { [INFO] [stdout] 148 | if let Some(server) = self.select_upstream_server(upstream_config) { [INFO] [stdout] ... [INFO] [stdout] 165 | } [INFO] [stdout] 166 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/proxy/enhanced_proxy_service.rs:147:25 [INFO] [stdout] | [INFO] [stdout] 147 | / if let Some(upstream_config) = self.get_upstream_config(proxy_pass) { [INFO] [stdout] 148 | | if let Some(server) = self.select_upstream_server(upstream_config) { [INFO] [stdout] 149 | | // 构建新的 URI [INFO] [stdout] 150 | | let new_path = if path.len() > location.path.len() { [INFO] [stdout] ... | [INFO] [stdout] 166 | | } [INFO] [stdout] | |_________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 147 ~ if let Some(upstream_config) = self.get_upstream_config(proxy_pass) [INFO] [stdout] 148 ~ && let Some(server) = self.select_upstream_server(upstream_config) { [INFO] [stdout] 149 | // 构建新的 URI [INFO] [stdout] ... [INFO] [stdout] 164 | println!("Would proxy to: {}", new_uri); [INFO] [stdout] 165 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> src/proxy/simple_proxy_service.rs:31:9 [INFO] [stdout] | [INFO] [stdout] 31 | locations.sort_by(|a, b| b.path.len().cmp(&a.path.len())); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 31 - locations.sort_by(|a, b| b.path.len().cmp(&a.path.len())); [INFO] [stdout] 31 + locations.sort_by_key(|b| std::cmp::Reverse(b.path.len())); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `Iterator::find` [INFO] [stdout] --> src/proxy/simple_proxy_service.rs:33:9 [INFO] [stdout] | [INFO] [stdout] 33 | / for location in locations { [INFO] [stdout] 34 | | if path.starts_with(&location.path) { [INFO] [stdout] 35 | | return Some(location); [INFO] [stdout] ... | [INFO] [stdout] 38 | | None [INFO] [stdout] | |____________^ help: replace with an iterator: `locations.into_iter().find(|&location| path.starts_with(&location.path)).map(|v| v as _)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_find [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/kafka/kafka_consumer.rs:223:13 [INFO] [stdout] | [INFO] [stdout] 223 | / if let Some(handler) = self.message_handlers.get(topic) { [INFO] [stdout] 224 | | if let Err(e) = handler(message.detach()) { [INFO] [stdout] 225 | | eprintln!("处理消息失败: {}", e); [INFO] [stdout] ... | [INFO] [stdout] 228 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 223 ~ if let Some(handler) = self.message_handlers.get(topic) [INFO] [stdout] 224 ~ && let Err(e) = handler(message.detach()) { [INFO] [stdout] 225 | eprintln!("处理消息失败: {}", e); [INFO] [stdout] 226 | // 可以选择继续处理或返回错误 [INFO] [stdout] 227 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field assignment outside of initializer for an instance created with Default::default() [INFO] [stdout] --> src/kafka/kafka_producer.rs:261:9 [INFO] [stdout] | [INFO] [stdout] 261 | config.transactional_id = Some("test-transaction".to_string()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: consider initializing the variable with `kafka::kafka_config::KafkaProducerConfig { transactional_id: Some("test-transaction".to_string()), enable_idempotence: Some(true), ..Default::default() }` and removing relevant reassignments [INFO] [stdout] --> src/kafka/kafka_producer.rs:260:9 [INFO] [stdout] | [INFO] [stdout] 260 | let mut config = KafkaProducerConfig::default(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#field_reassign_with_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field assignment outside of initializer for an instance created with Default::default() [INFO] [stdout] --> src/kafka/mod.rs:112:5 [INFO] [stdout] | [INFO] [stdout] 112 | config.group_id = group_id; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: consider initializing the variable with `kafka::kafka_config::KafkaConsumerConfig { group_id: group_id, ..Default::default() }` and removing relevant reassignments [INFO] [stdout] --> src/kafka/mod.rs:111:5 [INFO] [stdout] | [INFO] [stdout] 111 | let mut config = KafkaConsumerConfig::default(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#field_reassign_with_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/proxy/enhanced_proxy_service.rs:29:13 [INFO] [stdout] | [INFO] [stdout] 29 | / if let LocationType::Static = location.location_type { [INFO] [stdout] 30 | | if let Some(ref root) = location.root { [INFO] [stdout] 31 | | static_services.insert(location.path.clone(), StaticFileService::new(root)); [INFO] [stdout] 32 | | } [INFO] [stdout] 33 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 29 ~ if let LocationType::Static = location.location_type [INFO] [stdout] 30 ~ && let Some(ref root) = location.root { [INFO] [stdout] 31 | static_services.insert(location.path.clone(), StaticFileService::new(root)); [INFO] [stdout] 32 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> src/proxy/enhanced_proxy_service.rs:46:9 [INFO] [stdout] | [INFO] [stdout] 46 | locations.sort_by(|a, b| b.path.len().cmp(&a.path.len())); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] = note: `#[warn(clippy::unnecessary_sort_by)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 46 - locations.sort_by(|a, b| b.path.len().cmp(&a.path.len())); [INFO] [stdout] 46 + locations.sort_by_key(|b| std::cmp::Reverse(b.path.len())); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `Iterator::find` [INFO] [stdout] --> src/proxy/enhanced_proxy_service.rs:48:9 [INFO] [stdout] | [INFO] [stdout] 48 | / for location in locations { [INFO] [stdout] 49 | | if path.starts_with(&location.path) { [INFO] [stdout] 50 | | return Some(location); [INFO] [stdout] ... | [INFO] [stdout] 53 | | None [INFO] [stdout] | |____________^ help: replace with an iterator: `locations.into_iter().find(|&location| path.starts_with(&location.path)).map(|v| v as _)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_find [INFO] [stdout] = note: `#[warn(clippy::manual_find)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/proxy/enhanced_proxy_service.rs:146:21 [INFO] [stdout] | [INFO] [stdout] 146 | / if let Some(proxy_pass) = &location.proxy_pass { [INFO] [stdout] 147 | | if let Some(upstream_config) = self.get_upstream_config(proxy_pass) { [INFO] [stdout] 148 | | if let Some(server) = self.select_upstream_server(upstream_config) { [INFO] [stdout] ... | [INFO] [stdout] 167 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 146 ~ if let Some(proxy_pass) = &location.proxy_pass [INFO] [stdout] 147 ~ && let Some(upstream_config) = self.get_upstream_config(proxy_pass) { [INFO] [stdout] 148 | if let Some(server) = self.select_upstream_server(upstream_config) { [INFO] [stdout] ... [INFO] [stdout] 165 | } [INFO] [stdout] 166 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/proxy/enhanced_proxy_service.rs:147:25 [INFO] [stdout] | [INFO] [stdout] 147 | / if let Some(upstream_config) = self.get_upstream_config(proxy_pass) { [INFO] [stdout] 148 | | if let Some(server) = self.select_upstream_server(upstream_config) { [INFO] [stdout] 149 | | // 构建新的 URI [INFO] [stdout] 150 | | let new_path = if path.len() > location.path.len() { [INFO] [stdout] ... | [INFO] [stdout] 166 | | } [INFO] [stdout] | |_________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 147 ~ if let Some(upstream_config) = self.get_upstream_config(proxy_pass) [INFO] [stdout] 148 ~ && let Some(server) = self.select_upstream_server(upstream_config) { [INFO] [stdout] 149 | // 构建新的 URI [INFO] [stdout] ... [INFO] [stdout] 164 | println!("Would proxy to: {}", new_uri); [INFO] [stdout] 165 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> src/proxy/simple_proxy_service.rs:31:9 [INFO] [stdout] | [INFO] [stdout] 31 | locations.sort_by(|a, b| b.path.len().cmp(&a.path.len())); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 31 - locations.sort_by(|a, b| b.path.len().cmp(&a.path.len())); [INFO] [stdout] 31 + locations.sort_by_key(|b| std::cmp::Reverse(b.path.len())); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `Iterator::find` [INFO] [stdout] --> src/proxy/simple_proxy_service.rs:33:9 [INFO] [stdout] | [INFO] [stdout] 33 | / for location in locations { [INFO] [stdout] 34 | | if path.starts_with(&location.path) { [INFO] [stdout] 35 | | return Some(location); [INFO] [stdout] ... | [INFO] [stdout] 38 | | None [INFO] [stdout] | |____________^ help: replace with an iterator: `locations.into_iter().find(|&location| path.starts_with(&location.path)).map(|v| v as _)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_find [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: literal with an empty format string [INFO] [stdout] --> examples/pingora_proxy_example.rs:51:52 [INFO] [stdout] | [INFO] [stdout] 51 | println!("Starting proxy server on http://{}", "0.0.0.0:8080"); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#print_literal [INFO] [stdout] = note: `#[warn(clippy::print_literal)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 51 - println!("Starting proxy server on http://{}", "0.0.0.0:8080"); [INFO] [stdout] 51 + println!("Starting proxy server on http://0.0.0.0:8080"); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `config_example` is never used [INFO] [stdout] --> examples/kafka_example.rs:274:4 [INFO] [stdout] | [INFO] [stdout] 274 | fn config_example() -> Result<(), Box> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `error_handling_example` is never used [INFO] [stdout] --> examples/kafka_example.rs:314:4 [INFO] [stdout] | [INFO] [stdout] 314 | fn error_handling_example() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> examples/axum_kafka_example.rs:216:21 [INFO] [stdout] | [INFO] [stdout] 216 | / if let Some(payload_str) = payload { [INFO] [stdout] 217 | | if let Ok(user_msg) = serde_json::from_str::(&payload_str) { [INFO] [stdout] 218 | | println!("处理用户消息: {:?}", user_msg); [INFO] [stdout] ... | [INFO] [stdout] 221 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 216 ~ if let Some(payload_str) = payload [INFO] [stdout] 217 ~ && let Ok(user_msg) = serde_json::from_str::(&payload_str) { [INFO] [stdout] 218 | println!("处理用户消息: {:?}", user_msg); [INFO] [stdout] 219 | // 这里可以添加具体的业务逻辑 [INFO] [stdout] 220 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this let-binding has unit value [INFO] [stdout] --> examples/test_db.rs:144:9 [INFO] [stdout] | [INFO] [stdout] 144 | let _ = handle.await.map_err(|e| format!("任务执行失败: {}", e))??; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] = note: `#[warn(clippy::let_unit_value)]` on by default [INFO] [stdout] help: omit the `let` binding [INFO] [stdout] | [INFO] [stdout] 144 - let _ = handle.await.map_err(|e| format!("任务执行失败: {}", e))??; [INFO] [stdout] 144 + handle.await.map_err(|e| format!("任务执行失败: {}", e))??; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> examples/redis_pool_example.rs:185:19 [INFO] [stdout] | [INFO] [stdout] 185 | let examples: Vec<( [INFO] [stdout] | ___________________^ [INFO] [stdout] 186 | | &str, [INFO] [stdout] 187 | | Box< [INFO] [stdout] 188 | | dyn Fn() -> std::pin::Pin< [INFO] [stdout] ... | [INFO] [stdout] 191 | | >, [INFO] [stdout] 192 | | )> = vec![ [INFO] [stdout] | |______^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] = note: `#[warn(clippy::type_complexity)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field assignment outside of initializer for an instance created with Default::default() [INFO] [stdout] --> examples/test_redis.rs:81:5 [INFO] [stdout] | [INFO] [stdout] 81 | invalid_config.url = String::new(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: consider initializing the variable with `clamber_web_core::RedisConfig { url: String::new(), ..Default::default() }` and removing relevant reassignments [INFO] [stdout] --> examples/test_redis.rs:80:5 [INFO] [stdout] | [INFO] [stdout] 80 | let mut invalid_config = RedisConfig::default(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#field_reassign_with_default [INFO] [stdout] = note: `#[warn(clippy::field_reassign_with_default)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this let-binding has unit value [INFO] [stdout] --> examples/test_redis.rs:430:9 [INFO] [stdout] | [INFO] [stdout] 430 | let _result = handle.await.map_err(|e| format!("任务执行失败: {}", e))??; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] = note: `#[warn(clippy::let_unit_value)]` on by default [INFO] [stdout] help: omit the `let` binding [INFO] [stdout] | [INFO] [stdout] 430 - let _result = handle.await.map_err(|e| format!("任务执行失败: {}", e))??; [INFO] [stdout] 430 + handle.await.map_err(|e| format!("任务执行失败: {}", e))??; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this let-binding has unit value [INFO] [stdout] --> examples/test_redis.rs:504:9 [INFO] [stdout] | [INFO] [stdout] 504 | / let _result = handle [INFO] [stdout] 505 | | .await [INFO] [stdout] 506 | | .map_err(|e| format!("Worker {} 任务失败: {}", i, e))??; [INFO] [stdout] | |____________________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] help: omit the `let` binding [INFO] [stdout] | [INFO] [stdout] 504 - let _result = handle [INFO] [stdout] 504 + handle [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty string literal in `println!` [INFO] [stdout] --> examples/test_redis.rs:545:5 [INFO] [stdout] | [INFO] [stdout] 545 | println!(""); [INFO] [stdout] | ^^^^^^^^^--^ [INFO] [stdout] | | [INFO] [stdout] | help: remove the empty string [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#println_empty_string [INFO] [stdout] = note: `#[warn(clippy::println_empty_string)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty string literal in `println!` [INFO] [stdout] --> examples/test_redis.rs:551:5 [INFO] [stdout] | [INFO] [stdout] 551 | println!(""); [INFO] [stdout] | ^^^^^^^^^--^ [INFO] [stdout] | | [INFO] [stdout] | help: remove the empty string [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#println_empty_string [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty string literal in `println!` [INFO] [stdout] --> examples/test_redis.rs:594:9 [INFO] [stdout] | [INFO] [stdout] 594 | println!(""); [INFO] [stdout] | ^^^^^^^^^--^ [INFO] [stdout] | | [INFO] [stdout] | help: remove the empty string [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#println_empty_string [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty string literal in `println!` [INFO] [stdout] --> examples/test_redis.rs:613:5 [INFO] [stdout] | [INFO] [stdout] 613 | println!(""); [INFO] [stdout] | ^^^^^^^^^--^ [INFO] [stdout] | | [INFO] [stdout] | help: remove the empty string [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#println_empty_string [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty string literal in `println!` [INFO] [stdout] --> examples/test_redis.rs:619:9 [INFO] [stdout] | [INFO] [stdout] 619 | println!(""); [INFO] [stdout] | ^^^^^^^^^--^ [INFO] [stdout] | | [INFO] [stdout] | help: remove the empty string [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#println_empty_string [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 4m 28s [INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: num-bigint-dig v0.8.4 [INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1` [INFO] running `Command { std: "docker" "inspect" "0492601433c7bc4d65b47538fba72588db98337cc100bcd0d4df0100df95795f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "0492601433c7bc4d65b47538fba72588db98337cc100bcd0d4df0100df95795f", kill_on_drop: false }` [INFO] [stdout] 0492601433c7bc4d65b47538fba72588db98337cc100bcd0d4df0100df95795f