[INFO] cloning repository https://github.com/thorli9527/im-relation
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/thorli9527/im-relation" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fthorli9527%2Fim-relation", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fthorli9527%2Fim-relation'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 125a6ec6de29063337145470b7a783a0b1dd08a4
[INFO] checking thorli9527/im-relation against master#540f43a224317d894a9a0710a8d67704f179a33c for pr-155193
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fthorli9527%2Fim-relation" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-3-tc1/source/rust-toolchain.toml
[INFO] started tweaking git repo https://github.com/thorli9527/im-relation
[INFO] finished tweaking git repo https://github.com/thorli9527/im-relation
[INFO] tweaked toml for git repo https://github.com/thorli9527/im-relation written to /workspace/builds/worker-3-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/thorli9527/im-relation on toolchain 540f43a224317d894a9a0710a8d67704f179a33c
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+540f43a224317d894a9a0710a8d67704f179a33c" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/thorli9527/im-relation 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" "+540f43a224317d894a9a0710a8d67704f179a33c" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded prost v0.14.1
[INFO] [stderr]   Downloaded prost-types v0.14.1
[INFO] [stderr]   Downloaded prettyplease v0.2.36
[INFO] [stderr]   Downloaded webpki-roots v1.0.2
[INFO] [stderr]   Downloaded bitpacking v0.8.4
[INFO] [stderr]   Downloaded fs4 v0.6.6
[INFO] [stderr]   Downloaded fake v4.4.0
[INFO] [stderr]   Downloaded sysinfo v0.37.0
[INFO] [stderr]   Downloaded fail v0.5.1
[INFO] [stderr]   Downloaded tantivy-columnar v0.1.0
[INFO] [stderr]   Downloaded tantivy-stacker v0.1.0
[INFO] [stderr]   Downloaded yaml-rust2 v0.10.4
[INFO] [stderr]   Downloaded deadpool v0.12.2
[INFO] [stderr]   Downloaded prost-derive v0.14.1
[INFO] [stderr]   Downloaded memmap2 v0.6.2
[INFO] [stderr]   Downloaded oneshot v0.1.11
[INFO] [stderr]   Downloaded rdkafka v0.38.0
[INFO] [stderr]   Downloaded utoipa-gen v5.4.0
[INFO] [stderr]   Downloaded lz4_flex v0.10.0
[INFO] [stderr]   Downloaded tantivy-sstable v0.1.0
[INFO] [stderr]   Downloaded serde-untagged v0.1.9
[INFO] [stderr]   Downloaded config v0.15.19
[INFO] [stderr]   Downloaded deadpool-redis v0.21.1
[INFO] [stderr]   Downloaded tantivy-bitpacker v0.4.0
[INFO] [stderr]   Downloaded tantivy-query-grammar v0.20.0
[INFO] [stderr]   Downloaded ownedbytes v0.5.0
[INFO] [stderr]   Downloaded tantivy-common v0.5.0
[INFO] [stderr]   Downloaded tantivy-tokenizer-api v0.1.1
[INFO] [stderr]   Downloaded rust-ini v0.21.3
[INFO] [stderr]   Downloaded utoipa v5.4.0
[INFO] [stderr]   Downloaded tantivy-fst v0.4.0
[INFO] [stderr]   Downloaded prost-build v0.14.1
[INFO] [stderr]   Downloaded tantivy v0.20.2
[INFO] [stderr]   Downloaded rdkafka-sys v4.9.0+2.10.0
[INFO] [stderr]   Downloaded singleflight v0.3.0
[INFO] [stderr]   Downloaded handlers v0.10.0
[INFO] [stderr]   Downloaded protobuf-src v2.1.1+27.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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" "+540f43a224317d894a9a0710a8d67704f179a33c" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] afbdbd50c071f8311972a4690f381b4d2847a1f47dc1af135514f02635030c32
[INFO] running `Command { std: "docker" "start" "-a" "afbdbd50c071f8311972a4690f381b4d2847a1f47dc1af135514f02635030c32", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "afbdbd50c071f8311972a4690f381b4d2847a1f47dc1af135514f02635030c32", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "afbdbd50c071f8311972a4690f381b4d2847a1f47dc1af135514f02635030c32", kill_on_drop: false }`
[INFO] [stdout] afbdbd50c071f8311972a4690f381b4d2847a1f47dc1af135514f02635030c32
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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" "+540f43a224317d894a9a0710a8d67704f179a33c" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 6bb9543469f4fb519f8f3b18c5e0c5aec392b1f7558ae89b00efa12a7dba1f93
[INFO] running `Command { std: "docker" "start" "-a" "6bb9543469f4fb519f8f3b18c5e0c5aec392b1f7558ae89b00efa12a7dba1f93", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.97
[INFO] [stderr]     Checking cfg-if v1.0.1
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling hashbrown v0.15.5
[INFO] [stderr]    Compiling zerocopy v0.8.26
[INFO] [stderr]    Compiling libc v0.2.175
[INFO] [stderr]    Compiling anyhow v1.0.99
[INFO] [stderr]    Compiling memchr v2.7.5
[INFO] [stderr]    Compiling cc v1.2.32
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]     Checking signal-hook-registry v1.4.6
[INFO] [stderr]     Checking socket2 v0.6.0
[INFO] [stderr]     Checking mio v1.0.4
[INFO] [stderr]     Checking parking_lot_core v0.9.11
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling icu_properties_data v2.0.1
[INFO] [stderr]    Compiling rustix v1.0.8
[INFO] [stderr]    Compiling icu_normalizer_data v2.0.0
[INFO] [stderr]    Compiling getrandom v0.3.3
[INFO] [stderr]     Checking parking_lot v0.12.4
[INFO] [stderr]    Compiling tracing-core v0.1.34
[INFO] [stderr]    Compiling slab v0.4.11
[INFO] [stderr]    Compiling prettyplease v0.2.36
[INFO] [stderr]    Compiling linux-raw-sys v0.9.4
[INFO] [stderr]    Compiling regex-syntax v0.8.5
[INFO] [stderr]    Compiling futures-util v0.3.31
[INFO] [stderr]     Checking generic-array v0.14.7
[INFO] [stderr]    Compiling stable_deref_trait v1.2.0
[INFO] [stderr]    Compiling indexmap v2.10.0
[INFO] [stderr]    Compiling getrandom v0.2.16
[INFO] [stderr]    Compiling http v1.3.1
[INFO] [stderr]    Compiling quote v1.0.40
[INFO] [stderr]    Compiling percent-encoding v2.3.1
[INFO] [stderr]    Compiling const-oid v0.9.6
[INFO] [stderr]    Compiling futures-channel v0.3.31
[INFO] [stderr]    Compiling syn v2.0.104
[INFO] [stderr]    Compiling typenum v1.18.0
[INFO] [stderr]    Compiling zeroize v1.8.1
[INFO] [stderr]    Compiling base64 v0.22.1
[INFO] [stderr]    Compiling subtle v2.6.1
[INFO] [stderr]    Compiling petgraph v0.7.1
[INFO] [stderr]     Checking writeable v0.6.1
[INFO] [stderr]     Checking litemap v0.8.0
[INFO] [stderr]    Compiling tower-service v0.3.3
[INFO] [stderr]    Compiling rustls v0.23.31
[INFO] [stderr]    Compiling atomic-waker v1.1.2
[INFO] [stderr]    Compiling try-lock v0.2.5
[INFO] [stderr]     Checking crypto-common v0.1.6
[INFO] [stderr]     Checking block-buffer v0.10.4
[INFO] [stderr]    Compiling serde_json v1.0.145
[INFO] [stderr]    Compiling httparse v1.10.1
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]    Compiling sync_wrapper v1.0.2
[INFO] [stderr]    Compiling want v0.3.1
[INFO] [stderr]    Compiling tower-layer v0.3.3
[INFO] [stderr]    Compiling httpdate v1.0.3
[INFO] [stderr]    Compiling mime v0.3.17
[INFO] [stderr]    Compiling time-macros v0.2.22
[INFO] [stderr]    Compiling http-body v1.0.1
[INFO] [stderr]     Checking rustls-pki-types v1.12.0
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling base64ct v1.8.0
[INFO] [stderr]    Compiling http-body-util v0.1.3
[INFO] [stderr]    Compiling matchit v0.8.4
[INFO] [stderr]    Compiling num-bigint-dig v0.8.4
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling pem-rfc7468 v0.7.0
[INFO] [stderr]    Compiling axum-core v0.5.2
[INFO] [stderr]     Checking rand_core v0.9.3
[INFO] [stderr]    Compiling socket2 v0.5.10
[INFO] [stderr]    Compiling regex-automata v0.4.9
[INFO] [stderr]    Compiling crunchy v0.2.4
[INFO] [stderr]    Compiling der v0.7.10
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]     Checking num-integer v0.1.46
[INFO] [stderr]    Compiling untrusted v0.9.0
[INFO] [stderr]    Compiling lock_api v0.4.13
[INFO] [stderr]     Checking ahash v0.8.12
[INFO] [stderr]    Compiling tinyvec_macros v0.1.1
[INFO] [stderr]    Compiling spin v0.9.8
[INFO] [stderr]    Compiling utf8_iter v1.0.4
[INFO] [stderr]    Compiling powerfmt v0.2.0
[INFO] [stderr]    Compiling cpufeatures v0.2.17
[INFO] [stderr]    Compiling lazy_static v1.5.0
[INFO] [stderr]    Compiling tinyvec v1.9.0
[INFO] [stderr]    Compiling tiny-keccak v2.0.2
[INFO] [stderr]    Compiling concurrent-queue v2.5.0
[INFO] [stderr]     Checking rand_chacha v0.9.0
[INFO] [stderr]    Compiling deranged v0.4.0
[INFO] [stderr]    Compiling num-iter v0.1.45
[INFO] [stderr]    Compiling webpki-roots v1.0.2
[INFO] [stderr]     Checking sha1 v0.10.6
[INFO] [stderr]     Checking rand v0.9.2
[INFO] [stderr]    Compiling form_urlencoded v1.2.1
[INFO] [stderr]     Checking aho-corasick v1.1.3
[INFO] [stderr]    Compiling winnow v0.7.13
[INFO] [stderr]    Compiling crc-catalog v2.4.0
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling parking v2.2.1
[INFO] [stderr]    Compiling typeid v1.0.3
[INFO] [stderr]    Compiling byteorder v1.5.0
[INFO] [stderr]    Compiling event-listener v5.4.1
[INFO] [stderr]    Compiling time v0.3.41
[INFO] [stderr]    Compiling pest v2.8.3
[INFO] [stderr]    Compiling spki v0.7.3
[INFO] [stderr]    Compiling unicode-normalization v0.1.24
[INFO] [stderr]    Compiling regex v1.11.1
[INFO] [stderr]    Compiling pkcs8 v0.10.2
[INFO] [stderr]    Compiling crc v3.3.0
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling libz-sys v1.1.22
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling pkcs1 v0.7.5
[INFO] [stderr]    Compiling const-random-macro v0.1.16
[INFO] [stderr]    Compiling futures-intrusive v0.5.0
[INFO] [stderr]    Compiling webpki-roots v0.26.11
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]     Checking hashbrown v0.14.5
[INFO] [stderr]    Compiling crossbeam-queue v0.3.12
[INFO] [stderr]    Compiling signature v2.2.0
[INFO] [stderr]    Compiling hmac v0.12.1
[INFO] [stderr]    Compiling hashlink v0.10.0
[INFO] [stderr]    Compiling unicode-properties v0.1.3
[INFO] [stderr]    Compiling unicode-bidi v0.3.18
[INFO] [stderr]    Compiling hkdf v0.12.4
[INFO] [stderr]     Checking const-random v0.1.18
[INFO] [stderr]    Compiling stringprep v0.1.5
[INFO] [stderr]    Compiling atoi v2.0.0
[INFO] [stderr]    Compiling md-5 v0.10.6
[INFO] [stderr]    Compiling pest_meta v2.8.3
[INFO] [stderr]    Compiling cmake v0.1.54
[INFO] [stderr]    Compiling radium v0.7.0
[INFO] [stderr]    Compiling whoami v1.6.1
[INFO] [stderr]    Compiling erased-serde v0.4.9
[INFO] [stderr]    Compiling dotenvy v0.15.7
[INFO] [stderr]     Checking data-encoding v2.9.0
[INFO] [stderr]    Compiling hex v0.4.3
[INFO] [stderr]     Checking rustls-webpki v0.103.4
[INFO] [stderr]    Compiling rsa v0.9.8
[INFO] [stderr]    Compiling rdkafka-sys v4.9.0+2.10.0
[INFO] [stderr]     Checking dlv-list v0.5.2
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling darling_core v0.20.11
[INFO] [stderr]    Compiling proc-macro-error-attr2 v2.0.0
[INFO] [stderr]    Compiling pest_generator v2.8.3
[INFO] [stderr]     Checking tap v1.0.1
[INFO] [stderr]    Compiling proc-macro-error2 v2.0.1
[INFO] [stderr]     Checking wyz v0.5.1
[INFO] [stderr]    Compiling proc-macro-crate v3.3.0
[INFO] [stderr]     Checking toml_parser v1.0.4
[INFO] [stderr]     Checking ordered-multimap v0.7.3
[INFO] [stderr]     Checking event-listener-strategy v0.5.4
[INFO] [stderr]     Checking num-bigint v0.4.6
[INFO] [stderr]     Checking encoding_rs v0.8.35
[INFO] [stderr]     Checking toml_datetime v0.7.3
[INFO] [stderr]     Checking serde_spanned v1.0.3
[INFO] [stderr]     Checking num_cpus v1.17.0
[INFO] [stderr]     Checking unicode-ident v1.0.18
[INFO] [stderr]     Checking funty v2.0.0
[INFO] [stderr]    Compiling moka v0.12.10
[INFO] [stderr]     Checking anstream v0.6.20
[INFO] [stderr]     Checking toml v0.9.8
[INFO] [stderr]     Checking async-lock v3.4.1
[INFO] [stderr]     Checking rust-ini v0.21.3
[INFO] [stderr]     Checking env_filter v0.1.3
[INFO] [stderr]     Checking serde_bytes v0.11.19
[INFO] [stderr]     Checking jiff v0.2.15
[INFO] [stderr]     Checking pathdiff v0.2.3
[INFO] [stderr]     Checking chrono v0.4.41
[INFO] [stderr]     Checking serde-untagged v0.1.9
[INFO] [stderr]     Checking bitvec v1.0.1
[INFO] [stderr]     Checking dashmap v6.1.0
[INFO] [stderr]     Checking twox-hash v2.1.1
[INFO] [stderr]     Checking yaml-rust2 v0.10.4
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling tokio-macros v2.5.0
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling tracing-attributes v0.1.30
[INFO] [stderr]    Compiling yoke-derive v0.8.0
[INFO] [stderr]    Compiling zerovec-derive v0.11.1
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling thiserror-impl v2.0.17
[INFO] [stderr]     Checking tokio v1.47.1
[INFO] [stderr]    Compiling pin-project-internal v1.1.10
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling num_enum_derive v0.7.4
[INFO] [stderr]     Checking zerofrom v0.1.6
[INFO] [stderr]    Compiling tracing v0.1.41
[INFO] [stderr]     Checking yoke v0.8.0
[INFO] [stderr]     Checking zerovec v0.11.4
[INFO] [stderr]     Checking zerotrie v0.2.2
[INFO] [stderr]    Compiling pin-project v1.1.10
[INFO] [stderr]     Checking thiserror v2.0.17
[INFO] [stderr]    Compiling darling_macro v0.20.11
[INFO] [stderr]     Checking tungstenite v0.26.2
[INFO] [stderr]    Compiling pest_derive v2.8.3
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling darling v0.20.11
[INFO] [stderr]    Compiling axum-macros v0.5.0
[INFO] [stderr]    Compiling validator_derive v0.20.0
[INFO] [stderr]     Checking num_enum v0.7.4
[INFO] [stderr]    Compiling utoipa-gen v5.4.0
[INFO] [stderr]     Checking env_logger v0.11.8
[INFO] [stderr]     Checking tower v0.4.13
[INFO] [stderr]    Compiling strum_macros v0.27.2
[INFO] [stderr]     Checking strum v0.27.2
[INFO] [stderr]     Checking bytemuck v1.23.2
[INFO] [stderr]     Checking sysinfo v0.37.0
[INFO] [stderr]     Checking tinystr v0.8.1
[INFO] [stderr]     Checking icu_locale_core v2.0.0
[INFO] [stderr]     Checking potential_utf v0.1.2
[INFO] [stderr]     Checking icu_collections v2.0.0
[INFO] [stderr]     Checking roaring v0.11.2
[INFO] [stderr]     Checking icu_provider v2.0.0
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking tracing-log v0.2.0
[INFO] [stderr]     Checking thread_local v1.1.9
[INFO] [stderr]    Compiling paste-impl v0.1.18
[INFO] [stderr]     Checking tracing-subscriber v0.3.19
[INFO] [stderr]     Checking icu_normalizer v2.0.0
[INFO] [stderr]     Checking icu_properties v2.0.1
[INFO] [stderr]     Checking futures-executor v0.3.31
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]     Checking futures v0.3.31
[INFO] [stderr]     Checking arc-swap v1.7.1
[INFO] [stderr]     Checking paste v0.1.18
[INFO] [stderr]     Checking password-hash v0.5.0
[INFO] [stderr]     Checking handlers v0.10.0
[INFO] [stderr]     Checking blake2 v0.10.6
[INFO] [stderr]     Checking singleflight v0.3.0
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling bitflags v2.9.1
[INFO] [stderr]     Checking tokio-util v0.7.16
[INFO] [stderr]     Checking tokio-stream v0.1.17
[INFO] [stderr]    Compiling itertools v0.14.0
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking idna_adapter v1.2.1
[INFO] [stderr]     Checking deadpool-runtime v0.1.4
[INFO] [stderr]     Checking tokio-rustls v0.26.4
[INFO] [stderr]     Checking tokio-tungstenite v0.26.2
[INFO] [stderr]     Checking uuid v1.18.0
[INFO] [stderr]     Checking serde_path_to_error v0.1.17
[INFO] [stderr]     Checking idna v1.0.3
[INFO] [stderr]     Checking ron v0.12.0
[INFO] [stderr]     Checking deadpool v0.12.2
[INFO] [stderr]     Checking json5 v0.4.1
[INFO] [stderr]     Checking fake v4.4.0
[INFO] [stderr]     Checking serde_spanned v0.6.9
[INFO] [stderr]     Checking url v2.5.4
[INFO] [stderr]     Checking h2 v0.4.12
[INFO] [stderr]     Checking tower v0.5.2
[INFO] [stderr]     Checking combine v4.6.7
[INFO] [stderr]     Checking tower-http v0.5.2
[INFO] [stderr]    Compiling prost-derive v0.13.5
[INFO] [stderr]    Compiling prost-derive v0.14.1
[INFO] [stderr]     Checking argon2 v0.5.3
[INFO] [stderr]     Checking sqlx-core v0.8.6
[INFO] [stderr]     Checking tower-http v0.6.6
[INFO] [stderr]     Checking validator v0.20.0
[INFO] [stderr]    Compiling tempfile v3.20.0
[INFO] [stderr]     Checking bson v2.15.0
[INFO] [stderr]     Checking config v0.15.19
[INFO] [stderr]    Compiling axum v0.8.4
[INFO] [stderr]     Checking toml v0.8.23
[INFO] [stderr]    Compiling prost v0.14.1
[INFO] [stderr]    Compiling prost v0.13.5
[INFO] [stderr]    Compiling prost-types v0.14.1
[INFO] [stderr]     Checking sqlx-mysql v0.8.6
[INFO] [stderr]     Checking prost-types v0.13.5
[INFO] [stderr]     Checking utoipa v5.4.0
[INFO] [stderr]    Compiling prost-build v0.13.5
[INFO] [stderr]    Compiling prost-build v0.14.1
[INFO] [stderr]     Checking hyper v1.6.0
[INFO] [stderr]    Compiling tonic-build v0.13.1
[INFO] [stderr]     Checking redis v0.31.0
[INFO] [stderr]    Compiling msg_group v0.1.0 (/opt/rustwide/workdir/msg_group)
[INFO] [stderr]    Compiling msg_friend v0.1.0 (/opt/rustwide/workdir/msg_friend)
[INFO] [stderr]    Compiling msg_system v0.1.0 (/opt/rustwide/workdir/msg_system)
[INFO] [stderr]    Compiling app_socket v0.1.0 (/opt/rustwide/workdir/app_socket)
[INFO] [stderr]     Checking hyper-util v0.1.16
[INFO] [stderr]     Checking hyper-timeout v0.5.2
[INFO] [stderr]     Checking hyper-rustls v0.27.7
[INFO] [stderr]    Compiling sqlx-macros-core v0.8.6
[INFO] [stderr]     Checking reqwest v0.12.24
[INFO] [stderr]     Checking rdkafka v0.38.0
[INFO] [stderr]    Compiling tonic v0.13.1
[INFO] [stderr]    Compiling sqlx-macros v0.8.6
[INFO] [stderr]     Checking sqlx v0.8.6
[INFO] [stderr]    Compiling common v0.2.0 (/opt/rustwide/workdir/common)
[INFO] [stderr]    Compiling friend_service v0.2.0 (/opt/rustwide/workdir/friend_service)
[INFO] [stderr]    Compiling user_service v0.2.0 (/opt/rustwide/workdir/user_service)
[INFO] [stderr]    Compiling group_service v0.1.1 (/opt/rustwide/workdir/group_service)
[INFO] [stderr]     Checking deadpool-redis v0.21.1
[INFO] [stdout] warning: unused import: `log::LevelFilter`
[INFO] [stdout]  --> common/src/config/config.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use log::LevelFilter;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::str::FromStr`
[INFO] [stdout]   --> common/src/config/config.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use std::str::FromStr;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `info`
[INFO] [stdout]   --> common/src/support/logging.rs:13:18
[INFO] [stdout]    |
[INFO] [stdout] 13 | use log::{error, info};
[INFO] [stdout]    |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `log::LevelFilter`
[INFO] [stdout]  --> common/src/config/config.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use log::LevelFilter;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::str::FromStr`
[INFO] [stdout]   --> common/src/config/config.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use std::str::FromStr;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `info`
[INFO] [stdout]   --> common/src/support/logging.rs:13:18
[INFO] [stdout]    |
[INFO] [stdout] 13 | use log::{error, info};
[INFO] [stdout]    |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `info` is never used
[INFO] [stdout]    --> common/src/support/logging.rs:136:8
[INFO] [stdout]     |
[INFO] [stdout] 118 | impl<'a> LogPayload<'a> {
[INFO] [stdout]     | ----------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 136 |     fn info(event: &'static str, path: String, request: &'a str) -> String {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `info` is never used
[INFO] [stdout]    --> common/src/support/logging.rs:136:8
[INFO] [stdout]     |
[INFO] [stdout] 118 | impl<'a> LogPayload<'a> {
[INFO] [stdout]     | ----------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 136 |     fn info(event: &'static str, path: String, request: &'a str) -> String {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking app_api v0.1.0 (/opt/rustwide/workdir/app_api)
[INFO] [stdout] warning: unused import: `log`
[INFO] [stdout]   --> app_socket/src/service/dispatcher.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 | use log::{log, warn};
[INFO] [stdout]    |           ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `log::info`
[INFO] [stdout]  --> friend_service/src/store/mysql.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use log::info;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `log::info`
[INFO] [stdout]  --> friend_service/src/store/mysql.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use log::info;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `log`
[INFO] [stdout]   --> app_socket/src/service/dispatcher.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 | use log::{log, warn};
[INFO] [stdout]    |           ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> friend_service/src/db/elias_fano.rs:144:13
[INFO] [stdout]     |
[INFO] [stdout] 144 |         let mut pos_global: usize;
[INFO] [stdout]     |             ----^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> friend_service/src/store/mysql.rs:160:13
[INFO] [stdout]     |
[INFO] [stdout] 160 |         let mut tx = self
[INFO] [stdout]     |             ----^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_schema_from_ddl` is never used
[INFO] [stdout]  --> friend_service/src/db/mod.rs:9:14
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub async fn apply_schema_from_ddl(pool: &Arc<MySqlPool>, ddl: &str) -> Result<()> {
[INFO] [stdout]   |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `EliasFano` is never constructed
[INFO] [stdout]  --> friend_service/src/db/elias_fano.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct EliasFano {
[INFO] [stdout]   |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> friend_service/src/db/elias_fano.rs:17:12
[INFO] [stdout]     |
[INFO] [stdout]  15 | impl EliasFano {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout]  16 |     /// 由**严格递增**的去重数组构建；U 取 `max(x)+1`
[INFO] [stdout]  17 |     pub fn from_sorted(sorted: &[u64]) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  79 |     pub fn len(&self) -> usize {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  83 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  87 |     pub fn max_value(&self) -> u64 {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  92 |     pub fn iter(&self) -> EliasFanoIter<'_> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 108 |     pub fn contains(&self, target: u64) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 122 |     pub fn to_vec(&self) -> Vec<u64> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `EliasFanoIter` is never constructed
[INFO] [stdout]    --> friend_service/src/db/elias_fano.rs:127:12
[INFO] [stdout]     |
[INFO] [stdout] 127 | pub struct EliasFanoIter<'a> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `FriendId` is never used
[INFO] [stdout]  --> friend_service/src/db/friend_list_ef.rs:9:10
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub type FriendId = u64;
[INFO] [stdout]   |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `RelationError` is never used
[INFO] [stdout]   --> friend_service/src/db/friend_list_ef.rs:12:10
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub enum RelationError {
[INFO] [stdout]    |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FriendListEf` is never constructed
[INFO] [stdout]   --> friend_service/src/db/friend_list_ef.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub struct FriendListEf {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> friend_service/src/db/friend_list_ef.rs:51:12
[INFO] [stdout]     |
[INFO] [stdout]  49 | impl FriendListEf {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout]  50 |     #[inline]
[INFO] [stdout]  51 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  66 |     fn smallvec_remove_one(v: &mut SmallVec<[FriendId; 8]>, x: FriendId) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  77 |     fn smallvec_contains(v: &SmallVec<[FriendId; 8]>, x: FriendId) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  83 |     fn clear_nickname_deltas_for(&self, uid: FriendId) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  92 |     pub fn set_nickname<S: Into<String>>(
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 115 |     pub fn get_nickname(&self, other: UID) -> Result<Option<String>, RelationError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 134 |     pub fn contains(&self, other: UID) -> Result<bool, RelationError> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 150 |     pub fn set_base_from_sorted(&self, sorted_unique: &[FriendId]) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 181 |     pub fn add(&self, other: UID) -> Result<bool, RelationError> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 200 |     pub fn add_with_nickname<S: Into<String>>(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 217 |     pub fn remove(&self, other: UID) -> Result<bool, RelationError> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 241 |     pub fn snapshot_all(&self) -> Vec<FriendId> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 292 |     pub fn snapshot_all_detailed(&self) -> Vec<(FriendId, Option<String>)> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 315 |     pub fn get_page(&self, page: usize, page_size: usize) -> Vec<FriendId> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 326 |     pub fn get_page_detailed(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 341 |     pub fn online_with_global(&self, global_online: &RB64) -> Vec<FriendId> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 354 |     pub fn maybe_compact(&self, add_thresh: usize, del_thresh: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 409 |     pub fn base_len(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 413 |     pub fn delta_add_len(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 417 |     pub fn delta_del_len(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 421 |     pub fn nickname_add_len(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 425 |     pub fn nickname_del_len(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `rt` and `persist` are never read
[INFO] [stdout]   --> friend_service/src/hot_shard_store.rs:46:5
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub struct HotShardStore<K, V>
[INFO] [stdout]    |            ------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 46 |     rt: Handle,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 47 |     persist: Option<PersistFn<K, V>>,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `insert_cold`, `contains_key`, `len`, and `hot_cache` are never used
[INFO] [stdout]    --> friend_service/src/hot_shard_store.rs:88:12
[INFO] [stdout]     |
[INFO] [stdout]  50 | / impl<K, V> HotShardStore<K, V>
[INFO] [stdout]  51 | | where
[INFO] [stdout]  52 | |     K: Eq + Hash + Clone + Send + Sync + 'static,
[INFO] [stdout]  53 | |     V: Clone + Send + Sync + 'static,
[INFO] [stdout]     | |_____________________________________- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  88 |       pub fn insert_cold(&self, key: K, value: V) {
[INFO] [stdout]     |              ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |       pub fn contains_key(&self, key: &K) -> bool {
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 117 |       pub fn len(&self) -> usize {
[INFO] [stdout]     |              ^^^
[INFO] [stdout] ...
[INFO] [stdout] 135 |       pub fn hot_cache(&self) -> &SegmentedCache<K, ()> {
[INFO] [stdout]     |              ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `persist` is never used
[INFO] [stdout]    --> friend_service/src/hot_shard_store.rs:248:12
[INFO] [stdout]     |
[INFO] [stdout] 208 | / impl<K, V> Builder<K, V>
[INFO] [stdout] 209 | | where
[INFO] [stdout] 210 | |     K: Eq + Hash + Clone + Send + Sync + 'static,
[INFO] [stdout] 211 | |     V: Clone + Send + Sync + 'static,
[INFO] [stdout]     | |_____________________________________- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 248 |       pub fn persist(mut self, persist: PersistFn<K, V>) -> Self {
[INFO] [stdout]     |              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `with_chunk` are never used
[INFO] [stdout]   --> friend_service/src/store/mysql.rs:61:12
[INFO] [stdout]    |
[INFO] [stdout] 59 | impl FriendStorage {
[INFO] [stdout]    | ------------------ associated items in this implementation
[INFO] [stdout] 60 |     /// 使用全局连接池
[INFO] [stdout] 61 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 74 |     pub fn with_chunk(mut self, n: usize) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Executor`
[INFO] [stdout]  --> group_service/src/profile/mysql_storage.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | use sqlx::{Executor, Row};
[INFO] [stdout]   |            ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> friend_service/src/db/elias_fano.rs:144:13
[INFO] [stdout]     |
[INFO] [stdout] 144 |         let mut pos_global: usize;
[INFO] [stdout]     |             ----^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `consumer`
[INFO] [stdout]   --> app_socket/src/server/kafka_customer.rs:88:74
[INFO] [stdout]    |
[INFO] [stdout] 88 |         let _ = start_consumer(&broker, &group_id, &topics, move |owned, consumer| {
[INFO] [stdout]    |                                                                          ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_consumer`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `consumer`
[INFO] [stdout]   --> app_socket/src/server/kafka_customer.rs:88:74
[INFO] [stdout]    |
[INFO] [stdout] 88 |         let _ = start_consumer(&broker, &group_id, &topics, move |owned, consumer| {
[INFO] [stdout]    |                                                                          ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_consumer`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Executor`
[INFO] [stdout]  --> group_service/src/profile/mysql_storage.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | use sqlx::{Executor, Row};
[INFO] [stdout]   |            ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `touch`, `is_hot`, `warmup`, and `shard_count` are never used
[INFO] [stdout]    --> group_service/src/hot_cold.rs:66:12
[INFO] [stdout]     |
[INFO] [stdout]  64 | impl<S: GroupStorage> HotColdFacade<S> {
[INFO] [stdout]     | -------------------------------------- associated items in this implementation
[INFO] [stdout]  65 |     /// 旧签名：快速构造（保留兼容）
[INFO] [stdout]  66 |     pub fn new(map: Arc<ShardMap>, storage: Arc<S>, hot_capacity: u64, hot_tti_secs: u64) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 126 |     pub fn touch(&self, gid: GroupId) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 131 |     pub fn is_hot(&self, gid: GroupId) -> bool {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 136 |     pub async fn warmup(&self, gids: &[GroupId]) {
[INFO] [stdout]     |                  ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 352 |     pub fn shard_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> group_service/src/member/list_wrapper.rs:128:12
[INFO] [stdout]     |
[INFO] [stdout]  16 | impl MemberListWrapper {
[INFO] [stdout]     | ---------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 128 |     pub fn add_many(&self, list: Vec<MemberRef>) -> Result<(), MemberListError> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 208 |     pub fn get_nickname(&self, uid: UID) -> Result<Option<String>, MemberListError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 215 |     pub fn get_role(&self, uid: UID) -> Result<GroupRoleType, MemberListError> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 223 |     pub fn is_owner(&self, uid: UID) -> Result<bool, MemberListError> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 229 |     pub fn owner_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 322 |     pub fn contains(&self, uid: UID) -> Result<bool, MemberListError> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 328 |     pub fn clear(&self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `per_group_shard` is never read
[INFO] [stdout]   --> group_service/src/member/shard_map.rs:38:5
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub struct ShardMap {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 38 |     per_group_shard: usize,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ShardMap` 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 `shard_count`, `get_all_arc`, and `set_page_size_bounds` are never used
[INFO] [stdout]    --> group_service/src/member/shard_map.rs:95:12
[INFO] [stdout]     |
[INFO] [stdout]  52 | impl ShardMap {
[INFO] [stdout]     | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  95 |     pub fn shard_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 298 |     pub fn get_all_arc(&self, gid: GroupId) -> Option<Arc<[MemberRef]>> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 367 |     pub fn set_page_size_bounds(&mut self, min_size: usize, max_size: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `invalidate` and `touch` are never used
[INFO] [stdout]   --> group_service/src/profile/cache.rs:92:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl<S: GroupProfileStorage> GroupProfileCache<S> {
[INFO] [stdout]    | ------------------------------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 92 |     pub fn invalidate(&self, gid: i64) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 96 |     pub fn touch(&self, gid: i64) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `with_chunk_size` and `stream_all_members` are never used
[INFO] [stdout]    --> group_service/src/store/mysql.rs:32:12
[INFO] [stdout]     |
[INFO] [stdout]  22 | impl MySqlStore {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  32 |     pub fn with_chunk_size(mut self, n: usize) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 108 |     pub async fn stream_all_members<F>(&self, gid: GroupId, mut handle: F) -> Result<()>
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> friend_service/src/store/mysql.rs:160:13
[INFO] [stdout]     |
[INFO] [stdout] 160 |         let mut tx = self
[INFO] [stdout]     |             ----^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `touch`, `is_hot`, `warmup`, and `shard_count` are never used
[INFO] [stdout]    --> group_service/src/hot_cold.rs:66:12
[INFO] [stdout]     |
[INFO] [stdout]  64 | impl<S: GroupStorage> HotColdFacade<S> {
[INFO] [stdout]     | -------------------------------------- associated items in this implementation
[INFO] [stdout]  65 |     /// 旧签名：快速构造（保留兼容）
[INFO] [stdout]  66 |     pub fn new(map: Arc<ShardMap>, storage: Arc<S>, hot_capacity: u64, hot_tti_secs: u64) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 126 |     pub fn touch(&self, gid: GroupId) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 131 |     pub fn is_hot(&self, gid: GroupId) -> bool {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 136 |     pub async fn warmup(&self, gids: &[GroupId]) {
[INFO] [stdout]     |                  ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 352 |     pub fn shard_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> group_service/src/member/list_wrapper.rs:128:12
[INFO] [stdout]     |
[INFO] [stdout]  16 | impl MemberListWrapper {
[INFO] [stdout]     | ---------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 128 |     pub fn add_many(&self, list: Vec<MemberRef>) -> Result<(), MemberListError> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 208 |     pub fn get_nickname(&self, uid: UID) -> Result<Option<String>, MemberListError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 215 |     pub fn get_role(&self, uid: UID) -> Result<GroupRoleType, MemberListError> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 223 |     pub fn is_owner(&self, uid: UID) -> Result<bool, MemberListError> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 229 |     pub fn owner_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 322 |     pub fn contains(&self, uid: UID) -> Result<bool, MemberListError> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 328 |     pub fn clear(&self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `per_group_shard` is never read
[INFO] [stdout]   --> group_service/src/member/shard_map.rs:38:5
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub struct ShardMap {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 38 |     per_group_shard: usize,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ShardMap` 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 `shard_count`, `get_all_arc`, and `set_page_size_bounds` are never used
[INFO] [stdout]    --> group_service/src/member/shard_map.rs:95:12
[INFO] [stdout]     |
[INFO] [stdout]  52 | impl ShardMap {
[INFO] [stdout]     | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  95 |     pub fn shard_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 298 |     pub fn get_all_arc(&self, gid: GroupId) -> Option<Arc<[MemberRef]>> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 367 |     pub fn set_page_size_bounds(&mut self, min_size: usize, max_size: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `invalidate` and `touch` are never used
[INFO] [stdout]   --> group_service/src/profile/cache.rs:92:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl<S: GroupProfileStorage> GroupProfileCache<S> {
[INFO] [stdout]    | ------------------------------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 92 |     pub fn invalidate(&self, gid: i64) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 96 |     pub fn touch(&self, gid: i64) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `with_chunk_size` and `stream_all_members` are never used
[INFO] [stdout]    --> group_service/src/store/mysql.rs:32:12
[INFO] [stdout]     |
[INFO] [stdout]  22 | impl MySqlStore {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  32 |     pub fn with_chunk_size(mut self, n: usize) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 108 |     pub async fn stream_all_members<F>(&self, gid: GroupId, mut handle: F) -> Result<()>
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_schema_from_ddl` is never used
[INFO] [stdout]  --> friend_service/src/db/mod.rs:9:14
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub async fn apply_schema_from_ddl(pool: &Arc<MySqlPool>, ddl: &str) -> Result<()> {
[INFO] [stdout]   |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `EliasFano` is never constructed
[INFO] [stdout]  --> friend_service/src/db/elias_fano.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct EliasFano {
[INFO] [stdout]   |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> friend_service/src/db/elias_fano.rs:17:12
[INFO] [stdout]     |
[INFO] [stdout]  15 | impl EliasFano {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout]  16 |     /// 由**严格递增**的去重数组构建；U 取 `max(x)+1`
[INFO] [stdout]  17 |     pub fn from_sorted(sorted: &[u64]) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  79 |     pub fn len(&self) -> usize {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  83 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  87 |     pub fn max_value(&self) -> u64 {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  92 |     pub fn iter(&self) -> EliasFanoIter<'_> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 108 |     pub fn contains(&self, target: u64) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 122 |     pub fn to_vec(&self) -> Vec<u64> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `EliasFanoIter` is never constructed
[INFO] [stdout]    --> friend_service/src/db/elias_fano.rs:127:12
[INFO] [stdout]     |
[INFO] [stdout] 127 | pub struct EliasFanoIter<'a> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `FriendId` is never used
[INFO] [stdout]  --> friend_service/src/db/friend_list_ef.rs:9:10
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub type FriendId = u64;
[INFO] [stdout]   |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `RelationError` is never used
[INFO] [stdout]   --> friend_service/src/db/friend_list_ef.rs:12:10
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub enum RelationError {
[INFO] [stdout]    |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FriendListEf` is never constructed
[INFO] [stdout]   --> friend_service/src/db/friend_list_ef.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub struct FriendListEf {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> friend_service/src/db/friend_list_ef.rs:51:12
[INFO] [stdout]     |
[INFO] [stdout]  49 | impl FriendListEf {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout]  50 |     #[inline]
[INFO] [stdout]  51 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  66 |     fn smallvec_remove_one(v: &mut SmallVec<[FriendId; 8]>, x: FriendId) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  77 |     fn smallvec_contains(v: &SmallVec<[FriendId; 8]>, x: FriendId) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  83 |     fn clear_nickname_deltas_for(&self, uid: FriendId) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  92 |     pub fn set_nickname<S: Into<String>>(
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 115 |     pub fn get_nickname(&self, other: UID) -> Result<Option<String>, RelationError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 134 |     pub fn contains(&self, other: UID) -> Result<bool, RelationError> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 150 |     pub fn set_base_from_sorted(&self, sorted_unique: &[FriendId]) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 181 |     pub fn add(&self, other: UID) -> Result<bool, RelationError> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 200 |     pub fn add_with_nickname<S: Into<String>>(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 217 |     pub fn remove(&self, other: UID) -> Result<bool, RelationError> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 241 |     pub fn snapshot_all(&self) -> Vec<FriendId> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 292 |     pub fn snapshot_all_detailed(&self) -> Vec<(FriendId, Option<String>)> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 315 |     pub fn get_page(&self, page: usize, page_size: usize) -> Vec<FriendId> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 326 |     pub fn get_page_detailed(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 341 |     pub fn online_with_global(&self, global_online: &RB64) -> Vec<FriendId> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 354 |     pub fn maybe_compact(&self, add_thresh: usize, del_thresh: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 409 |     pub fn base_len(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 413 |     pub fn delta_add_len(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 417 |     pub fn delta_del_len(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 421 |     pub fn nickname_add_len(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 425 |     pub fn nickname_del_len(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `rt` and `persist` are never read
[INFO] [stdout]   --> friend_service/src/hot_shard_store.rs:46:5
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub struct HotShardStore<K, V>
[INFO] [stdout]    |            ------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 46 |     rt: Handle,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 47 |     persist: Option<PersistFn<K, V>>,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `insert_cold`, `contains_key`, `len`, and `hot_cache` are never used
[INFO] [stdout]    --> friend_service/src/hot_shard_store.rs:88:12
[INFO] [stdout]     |
[INFO] [stdout]  50 | / impl<K, V> HotShardStore<K, V>
[INFO] [stdout]  51 | | where
[INFO] [stdout]  52 | |     K: Eq + Hash + Clone + Send + Sync + 'static,
[INFO] [stdout]  53 | |     V: Clone + Send + Sync + 'static,
[INFO] [stdout]     | |_____________________________________- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  88 |       pub fn insert_cold(&self, key: K, value: V) {
[INFO] [stdout]     |              ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |       pub fn contains_key(&self, key: &K) -> bool {
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 117 |       pub fn len(&self) -> usize {
[INFO] [stdout]     |              ^^^
[INFO] [stdout] ...
[INFO] [stdout] 135 |       pub fn hot_cache(&self) -> &SegmentedCache<K, ()> {
[INFO] [stdout]     |              ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `persist` is never used
[INFO] [stdout]    --> friend_service/src/hot_shard_store.rs:248:12
[INFO] [stdout]     |
[INFO] [stdout] 208 | / impl<K, V> Builder<K, V>
[INFO] [stdout] 209 | | where
[INFO] [stdout] 210 | |     K: Eq + Hash + Clone + Send + Sync + 'static,
[INFO] [stdout] 211 | |     V: Clone + Send + Sync + 'static,
[INFO] [stdout]     | |_____________________________________- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 248 |       pub fn persist(mut self, persist: PersistFn<K, V>) -> Self {
[INFO] [stdout]     |              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `with_chunk` are never used
[INFO] [stdout]   --> friend_service/src/store/mysql.rs:61:12
[INFO] [stdout]    |
[INFO] [stdout] 59 | impl FriendStorage {
[INFO] [stdout]    | ------------------ associated items in this implementation
[INFO] [stdout] 60 |     /// 使用全局连接池
[INFO] [stdout] 61 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 74 |     pub fn with_chunk(mut self, n: usize) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_message_by_id` is never used
[INFO] [stdout]    --> msg_friend/src/dao/messages.rs:129:14
[INFO] [stdout]     |
[INFO] [stdout] 129 | pub async fn get_message_by_id(
[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 `mark_delivered` is never used
[INFO] [stdout]    --> msg_friend/src/dao/messages.rs:157:14
[INFO] [stdout]     |
[INFO] [stdout] 157 | pub async fn mark_delivered(_pool: &Pool<MySql>, _msg_id: i64, _ts: i64) -> Result<u64> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mark_read` is never used
[INFO] [stdout]    --> msg_friend/src/dao/messages.rs:162:14
[INFO] [stdout]     |
[INFO] [stdout] 162 | pub async fn mark_read(_pool: &Pool<MySql>, _msg_id: i64, _ts: i64) -> Result<u64> {
[INFO] [stdout]     |              ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `recall_message` is never used
[INFO] [stdout]    --> msg_friend/src/dao/messages.rs:167:14
[INFO] [stdout]     |
[INFO] [stdout] 167 | pub async fn recall_message(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `copy_message_as_forward` is never used
[INFO] [stdout]    --> msg_friend/src/dao/messages.rs:177:14
[INFO] [stdout]     |
[INFO] [stdout] 177 | pub async fn copy_message_as_forward(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `kafka`, `shard_index`, and `shard_total` are never read
[INFO] [stdout]   --> msg_friend/src/server/mod.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub struct Services {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 32 |     kafka: Option<Arc<KafkaInstanceService>>,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 33 |     shard_index: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 34 |     shard_total: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Services` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `kafka`, `shard_index`, and `shard_total` are never used
[INFO] [stdout]   --> msg_friend/src/server/mod.rs:46:12
[INFO] [stdout]    |
[INFO] [stdout] 37 | impl Services {
[INFO] [stdout]    | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 46 |     pub fn kafka(&self) -> Option<&Arc<KafkaInstanceService>> {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 50 |     pub fn shard_index(&self) -> u32 {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 54 |     pub fn shard_total(&self) -> u32 {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_message_by_id` is never used
[INFO] [stdout]    --> msg_friend/src/dao/messages.rs:129:14
[INFO] [stdout]     |
[INFO] [stdout] 129 | pub async fn get_message_by_id(
[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 `mark_delivered` is never used
[INFO] [stdout]    --> msg_friend/src/dao/messages.rs:157:14
[INFO] [stdout]     |
[INFO] [stdout] 157 | pub async fn mark_delivered(_pool: &Pool<MySql>, _msg_id: i64, _ts: i64) -> Result<u64> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mark_read` is never used
[INFO] [stdout]    --> msg_friend/src/dao/messages.rs:162:14
[INFO] [stdout]     |
[INFO] [stdout] 162 | pub async fn mark_read(_pool: &Pool<MySql>, _msg_id: i64, _ts: i64) -> Result<u64> {
[INFO] [stdout]     |              ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `recall_message` is never used
[INFO] [stdout]    --> msg_friend/src/dao/messages.rs:167:14
[INFO] [stdout]     |
[INFO] [stdout] 167 | pub async fn recall_message(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `copy_message_as_forward` is never used
[INFO] [stdout]    --> msg_friend/src/dao/messages.rs:177:14
[INFO] [stdout]     |
[INFO] [stdout] 177 | pub async fn copy_message_as_forward(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `kafka`, `shard_index`, and `shard_total` are never read
[INFO] [stdout]   --> msg_friend/src/server/mod.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub struct Services {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 32 |     kafka: Option<Arc<KafkaInstanceService>>,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 33 |     shard_index: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 34 |     shard_total: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Services` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `kafka`, `shard_index`, and `shard_total` are never used
[INFO] [stdout]   --> msg_friend/src/server/mod.rs:46:12
[INFO] [stdout]    |
[INFO] [stdout] 37 | impl Services {
[INFO] [stdout]    | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 46 |     pub fn kafka(&self) -> Option<&Arc<KafkaInstanceService>> {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 50 |     pub fn shard_index(&self) -> u32 {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 54 |     pub fn shard_total(&self) -> u32 {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `first` is never read
[INFO] [stdout]    --> user_service/src/service/user_service_impl.rs:776:13
[INFO] [stdout]     |
[INFO] [stdout] 776 |             first = false;
[INFO] [stdout]     |             ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StatsSnapshot` is never constructed
[INFO] [stdout]   --> user_service/src/hot_cold.rs:74:12
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub struct StatsSnapshot {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `snapshot` is never used
[INFO] [stdout]    --> user_service/src/hot_cold.rs:112:8
[INFO] [stdout]     |
[INFO] [stdout] 104 | impl Stats {
[INFO] [stdout]     | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 112 |     fn snapshot(&self) -> StatsSnapshot {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `stats` and `invalidate_by_id` are never used
[INFO] [stdout]    --> user_service/src/hot_cold.rs:394:12
[INFO] [stdout]     |
[INFO] [stdout] 358 | / impl<R, D, N> ClientHot<R, D, N>
[INFO] [stdout] 359 | | where
[INFO] [stdout] 360 | |     R: ClientReadRepo + Send + Sync + 'static,
[INFO] [stdout] 361 | |     D: DirectoryReadRepo + Send + Sync + 'static,
[INFO] [stdout] 362 | |     N: Normalizer,
[INFO] [stdout]     | |__________________- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 394 |       pub fn stats(&self) -> StatsSnapshot {
[INFO] [stdout]     |              ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 765 |       pub async fn invalidate_by_id(&self, id: i64) {
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> user_service/src/online_store.rs:53:12
[INFO] [stdout]     |
[INFO] [stdout]  35 | impl OnlineStore {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  53 |     pub fn shard_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  96 |     pub fn remove(&self, uid: UID) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 138 |     pub fn insert_many<I>(&self, ids: I)
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 146 |     pub fn remove_many<I>(&self, ids: I)
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 190 |     pub fn len(&self) -> u64 {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 198 |     pub fn len_by_shard(&self, idx: usize) -> u64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 208 |     pub fn with_shard_map<F, R>(&self, idx: usize, f: F) -> Option<R>
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 219 |     pub fn shard_snapshot(&self, idx: usize) -> Option<Vec<u64>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `first` is never read
[INFO] [stdout]    --> user_service/src/service/user_service_impl.rs:776:13
[INFO] [stdout]     |
[INFO] [stdout] 776 |             first = false;
[INFO] [stdout]     |             ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StatsSnapshot` is never constructed
[INFO] [stdout]   --> user_service/src/hot_cold.rs:74:12
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub struct StatsSnapshot {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `snapshot` is never used
[INFO] [stdout]    --> user_service/src/hot_cold.rs:112:8
[INFO] [stdout]     |
[INFO] [stdout] 104 | impl Stats {
[INFO] [stdout]     | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 112 |     fn snapshot(&self) -> StatsSnapshot {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `stats` and `invalidate_by_id` are never used
[INFO] [stdout]    --> user_service/src/hot_cold.rs:394:12
[INFO] [stdout]     |
[INFO] [stdout] 358 | / impl<R, D, N> ClientHot<R, D, N>
[INFO] [stdout] 359 | | where
[INFO] [stdout] 360 | |     R: ClientReadRepo + Send + Sync + 'static,
[INFO] [stdout] 361 | |     D: DirectoryReadRepo + Send + Sync + 'static,
[INFO] [stdout] 362 | |     N: Normalizer,
[INFO] [stdout]     | |__________________- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 394 |       pub fn stats(&self) -> StatsSnapshot {
[INFO] [stdout]     |              ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 765 |       pub async fn invalidate_by_id(&self, id: i64) {
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> user_service/src/online_store.rs:53:12
[INFO] [stdout]     |
[INFO] [stdout]  35 | impl OnlineStore {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  53 |     pub fn shard_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  96 |     pub fn remove(&self, uid: UID) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 138 |     pub fn insert_many<I>(&self, ids: I)
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 146 |     pub fn remove_many<I>(&self, ids: I)
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 190 |     pub fn len(&self) -> u64 {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 198 |     pub fn len_by_shard(&self, idx: usize) -> u64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 208 |     pub fn with_shard_map<F, R>(&self, idx: usize, f: F) -> Option<R>
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 219 |     pub fn shard_snapshot(&self, idx: usize) -> Option<Vec<u64>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `normalize_optional_string` is never used
[INFO] [stdout]   --> app_api/src/handler/user_handler.rs:20:4
[INFO] [stdout]    |
[INFO] [stdout] 20 | fn normalize_optional_string(value: String) -> Option<String> {
[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 `user_entity_to_profile` is never used
[INFO] [stdout]    --> app_api/src/handler/user_handler.rs:174:4
[INFO] [stdout]     |
[INFO] [stdout] 174 | fn user_entity_to_profile(entity: UserEntity) -> UserProfileResult {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `normalize_optional_string` is never used
[INFO] [stdout]   --> app_api/src/handler/user_handler.rs:20:4
[INFO] [stdout]    |
[INFO] [stdout] 20 | fn normalize_optional_string(value: String) -> Option<String> {
[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 `user_entity_to_profile` is never used
[INFO] [stdout]    --> app_api/src/handler/user_handler.rs:174:4
[INFO] [stdout]     |
[INFO] [stdout] 174 | fn user_entity_to_profile(entity: UserEntity) -> UserProfileResult {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 3m 19s
[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 3`
[INFO] running `Command { std: "docker" "inspect" "6bb9543469f4fb519f8f3b18c5e0c5aec392b1f7558ae89b00efa12a7dba1f93", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6bb9543469f4fb519f8f3b18c5e0c5aec392b1f7558ae89b00efa12a7dba1f93", kill_on_drop: false }`
[INFO] [stdout] 6bb9543469f4fb519f8f3b18c5e0c5aec392b1f7558ae89b00efa12a7dba1f93
