[INFO] cloning repository https://github.com/Wysten-Hgg/RainbowAI [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Wysten-Hgg/RainbowAI" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FWysten-Hgg%2FRainbowAI", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FWysten-Hgg%2FRainbowAI'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 5fa2d89e5fa9657701ef485fe296bf221fe8c390 [INFO] checking Wysten-Hgg/RainbowAI against master#42b384ec0dfcd528d99a4db0a337d9188a9eecaa for pr-133502-16 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FWysten-Hgg%2FRainbowAI" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/Wysten-Hgg/RainbowAI [INFO] finished tweaking git repo https://github.com/Wysten-Hgg/RainbowAI [INFO] tweaked toml for git repo https://github.com/Wysten-Hgg/RainbowAI written to /workspace/builds/worker-4-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/Wysten-Hgg/RainbowAI on toolchain 42b384ec0dfcd528d99a4db0a337d9188a9eecaa [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+42b384ec0dfcd528d99a4db0a337d9188a9eecaa" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/Wysten-Hgg/RainbowAI 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" "+42b384ec0dfcd528d99a4db0a337d9188a9eecaa" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded wasmtimer v0.2.1 [INFO] [stderr] Downloaded trice v0.4.0 [INFO] [stderr] Downloaded ulid v1.2.1 [INFO] [stderr] Downloaded fuzzy-matcher v0.3.7 [INFO] [stderr] Downloaded storekey v0.5.0 [INFO] [stderr] Downloaded axum-macros v0.4.2 [INFO] [stderr] Downloaded futures-buffered v0.2.11 [INFO] [stderr] Downloaded simple_asn1 v0.6.3 [INFO] [stderr] Downloaded cipher v0.3.0 [INFO] [stderr] Downloaded axum-core v0.4.5 [INFO] [stderr] Downloaded bcrypt v0.10.1 [INFO] [stderr] Downloaded jsonwebtoken v9.3.1 [INFO] [stderr] Downloaded cordyceps v0.3.3 [INFO] [stderr] Downloaded snafu v0.7.5 [INFO] [stderr] Downloaded geographiclib-rs v0.2.4 [INFO] [stderr] Downloaded generator v0.8.4 [INFO] [stderr] Downloaded cedar-policy v2.4.2 [INFO] [stderr] Downloaded geo v0.27.0 [INFO] [stderr] Downloaded rust_decimal v1.37.1 [INFO] [stderr] Downloaded robust v1.1.0 [INFO] [stderr] Downloaded rust-stemmers v1.2.0 [INFO] [stderr] Downloaded openssl-sys v0.9.107 [INFO] [stderr] Downloaded hyper-util v0.1.11 [INFO] [stderr] Downloaded roaring v0.10.12 [INFO] [stderr] Downloaded lettre v0.10.4 [INFO] [stderr] Downloaded deunicode v1.6.1 [INFO] [stderr] Downloaded axum v0.7.9 [INFO] [stderr] Downloaded winnow v0.7.6 [INFO] [stderr] Downloaded cedar-policy-core v2.4.2 [INFO] [stderr] Downloaded any_ascii v0.3.2 [INFO] [stderr] Downloaded geo v0.26.0 [INFO] [stderr] Downloaded object_store v0.8.0 [INFO] [stderr] Downloaded serde_with v3.12.0 [INFO] [stderr] Downloaded miette v5.10.0 [INFO] [stderr] Downloaded cedar-policy-validator v2.4.2 [INFO] [stderr] Downloaded unicode-security v0.1.2 [INFO] [stderr] Downloaded lexicmp v0.1.0 [INFO] [stderr] Downloaded fst v0.4.7 [INFO] [stderr] Downloaded spade v2.13.1 [INFO] [stderr] Downloaded windows-core v0.61.0 [INFO] [stderr] Downloaded geo-types v0.7.16 [INFO] [stderr] Downloaded rstar v0.11.0 [INFO] [stderr] Downloaded stacker v0.1.20 [INFO] [stderr] Downloaded earcutr v0.4.3 [INFO] [stderr] Downloaded email-encoding v0.2.1 [INFO] [stderr] Downloaded bcrypt v0.15.1 [INFO] [stderr] Downloaded pico-args v0.5.0 [INFO] [stderr] Downloaded string_cache v0.8.9 [INFO] [stderr] Downloaded rustc_lexer v0.1.0 [INFO] [stderr] Downloaded psm v0.1.25 [INFO] [stderr] Downloaded nanoid v0.4.0 [INFO] [stderr] Downloaded windows-result v0.3.2 [INFO] [stderr] Downloaded windows-strings v0.4.0 [INFO] [stderr] Downloaded float_next_after v1.0.0 [INFO] [stderr] Downloaded revision v0.7.1 [INFO] [stderr] Downloaded surrealdb-derive v0.12.0 [INFO] [stderr] Downloaded pem v2.0.1 [INFO] [stderr] Downloaded quoted_printable v0.4.8 [INFO] [stderr] Downloaded miette-derive v5.10.0 [INFO] [stderr] Downloaded unicode-script v0.5.7 [INFO] [stderr] Downloaded dmp v0.2.3 [INFO] [stderr] Downloaded revision-derive v0.7.0 [INFO] [stderr] Downloaded surrealdb-core v1.5.6 [INFO] [stderr] Downloaded blowfish v0.8.0 [INFO] [stderr] Downloaded openssl v0.10.72 [INFO] [stderr] Downloaded surrealdb-jsonwebtoken v8.3.0-surreal.1 [INFO] [stderr] Downloaded surrealdb v1.5.6 [INFO] [stderr] Downloaded zerocopy-derive v0.8.24 [INFO] [stderr] Downloaded zerocopy v0.8.24 [INFO] [stderr] Downloaded cc v1.2.19 [INFO] [stderr] Downloaded tower-http v0.4.4 [INFO] [stderr] Downloaded quick_cache v0.4.3 [INFO] [stderr] Downloaded serde_with_macros v3.12.0 [INFO] [stderr] Downloaded snafu-derive v0.7.5 [INFO] [stderr] Downloaded base64ct v1.7.3 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+42b384ec0dfcd528d99a4db0a337d9188a9eecaa" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 4167ffc822ef06a7639f6aa71ae5770d13dc9a0ad8ebd3e3170ae8cae65963d7 [INFO] running `Command { std: "docker" "start" "-a" "4167ffc822ef06a7639f6aa71ae5770d13dc9a0ad8ebd3e3170ae8cae65963d7", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "4167ffc822ef06a7639f6aa71ae5770d13dc9a0ad8ebd3e3170ae8cae65963d7", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "4167ffc822ef06a7639f6aa71ae5770d13dc9a0ad8ebd3e3170ae8cae65963d7", kill_on_drop: false }` [INFO] [stdout] 4167ffc822ef06a7639f6aa71ae5770d13dc9a0ad8ebd3e3170ae8cae65963d7 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+42b384ec0dfcd528d99a4db0a337d9188a9eecaa" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 221c591a428e56ed99dcb3a06d7a49eb82507fafb0a8ba121d43ee16e8936e44 [INFO] running `Command { std: "docker" "start" "-a" "221c591a428e56ed99dcb3a06d7a49eb82507fafb0a8ba121d43ee16e8936e44", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.172 [INFO] [stderr] Compiling serde v1.0.219 [INFO] [stderr] Checking smallvec v1.15.0 [INFO] [stderr] Compiling cc v1.2.19 [INFO] [stderr] Checking bytes v1.10.1 [INFO] [stderr] Compiling libm v0.2.11 [INFO] [stderr] Checking log v0.4.27 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling syn v2.0.100 [INFO] [stderr] Checking foldhash v0.1.5 [INFO] [stderr] Checking allocator-api2 v0.2.21 [INFO] [stderr] Compiling icu_locid_transform_data v1.5.1 [INFO] [stderr] Checking litemap v0.7.5 [INFO] [stderr] Compiling zerocopy v0.8.24 [INFO] [stderr] Compiling icu_properties_data v1.5.1 [INFO] [stderr] Compiling semver v1.0.26 [INFO] [stderr] Checking digest v0.10.7 [INFO] [stderr] Checking tracing-core v0.1.33 [INFO] [stderr] Checking either v1.15.0 [INFO] [stderr] Compiling serde_json v1.0.140 [INFO] [stderr] Compiling icu_normalizer_data v1.5.1 [INFO] [stderr] Compiling regex-syntax v0.8.5 [INFO] [stderr] Compiling scopeguard v1.2.0 [INFO] [stderr] Compiling syn v1.0.109 [INFO] [stderr] Compiling crunchy v0.2.3 [INFO] [stderr] Compiling lock_api v0.4.12 [INFO] [stderr] Compiling siphasher v1.0.1 [INFO] [stderr] Checking hashbrown v0.15.2 [INFO] [stderr] Compiling rustc_version v0.4.1 [INFO] [stderr] Compiling getrandom v0.3.2 [INFO] [stderr] Compiling tiny-keccak v2.0.2 [INFO] [stderr] Compiling phf_shared v0.11.3 [INFO] [stderr] Compiling indexmap v2.9.0 [INFO] [stderr] Checking http v0.2.12 [INFO] [stderr] Compiling bit-vec v0.6.3 [INFO] [stderr] Compiling heapless v0.7.17 [INFO] [stderr] Compiling fixedbitset v0.4.2 [INFO] [stderr] Compiling precomputed-hash v0.1.1 [INFO] [stderr] Compiling dirs-sys-next v0.1.2 [INFO] [stderr] Compiling parking_lot_core v0.9.10 [INFO] [stderr] Compiling new_debug_unreachable v1.0.6 [INFO] [stderr] Compiling same-file v1.0.6 [INFO] [stderr] Compiling ena v0.14.3 [INFO] [stderr] Compiling walkdir v2.5.0 [INFO] [stderr] Compiling itertools v0.11.0 [INFO] [stderr] Checking regex-automata v0.4.9 [INFO] [stderr] Compiling bit-set v0.5.3 [INFO] [stderr] Compiling petgraph v0.6.5 [INFO] [stderr] Compiling parking_lot v0.12.3 [INFO] [stderr] Compiling dirs-next v2.0.0 [INFO] [stderr] Compiling ring v0.17.14 [INFO] [stderr] Compiling term v0.7.0 [INFO] [stderr] Compiling psm v0.1.25 [INFO] [stderr] Compiling openssl-sys v0.9.107 [INFO] [stderr] Checking getrandom v0.2.15 [INFO] [stderr] Checking mio v1.0.3 [INFO] [stderr] Checking socket2 v0.5.9 [INFO] [stderr] Checking signal-hook-registry v1.4.2 [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Compiling ascii-canvas v3.0.0 [INFO] [stderr] Compiling string_cache v0.8.9 [INFO] [stderr] Checking hash32 v0.2.1 [INFO] [stderr] Compiling pico-args v0.5.0 [INFO] [stderr] Compiling unicode-xid v0.2.6 [INFO] [stderr] Compiling stacker v0.1.20 [INFO] [stderr] Checking unicode-normalization v0.1.24 [INFO] [stderr] Checking http v1.3.1 [INFO] [stderr] Checking inout v0.1.4 [INFO] [stderr] Compiling proc-macro-error-attr v1.0.4 [INFO] [stderr] Compiling crossbeam-utils v0.8.21 [INFO] [stderr] Compiling thiserror v2.0.12 [INFO] [stderr] Checking cipher v0.4.4 [INFO] [stderr] Checking ppv-lite86 v0.2.21 [INFO] [stderr] Checking num-integer v0.1.46 [INFO] [stderr] Checking approx v0.5.1 [INFO] [stderr] Compiling proc-macro-error v1.0.4 [INFO] [stderr] Checking rstar v0.11.0 [INFO] [stderr] Checking unicode-width v0.1.14 [INFO] [stderr] Compiling doc-comment v0.3.3 [INFO] [stderr] Checking robust v1.1.0 [INFO] [stderr] Checking arbitrary v1.4.1 [INFO] [stderr] Checking base64ct v1.7.3 [INFO] [stderr] Checking http-body v1.0.1 [INFO] [stderr] Checking rustc_lexer v0.1.0 [INFO] [stderr] Checking num-bigint v0.4.6 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking password-hash v0.5.0 [INFO] [stderr] Checking http-body v0.4.6 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Checking rand_core v0.9.3 [INFO] [stderr] Checking regex v1.11.1 [INFO] [stderr] Checking lalrpop-util v0.20.2 [INFO] [stderr] Compiling ring v0.16.20 [INFO] [stderr] Checking geographiclib-rs v0.2.4 [INFO] [stderr] Checking itertools v0.10.5 [INFO] [stderr] Compiling ahash v0.8.11 [INFO] [stderr] Checking float_next_after v1.0.0 [INFO] [stderr] Checking bitflags v2.9.0 [INFO] [stderr] Compiling rust_decimal v1.37.1 [INFO] [stderr] Compiling ref-cast v1.0.24 [INFO] [stderr] Checking iana-time-zone v0.1.63 [INFO] [stderr] Compiling openssl v0.10.72 [INFO] [stderr] Checking unicode-script v0.5.7 [INFO] [stderr] Checking futures-lite v2.6.0 [INFO] [stderr] Compiling mime_guess v2.0.5 [INFO] [stderr] Checking unicode-security v0.1.2 [INFO] [stderr] Checking rand_chacha v0.9.0 [INFO] [stderr] Checking concurrent-queue v2.5.0 [INFO] [stderr] Checking sha2 v0.10.8 [INFO] [stderr] Checking sha1 v0.10.6 [INFO] [stderr] Checking hmac v0.12.1 [INFO] [stderr] Checking bytemuck v1.22.0 [INFO] [stderr] Compiling native-tls v0.2.14 [INFO] [stderr] Checking zerocopy v0.7.35 [INFO] [stderr] Compiling snap v1.1.1 [INFO] [stderr] Checking arrayvec v0.7.6 [INFO] [stderr] Checking earcutr v0.4.3 [INFO] [stderr] Compiling rustversion v1.0.20 [INFO] [stderr] Compiling fst v0.4.7 [INFO] [stderr] Checking pbkdf2 v0.12.2 [INFO] [stderr] Checking nom v7.1.3 [INFO] [stderr] Checking rand v0.9.0 [INFO] [stderr] Compiling rustls v0.21.12 [INFO] [stderr] Checking spade v2.13.1 [INFO] [stderr] Checking blowfish v0.9.1 [INFO] [stderr] Checking salsa20 v0.10.2 [INFO] [stderr] Checking pem v2.0.1 [INFO] [stderr] Checking blake2 v0.10.6 [INFO] [stderr] Checking nibble_vec v0.1.0 [INFO] [stderr] Checking thread_local v1.1.8 [INFO] [stderr] Compiling multer v3.1.0 [INFO] [stderr] Checking endian-type v0.1.2 [INFO] [stderr] Checking any_ascii v0.3.2 [INFO] [stderr] Checking trice v0.4.0 [INFO] [stderr] Checking psl-types v2.0.11 [INFO] [stderr] Checking diatomic-waker v0.2.3 [INFO] [stderr] Checking sync_wrapper v1.0.2 [INFO] [stderr] Checking cordyceps v0.3.3 [INFO] [stderr] Checking hashbrown v0.14.5 [INFO] [stderr] Checking addr v0.15.6 [INFO] [stderr] Checking async-executor v1.13.1 [INFO] [stderr] Checking dmp v0.2.3 [INFO] [stderr] Compiling snafu-derive v0.7.5 [INFO] [stderr] Compiling surrealdb-derive v0.12.0 [INFO] [stderr] Compiling synstructure v0.13.1 [INFO] [stderr] Compiling darling_core v0.20.11 [INFO] [stderr] Checking argon2 v0.5.3 [INFO] [stderr] Checking futures-buffered v0.2.11 [INFO] [stderr] Checking lexicmp v0.1.0 [INFO] [stderr] Checking bcrypt v0.15.1 [INFO] [stderr] Checking async-channel v1.9.0 [INFO] [stderr] Checking fuzzy-matcher v0.3.7 [INFO] [stderr] Checking scrypt v0.11.0 [INFO] [stderr] Checking quick_cache v0.4.3 [INFO] [stderr] Checking nanoid v0.4.0 [INFO] [stderr] Checking http-body-util v0.1.3 [INFO] [stderr] Checking nanorand v0.7.0 [INFO] [stderr] Checking num_cpus v1.16.0 [INFO] [stderr] Checking sct v0.7.1 [INFO] [stderr] Compiling lalrpop v0.20.2 [INFO] [stderr] Checking rustls-webpki v0.101.7 [INFO] [stderr] Checking md-5 v0.10.6 [INFO] [stderr] Checking cipher v0.3.0 [INFO] [stderr] Checking deunicode v1.6.1 [INFO] [stderr] Checking match_cfg v0.1.0 [INFO] [stderr] Checking unicode-bidi v0.3.18 [INFO] [stderr] Checking fixedbitset v0.5.7 [INFO] [stderr] Checking blowfish v0.8.0 [INFO] [stderr] Checking flume v0.11.1 [INFO] [stderr] Checking email-encoding v0.2.1 [INFO] [stderr] Checking pem v3.0.5 [INFO] [stderr] Checking socket2 v0.4.10 [INFO] [stderr] Checking hostname v0.3.1 [INFO] [stderr] Checking email_address v0.2.9 [INFO] [stderr] Checking path-clean v1.0.1 [INFO] [stderr] Checking base64 v0.13.1 [INFO] [stderr] Checking quoted_printable v0.4.8 [INFO] [stderr] Checking http-range-header v0.3.1 [INFO] [stderr] Checking bcrypt v0.10.1 [INFO] [stderr] Checking idna v0.3.0 [INFO] [stderr] Compiling serde_derive v1.0.219 [INFO] [stderr] Compiling zerofrom-derive v0.1.6 [INFO] [stderr] Compiling futures-macro v0.3.31 [INFO] [stderr] Compiling yoke-derive v0.7.5 [INFO] [stderr] Compiling zerovec-derive v0.10.3 [INFO] [stderr] Compiling tokio-macros v2.5.0 [INFO] [stderr] Compiling displaydoc v0.2.5 [INFO] [stderr] Compiling icu_provider_macros v1.5.0 [INFO] [stderr] Compiling tracing-attributes v0.1.28 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling thiserror-impl v2.0.12 [INFO] [stderr] Compiling miette-derive v5.10.0 [INFO] [stderr] Compiling async-trait v0.1.88 [INFO] [stderr] Checking tokio v1.44.2 [INFO] [stderr] Checking futures-util v0.3.31 [INFO] [stderr] Compiling openssl-macros v0.1.1 [INFO] [stderr] Compiling ref-cast-impl v1.0.24 [INFO] [stderr] Checking tracing v0.1.41 [INFO] [stderr] Checking snafu v0.7.5 [INFO] [stderr] Compiling darling_macro v0.20.11 [INFO] [stderr] Compiling pin-project-internal v1.1.10 [INFO] [stderr] Compiling async-recursion v1.1.1 [INFO] [stderr] Checking zerofrom v0.1.6 [INFO] [stderr] Compiling axum-macros v0.4.2 [INFO] [stderr] Checking tower v0.4.13 [INFO] [stderr] Compiling darling v0.20.11 [INFO] [stderr] Checking thiserror v1.0.69 [INFO] [stderr] Compiling serde_with_macros v3.12.0 [INFO] [stderr] Compiling revision-derive v0.7.0 [INFO] [stderr] Checking yoke v0.7.5 [INFO] [stderr] Checking miette v5.10.0 [INFO] [stderr] Checking simple_asn1 v0.6.3 [INFO] [stderr] Checking zerovec v0.10.4 [INFO] [stderr] Checking pin-project v1.1.10 [INFO] [stderr] Checking futures-concurrency v7.6.3 [INFO] [stderr] Checking tinystr v0.7.6 [INFO] [stderr] Checking icu_collections v1.5.0 [INFO] [stderr] Checking icu_locid v1.5.0 [INFO] [stderr] Checking icu_provider v1.5.0 [INFO] [stderr] Checking icu_locid_transform v1.5.0 [INFO] [stderr] Checking futures-executor v0.3.31 [INFO] [stderr] Checking axum-core v0.4.5 [INFO] [stderr] Checking tower-http v0.4.4 [INFO] [stderr] Checking futures v0.3.31 [INFO] [stderr] Checking tokio-util v0.7.14 [INFO] [stderr] Checking tokio-rustls v0.24.1 [INFO] [stderr] Checking hyper v1.6.0 [INFO] [stderr] Checking tokio-native-tls v0.3.1 [INFO] [stderr] Checking tower v0.5.2 [INFO] [stderr] Checking icu_properties v1.5.1 [INFO] [stderr] Checking lettre v0.10.4 [INFO] [stderr] Checking hyper-util v0.1.11 [INFO] [stderr] Checking geo-types v0.7.16 [INFO] [stderr] Checking smol_str v0.2.2 [INFO] [stderr] Checking chrono v0.4.40 [INFO] [stderr] Checking serde_urlencoded v0.7.1 [INFO] [stderr] Checking roaring v0.10.12 [INFO] [stderr] Checking uuid v1.16.0 [INFO] [stderr] Checking bincode v1.3.3 [INFO] [stderr] Checking storekey v0.5.0 [INFO] [stderr] Checking ulid v1.2.1 [INFO] [stderr] Checking rust-stemmers v1.2.0 [INFO] [stderr] Checking radix_trie v0.2.1 [INFO] [stderr] Checking serde_path_to_error v0.1.17 [INFO] [stderr] Checking h2 v0.3.26 [INFO] [stderr] Checking icu_normalizer v1.5.0 [INFO] [stderr] Checking geo v0.26.0 [INFO] [stderr] Checking geo v0.27.0 [INFO] [stderr] Checking idna_adapter v1.2.0 [INFO] [stderr] Checking idna v1.0.3 [INFO] [stderr] Checking serde_with v3.12.0 [INFO] [stderr] Checking surrealdb-jsonwebtoken v8.3.0-surreal.1 [INFO] [stderr] Checking axum v0.7.9 [INFO] [stderr] Checking jsonwebtoken v9.3.1 [INFO] [stderr] Checking url v2.5.4 [INFO] [stderr] Compiling cedar-policy-core v2.4.2 [INFO] [stderr] Checking object_store v0.8.0 [INFO] [stderr] Checking tungstenite v0.20.1 [INFO] [stderr] Checking tokio-tungstenite v0.20.1 [INFO] [stderr] Checking revision v0.7.1 [INFO] [stderr] Checking hyper v0.14.32 [INFO] [stderr] Checking hyper-rustls v0.24.2 [INFO] [stderr] Checking reqwest v0.11.27 [INFO] [stderr] Checking cedar-policy-validator v2.4.2 [INFO] [stderr] Checking cedar-policy v2.4.2 [INFO] [stderr] Checking surrealdb-core v1.5.6 [INFO] [stderr] Checking surrealdb v1.5.6 [INFO] [stderr] Checking rainbow_ai v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused imports: `Router` and `routing::post` [INFO] [stdout] --> src/routes/user.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | Router, routing::post, [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: `VipLevel` [INFO] [stdout] --> src/routes/user.rs:16:68 [INFO] [stdout] | [INFO] [stdout] 16 | models::{User, PromoterType, FrontendUserRole, VipLevelConfig, VipLevel}, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `User` [INFO] [stdout] --> src/routes/ai.rs:10:26 [INFO] [stdout] | [INFO] [stdout] 10 | models::{AI, AIType, User}, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::sync::Arc` [INFO] [stdout] --> src/routes/coupon.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use std::sync::Arc; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `BackendUserRole` [INFO] [stdout] --> src/routes/coupon.rs:12:38 [INFO] [stdout] | [INFO] [stdout] 12 | use crate::models::user::{VipStatus, BackendUserRole}; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `time::OffsetDateTime` [INFO] [stdout] --> src/routes/points.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use time::OffsetDateTime; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `TxType` [INFO] [stdout] --> src/routes/points.rs:13:58 [INFO] [stdout] | [INFO] [stdout] 13 | WalletTx, CurrencyType, Gift, GiftRecord, LuckyCard, TxType, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `User` [INFO] [stdout] --> src/routes/invite.rs:12:22 [INFO] [stdout] | [INFO] [stdout] 12 | models::{Invite, User, VipLevel}, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `User` [INFO] [stdout] --> src/routes/admin.rs:11:14 [INFO] [stdout] | [INFO] [stdout] 11 | models::{User, AuditLog, AuditAction}, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Path` [INFO] [stdout] --> src/routes/promoter.rs:2:22 [INFO] [stdout] | [INFO] [stdout] 2 | extract::{State, Path, Json}, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `CommissionStatus` and `VerificationStatus` [INFO] [stdout] --> src/routes/promoter.rs:11:19 [INFO] [stdout] | [INFO] [stdout] 11 | PromoterType, VerificationStatus, CommissionStatus [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Json`, `Router`, `State`, `http::StatusCode`, and `routing::get` [INFO] [stdout] --> src/routes/audit.rs:2:15 [INFO] [stdout] | [INFO] [stdout] 2 | extract::{State, Json}, [INFO] [stdout] | ^^^^^ ^^^^ [INFO] [stdout] 3 | http::StatusCode, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 4 | routing::get, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 5 | Router, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize` [INFO] [stdout] --> src/routes/audit.rs:7:13 [INFO] [stdout] | [INFO] [stdout] 7 | use serde::{Serialize, Deserialize}; [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::db::Database` [INFO] [stdout] --> src/routes/audit.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::db::Database; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AuditAction` and `AuditLog` [INFO] [stdout] --> src/routes/audit.rs:9:21 [INFO] [stdout] | [INFO] [stdout] 9 | use crate::models::{AuditLog, AuditAction}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::middleware::auth::AuthenticatedUser` [INFO] [stdout] --> src/routes/audit.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use crate::middleware::auth::AuthenticatedUser; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Serialize` [INFO] [stdout] --> src/routes/im.rs:8:26 [INFO] [stdout] | [INFO] [stdout] 8 | use serde::{Deserialize, Serialize}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `uuid::Uuid` [INFO] [stdout] --> src/routes/im.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use uuid::Uuid; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Friend`, `GroupApply`, `GroupUser`, and `Group` [INFO] [stdout] --> src/routes/im.rs:12:49 [INFO] [stdout] | [INFO] [stdout] 12 | use crate::models::chat::{Message, MessageType, Group, GroupUser, GroupApply, Friend, ChatFile}; [INFO] [stdout] | ^^^^^ ^^^^^^^^^ ^^^^^^^^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `axum::extract::multipart::Field` [INFO] [stdout] --> src/routes/im.rs:290:9 [INFO] [stdout] | [INFO] [stdout] 290 | use axum::extract::multipart::Field; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `futures_util::StreamExt` [INFO] [stdout] --> src/routes/im.rs:291:9 [INFO] [stdout] | [INFO] [stdout] 291 | use futures_util::StreamExt; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Query` [INFO] [stdout] --> src/routes/friend.rs:4:28 [INFO] [stdout] | [INFO] [stdout] 4 | extract::{State, Path, Query}, [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Serialize` [INFO] [stdout] --> src/routes/friend.rs:8:26 [INFO] [stdout] | [INFO] [stdout] 8 | use serde::{Deserialize, Serialize}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `uuid::Uuid` [INFO] [stdout] --> src/routes/friend.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use uuid::Uuid; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Serialize` [INFO] [stdout] --> src/routes/group.rs:8:26 [INFO] [stdout] | [INFO] [stdout] 8 | use serde::{Deserialize, Serialize}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `uuid::Uuid` [INFO] [stdout] --> src/routes/group.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use uuid::Uuid; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `GroupSetting` [INFO] [stdout] --> src/routes/group.rs:12:57 [INFO] [stdout] | [INFO] [stdout] 12 | use crate::models::chat::{Group, GroupUser, GroupApply, GroupSetting}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `AIStatus` [INFO] [stdout] --> src/models/mod.rs:15:26 [INFO] [stdout] | [INFO] [stdout] 15 | pub use ai::{AI, AIType, AIStatus}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ChatFile`, `Friend`, `GroupApply`, `GroupSetting`, `GroupUser`, `Group`, `MessageType`, and `Message` [INFO] [stdout] --> src/models/mod.rs:24:16 [INFO] [stdout] | [INFO] [stdout] 24 | pub use chat::{Message, MessageType, Group, GroupSetting, GroupUser, GroupApply, Friend, ChatFile}; [INFO] [stdout] | ^^^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^ ^^^^^^^^^^ ^^^^^^ ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `time::OffsetDateTime` [INFO] [stdout] --> src/db/surreal.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use time::OffsetDateTime; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `surrealdb::engine::remote::http::Client` [INFO] [stdout] --> src/db/points.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use surrealdb::engine::remote::http::Client; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `surrealdb::Surreal` [INFO] [stdout] --> src/db/points.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use surrealdb::Surreal; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `surrealdb::engine::remote::http::Client` [INFO] [stdout] --> src/db/promoter.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use surrealdb::engine::remote::http::Client; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `surrealdb::Surreal` [INFO] [stdout] --> src/db/promoter.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use surrealdb::Surreal; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `CommissionStatus`, `PromoterType`, and `User` [INFO] [stdout] --> src/db/promoter.rs:7:25 [INFO] [stdout] | [INFO] [stdout] 7 | VerificationStatus, CommissionStatus, CommissionType, User, PromoterType [INFO] [stdout] | ^^^^^^^^^^^^^^^^ ^^^^ ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `surrealdb::sql::Thing` [INFO] [stdout] --> src/db/chat.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use surrealdb::sql::Thing; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Request`, `State`, `body::Body`, and `middleware::Next` [INFO] [stdout] --> src/middleware/auth.rs:3:33 [INFO] [stdout] | [INFO] [stdout] 3 | extract::{FromRequestParts, State}, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 4 | http::{request::Parts, StatusCode, Request}, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 5 | middleware::Next, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 6 | response::Response, [INFO] [stdout] 7 | body::Body, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::db::Database` [INFO] [stdout] --> src/middleware/auth.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | use crate::db::Database; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Router` and `routing::post` [INFO] [stdout] --> src/routes/user.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | Router, routing::post, [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: `VipLevel` [INFO] [stdout] --> src/routes/user.rs:16:68 [INFO] [stdout] | [INFO] [stdout] 16 | models::{User, PromoterType, FrontendUserRole, VipLevelConfig, VipLevel}, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ShopItemType` [INFO] [stdout] --> src/services/points_service.rs:4:37 [INFO] [stdout] | [INFO] [stdout] 4 | LuckyCard, CardLevel, ShopItem, ShopItemType, PurchaseRecord, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `User` [INFO] [stdout] --> src/routes/ai.rs:10:26 [INFO] [stdout] | [INFO] [stdout] 10 | models::{AI, AIType, User}, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `CommissionStatus` and `User` [INFO] [stdout] --> src/services/promoter_service.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | User, Promoter, PromotionRecord, CommissionLog, WithdrawalRequest, [INFO] [stdout] | ^^^^ [INFO] [stdout] 4 | VerificationStatus, CommissionStatus, CommissionType, PromoterType [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::models::User` [INFO] [stdout] --> src/services/websocket.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | use crate::models::User; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::sync::Arc` [INFO] [stdout] --> src/routes/coupon.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use std::sync::Arc; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `BackendUserRole` [INFO] [stdout] --> src/routes/coupon.rs:12:38 [INFO] [stdout] | [INFO] [stdout] 12 | use crate::models::user::{VipStatus, BackendUserRole}; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `time::OffsetDateTime` [INFO] [stdout] --> src/routes/points.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use time::OffsetDateTime; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `TxType` [INFO] [stdout] --> src/routes/points.rs:13:58 [INFO] [stdout] | [INFO] [stdout] 13 | WalletTx, CurrencyType, Gift, GiftRecord, LuckyCard, TxType, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `User` [INFO] [stdout] --> src/routes/invite.rs:12:22 [INFO] [stdout] | [INFO] [stdout] 12 | models::{Invite, User, VipLevel}, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `User` [INFO] [stdout] --> src/routes/admin.rs:11:14 [INFO] [stdout] | [INFO] [stdout] 11 | models::{User, AuditLog, AuditAction}, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Path` [INFO] [stdout] --> src/routes/promoter.rs:2:22 [INFO] [stdout] | [INFO] [stdout] 2 | extract::{State, Path, Json}, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `CommissionStatus` and `VerificationStatus` [INFO] [stdout] --> src/routes/promoter.rs:11:19 [INFO] [stdout] | [INFO] [stdout] 11 | PromoterType, VerificationStatus, CommissionStatus [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Json`, `Router`, `State`, `http::StatusCode`, and `routing::get` [INFO] [stdout] --> src/routes/audit.rs:2:15 [INFO] [stdout] | [INFO] [stdout] 2 | extract::{State, Json}, [INFO] [stdout] | ^^^^^ ^^^^ [INFO] [stdout] 3 | http::StatusCode, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 4 | routing::get, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 5 | Router, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize` [INFO] [stdout] --> src/routes/audit.rs:7:13 [INFO] [stdout] | [INFO] [stdout] 7 | use serde::{Serialize, Deserialize}; [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::db::Database` [INFO] [stdout] --> src/routes/audit.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::db::Database; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AuditAction` and `AuditLog` [INFO] [stdout] --> src/routes/audit.rs:9:21 [INFO] [stdout] | [INFO] [stdout] 9 | use crate::models::{AuditLog, AuditAction}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::middleware::auth::AuthenticatedUser` [INFO] [stdout] --> src/routes/audit.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use crate::middleware::auth::AuthenticatedUser; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Serialize` [INFO] [stdout] --> src/routes/im.rs:8:26 [INFO] [stdout] | [INFO] [stdout] 8 | use serde::{Deserialize, Serialize}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `uuid::Uuid` [INFO] [stdout] --> src/routes/im.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use uuid::Uuid; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Friend`, `GroupApply`, `GroupUser`, and `Group` [INFO] [stdout] --> src/routes/im.rs:12:49 [INFO] [stdout] | [INFO] [stdout] 12 | use crate::models::chat::{Message, MessageType, Group, GroupUser, GroupApply, Friend, ChatFile}; [INFO] [stdout] | ^^^^^ ^^^^^^^^^ ^^^^^^^^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `axum::extract::multipart::Field` [INFO] [stdout] --> src/routes/im.rs:290:9 [INFO] [stdout] | [INFO] [stdout] 290 | use axum::extract::multipart::Field; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `futures_util::StreamExt` [INFO] [stdout] --> src/routes/im.rs:291:9 [INFO] [stdout] | [INFO] [stdout] 291 | use futures_util::StreamExt; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Query` [INFO] [stdout] --> src/routes/friend.rs:4:28 [INFO] [stdout] | [INFO] [stdout] 4 | extract::{State, Path, Query}, [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Serialize` [INFO] [stdout] --> src/routes/friend.rs:8:26 [INFO] [stdout] | [INFO] [stdout] 8 | use serde::{Deserialize, Serialize}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `uuid::Uuid` [INFO] [stdout] --> src/routes/friend.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use uuid::Uuid; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Serialize` [INFO] [stdout] --> src/routes/group.rs:8:26 [INFO] [stdout] | [INFO] [stdout] 8 | use serde::{Deserialize, Serialize}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `uuid::Uuid` [INFO] [stdout] --> src/routes/group.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use uuid::Uuid; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `GroupSetting` [INFO] [stdout] --> src/routes/group.rs:12:57 [INFO] [stdout] | [INFO] [stdout] 12 | use crate::models::chat::{Group, GroupUser, GroupApply, GroupSetting}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `AIStatus` [INFO] [stdout] --> src/models/mod.rs:15:26 [INFO] [stdout] | [INFO] [stdout] 15 | pub use ai::{AI, AIType, AIStatus}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ChatFile`, `Friend`, `GroupApply`, `GroupSetting`, `GroupUser`, `Group`, `MessageType`, and `Message` [INFO] [stdout] --> src/models/mod.rs:24:16 [INFO] [stdout] | [INFO] [stdout] 24 | pub use chat::{Message, MessageType, Group, GroupSetting, GroupUser, GroupApply, Friend, ChatFile}; [INFO] [stdout] | ^^^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^ ^^^^^^^^^^ ^^^^^^ ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `time::OffsetDateTime` [INFO] [stdout] --> src/db/surreal.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use time::OffsetDateTime; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `surrealdb::engine::remote::http::Client` [INFO] [stdout] --> src/db/points.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use surrealdb::engine::remote::http::Client; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `surrealdb::Surreal` [INFO] [stdout] --> src/db/points.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use surrealdb::Surreal; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `surrealdb::engine::remote::http::Client` [INFO] [stdout] --> src/db/promoter.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use surrealdb::engine::remote::http::Client; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `surrealdb::Surreal` [INFO] [stdout] --> src/db/promoter.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use surrealdb::Surreal; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `CommissionStatus`, `PromoterType`, and `User` [INFO] [stdout] --> src/db/promoter.rs:7:25 [INFO] [stdout] | [INFO] [stdout] 7 | VerificationStatus, CommissionStatus, CommissionType, User, PromoterType [INFO] [stdout] | ^^^^^^^^^^^^^^^^ ^^^^ ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `surrealdb::sql::Thing` [INFO] [stdout] --> src/db/chat.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use surrealdb::sql::Thing; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Request`, `State`, `body::Body`, and `middleware::Next` [INFO] [stdout] --> src/middleware/auth.rs:3:33 [INFO] [stdout] | [INFO] [stdout] 3 | extract::{FromRequestParts, State}, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 4 | http::{request::Parts, StatusCode, Request}, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 5 | middleware::Next, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 6 | response::Response, [INFO] [stdout] 7 | body::Body, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::db::Database` [INFO] [stdout] --> src/middleware/auth.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | use crate::db::Database; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ShopItemType` [INFO] [stdout] --> src/services/points_service.rs:4:37 [INFO] [stdout] | [INFO] [stdout] 4 | LuckyCard, CardLevel, ShopItem, ShopItemType, PurchaseRecord, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `CommissionStatus` and `User` [INFO] [stdout] --> src/services/promoter_service.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | User, Promoter, PromotionRecord, CommissionLog, WithdrawalRequest, [INFO] [stdout] | ^^^^ [INFO] [stdout] 4 | VerificationStatus, CommissionStatus, CommissionType, PromoterType [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::models::User` [INFO] [stdout] --> src/services/websocket.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | use crate::models::User; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `next` [INFO] [stdout] --> src/routes/user.rs:82:45 [INFO] [stdout] | [INFO] [stdout] 82 | async fn admin_auth(req: AxumRequest, next: Next, State(db): State>) -> Result { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_next` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `next` [INFO] [stdout] --> src/routes/user.rs:82:45 [INFO] [stdout] | [INFO] [stdout] 82 | async fn admin_auth(req: AxumRequest, next: Next, State(db): State>) -> Result { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_next` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `auth_user` [INFO] [stdout] --> src/routes/points.rs:191:5 [INFO] [stdout] | [INFO] [stdout] 191 | auth_user: AuthenticatedUser, [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_auth_user` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `auth_user` [INFO] [stdout] --> src/routes/points.rs:191:5 [INFO] [stdout] | [INFO] [stdout] 191 | auth_user: AuthenticatedUser, [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_auth_user` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `auth_user` [INFO] [stdout] --> src/routes/points.rs:307:5 [INFO] [stdout] | [INFO] [stdout] 307 | auth_user: AuthenticatedUser, [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_auth_user` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ai_id` [INFO] [stdout] --> src/routes/points.rs:308:20 [INFO] [stdout] | [INFO] [stdout] 308 | Path((gift_id, ai_id)): Path<(String, String)>, [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_ai_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `auth_user` [INFO] [stdout] --> src/routes/points.rs:307:5 [INFO] [stdout] | [INFO] [stdout] 307 | auth_user: AuthenticatedUser, [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_auth_user` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ai_id` [INFO] [stdout] --> src/routes/points.rs:308:20 [INFO] [stdout] | [INFO] [stdout] 308 | Path((gift_id, ai_id)): Path<(String, String)>, [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_ai_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `auth_user` [INFO] [stdout] --> src/routes/store.rs:45:5 [INFO] [stdout] | [INFO] [stdout] 45 | auth_user: AuthenticatedUser, [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_auth_user` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `auth_user` [INFO] [stdout] --> src/routes/store.rs:56:5 [INFO] [stdout] | [INFO] [stdout] 56 | auth_user: AuthenticatedUser, [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_auth_user` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `auth_user` [INFO] [stdout] --> src/routes/store.rs:45:5 [INFO] [stdout] | [INFO] [stdout] 45 | auth_user: AuthenticatedUser, [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_auth_user` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `auth_user` [INFO] [stdout] --> src/routes/store.rs:56:5 [INFO] [stdout] | [INFO] [stdout] 56 | auth_user: AuthenticatedUser, [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_auth_user` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `auth_user` [INFO] [stdout] --> src/routes/im.rs:167:5 [INFO] [stdout] | [INFO] [stdout] 167 | auth_user: AuthenticatedUser, [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_auth_user` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `db` [INFO] [stdout] --> src/routes/im.rs:239:12 [INFO] [stdout] | [INFO] [stdout] 239 | State((db, _)): State<(Database, Arc)>, [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_db` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `auth_user` [INFO] [stdout] --> src/routes/im.rs:240:5 [INFO] [stdout] | [INFO] [stdout] 240 | auth_user: AuthenticatedUser, [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_auth_user` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `db` [INFO] [stdout] --> src/routes/im.rs:248:12 [INFO] [stdout] | [INFO] [stdout] 248 | State((db, _)): State<(Database, Arc)>, [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_db` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `auth_user` [INFO] [stdout] --> src/routes/im.rs:249:5 [INFO] [stdout] | [INFO] [stdout] 249 | auth_user: AuthenticatedUser, [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_auth_user` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `payload` [INFO] [stdout] --> src/routes/im.rs:250:10 [INFO] [stdout] | [INFO] [stdout] 250 | Json(payload): Json, [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_payload` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `db` [INFO] [stdout] --> src/routes/im.rs:257:12 [INFO] [stdout] | [INFO] [stdout] 257 | State((db, _)): State<(Database, Arc)>, [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_db` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `auth_user` [INFO] [stdout] --> src/routes/im.rs:258:5 [INFO] [stdout] | [INFO] [stdout] 258 | auth_user: AuthenticatedUser, [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_auth_user` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `payload` [INFO] [stdout] --> src/routes/im.rs:259:10 [INFO] [stdout] | [INFO] [stdout] 259 | Json(payload): Json, [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_payload` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `db` [INFO] [stdout] --> src/routes/im.rs:266:12 [INFO] [stdout] | [INFO] [stdout] 266 | State((db, _)): State<(Database, Arc)>, [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_db` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `auth_user` [INFO] [stdout] --> src/routes/im.rs:267:5 [INFO] [stdout] | [INFO] [stdout] 267 | auth_user: AuthenticatedUser, [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_auth_user` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `chat_id` [INFO] [stdout] --> src/routes/im.rs:268:10 [INFO] [stdout] | [INFO] [stdout] 268 | Path(chat_id): Path, [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_chat_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `db` [INFO] [stdout] --> src/routes/im.rs:276:12 [INFO] [stdout] | [INFO] [stdout] 276 | State((db, _)): State<(Database, Arc)>, [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_db` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `auth_user` [INFO] [stdout] --> src/routes/im.rs:277:5 [INFO] [stdout] | [INFO] [stdout] 277 | auth_user: AuthenticatedUser, [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_auth_user` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `auth_user` [INFO] [stdout] --> src/routes/im.rs:167:5 [INFO] [stdout] | [INFO] [stdout] 167 | auth_user: AuthenticatedUser, [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_auth_user` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `auth_user` [INFO] [stdout] --> src/routes/im.rs:340:5 [INFO] [stdout] | [INFO] [stdout] 340 | auth_user: AuthenticatedUser, [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_auth_user` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `db` [INFO] [stdout] --> src/routes/im.rs:239:12 [INFO] [stdout] | [INFO] [stdout] 239 | State((db, _)): State<(Database, Arc)>, [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_db` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `auth_user` [INFO] [stdout] --> src/routes/im.rs:240:5 [INFO] [stdout] | [INFO] [stdout] 240 | auth_user: AuthenticatedUser, [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_auth_user` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `db` [INFO] [stdout] --> src/routes/im.rs:248:12 [INFO] [stdout] | [INFO] [stdout] 248 | State((db, _)): State<(Database, Arc)>, [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_db` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `auth_user` [INFO] [stdout] --> src/routes/im.rs:249:5 [INFO] [stdout] | [INFO] [stdout] 249 | auth_user: AuthenticatedUser, [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_auth_user` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `payload` [INFO] [stdout] --> src/routes/im.rs:250:10 [INFO] [stdout] | [INFO] [stdout] 250 | Json(payload): Json, [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_payload` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `db` [INFO] [stdout] --> src/routes/im.rs:257:12 [INFO] [stdout] | [INFO] [stdout] 257 | State((db, _)): State<(Database, Arc)>, [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_db` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `auth_user` [INFO] [stdout] --> src/routes/im.rs:258:5 [INFO] [stdout] | [INFO] [stdout] 258 | auth_user: AuthenticatedUser, [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_auth_user` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `payload` [INFO] [stdout] --> src/routes/im.rs:259:10 [INFO] [stdout] | [INFO] [stdout] 259 | Json(payload): Json, [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_payload` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `db` [INFO] [stdout] --> src/routes/im.rs:266:12 [INFO] [stdout] | [INFO] [stdout] 266 | State((db, _)): State<(Database, Arc)>, [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_db` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `auth_user` [INFO] [stdout] --> src/routes/im.rs:267:5 [INFO] [stdout] | [INFO] [stdout] 267 | auth_user: AuthenticatedUser, [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_auth_user` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `chat_id` [INFO] [stdout] --> src/routes/im.rs:268:10 [INFO] [stdout] | [INFO] [stdout] 268 | Path(chat_id): Path, [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_chat_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `db` [INFO] [stdout] --> src/routes/im.rs:276:12 [INFO] [stdout] | [INFO] [stdout] 276 | State((db, _)): State<(Database, Arc)>, [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_db` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `auth_user` [INFO] [stdout] --> src/routes/im.rs:277:5 [INFO] [stdout] | [INFO] [stdout] 277 | auth_user: AuthenticatedUser, [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_auth_user` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `auth_user` [INFO] [stdout] --> src/routes/im.rs:340:5 [INFO] [stdout] | [INFO] [stdout] 340 | auth_user: AuthenticatedUser, [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_auth_user` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `file_storage` [INFO] [stdout] --> src/routes/group.rs:87:16 [INFO] [stdout] | [INFO] [stdout] 87 | State((db, file_storage)): State<(Database, Arc)>, [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_file_storage` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `file_storage` [INFO] [stdout] --> src/routes/group.rs:87:16 [INFO] [stdout] | [INFO] [stdout] 87 | State((db, file_storage)): State<(Database, Arc)>, [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_file_storage` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `result` [INFO] [stdout] --> src/db/surreal.rs:163:13 [INFO] [stdout] | [INFO] [stdout] 163 | let result = self.client [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `result` [INFO] [stdout] --> src/db/surreal.rs:163:13 [INFO] [stdout] | [INFO] [stdout] 163 | let result = self.client [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `result` [INFO] [stdout] --> src/db/points.rs:32:13 [INFO] [stdout] | [INFO] [stdout] 32 | let result = self [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `result` [INFO] [stdout] --> src/db/points.rs:143:13 [INFO] [stdout] | [INFO] [stdout] 143 | let result = self [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `result` [INFO] [stdout] --> src/db/points.rs:32:13 [INFO] [stdout] | [INFO] [stdout] 32 | let result = self [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `result` [INFO] [stdout] --> src/db/points.rs:143:13 [INFO] [stdout] | [INFO] [stdout] 143 | let result = self [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/db/points.rs:784:25 [INFO] [stdout] | [INFO] [stdout] 784 | let mut stat: Option = self.client [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/db/points.rs:826:25 [INFO] [stdout] | [INFO] [stdout] 826 | let mut stat: Option = self.client [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/db/points.rs:784:25 [INFO] [stdout] | [INFO] [stdout] 784 | let mut stat: Option = self.client [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/db/points.rs:826:25 [INFO] [stdout] | [INFO] [stdout] 826 | let mut stat: Option = self.client [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `result` [INFO] [stdout] --> src/db/points.rs:975:21 [INFO] [stdout] | [INFO] [stdout] 975 | let mut result = self [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `result` [INFO] [stdout] --> src/db/points.rs:975:21 [INFO] [stdout] | [INFO] [stdout] 975 | let mut result = self [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/db/points.rs:975:17 [INFO] [stdout] | [INFO] [stdout] 975 | let mut result = self [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/db/points.rs:975:17 [INFO] [stdout] | [INFO] [stdout] 975 | let mut result = self [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `result` [INFO] [stdout] --> src/services/points_service.rs:61:17 [INFO] [stdout] | [INFO] [stdout] 61 | let mut result = self.db [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `result` [INFO] [stdout] --> src/services/points_service.rs:61:17 [INFO] [stdout] | [INFO] [stdout] 61 | let mut result = self.db [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/services/points_service.rs:61:13 [INFO] [stdout] | [INFO] [stdout] 61 | let mut result = self.db [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/services/points_service.rs:61:13 [INFO] [stdout] | [INFO] [stdout] 61 | let mut result = self.db [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `TokenResponse` is never constructed [INFO] [stdout] --> src/routes/auth.rs:32:12 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct TokenResponse { [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 `admin_auth` is never used [INFO] [stdout] --> src/routes/user.rs:82:10 [INFO] [stdout] | [INFO] [stdout] 82 | async fn admin_auth(req: AxumRequest, next: Next, State(db): State>) -> Result { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DailyCheckinRequest` is never constructed [INFO] [stdout] --> src/routes/points.rs:22:12 [INFO] [stdout] | [INFO] [stdout] 22 | pub struct DailyCheckinRequest { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `forward_type` is never read [INFO] [stdout] --> src/routes/im.rs:34:5 [INFO] [stdout] | [INFO] [stdout] 30 | pub struct ForwardMessageRequest { [INFO] [stdout] | --------------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 34 | forward_type: String, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `is_group` is never read [INFO] [stdout] --> src/routes/im.rs:47:5 [INFO] [stdout] | [INFO] [stdout] 45 | pub struct SetReadRequest { [INFO] [stdout] | -------------- field in this struct [INFO] [stdout] 46 | chat_id: String, [INFO] [stdout] 47 | is_group: bool, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `chat_id` and `is_group` are never read [INFO] [stdout] --> src/routes/im.rs:52:5 [INFO] [stdout] | [INFO] [stdout] 51 | pub struct ChatActionRequest { [INFO] [stdout] | ----------------- fields in this struct [INFO] [stdout] 52 | chat_id: String, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 53 | is_group: bool, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `daily_chat_limit` and `daily_lio_limit` are never used [INFO] [stdout] --> src/models/user.rs:32:18 [INFO] [stdout] | [INFO] [stdout] 16 | impl VipLevel { [INFO] [stdout] | ------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 32 | pub async fn daily_chat_limit(&self, db: &Database) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 37 | pub async fn daily_lio_limit(&self, db: &Database) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `can_awaken_ai`, `is_backend_user`, `is_frontend_user`, `revoke_promoter_if_vip_expired`, `has_free_mapping_quota`, and `use_free_mapping` are never used [INFO] [stdout] --> src/models/user.rs:178:18 [INFO] [stdout] | [INFO] [stdout] 143 | impl User { [INFO] [stdout] | --------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 178 | pub async fn can_awaken_ai(&self, db: &Database) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 183 | pub fn is_backend_user(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 187 | pub fn is_frontend_user(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 207 | pub async fn revoke_promoter_if_vip_expired(&mut self, db: &Database) -> Result<(), surrealdb::Error> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 251 | pub async fn has_free_mapping_quota(&self, db: &Database) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 256 | pub fn use_free_mapping(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `is_compatible_with_vip` and `to_string` are never used [INFO] [stdout] --> src/models/ai.rs:18:12 [INFO] [stdout] | [INFO] [stdout] 17 | impl AIType { [INFO] [stdout] | ----------- methods in this implementation [INFO] [stdout] 18 | pub fn is_compatible_with_vip(&self, vip_level: &VipLevel) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 28 | pub fn to_string(&self) -> &str { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `awaken` is never used [INFO] [stdout] --> src/models/ai.rs:78:12 [INFO] [stdout] | [INFO] [stdout] 62 | impl AI { [INFO] [stdout] | ------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 78 | pub fn awaken(&mut self, user_id: String) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `can_initiate_ai` is never used [INFO] [stdout] --> src/models/ai.rs:85:12 [INFO] [stdout] | [INFO] [stdout] 84 | impl User { [INFO] [stdout] | --------- method in this implementation [INFO] [stdout] 85 | pub fn can_initiate_ai(&self, ai_type: AIType) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `min_multiplier` and `max_multiplier` are never used [INFO] [stdout] --> src/models/lucky_card.rs:16:12 [INFO] [stdout] | [INFO] [stdout] 14 | impl CardLevel { [INFO] [stdout] | -------------- methods in this implementation [INFO] [stdout] 15 | // 获取倍率范围下限 [INFO] [stdout] 16 | pub fn min_multiplier(&self) -> f32 { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 27 | pub fn max_multiplier(&self) -> f32 { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/models/lucky_card.rs:52:12 [INFO] [stdout] | [INFO] [stdout] 51 | impl LuckyCard { [INFO] [stdout] | -------------- associated function in this implementation [INFO] [stdout] 52 | pub fn new(level: CardLevel, owner_id: String, issued_by_ai_id: Option) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `activate` is never used [INFO] [stdout] --> src/models/point_shop.rs:152:12 [INFO] [stdout] | [INFO] [stdout] 130 | impl PurchaseRecord { [INFO] [stdout] | ------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 152 | pub fn activate(&mut self) -> Result<(), &'static str> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `can_receive_commission` and `add_pending_commission` are never used [INFO] [stdout] --> src/models/promoter.rs:76:12 [INFO] [stdout] | [INFO] [stdout] 44 | impl Promoter { [INFO] [stdout] | ------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 76 | pub fn can_receive_commission(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 86 | pub fn add_pending_commission(&mut self, amount: f32) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `cancel` is never used [INFO] [stdout] --> src/models/promoter.rs:180:12 [INFO] [stdout] | [INFO] [stdout] 152 | impl CommissionLog { [INFO] [stdout] | ------------------ method in this implementation [INFO] [stdout] ... [INFO] [stdout] 180 | pub fn cancel(&mut self) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `get_verification` is never used [INFO] [stdout] --> src/db/surreal.rs:147:18 [INFO] [stdout] | [INFO] [stdout] 15 | impl Database { [INFO] [stdout] | ------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 147 | pub async fn get_verification(&self, email: &str, code: &str) -> Result, surrealdb::Error> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `create_lucky_card` and `purchase_shop_item` are never used [INFO] [stdout] --> src/db/points.rs:497:18 [INFO] [stdout] | [INFO] [stdout] 13 | impl Database { [INFO] [stdout] | ------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 497 | pub async fn create_lucky_card(&self, level: CardLevel, owner_id: &str, issued_by_ai_id: Option) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 590 | pub async fn purchase_shop_item(&self, user_id: &str, item_id: &str) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `get_promotion_records_by_user`, `update_commission_log`, `get_pending_commission_logs`, and `process_payment_commission` are never used [INFO] [stdout] --> src/db/promoter.rs:131:18 [INFO] [stdout] | [INFO] [stdout] 12 | impl Database { [INFO] [stdout] | ------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 131 | pub async fn get_promotion_records_by_user(&self, user_id: &str) -> Result, surrealdb::Error> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 151 | pub async fn update_commission_log(&self, log: &CommissionLog) -> Result<(), surrealdb::Error> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 172 | pub async fn get_pending_commission_logs(&self) -> Result, surrealdb::Error> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 258 | pub async fn process_payment_commission(&self, user_id: &str, payment_amount: f32, is_renewal: bool) -> Result,... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `get_user_groups` is never used [INFO] [stdout] --> src/db/chat.rs:155:18 [INFO] [stdout] | [INFO] [stdout] 6 | impl Database { [INFO] [stdout] | ------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 155 | pub async fn get_user_groups(&self, user_id: &str) -> Result, Error> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/services/points_service.rs:29:18 [INFO] [stdout] | [INFO] [stdout] 15 | impl PointsService { [INFO] [stdout] | ------------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 29 | pub async fn reward_dialogue_points(&self, user_id: &str, message_count: u32) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 48 | pub async fn reward_invitation_points(&self, inviter_id: &str, invitee_id: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 102 | pub async fn issue_random_lucky_card(&self, user_id: &str, ai_id: Option) -> Result, anyhow::Error> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 217 | pub async fn get_available_shop_items(&self) -> Result, anyhow::Error> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 223 | pub async fn purchase_shop_item(&self, user_id: &str, item_id: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 229 | pub async fn get_user_purchases(&self, user_id: &str, limit: usize) -> Result, anyhow::Error> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 237 | pub async fn calculate_promoter_commission(&self, promoter_id: &str, amount: u32) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `process_payment` is never used [INFO] [stdout] --> src/services/promoter_service.rs:318:18 [INFO] [stdout] | [INFO] [stdout] 13 | impl PromoterService { [INFO] [stdout] | -------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 318 | pub async fn process_payment(&self, user_id: &str, payment_amount: f32, is_renewal: bool) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `save_file_from_bytes`, `get_file_info`, `get_file_url`, and `delete_file` are never used [INFO] [stdout] --> src/services/file_storage.rs:67:18 [INFO] [stdout] | [INFO] [stdout] 12 | impl FileStorage { [INFO] [stdout] | ---------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 67 | pub async fn save_file_from_bytes( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 85 | pub async fn get_file_info(&self, file_path: &str) -> Result<(Vec, String), std::io::Error> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 108 | pub fn get_file_url(&self, file_path: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 114 | pub async fn delete_file(&self, file_path: &str) -> Result<(), std::io::Error> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `TokenResponse` is never constructed [INFO] [stdout] --> src/routes/auth.rs:32:12 [INFO] [stdout] | [INFO] [stdout] 32 | pub struct TokenResponse { [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 `admin_auth` is never used [INFO] [stdout] --> src/routes/user.rs:82:10 [INFO] [stdout] | [INFO] [stdout] 82 | async fn admin_auth(req: AxumRequest, next: Next, State(db): State>) -> Result { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DailyCheckinRequest` is never constructed [INFO] [stdout] --> src/routes/points.rs:22:12 [INFO] [stdout] | [INFO] [stdout] 22 | pub struct DailyCheckinRequest { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `forward_type` is never read [INFO] [stdout] --> src/routes/im.rs:34:5 [INFO] [stdout] | [INFO] [stdout] 30 | pub struct ForwardMessageRequest { [INFO] [stdout] | --------------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 34 | forward_type: String, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `is_group` is never read [INFO] [stdout] --> src/routes/im.rs:47:5 [INFO] [stdout] | [INFO] [stdout] 45 | pub struct SetReadRequest { [INFO] [stdout] | -------------- field in this struct [INFO] [stdout] 46 | chat_id: String, [INFO] [stdout] 47 | is_group: bool, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `chat_id` and `is_group` are never read [INFO] [stdout] --> src/routes/im.rs:52:5 [INFO] [stdout] | [INFO] [stdout] 51 | pub struct ChatActionRequest { [INFO] [stdout] | ----------------- fields in this struct [INFO] [stdout] 52 | chat_id: String, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 53 | is_group: bool, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `daily_chat_limit` and `daily_lio_limit` are never used [INFO] [stdout] --> src/models/user.rs:32:18 [INFO] [stdout] | [INFO] [stdout] 16 | impl VipLevel { [INFO] [stdout] | ------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 32 | pub async fn daily_chat_limit(&self, db: &Database) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 37 | pub async fn daily_lio_limit(&self, db: &Database) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `can_awaken_ai`, `is_backend_user`, `is_frontend_user`, `revoke_promoter_if_vip_expired`, `has_free_mapping_quota`, and `use_free_mapping` are never used [INFO] [stdout] --> src/models/user.rs:178:18 [INFO] [stdout] | [INFO] [stdout] 143 | impl User { [INFO] [stdout] | --------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 178 | pub async fn can_awaken_ai(&self, db: &Database) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 183 | pub fn is_backend_user(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 187 | pub fn is_frontend_user(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 207 | pub async fn revoke_promoter_if_vip_expired(&mut self, db: &Database) -> Result<(), surrealdb::Error> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 251 | pub async fn has_free_mapping_quota(&self, db: &Database) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 256 | pub fn use_free_mapping(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `is_compatible_with_vip` and `to_string` are never used [INFO] [stdout] --> src/models/ai.rs:18:12 [INFO] [stdout] | [INFO] [stdout] 17 | impl AIType { [INFO] [stdout] | ----------- methods in this implementation [INFO] [stdout] 18 | pub fn is_compatible_with_vip(&self, vip_level: &VipLevel) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 28 | pub fn to_string(&self) -> &str { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `awaken` is never used [INFO] [stdout] --> src/models/ai.rs:78:12 [INFO] [stdout] | [INFO] [stdout] 62 | impl AI { [INFO] [stdout] | ------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 78 | pub fn awaken(&mut self, user_id: String) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `can_initiate_ai` is never used [INFO] [stdout] --> src/models/ai.rs:85:12 [INFO] [stdout] | [INFO] [stdout] 84 | impl User { [INFO] [stdout] | --------- method in this implementation [INFO] [stdout] 85 | pub fn can_initiate_ai(&self, ai_type: AIType) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `min_multiplier` and `max_multiplier` are never used [INFO] [stdout] --> src/models/lucky_card.rs:16:12 [INFO] [stdout] | [INFO] [stdout] 14 | impl CardLevel { [INFO] [stdout] | -------------- methods in this implementation [INFO] [stdout] 15 | // 获取倍率范围下限 [INFO] [stdout] 16 | pub fn min_multiplier(&self) -> f32 { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 27 | pub fn max_multiplier(&self) -> f32 { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/models/lucky_card.rs:52:12 [INFO] [stdout] | [INFO] [stdout] 51 | impl LuckyCard { [INFO] [stdout] | -------------- associated function in this implementation [INFO] [stdout] 52 | pub fn new(level: CardLevel, owner_id: String, issued_by_ai_id: Option) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `activate` is never used [INFO] [stdout] --> src/models/point_shop.rs:152:12 [INFO] [stdout] | [INFO] [stdout] 130 | impl PurchaseRecord { [INFO] [stdout] | ------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 152 | pub fn activate(&mut self) -> Result<(), &'static str> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `can_receive_commission` and `add_pending_commission` are never used [INFO] [stdout] --> src/models/promoter.rs:76:12 [INFO] [stdout] | [INFO] [stdout] 44 | impl Promoter { [INFO] [stdout] | ------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 76 | pub fn can_receive_commission(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 86 | pub fn add_pending_commission(&mut self, amount: f32) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `cancel` is never used [INFO] [stdout] --> src/models/promoter.rs:180:12 [INFO] [stdout] | [INFO] [stdout] 152 | impl CommissionLog { [INFO] [stdout] | ------------------ method in this implementation [INFO] [stdout] ... [INFO] [stdout] 180 | pub fn cancel(&mut self) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `get_verification` is never used [INFO] [stdout] --> src/db/surreal.rs:147:18 [INFO] [stdout] | [INFO] [stdout] 15 | impl Database { [INFO] [stdout] | ------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 147 | pub async fn get_verification(&self, email: &str, code: &str) -> Result, surrealdb::Error> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `create_lucky_card` and `purchase_shop_item` are never used [INFO] [stdout] --> src/db/points.rs:497:18 [INFO] [stdout] | [INFO] [stdout] 13 | impl Database { [INFO] [stdout] | ------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 497 | pub async fn create_lucky_card(&self, level: CardLevel, owner_id: &str, issued_by_ai_id: Option) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 590 | pub async fn purchase_shop_item(&self, user_id: &str, item_id: &str) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `get_promotion_records_by_user`, `update_commission_log`, `get_pending_commission_logs`, and `process_payment_commission` are never used [INFO] [stdout] --> src/db/promoter.rs:131:18 [INFO] [stdout] | [INFO] [stdout] 12 | impl Database { [INFO] [stdout] | ------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 131 | pub async fn get_promotion_records_by_user(&self, user_id: &str) -> Result, surrealdb::Error> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 151 | pub async fn update_commission_log(&self, log: &CommissionLog) -> Result<(), surrealdb::Error> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 172 | pub async fn get_pending_commission_logs(&self) -> Result, surrealdb::Error> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 258 | pub async fn process_payment_commission(&self, user_id: &str, payment_amount: f32, is_renewal: bool) -> Result,... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `get_user_groups` is never used [INFO] [stdout] --> src/db/chat.rs:155:18 [INFO] [stdout] | [INFO] [stdout] 6 | impl Database { [INFO] [stdout] | ------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 155 | pub async fn get_user_groups(&self, user_id: &str) -> Result, Error> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/services/points_service.rs:29:18 [INFO] [stdout] | [INFO] [stdout] 15 | impl PointsService { [INFO] [stdout] | ------------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 29 | pub async fn reward_dialogue_points(&self, user_id: &str, message_count: u32) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 48 | pub async fn reward_invitation_points(&self, inviter_id: &str, invitee_id: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 102 | pub async fn issue_random_lucky_card(&self, user_id: &str, ai_id: Option) -> Result, anyhow::Error> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 217 | pub async fn get_available_shop_items(&self) -> Result, anyhow::Error> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 223 | pub async fn purchase_shop_item(&self, user_id: &str, item_id: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 229 | pub async fn get_user_purchases(&self, user_id: &str, limit: usize) -> Result, anyhow::Error> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 237 | pub async fn calculate_promoter_commission(&self, promoter_id: &str, amount: u32) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `process_payment` is never used [INFO] [stdout] --> src/services/promoter_service.rs:318:18 [INFO] [stdout] | [INFO] [stdout] 13 | impl PromoterService { [INFO] [stdout] | -------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 318 | pub async fn process_payment(&self, user_id: &str, payment_amount: f32, is_renewal: bool) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `save_file_from_bytes`, `get_file_info`, `get_file_url`, and `delete_file` are never used [INFO] [stdout] --> src/services/file_storage.rs:67:18 [INFO] [stdout] | [INFO] [stdout] 12 | impl FileStorage { [INFO] [stdout] | ---------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 67 | pub async fn save_file_from_bytes( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 85 | pub async fn get_file_info(&self, file_path: &str) -> Result<(Vec, String), std::io::Error> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 108 | pub fn get_file_url(&self, file_path: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 114 | pub async fn delete_file(&self, file_path: &str) -> Result<(), std::io::Error> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 55s [INFO] running `Command { std: "docker" "inspect" "221c591a428e56ed99dcb3a06d7a49eb82507fafb0a8ba121d43ee16e8936e44", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "221c591a428e56ed99dcb3a06d7a49eb82507fafb0a8ba121d43ee16e8936e44", kill_on_drop: false }` [INFO] [stdout] 221c591a428e56ed99dcb3a06d7a49eb82507fafb0a8ba121d43ee16e8936e44