[INFO] cloning repository https://github.com/Gaoce8888/rust1.0.1
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Gaoce8888/rust1.0.1" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FGaoce8888%2Frust1.0.1", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FGaoce8888%2Frust1.0.1'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] ad5098cc4d0c36779fce375cf707eabf71c36c47
[INFO] checking Gaoce8888/rust1.0.1/ad5098cc4d0c36779fce375cf707eabf71c36c47 against master#5b150d238fbd4fe7bc2cd3140d8e6fb4406099fa for pr-149901
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FGaoce8888%2Frust1.0.1" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/Gaoce8888/rust1.0.1
[INFO] finished tweaking git repo https://github.com/Gaoce8888/rust1.0.1
[INFO] tweaked toml for git repo https://github.com/Gaoce8888/rust1.0.1 written to /workspace/builds/worker-7-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Gaoce8888/rust1.0.1 on toolchain 5b150d238fbd4fe7bc2cd3140d8e6fb4406099fa
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+5b150d238fbd4fe7bc2cd3140d8e6fb4406099fa" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Gaoce8888/rust1.0.1 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" "+5b150d238fbd4fe7bc2cd3140d8e6fb4406099fa" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded deadpool-runtime v0.1.4
[INFO] [stderr]   Downloaded utoipa-rapidoc v3.0.0
[INFO] [stderr]   Downloaded deadpool v0.10.0
[INFO] [stderr]   Downloaded deadpool-redis v0.13.0
[INFO] [stderr]   Downloaded utoipa v4.2.3
[INFO] [stderr]   Downloaded utoipa-redoc v3.0.0
[INFO] [stderr]   Downloaded utoipa-gen v4.3.1
[INFO] [stderr]   Downloaded redis v0.23.3
[INFO] [stderr]   Downloaded utoipa-swagger-ui v6.0.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+5b150d238fbd4fe7bc2cd3140d8e6fb4406099fa" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 2a9f175008a7a4d58db1f9c02dd86e9fc442d1ef5119de600cc262241be5e696
[INFO] running `Command { std: "docker" "start" "-a" "2a9f175008a7a4d58db1f9c02dd86e9fc442d1ef5119de600cc262241be5e696", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "2a9f175008a7a4d58db1f9c02dd86e9fc442d1ef5119de600cc262241be5e696", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2a9f175008a7a4d58db1f9c02dd86e9fc442d1ef5119de600cc262241be5e696", kill_on_drop: false }`
[INFO] [stdout] 2a9f175008a7a4d58db1f9c02dd86e9fc442d1ef5119de600cc262241be5e696
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+5b150d238fbd4fe7bc2cd3140d8e6fb4406099fa" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 6ad30ba882e530467702cff8afd3365479c316e082c134a7cb929fad7c1683c4
[INFO] running `Command { std: "docker" "start" "-a" "6ad30ba882e530467702cff8afd3365479c316e082c134a7cb929fad7c1683c4", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.95
[INFO] [stderr]    Compiling unicode-ident v1.0.18
[INFO] [stderr]     Checking cfg-if v1.0.1
[INFO] [stderr]    Compiling libc v0.2.174
[INFO] [stderr]    Compiling version_check v0.9.5
[INFO] [stderr]     Checking smallvec v1.15.1
[INFO] [stderr]     Checking bytes v1.10.1
[INFO] [stderr]    Compiling autocfg v1.5.0
[INFO] [stderr]     Checking itoa v1.0.15
[INFO] [stderr]     Checking pin-project-lite v0.2.16
[INFO] [stderr]     Checking scopeguard v1.2.0
[INFO] [stderr]    Compiling typenum v1.18.0
[INFO] [stderr]    Compiling parking_lot_core v0.9.11
[INFO] [stderr]     Checking futures-core v0.3.31
[INFO] [stderr]     Checking fnv v1.0.7
[INFO] [stderr]     Checking futures-sink v0.3.31
[INFO] [stderr]     Checking log v0.4.27
[INFO] [stderr]     Checking stable_deref_trait v1.2.0
[INFO] [stderr]     Checking pin-utils v0.1.0
[INFO] [stderr]     Checking futures-task v0.3.31
[INFO] [stderr]     Checking slab v0.4.10
[INFO] [stderr]    Compiling serde v1.0.219
[INFO] [stderr]     Checking once_cell v1.21.3
[INFO] [stderr]    Compiling httparse v1.10.1
[INFO] [stderr]     Checking litemap v0.8.0
[INFO] [stderr]     Checking memchr v2.7.5
[INFO] [stderr]     Checking percent-encoding v2.3.1
[INFO] [stderr]     Checking writeable v0.6.1
[INFO] [stderr]    Compiling icu_normalizer_data v2.0.0
[INFO] [stderr]    Compiling icu_properties_data v2.0.1
[INFO] [stderr]    Compiling zerocopy v0.8.26
[INFO] [stderr]    Compiling shlex v1.3.0
[INFO] [stderr]     Checking tracing-core v0.1.34
[INFO] [stderr]     Checking cpufeatures v0.2.17
[INFO] [stderr]     Checking httpdate v1.0.3
[INFO] [stderr]     Checking tower-service v0.3.3
[INFO] [stderr]     Checking form_urlencoded v1.2.1
[INFO] [stderr]     Checking ryu v1.0.20
[INFO] [stderr]    Compiling cc v1.2.29
[INFO] [stderr]     Checking futures-channel v0.3.31
[INFO] [stderr]     Checking equivalent v1.0.2
[INFO] [stderr]    Compiling pkg-config v0.3.32
[INFO] [stderr]     Checking hashbrown v0.15.4
[INFO] [stderr]     Checking utf8_iter v1.0.4
[INFO] [stderr]     Checking mime v0.3.17
[INFO] [stderr]    Compiling vcpkg v0.2.15
[INFO] [stderr]    Compiling serde_json v1.0.140
[INFO] [stderr]     Checking http v1.3.1
[INFO] [stderr]     Checking http v0.2.12
[INFO] [stderr]    Compiling quote v1.0.40
[INFO] [stderr]    Compiling regex-syntax v0.8.5
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]    Compiling syn v2.0.104
[INFO] [stderr]    Compiling lock_api v0.4.13
[INFO] [stderr]     Checking socket2 v0.5.10
[INFO] [stderr]     Checking mio v1.0.4
[INFO] [stderr]     Checking signal-hook-registry v1.4.5
[INFO] [stderr]    Compiling aho-corasick v1.1.3
[INFO] [stderr]     Checking crypto-common v0.1.6
[INFO] [stderr]     Checking block-buffer v0.10.4
[INFO] [stderr]     Checking getrandom v0.2.16
[INFO] [stderr]     Checking parking_lot v0.12.4
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]     Checking http-body v1.0.1
[INFO] [stderr]    Compiling proc-macro-error-attr v1.0.4
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]    Compiling proc-macro-error v1.0.4
[INFO] [stderr]    Compiling rustversion v1.0.21
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]     Checking byteorder v1.5.0
[INFO] [stderr]     Checking sha1 v0.10.6
[INFO] [stderr]     Checking foreign-types-shared v0.1.1
[INFO] [stderr]    Compiling getrandom v0.3.3
[INFO] [stderr]     Checking tower-layer v0.3.3
[INFO] [stderr]     Checking sync_wrapper v1.0.2
[INFO] [stderr]    Compiling adler2 v2.0.1
[INFO] [stderr]    Compiling openssl v0.10.73
[INFO] [stderr]    Compiling miniz_oxide v0.8.9
[INFO] [stderr]     Checking foreign-types v0.3.2
[INFO] [stderr]     Checking http-body-util v0.1.3
[INFO] [stderr]    Compiling crc32fast v1.4.2
[INFO] [stderr]     Checking utf-8 v0.7.6
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]     Checking bitflags v2.9.1
[INFO] [stderr]    Compiling same-file v1.0.6
[INFO] [stderr]     Checking data-encoding v2.9.0
[INFO] [stderr]    Compiling unicase v2.8.1
[INFO] [stderr]    Compiling native-tls v0.2.14
[INFO] [stderr]     Checking try-lock v0.2.5
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]     Checking want v0.3.1
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]    Compiling flate2 v1.1.2
[INFO] [stderr]    Compiling walkdir v2.5.0
[INFO] [stderr]    Compiling regex-automata v0.4.9
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]    Compiling mime_guess v2.0.5
[INFO] [stderr]     Checking http-body v0.4.6
[INFO] [stderr]    Compiling parking_lot_core v0.8.6
[INFO] [stderr]     Checking openssl-probe v0.1.6
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]     Checking matchit v0.7.3
[INFO] [stderr]     Checking base64 v0.21.7
[INFO] [stderr]    Compiling zip v0.6.6
[INFO] [stderr]    Compiling rust-embed-utils v8.7.2
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling multer v2.1.0
[INFO] [stderr]     Checking encoding_rs v0.8.35
[INFO] [stderr]     Checking instant v0.1.13
[INFO] [stderr]    Compiling uuid v1.17.0
[INFO] [stderr]     Checking rand_core v0.9.3
[INFO] [stderr]     Checking headers-core v0.2.0
[INFO] [stderr]     Checking socket2 v0.4.10
[INFO] [stderr]     Checking num_cpus v1.17.0
[INFO] [stderr]     Checking spin v0.9.8
[INFO] [stderr]    Compiling anyhow v1.0.98
[INFO] [stderr]     Checking overload v0.1.1
[INFO] [stderr]     Checking lazy_static v1.5.0
[INFO] [stderr]     Checking sha1_smol v1.0.1
[INFO] [stderr]     Checking sharded-slab v0.1.7
[INFO] [stderr]     Checking nu-ansi-term v0.46.0
[INFO] [stderr]     Checking crossbeam-epoch v0.9.18
[INFO] [stderr]     Checking parking_lot v0.11.2
[INFO] [stderr]     Checking headers v0.3.9
[INFO] [stderr]     Checking rand_chacha v0.9.0
[INFO] [stderr]     Checking rustls-pemfile v1.0.4
[INFO] [stderr]     Checking fxhash v0.2.1
[INFO] [stderr]     Checking fs2 v0.4.3
[INFO] [stderr]     Checking tracing-log v0.2.0
[INFO] [stderr]     Checking thread_local v1.1.9
[INFO] [stderr]     Checking iana-time-zone v0.1.63
[INFO] [stderr]     Checking sync_wrapper v0.1.2
[INFO] [stderr]     Checking scoped-tls v1.0.1
[INFO] [stderr]     Checking ipnet v2.11.0
[INFO] [stderr]     Checking sled v0.34.7
[INFO] [stderr]     Checking rand v0.9.1
[INFO] [stderr]     Checking tracing-subscriber v0.3.19
[INFO] [stderr]    Compiling regex v1.11.1
[INFO] [stderr]     Checking md5 v0.7.0
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling openssl-sys v0.9.109
[INFO] [stderr]    Compiling utoipa-swagger-ui v6.0.0
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling tokio-macros v2.5.0
[INFO] [stderr]    Compiling yoke-derive v0.8.0
[INFO] [stderr]    Compiling zerovec-derive v0.11.1
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling serde_derive v1.0.219
[INFO] [stderr]    Compiling tracing-attributes v0.1.30
[INFO] [stderr]    Compiling async-trait v0.1.88
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]    Compiling utoipa-gen v4.3.1
[INFO] [stderr]    Compiling pin-project-internal v1.1.10
[INFO] [stderr]    Compiling rust-embed-impl v8.7.2
[INFO] [stderr]    Compiling async-stream-impl v0.3.6
[INFO] [stderr]     Checking rust-embed v8.7.2
[INFO] [stderr]     Checking async-stream v0.3.6
[INFO] [stderr]     Checking futures-util v0.3.31
[INFO] [stderr]     Checking tokio v1.46.1
[INFO] [stderr]     Checking tracing v0.1.41
[INFO] [stderr]     Checking pin-project v1.1.10
[INFO] [stderr]     Checking axum-core v0.4.5
[INFO] [stderr]     Checking zerofrom v0.1.6
[INFO] [stderr]     Checking yoke v0.8.0
[INFO] [stderr]     Checking zerovec v0.11.2
[INFO] [stderr]     Checking zerotrie v0.2.2
[INFO] [stderr]     Checking tokio-util v0.7.15
[INFO] [stderr]     Checking hyper v1.6.0
[INFO] [stderr]     Checking tower v0.5.2
[INFO] [stderr]     Checking deadpool-runtime v0.1.4
[INFO] [stderr]     Checking tokio-native-tls v0.3.1
[INFO] [stderr]     Checking deadpool v0.10.0
[INFO] [stderr]     Checking combine v4.6.7
[INFO] [stderr]     Checking tinystr v0.8.1
[INFO] [stderr]     Checking potential_utf v0.1.2
[INFO] [stderr]     Checking icu_collections v2.0.0
[INFO] [stderr]     Checking icu_locale_core v2.0.0
[INFO] [stderr]     Checking hyper-util v0.1.15
[INFO] [stderr]     Checking icu_provider v2.0.0
[INFO] [stderr]     Checking icu_properties v2.0.1
[INFO] [stderr]     Checking icu_normalizer v2.0.0
[INFO] [stderr]     Checking indexmap v2.10.0
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking serde_path_to_error v0.1.17
[INFO] [stderr]     Checking chrono v0.4.41
[INFO] [stderr]     Checking idna_adapter v1.2.1
[INFO] [stderr]     Checking h2 v0.3.26
[INFO] [stderr]     Checking idna v1.0.3
[INFO] [stderr]     Checking url v2.5.4
[INFO] [stderr]     Checking utoipa v4.2.3
[INFO] [stderr]     Checking axum v0.7.9
[INFO] [stderr]     Checking tungstenite v0.21.0
[INFO] [stderr]     Checking tungstenite v0.20.1
[INFO] [stderr]     Checking tokio-tungstenite v0.21.0
[INFO] [stderr]     Checking tokio-tungstenite v0.20.1
[INFO] [stderr]     Checking redis v0.23.3
[INFO] [stderr]     Checking hyper v0.14.32
[INFO] [stderr]     Checking utoipa-rapidoc v3.0.0
[INFO] [stderr]     Checking utoipa-redoc v3.0.0
[INFO] [stderr]     Checking deadpool-redis v0.13.0
[INFO] [stderr]     Checking hyper-tls v0.5.0
[INFO] [stderr]     Checking warp v0.3.7
[INFO] [stderr]     Checking reqwest v0.11.27
[INFO] [stderr]     Checking kefu-system v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `error`
[INFO] [stdout]  --> src/auth/kefu_auth.rs:7:27
[INFO] [stdout]   |
[INFO] [stdout] 7 | use tracing::{info, warn, error};
[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 imports: `MetricsRegistry`, `PerformanceCollector`, and `PrometheusExporter`
[INFO] [stdout]   --> src/server/components.rs:14:25
[INFO] [stdout]    |
[INFO] [stdout] 14 | use crate::monitoring::{MetricsRegistry, PerformanceCollector, PrometheusExporter};
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Duration`
[INFO] [stdout]  --> src/monitoring/metrics.rs:2:17
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::time::{Duration, Instant};
[INFO] [stdout]   |                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `MetricType`
[INFO] [stdout]  --> src/monitoring/mod.rs:9:36
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub use metrics::{MetricsRegistry, MetricType};
[INFO] [stdout]   |                                    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `metrics::with_metrics`
[INFO] [stdout]  --> src/middleware/mod.rs:4:9
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub use metrics::with_metrics;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Deserialize`
[INFO] [stdout]  --> src/cache/manager.rs:4:24
[INFO] [stdout]   |
[INFO] [stdout] 4 | use serde::{Serialize, Deserialize, de::DeserializeOwned};
[INFO] [stdout]   |                        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `memory::MemoryCache`
[INFO] [stdout]  --> src/cache/mod.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub use memory::MemoryCache;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CacheConfig` and `CacheManager`
[INFO] [stdout]  --> src/cache/mod.rs:8:19
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub use manager::{CacheManager, CacheConfig};
[INFO] [stdout]   |                   ^^^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `error`
[INFO] [stdout]  --> src/auth/kefu_auth.rs:7:27
[INFO] [stdout]   |
[INFO] [stdout] 7 | use tracing::{info, warn, error};
[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 imports: `MetricsRegistry`, `PerformanceCollector`, and `PrometheusExporter`
[INFO] [stdout]   --> src/server/components.rs:14:25
[INFO] [stdout]    |
[INFO] [stdout] 14 | use crate::monitoring::{MetricsRegistry, PerformanceCollector, PrometheusExporter};
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Duration`
[INFO] [stdout]  --> src/monitoring/metrics.rs:2:17
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::time::{Duration, Instant};
[INFO] [stdout]   |                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `MetricType`
[INFO] [stdout]  --> src/monitoring/mod.rs:9:36
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub use metrics::{MetricsRegistry, MetricType};
[INFO] [stdout]   |                                    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `metrics::with_metrics`
[INFO] [stdout]  --> src/middleware/mod.rs:4:9
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub use metrics::with_metrics;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Deserialize`
[INFO] [stdout]  --> src/cache/manager.rs:4:24
[INFO] [stdout]   |
[INFO] [stdout] 4 | use serde::{Serialize, Deserialize, de::DeserializeOwned};
[INFO] [stdout]   |                        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `memory::MemoryCache`
[INFO] [stdout]  --> src/cache/mod.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub use memory::MemoryCache;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CacheConfig` and `CacheManager`
[INFO] [stdout]  --> src/cache/mod.rs:8:19
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub use manager::{CacheManager, CacheConfig};
[INFO] [stdout]   |                   ^^^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: method takes 0 generic arguments but 2 generic arguments were supplied
[INFO] [stdout]    --> src/redis_client.rs:550:20
[INFO] [stdout]     |
[INFO] [stdout] 550 |         match conn.get::<_, Option<String>>(key).await? {
[INFO] [stdout]     |                    ^^^--------------------- help: remove the unnecessary generics
[INFO] [stdout]     |                    |
[INFO] [stdout]     |                    expected 0 generic arguments
[INFO] [stdout]     |
[INFO] [stdout] note: method defined here, with 0 generic parameters
[INFO] [stdout]    --> src/redis_client.rs:683:18
[INFO] [stdout]     |
[INFO] [stdout] 683 |     pub async fn get(&mut self, key: &str) -> Result<String> {
[INFO] [stdout]     |                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/redis_client.rs:551:13
[INFO] [stdout]     |
[INFO] [stdout] 550 |         match conn.get::<_, Option<String>>(key).await? {
[INFO] [stdout]     |               ----------------------------------------- this expression has type `std::string::String`
[INFO] [stdout] 551 |             Some(value) => {
[INFO] [stdout]     |             ^^^^^^^^^^^ expected `String`, found `Option<_>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `std::string::String`
[INFO] [stdout]                  found enum `std::option::Option<_>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/redis_client.rs:555:13
[INFO] [stdout]     |
[INFO] [stdout] 550 |         match conn.get::<_, Option<String>>(key).await? {
[INFO] [stdout]     |               ----------------------------------------- this expression has type `std::string::String`
[INFO] [stdout] ...
[INFO] [stdout] 555 |             None => Ok(None),
[INFO] [stdout]     |             ^^^^ expected `String`, found `Option<_>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `std::string::String`
[INFO] [stdout]                  found enum `std::option::Option<_>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: arguments to this method are incorrect
[INFO] [stdout]    --> src/redis_client.rs:561:14
[INFO] [stdout]     |
[INFO] [stdout] 561 |         conn.set_ex(key, value, ttl as usize).await?;
[INFO] [stdout]     |              ^^^^^^ ---  -----  ------------ expected `i64`, found `usize`
[INFO] [stdout]     |                     |    |
[INFO] [stdout]     |                     |    expected `String`, found `&str`
[INFO] [stdout]     |                     expected `String`, found `&str`
[INFO] [stdout]     |
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/redis_client.rs:739:18
[INFO] [stdout]     |
[INFO] [stdout] 739 |     pub async fn set_ex(&mut self, key: String, value: String, seconds: i64) -> Result<()> {
[INFO] [stdout]     |                  ^^^^^^            -----------  -------------  ------------
[INFO] [stdout] help: try using a conversion method
[INFO] [stdout]     |
[INFO] [stdout] 561 |         conn.set_ex(key.to_string(), value, ttl as usize).await?;
[INFO] [stdout]     |                        ++++++++++++
[INFO] [stdout] help: try using a conversion method
[INFO] [stdout]     |
[INFO] [stdout] 561 |         conn.set_ex(key, value.to_string(), ttl as usize).await?;
[INFO] [stdout]     |                               ++++++++++++
[INFO] [stdout] help: you can convert a `usize` to an `i64` and panic if the converted value doesn't fit
[INFO] [stdout]     |
[INFO] [stdout] 561 |         conn.set_ex(key, value, (ttl as usize).try_into().unwrap()).await?;
[INFO] [stdout]     |                                 +            +++++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `keys` exists for enum `AsyncConnection`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/redis_client.rs:573:38
[INFO] [stdout]     |
[INFO] [stdout] 573 |         let keys: Vec<String> = conn.keys(pattern).await?;
[INFO] [stdout]     |                                      ^^^^ method cannot be called on `AsyncConnection` due to unsatisfied trait bounds
[INFO] [stdout] ...
[INFO] [stdout] 670 | pub enum AsyncConnection {
[INFO] [stdout]     | ------------------------ method `keys` not found for this enum because it doesn't satisfy `AsyncConnection: AsyncCommands` or `AsyncConnection: redis::aio::ConnectionLike`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `AsyncConnection: redis::aio::ConnectionLike`
[INFO] [stdout]             which is required by `AsyncConnection: AsyncCommands`
[INFO] [stdout] note: the trait `redis::aio::ConnectionLike` must be implemented
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/redis-0.23.3/src/aio/mod.rs:53:1
[INFO] [stdout]     |
[INFO] [stdout]  53 | pub trait ConnectionLike {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout]     = note: the following traits define an item `keys`, perhaps you need to implement one of them:
[INFO] [stdout]             candidate #1: `AsyncCommands`
[INFO] [stdout]             candidate #2: `Commands`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/redis_client.rs:576:22
[INFO] [stdout]     |
[INFO] [stdout] 576 |             conn.del(keys).await?;
[INFO] [stdout]     |                  --- ^^^^ expected `&str`, found `Vec<String>`
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&str`
[INFO] [stdout]                   found struct `Vec<std::string::String>`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/redis_client.rs:718:18
[INFO] [stdout]     |
[INFO] [stdout] 718 |     pub async fn del(&mut self, key: &str) -> Result<()> {
[INFO] [stdout]     |                  ^^^            ---------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: method takes 0 generic arguments but 2 generic arguments were supplied
[INFO] [stdout]    --> src/redis_client.rs:550:20
[INFO] [stdout]     |
[INFO] [stdout] 550 |         match conn.get::<_, Option<String>>(key).await? {
[INFO] [stdout]     |                    ^^^--------------------- help: remove the unnecessary generics
[INFO] [stdout]     |                    |
[INFO] [stdout]     |                    expected 0 generic arguments
[INFO] [stdout]     |
[INFO] [stdout] note: method defined here, with 0 generic parameters
[INFO] [stdout]    --> src/redis_client.rs:683:18
[INFO] [stdout]     |
[INFO] [stdout] 683 |     pub async fn get(&mut self, key: &str) -> Result<String> {
[INFO] [stdout]     |                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/redis_client.rs:551:13
[INFO] [stdout]     |
[INFO] [stdout] 550 |         match conn.get::<_, Option<String>>(key).await? {
[INFO] [stdout]     |               ----------------------------------------- this expression has type `std::string::String`
[INFO] [stdout] 551 |             Some(value) => {
[INFO] [stdout]     |             ^^^^^^^^^^^ expected `String`, found `Option<_>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `std::string::String`
[INFO] [stdout]                  found enum `std::option::Option<_>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/redis_client.rs:555:13
[INFO] [stdout]     |
[INFO] [stdout] 550 |         match conn.get::<_, Option<String>>(key).await? {
[INFO] [stdout]     |               ----------------------------------------- this expression has type `std::string::String`
[INFO] [stdout] ...
[INFO] [stdout] 555 |             None => Ok(None),
[INFO] [stdout]     |             ^^^^ expected `String`, found `Option<_>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `std::string::String`
[INFO] [stdout]                  found enum `std::option::Option<_>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: arguments to this method are incorrect
[INFO] [stdout]    --> src/redis_client.rs:561:14
[INFO] [stdout]     |
[INFO] [stdout] 561 |         conn.set_ex(key, value, ttl as usize).await?;
[INFO] [stdout]     |              ^^^^^^ ---  -----  ------------ expected `i64`, found `usize`
[INFO] [stdout]     |                     |    |
[INFO] [stdout]     |                     |    expected `String`, found `&str`
[INFO] [stdout]     |                     expected `String`, found `&str`
[INFO] [stdout]     |
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/redis_client.rs:739:18
[INFO] [stdout]     |
[INFO] [stdout] 739 |     pub async fn set_ex(&mut self, key: String, value: String, seconds: i64) -> Result<()> {
[INFO] [stdout]     |                  ^^^^^^            -----------  -------------  ------------
[INFO] [stdout] help: try using a conversion method
[INFO] [stdout]     |
[INFO] [stdout] 561 |         conn.set_ex(key.to_string(), value, ttl as usize).await?;
[INFO] [stdout]     |                        ++++++++++++
[INFO] [stdout] help: try using a conversion method
[INFO] [stdout]     |
[INFO] [stdout] 561 |         conn.set_ex(key, value.to_string(), ttl as usize).await?;
[INFO] [stdout]     |                               ++++++++++++
[INFO] [stdout] help: you can convert a `usize` to an `i64` and panic if the converted value doesn't fit
[INFO] [stdout]     |
[INFO] [stdout] 561 |         conn.set_ex(key, value, (ttl as usize).try_into().unwrap()).await?;
[INFO] [stdout]     |                                 +            +++++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `keys` exists for enum `AsyncConnection`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/redis_client.rs:573:38
[INFO] [stdout]     |
[INFO] [stdout] 573 |         let keys: Vec<String> = conn.keys(pattern).await?;
[INFO] [stdout]     |                                      ^^^^ method cannot be called on `AsyncConnection` due to unsatisfied trait bounds
[INFO] [stdout] ...
[INFO] [stdout] 670 | pub enum AsyncConnection {
[INFO] [stdout]     | ------------------------ method `keys` not found for this enum because it doesn't satisfy `AsyncConnection: AsyncCommands` or `AsyncConnection: redis::aio::ConnectionLike`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `AsyncConnection: redis::aio::ConnectionLike`
[INFO] [stdout]             which is required by `AsyncConnection: AsyncCommands`
[INFO] [stdout] note: the trait `redis::aio::ConnectionLike` must be implemented
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/redis-0.23.3/src/aio/mod.rs:53:1
[INFO] [stdout]     |
[INFO] [stdout]  53 | pub trait ConnectionLike {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout]     = note: the following traits define an item `keys`, perhaps you need to implement one of them:
[INFO] [stdout]             candidate #1: `AsyncCommands`
[INFO] [stdout]             candidate #2: `Commands`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/redis_client.rs:576:22
[INFO] [stdout]     |
[INFO] [stdout] 576 |             conn.del(keys).await?;
[INFO] [stdout]     |                  --- ^^^^ expected `&str`, found `Vec<String>`
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&str`
[INFO] [stdout]                   found struct `Vec<std::string::String>`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/redis_client.rs:718:18
[INFO] [stdout]     |
[INFO] [stdout] 718 |     pub async fn del(&mut self, key: &str) -> Result<()> {
[INFO] [stdout]     |                  ^^^            ---------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this function depends on never type fallback being `()`
[INFO] [stdout]    --> src/auth/kefu_auth.rs:121:5
[INFO] [stdout]     |
[INFO] [stdout] 121 |     pub async fn kefu_login(&self, kefu_auth: &KefuAuth, session_id: &str) -> Result<bool> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/never-type-fallback.html>
[INFO] [stdout]     = help: specify the types explicitly
[INFO] [stdout] note: in edition 2024, the requirement `!: FromRedisValue` will fail
[INFO] [stdout]    --> src/auth/kefu_auth.rs:148:14
[INFO] [stdout]     |
[INFO] [stdout] 148 |         conn.set_ex(&key, status_json, 3600).await?; // 1小时过期
[INFO] [stdout]     |              ^^^^^^
[INFO] [stdout]     = note: `#[deny(dependency_on_unit_never_type_fallback)]` (part of `#[deny(rust_2024_compatibility)]`) on by default
[INFO] [stdout] help: use `()` annotations to avoid fallback changes
[INFO] [stdout]     |
[INFO] [stdout] 148 ~         conn.set_ex::<_, _, ()>(&key, status_json, 3600).await?; // 1小时过期
[INFO] [stdout] 149 |         
[INFO] [stdout] 150 |         // 添加到在线列表
[INFO] [stdout] 151 |         let online_list_key = "kefu:online:list";
[INFO] [stdout] 152 ~         conn.sadd::<_, _, ()>(&online_list_key, &kefu_auth.kefu_id).await?;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this function depends on never type fallback being `()`
[INFO] [stdout]    --> src/auth/kefu_auth.rs:159:5
[INFO] [stdout]     |
[INFO] [stdout] 159 |     pub async fn kefu_logout(&self, kefu_id: &str) -> Result<()> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/never-type-fallback.html>
[INFO] [stdout]     = help: specify the types explicitly
[INFO] [stdout] note: in edition 2024, the requirement `!: FromRedisValue` will fail
[INFO] [stdout]    --> src/auth/kefu_auth.rs:166:14
[INFO] [stdout]     |
[INFO] [stdout] 166 |         conn.del(&key).await?;
[INFO] [stdout]     |              ^^^
[INFO] [stdout] help: use `()` annotations to avoid fallback changes
[INFO] [stdout]     |
[INFO] [stdout] 166 ~         conn.del::<_, ()>(&key).await?;
[INFO] [stdout] 167 |         
[INFO] [stdout] 168 |         // 从在线列表移除
[INFO] [stdout] 169 |         let online_list_key = "kefu:online:list";
[INFO] [stdout] 170 ~         conn.srem::<_, _, ()>(&online_list_key, kefu_id).await?;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this function depends on never type fallback being `()`
[INFO] [stdout]    --> src/auth/kefu_auth.rs:177:5
[INFO] [stdout]     |
[INFO] [stdout] 177 |     pub async fn update_kefu_heartbeat(&self, kefu_id: &str) -> Result<()> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/never-type-fallback.html>
[INFO] [stdout]     = help: specify the types explicitly
[INFO] [stdout] note: in edition 2024, the requirement `!: FromRedisValue` will fail
[INFO] [stdout]    --> src/auth/kefu_auth.rs:191:22
[INFO] [stdout]     |
[INFO] [stdout] 191 |                 conn.set_ex(&key, updated_json, 3600).await?;
[INFO] [stdout]     |                      ^^^^^^
[INFO] [stdout] help: use `()` annotations to avoid fallback changes
[INFO] [stdout]     |
[INFO] [stdout] 191 |                 conn.set_ex::<_, _, ()>(&key, updated_json, 3600).await?;
[INFO] [stdout]     |                            ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this function depends on never type fallback being `()`
[INFO] [stdout]    --> src/auth/kefu_auth.rs:219:5
[INFO] [stdout]     |
[INFO] [stdout] 219 |     pub async fn assign_kefu_for_customer(&self, customer_id: &str) -> Result<Option<String>> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/never-type-fallback.html>
[INFO] [stdout]     = help: specify the types explicitly
[INFO] [stdout] note: in edition 2024, the requirement `!: FromRedisValue` will fail
[INFO] [stdout]    --> src/auth/kefu_auth.rs:242:18
[INFO] [stdout]     |
[INFO] [stdout] 242 |             conn.set_ex(&customer_key, &kefu.kefu_id, 3600).await?;
[INFO] [stdout]     |                  ^^^^^^
[INFO] [stdout] help: use `()` annotations to avoid fallback changes
[INFO] [stdout]     |
[INFO] [stdout] 242 |             conn.set_ex::<_, _, ()>(&customer_key, &kefu.kefu_id, 3600).await?;
[INFO] [stdout]     |                        ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this function depends on never type fallback being `()`
[INFO] [stdout]    --> src/auth/kefu_auth.rs:252:5
[INFO] [stdout]     |
[INFO] [stdout] 252 |     async fn increment_kefu_customers(&self, kefu_id: &str, increment: i32) -> Result<()> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/never-type-fallback.html>
[INFO] [stdout]     = help: specify the types explicitly
[INFO] [stdout] note: in edition 2024, the requirement `!: FromRedisValue` will fail
[INFO] [stdout]    --> src/auth/kefu_auth.rs:265:22
[INFO] [stdout]     |
[INFO] [stdout] 265 |                 conn.set_ex(&key, updated_json, 3600).await?;
[INFO] [stdout]     |                      ^^^^^^
[INFO] [stdout] help: use `()` annotations to avoid fallback changes
[INFO] [stdout]     |
[INFO] [stdout] 265 |                 conn.set_ex::<_, _, ()>(&key, updated_json, 3600).await?;
[INFO] [stdout]     |                            ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this function depends on never type fallback being `()`
[INFO] [stdout]    --> src/auth/kefu_auth.rs:273:5
[INFO] [stdout]     |
[INFO] [stdout] 273 |     pub async fn release_kefu_for_customer(&self, customer_id: &str) -> Result<()> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/never-type-fallback.html>
[INFO] [stdout]     = help: specify the types explicitly
[INFO] [stdout] note: in edition 2024, the requirement `!: FromRedisValue` will fail
[INFO] [stdout]    --> src/auth/kefu_auth.rs:279:18
[INFO] [stdout]     |
[INFO] [stdout] 279 |             conn.del(&customer_key).await?;
[INFO] [stdout]     |                  ^^^
[INFO] [stdout] help: use `()` annotations to avoid fallback changes
[INFO] [stdout]     |
[INFO] [stdout] 279 |             conn.del::<_, ()>(&customer_key).await?;
[INFO] [stdout]     |                     +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this function depends on never type fallback being `()`
[INFO] [stdout]    --> src/auth/kefu_auth.rs:121:5
[INFO] [stdout]     |
[INFO] [stdout] 121 |     pub async fn kefu_login(&self, kefu_auth: &KefuAuth, session_id: &str) -> Result<bool> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/never-type-fallback.html>
[INFO] [stdout]     = help: specify the types explicitly
[INFO] [stdout] note: in edition 2024, the requirement `!: FromRedisValue` will fail
[INFO] [stdout]    --> src/auth/kefu_auth.rs:148:14
[INFO] [stdout]     |
[INFO] [stdout] 148 |         conn.set_ex(&key, status_json, 3600).await?; // 1小时过期
[INFO] [stdout]     |              ^^^^^^
[INFO] [stdout]     = note: `#[deny(dependency_on_unit_never_type_fallback)]` (part of `#[deny(rust_2024_compatibility)]`) on by default
[INFO] [stdout] help: use `()` annotations to avoid fallback changes
[INFO] [stdout]     |
[INFO] [stdout] 148 ~         conn.set_ex::<_, _, ()>(&key, status_json, 3600).await?; // 1小时过期
[INFO] [stdout] 149 |         
[INFO] [stdout] 150 |         // 添加到在线列表
[INFO] [stdout] 151 |         let online_list_key = "kefu:online:list";
[INFO] [stdout] 152 ~         conn.sadd::<_, _, ()>(&online_list_key, &kefu_auth.kefu_id).await?;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this function depends on never type fallback being `()`
[INFO] [stdout]    --> src/auth/kefu_auth.rs:159:5
[INFO] [stdout]     |
[INFO] [stdout] 159 |     pub async fn kefu_logout(&self, kefu_id: &str) -> Result<()> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/never-type-fallback.html>
[INFO] [stdout]     = help: specify the types explicitly
[INFO] [stdout] note: in edition 2024, the requirement `!: FromRedisValue` will fail
[INFO] [stdout]    --> src/auth/kefu_auth.rs:166:14
[INFO] [stdout]     |
[INFO] [stdout] 166 |         conn.del(&key).await?;
[INFO] [stdout]     |              ^^^
[INFO] [stdout] help: use `()` annotations to avoid fallback changes
[INFO] [stdout]     |
[INFO] [stdout] 166 ~         conn.del::<_, ()>(&key).await?;
[INFO] [stdout] 167 |         
[INFO] [stdout] 168 |         // 从在线列表移除
[INFO] [stdout] 169 |         let online_list_key = "kefu:online:list";
[INFO] [stdout] 170 ~         conn.srem::<_, _, ()>(&online_list_key, kefu_id).await?;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this function depends on never type fallback being `()`
[INFO] [stdout]    --> src/auth/kefu_auth.rs:177:5
[INFO] [stdout]     |
[INFO] [stdout] 177 |     pub async fn update_kefu_heartbeat(&self, kefu_id: &str) -> Result<()> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/never-type-fallback.html>
[INFO] [stdout]     = help: specify the types explicitly
[INFO] [stdout] note: in edition 2024, the requirement `!: FromRedisValue` will fail
[INFO] [stdout]    --> src/auth/kefu_auth.rs:191:22
[INFO] [stdout]     |
[INFO] [stdout] 191 |                 conn.set_ex(&key, updated_json, 3600).await?;
[INFO] [stdout]     |                      ^^^^^^
[INFO] [stdout] help: use `()` annotations to avoid fallback changes
[INFO] [stdout]     |
[INFO] [stdout] 191 |                 conn.set_ex::<_, _, ()>(&key, updated_json, 3600).await?;
[INFO] [stdout]     |                            ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this function depends on never type fallback being `()`
[INFO] [stdout]    --> src/auth/kefu_auth.rs:219:5
[INFO] [stdout]     |
[INFO] [stdout] 219 |     pub async fn assign_kefu_for_customer(&self, customer_id: &str) -> Result<Option<String>> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/never-type-fallback.html>
[INFO] [stdout]     = help: specify the types explicitly
[INFO] [stdout] note: in edition 2024, the requirement `!: FromRedisValue` will fail
[INFO] [stdout]    --> src/auth/kefu_auth.rs:242:18
[INFO] [stdout]     |
[INFO] [stdout] 242 |             conn.set_ex(&customer_key, &kefu.kefu_id, 3600).await?;
[INFO] [stdout]     |                  ^^^^^^
[INFO] [stdout] help: use `()` annotations to avoid fallback changes
[INFO] [stdout]     |
[INFO] [stdout] 242 |             conn.set_ex::<_, _, ()>(&customer_key, &kefu.kefu_id, 3600).await?;
[INFO] [stdout]     |                        ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this function depends on never type fallback being `()`
[INFO] [stdout]    --> src/auth/kefu_auth.rs:252:5
[INFO] [stdout]     |
[INFO] [stdout] 252 |     async fn increment_kefu_customers(&self, kefu_id: &str, increment: i32) -> Result<()> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/never-type-fallback.html>
[INFO] [stdout]     = help: specify the types explicitly
[INFO] [stdout] note: in edition 2024, the requirement `!: FromRedisValue` will fail
[INFO] [stdout]    --> src/auth/kefu_auth.rs:265:22
[INFO] [stdout]     |
[INFO] [stdout] 265 |                 conn.set_ex(&key, updated_json, 3600).await?;
[INFO] [stdout]     |                      ^^^^^^
[INFO] [stdout] help: use `()` annotations to avoid fallback changes
[INFO] [stdout]     |
[INFO] [stdout] 265 |                 conn.set_ex::<_, _, ()>(&key, updated_json, 3600).await?;
[INFO] [stdout]     |                            ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: this function depends on never type fallback being `()`
[INFO] [stdout]    --> src/auth/kefu_auth.rs:273:5
[INFO] [stdout]     |
[INFO] [stdout] 273 |     pub async fn release_kefu_for_customer(&self, customer_id: &str) -> Result<()> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/never-type-fallback.html>
[INFO] [stdout]     = help: specify the types explicitly
[INFO] [stdout] note: in edition 2024, the requirement `!: FromRedisValue` will fail
[INFO] [stdout]    --> src/auth/kefu_auth.rs:279:18
[INFO] [stdout]     |
[INFO] [stdout] 279 |             conn.del(&customer_key).await?;
[INFO] [stdout]     |                  ^^^
[INFO] [stdout] help: use `()` annotations to avoid fallback changes
[INFO] [stdout]     |
[INFO] [stdout] 279 |             conn.del::<_, ()>(&customer_key).await?;
[INFO] [stdout]     |                     +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `<F as warp::filter::FilterBase>::Error: reject::sealed::CombineRejection<Infallible>` is not satisfied
[INFO] [stdout]    --> src/middleware/metrics.rs:28:14
[INFO] [stdout]     |
[INFO] [stdout]  28 |         .and(filter)
[INFO] [stdout]     |          --- ^^^^^^ the trait `reject::sealed::CombineRejection<Infallible>` is not implemented for `<F as warp::filter::FilterBase>::Error`
[INFO] [stdout]     |          |
[INFO] [stdout]     |          required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `warp::Filter::and`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/warp-0.3.7/src/filter/mod.rs:118:19
[INFO] [stdout]     |
[INFO] [stdout] 113 |     fn and<F>(self, other: F) -> And<Self, F>
[INFO] [stdout]     |        --- required by a bound in this associated function
[INFO] [stdout] ...
[INFO] [stdout] 118 |         F::Error: CombineRejection<Self::Error>,
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `Filter::and`
[INFO] [stdout] help: consider further restricting the associated type
[INFO] [stdout]     |
[INFO] [stdout]  20 |     F: Filter + Clone, <F as warp::filter::FilterBase>::Error: reject::sealed::CombineRejection<Infallible>
[INFO] [stdout]     |                        ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Product<(Instant, Arc<MetricsRegistry>), <... as Tuple>::HList>: HList` is not satisfied
[INFO] [stdout]    --> src/middleware/metrics.rs:28:14
[INFO] [stdout]     |
[INFO] [stdout]  28 |         .and(filter)
[INFO] [stdout]     |          --- ^^^^^^ the trait `warp::generic::HList` is not implemented for `Product<(Instant, Arc<MetricsRegistry>), <... as Tuple>::HList>`
[INFO] [stdout]     |          |
[INFO] [stdout]     |          required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = note: required for `warp::generic::Product<(std::time::Instant, std::sync::Arc<MetricsRegistry>), ()>` to implement `Combine<<<F as FilterBase>::Extract as Tuple>::HList>`
[INFO] [stdout] note: required by a bound in `warp::Filter::and`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/warp-0.3.7/src/filter/mod.rs:116:42
[INFO] [stdout]     |
[INFO] [stdout] 113 |     fn and<F>(self, other: F) -> And<Self, F>
[INFO] [stdout]     |        --- required by a bound in this associated function
[INFO] [stdout] ...
[INFO] [stdout] 116 |         <Self::Extract as Tuple>::HList: Combine<<F::Extract as Tuple>::HList>,
[INFO] [stdout]     |                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `Filter::and`
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/deps/kefu_system-7ead4950078b6b10.long-type-11046900633658365234.txt'
[INFO] [stdout]     = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] help: consider extending the `where` clause, but there might be an alternative better way to express this requirement
[INFO] [stdout]     |
[INFO] [stdout]  20 |     F: Filter + Clone, warp::generic::Product<(std::time::Instant, std::sync::Arc<MetricsRegistry>), <<F as warp::filter::FilterBase>::Extract as warp::generic::Tuple>::HList>: warp::generic::HList
[INFO] [stdout]     |                        ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `map` exists for struct `And<Map<..., ...>, ...>`, but its trait bounds were not satisfied
[INFO] [stdout]   --> src/middleware/metrics.rs:29:10
[INFO] [stdout]    |
[INFO] [stdout] 22 | /     warp::any()
[INFO] [stdout] 23 | |         .map(move || {
[INFO] [stdout] 24 | |             let start = Instant::now();
[INFO] [stdout] 25 | |             let metrics = metrics.clone();
[INFO] [stdout] ...  |
[INFO] [stdout] 28 | |         .and(filter)
[INFO] [stdout] 29 | |         .map(move |(start, metrics): (Instant, Arc<MetricsRegistry>), response| {
[INFO] [stdout]    | |         -^^^ method cannot be called on `And<Map<..., ...>, ...>` due to unsatisfied trait bounds
[INFO] [stdout]    | |_________|
[INFO] [stdout]    |
[INFO] [stdout]    |
[INFO] [stdout]   ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/warp-0.3.7/src/filter/and.rs:13:1
[INFO] [stdout]    |
[INFO] [stdout] 13 |   pub struct And<T, U> {
[INFO] [stdout]    |   -------------------- doesn't satisfy `_: FilterBase`, `_: Filter` or `_: Iterator`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the following trait bounds were not satisfied:
[INFO] [stdout]            `warp::filter::and::And<warp::filter::map::Map<impl warp::Filter + warp::filter::FilterBase<Extract = (), Error = Infallible> + std::marker::Copy, {closure@src/middleware/metrics.rs:23:14: 23:21}>, F>: warp::filter::FilterBase`
[INFO] [stdout]            which is required by `warp::filter::and::And<warp::filter::map::Map<impl warp::Filter + warp::filter::FilterBase<Extract = (), Error = Infallible> + std::marker::Copy, {closure@src/middleware/metrics.rs:23:14: 23:21}>, F>: warp::Filter`
[INFO] [stdout]            `&warp::filter::and::And<warp::filter::map::Map<impl warp::Filter + warp::filter::FilterBase<Extract = (), Error = Infallible> + std::marker::Copy, {closure@src/middleware/metrics.rs:23:14: 23:21}>, F>: warp::filter::FilterBase`
[INFO] [stdout]            which is required by `&warp::filter::and::And<warp::filter::map::Map<impl warp::Filter + warp::filter::FilterBase<Extract = (), Error = Infallible> + std::marker::Copy, {closure@src/middleware/metrics.rs:23:14: 23:21}>, F>: warp::Filter`
[INFO] [stdout]            `&mut warp::filter::and::And<warp::filter::map::Map<impl warp::Filter + warp::filter::FilterBase<Extract = (), Error = Infallible> + std::marker::Copy, {closure@src/middleware/metrics.rs:23:14: 23:21}>, F>: warp::filter::FilterBase`
[INFO] [stdout]            which is required by `&mut warp::filter::and::And<warp::filter::map::Map<impl warp::Filter + warp::filter::FilterBase<Extract = (), Error = Infallible> + std::marker::Copy, {closure@src/middleware/metrics.rs:23:14: 23:21}>, F>: warp::Filter`
[INFO] [stdout]            `warp::filter::and::And<warp::filter::map::Map<impl warp::Filter + warp::filter::FilterBase<Extract = (), Error = Infallible> + std::marker::Copy, {closure@src/middleware/metrics.rs:23:14: 23:21}>, F>: Iterator`
[INFO] [stdout]            which is required by `&mut warp::filter::and::And<warp::filter::map::Map<impl warp::Filter + warp::filter::FilterBase<Extract = (), Error = Infallible> + std::marker::Copy, {closure@src/middleware/metrics.rs:23:14: 23:21}>, F>: Iterator`
[INFO] [stdout]    = note: the full name for the type has been written to '/opt/rustwide/target/debug/deps/kefu_system-7ead4950078b6b10.long-type-529565516405636994.txt'
[INFO] [stdout]    = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `<F as warp::filter::FilterBase>::Error: reject::sealed::CombineRejection<Infallible>` is not satisfied
[INFO] [stdout]    --> src/middleware/metrics.rs:28:14
[INFO] [stdout]     |
[INFO] [stdout]  28 |         .and(filter)
[INFO] [stdout]     |          --- ^^^^^^ the trait `reject::sealed::CombineRejection<Infallible>` is not implemented for `<F as warp::filter::FilterBase>::Error`
[INFO] [stdout]     |          |
[INFO] [stdout]     |          required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `warp::Filter::and`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/warp-0.3.7/src/filter/mod.rs:118:19
[INFO] [stdout]     |
[INFO] [stdout] 113 |     fn and<F>(self, other: F) -> And<Self, F>
[INFO] [stdout]     |        --- required by a bound in this associated function
[INFO] [stdout] ...
[INFO] [stdout] 118 |         F::Error: CombineRejection<Self::Error>,
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `Filter::and`
[INFO] [stdout] help: consider further restricting the associated type
[INFO] [stdout]     |
[INFO] [stdout]  20 |     F: Filter + Clone, <F as warp::filter::FilterBase>::Error: reject::sealed::CombineRejection<Infallible>
[INFO] [stdout]     |                        ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Product<(Instant, Arc<MetricsRegistry>), <... as Tuple>::HList>: HList` is not satisfied
[INFO] [stdout]    --> src/middleware/metrics.rs:28:14
[INFO] [stdout]     |
[INFO] [stdout]  28 |         .and(filter)
[INFO] [stdout]     |          --- ^^^^^^ the trait `warp::generic::HList` is not implemented for `Product<(Instant, Arc<MetricsRegistry>), <... as Tuple>::HList>`
[INFO] [stdout]     |          |
[INFO] [stdout]     |          required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = note: required for `warp::generic::Product<(std::time::Instant, Arc<MetricsRegistry>), ()>` to implement `Combine<<<F as FilterBase>::Extract as Tuple>::HList>`
[INFO] [stdout] note: required by a bound in `warp::Filter::and`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/warp-0.3.7/src/filter/mod.rs:116:42
[INFO] [stdout]     |
[INFO] [stdout] 113 |     fn and<F>(self, other: F) -> And<Self, F>
[INFO] [stdout]     |        --- required by a bound in this associated function
[INFO] [stdout] ...
[INFO] [stdout] 116 |         <Self::Extract as Tuple>::HList: Combine<<F::Extract as Tuple>::HList>,
[INFO] [stdout]     |                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `Filter::and`
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/deps/kefu_system-0bded1d119cb1cfd.long-type-9078238849575389436.txt'
[INFO] [stdout]     = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] help: consider extending the `where` clause, but there might be an alternative better way to express this requirement
[INFO] [stdout]     |
[INFO] [stdout]  20 |     F: Filter + Clone, warp::generic::Product<(std::time::Instant, Arc<MetricsRegistry>), <<F as warp::filter::FilterBase>::Extract as warp::generic::Tuple>::HList>: warp::generic::HList
[INFO] [stdout]     |                        +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `map` exists for struct `And<Map<..., ...>, ...>`, but its trait bounds were not satisfied
[INFO] [stdout]   --> src/middleware/metrics.rs:29:10
[INFO] [stdout]    |
[INFO] [stdout] 22 | /     warp::any()
[INFO] [stdout] 23 | |         .map(move || {
[INFO] [stdout] 24 | |             let start = Instant::now();
[INFO] [stdout] 25 | |             let metrics = metrics.clone();
[INFO] [stdout] ...  |
[INFO] [stdout] 28 | |         .and(filter)
[INFO] [stdout] 29 | |         .map(move |(start, metrics): (Instant, Arc<MetricsRegistry>), response| {
[INFO] [stdout]    | |         -^^^ method cannot be called on `And<Map<..., ...>, ...>` due to unsatisfied trait bounds
[INFO] [stdout]    | |_________|
[INFO] [stdout]    |
[INFO] [stdout]    |
[INFO] [stdout]   ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/warp-0.3.7/src/filter/and.rs:13:1
[INFO] [stdout]    |
[INFO] [stdout] 13 |   pub struct And<T, U> {
[INFO] [stdout]    |   -------------------- doesn't satisfy `_: FilterBase`, `_: Filter` or `_: Iterator`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the following trait bounds were not satisfied:
[INFO] [stdout]            `warp::filter::and::And<warp::filter::map::Map<impl warp::Filter + warp::filter::FilterBase<Extract = (), Error = Infallible> + std::marker::Copy, {closure@src/middleware/metrics.rs:23:14: 23:21}>, F>: warp::filter::FilterBase`
[INFO] [stdout]            which is required by `warp::filter::and::And<warp::filter::map::Map<impl warp::Filter + warp::filter::FilterBase<Extract = (), Error = Infallible> + std::marker::Copy, {closure@src/middleware/metrics.rs:23:14: 23:21}>, F>: warp::Filter`
[INFO] [stdout]            `&warp::filter::and::And<warp::filter::map::Map<impl warp::Filter + warp::filter::FilterBase<Extract = (), Error = Infallible> + std::marker::Copy, {closure@src/middleware/metrics.rs:23:14: 23:21}>, F>: warp::filter::FilterBase`
[INFO] [stdout]            which is required by `&warp::filter::and::And<warp::filter::map::Map<impl warp::Filter + warp::filter::FilterBase<Extract = (), Error = Infallible> + std::marker::Copy, {closure@src/middleware/metrics.rs:23:14: 23:21}>, F>: warp::Filter`
[INFO] [stdout]            `&mut warp::filter::and::And<warp::filter::map::Map<impl warp::Filter + warp::filter::FilterBase<Extract = (), Error = Infallible> + std::marker::Copy, {closure@src/middleware/metrics.rs:23:14: 23:21}>, F>: warp::filter::FilterBase`
[INFO] [stdout]            which is required by `&mut warp::filter::and::And<warp::filter::map::Map<impl warp::Filter + warp::filter::FilterBase<Extract = (), Error = Infallible> + std::marker::Copy, {closure@src/middleware/metrics.rs:23:14: 23:21}>, F>: warp::Filter`
[INFO] [stdout]            `warp::filter::and::And<warp::filter::map::Map<impl warp::Filter + warp::filter::FilterBase<Extract = (), Error = Infallible> + std::marker::Copy, {closure@src/middleware/metrics.rs:23:14: 23:21}>, F>: Iterator`
[INFO] [stdout]            which is required by `&mut warp::filter::and::And<warp::filter::map::Map<impl warp::Filter + warp::filter::FilterBase<Extract = (), Error = Infallible> + std::marker::Copy, {closure@src/middleware/metrics.rs:23:14: 23:21}>, F>: Iterator`
[INFO] [stdout]    = note: the full name for the type has been written to '/opt/rustwide/target/debug/deps/kefu_system-0bded1d119cb1cfd.long-type-391653039607911872.txt'
[INFO] [stdout]    = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ws_manager`
[INFO] [stdout]   --> src/handlers/system.rs:57:5
[INFO] [stdout]    |
[INFO] [stdout] 57 |     ws_manager: Arc<WebSocketManager>,
[INFO] [stdout]    |     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ws_manager`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `storage`
[INFO] [stdout]   --> src/handlers/system_extended.rs:95:5
[INFO] [stdout]    |
[INFO] [stdout] 95 |     storage: Arc<crate::storage::LocalStorage>,
[INFO] [stdout]    |     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_storage`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ws_manager`
[INFO] [stdout]    --> src/handlers/system_extended.rs:148:5
[INFO] [stdout]     |
[INFO] [stdout] 148 |     ws_manager: Arc<WebSocketManager>,
[INFO] [stdout]     |     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ws_manager`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ws_manager`
[INFO] [stdout]    --> src/handlers/system_extended.rs:184:5
[INFO] [stdout]     |
[INFO] [stdout] 184 |     ws_manager: Arc<WebSocketManager>,
[INFO] [stdout]     |     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ws_manager`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ws_manager`
[INFO] [stdout]    --> src/handlers/system_extended.rs:218:5
[INFO] [stdout]     |
[INFO] [stdout] 218 |     ws_manager: Arc<WebSocketManager>,
[INFO] [stdout]     |     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ws_manager`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `storage`
[INFO] [stdout]    --> src/handlers/system_extended.rs:260:5
[INFO] [stdout]     |
[INFO] [stdout] 260 |     storage: Arc<crate::storage::LocalStorage>,
[INFO] [stdout]     |     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_storage`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ws_manager`
[INFO] [stdout]   --> src/handlers/system.rs:57:5
[INFO] [stdout]    |
[INFO] [stdout] 57 |     ws_manager: Arc<WebSocketManager>,
[INFO] [stdout]    |     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ws_manager`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `user_manager`
[INFO] [stdout]   --> src/handlers/users.rs:47:5
[INFO] [stdout]    |
[INFO] [stdout] 47 |     user_manager: Arc<UserManager>,
[INFO] [stdout]    |     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_user_manager`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `storage`
[INFO] [stdout]   --> src/handlers/system_extended.rs:95:5
[INFO] [stdout]    |
[INFO] [stdout] 95 |     storage: Arc<crate::storage::LocalStorage>,
[INFO] [stdout]    |     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_storage`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ws_manager`
[INFO] [stdout]    --> src/handlers/system_extended.rs:148:5
[INFO] [stdout]     |
[INFO] [stdout] 148 |     ws_manager: Arc<WebSocketManager>,
[INFO] [stdout]     |     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ws_manager`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ws_manager`
[INFO] [stdout]    --> src/handlers/system_extended.rs:184:5
[INFO] [stdout]     |
[INFO] [stdout] 184 |     ws_manager: Arc<WebSocketManager>,
[INFO] [stdout]     |     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ws_manager`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `user_manager`
[INFO] [stdout]   --> src/handlers/users.rs:91:5
[INFO] [stdout]    |
[INFO] [stdout] 91 |     user_manager: Arc<UserManager>,
[INFO] [stdout]    |     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_user_manager`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `user_manager`
[INFO] [stdout]    --> src/handlers/users.rs:131:5
[INFO] [stdout]     |
[INFO] [stdout] 131 |     user_manager: Arc<UserManager>,
[INFO] [stdout]     |     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_user_manager`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `user_manager`
[INFO] [stdout]    --> src/handlers/users.rs:160:5
[INFO] [stdout]     |
[INFO] [stdout] 160 |     user_manager: Arc<UserManager>,
[INFO] [stdout]     |     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_user_manager`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ws_manager`
[INFO] [stdout]    --> src/handlers/system_extended.rs:218:5
[INFO] [stdout]     |
[INFO] [stdout] 218 |     ws_manager: Arc<WebSocketManager>,
[INFO] [stdout]     |     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ws_manager`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `user_manager`
[INFO] [stdout]    --> src/handlers/users.rs:184:5
[INFO] [stdout]     |
[INFO] [stdout] 184 |     user_manager: Arc<UserManager>,
[INFO] [stdout]     |     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_user_manager`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `user_manager`
[INFO] [stdout]    --> src/handlers/users.rs:204:5
[INFO] [stdout]     |
[INFO] [stdout] 204 |     user_manager: Arc<UserManager>,
[INFO] [stdout]     |     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_user_manager`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `user_manager`
[INFO] [stdout]    --> src/handlers/users.rs:224:5
[INFO] [stdout]     |
[INFO] [stdout] 224 |     user_manager: Arc<UserManager>,
[INFO] [stdout]     |     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_user_manager`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `storage`
[INFO] [stdout]    --> src/handlers/system_extended.rs:260:5
[INFO] [stdout]     |
[INFO] [stdout] 260 |     storage: Arc<crate::storage::LocalStorage>,
[INFO] [stdout]     |     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_storage`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ws_manager`
[INFO] [stdout]   --> src/handlers/sessions.rs:51:5
[INFO] [stdout]    |
[INFO] [stdout] 51 |     ws_manager: Arc<WebSocketManager>,
[INFO] [stdout]    |     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ws_manager`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ws_manager`
[INFO] [stdout]    --> src/handlers/sessions.rs:104:5
[INFO] [stdout]     |
[INFO] [stdout] 104 |     ws_manager: Arc<WebSocketManager>,
[INFO] [stdout]     |     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ws_manager`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ws_manager`
[INFO] [stdout]    --> src/handlers/sessions.rs:154:5
[INFO] [stdout]     |
[INFO] [stdout] 154 |     ws_manager: Arc<WebSocketManager>,
[INFO] [stdout]     |     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ws_manager`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `storage`
[INFO] [stdout]    --> src/handlers/sessions.rs:155:5
[INFO] [stdout]     |
[INFO] [stdout] 155 |     storage: Arc<LocalStorage>,
[INFO] [stdout]     |     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_storage`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `include_system`
[INFO] [stdout]    --> src/handlers/sessions.rs:159:9
[INFO] [stdout]     |
[INFO] [stdout] 159 |     let include_system = query.include_system.unwrap_or(false);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_include_system`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ws_manager`
[INFO] [stdout]    --> src/handlers/sessions.rs:203:5
[INFO] [stdout]     |
[INFO] [stdout] 203 |     ws_manager: Arc<WebSocketManager>,
[INFO] [stdout]     |     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ws_manager`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ws_manager`
[INFO] [stdout]    --> src/handlers/sessions.rs:226:5
[INFO] [stdout]     |
[INFO] [stdout] 226 |     ws_manager: Arc<WebSocketManager>,
[INFO] [stdout]     |     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ws_manager`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ws_manager`
[INFO] [stdout]    --> src/handlers/sessions.rs:247:5
[INFO] [stdout]     |
[INFO] [stdout] 247 |     ws_manager: Arc<WebSocketManager>,
[INFO] [stdout]     |     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ws_manager`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `storage`
[INFO] [stdout]   --> src/handlers/analytics.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 |     storage: Arc<LocalStorage>,
[INFO] [stdout]    |     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_storage`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `storage`
[INFO] [stdout]   --> src/handlers/analytics.rs:70:5
[INFO] [stdout]    |
[INFO] [stdout] 70 |     storage: Arc<LocalStorage>,
[INFO] [stdout]    |     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_storage`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `group_by`
[INFO] [stdout]   --> src/handlers/analytics.rs:72:9
[INFO] [stdout]    |
[INFO] [stdout] 72 |     let group_by = query.group_by.unwrap_or_else(|| "day".to_string());
[INFO] [stdout]    |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_group_by`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `query`
[INFO] [stdout]    --> src/handlers/analytics.rs:124:5
[INFO] [stdout]     |
[INFO] [stdout] 124 |     query: AnalyticsDateRange,
[INFO] [stdout]     |     ^^^^^ help: if this is intentional, prefix it with an underscore: `_query`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ws_manager`
[INFO] [stdout]    --> src/handlers/analytics.rs:125:5
[INFO] [stdout]     |
[INFO] [stdout] 125 |     ws_manager: Arc<WebSocketManager>,
[INFO] [stdout]     |     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ws_manager`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `user_manager`
[INFO] [stdout]    --> src/handlers/analytics.rs:126:5
[INFO] [stdout]     |
[INFO] [stdout] 126 |     user_manager: Arc<UserManager>,
[INFO] [stdout]     |     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_user_manager`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `connection_stats`
[INFO] [stdout]    --> src/handlers/analytics.rs:179:9
[INFO] [stdout]     |
[INFO] [stdout] 179 |     let connection_stats = ws_manager.get_connection_stats().await;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_connection_stats`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `request`
[INFO] [stdout]    --> src/handlers/analytics.rs:230:5
[INFO] [stdout]     |
[INFO] [stdout] 230 |     request: GenerateReportRequest,
[INFO] [stdout]     |     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_request`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ws_manager`
[INFO] [stdout]    --> src/handlers/analytics.rs:231:5
[INFO] [stdout]     |
[INFO] [stdout] 231 |     ws_manager: Arc<WebSocketManager>,
[INFO] [stdout]     |     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ws_manager`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `storage`
[INFO] [stdout]    --> src/handlers/analytics.rs:232:5
[INFO] [stdout]     |
[INFO] [stdout] 232 |     storage: Arc<LocalStorage>,
[INFO] [stdout]     |     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_storage`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ws_manager`
[INFO] [stdout]    --> src/handlers/analytics.rs:261:5
[INFO] [stdout]     |
[INFO] [stdout] 261 |     ws_manager: Arc<WebSocketManager>,
[INFO] [stdout]     |     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ws_manager`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `storage`
[INFO] [stdout]    --> src/handlers/analytics.rs:262:5
[INFO] [stdout]     |
[INFO] [stdout] 262 |     storage: Arc<LocalStorage>,
[INFO] [stdout]     |     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_storage`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `user_manager`
[INFO] [stdout]   --> src/handlers/users.rs:47:5
[INFO] [stdout]    |
[INFO] [stdout] 47 |     user_manager: Arc<UserManager>,
[INFO] [stdout]    |     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_user_manager`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `user_manager`
[INFO] [stdout]   --> src/handlers/users.rs:91:5
[INFO] [stdout]    |
[INFO] [stdout] 91 |     user_manager: Arc<UserManager>,
[INFO] [stdout]    |     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_user_manager`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `user_manager`
[INFO] [stdout]    --> src/handlers/users.rs:131:5
[INFO] [stdout]     |
[INFO] [stdout] 131 |     user_manager: Arc<UserManager>,
[INFO] [stdout]     |     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_user_manager`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `user_manager`
[INFO] [stdout]    --> src/handlers/users.rs:160:5
[INFO] [stdout]     |
[INFO] [stdout] 160 |     user_manager: Arc<UserManager>,
[INFO] [stdout]     |     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_user_manager`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `user_manager`
[INFO] [stdout]    --> src/handlers/users.rs:184:5
[INFO] [stdout]     |
[INFO] [stdout] 184 |     user_manager: Arc<UserManager>,
[INFO] [stdout]     |     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_user_manager`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `user_manager`
[INFO] [stdout]    --> src/handlers/users.rs:204:5
[INFO] [stdout]     |
[INFO] [stdout] 204 |     user_manager: Arc<UserManager>,
[INFO] [stdout]     |     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_user_manager`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `user_manager`
[INFO] [stdout]    --> src/handlers/users.rs:224:5
[INFO] [stdout]     |
[INFO] [stdout] 224 |     user_manager: Arc<UserManager>,
[INFO] [stdout]     |     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_user_manager`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ws_manager`
[INFO] [stdout]   --> src/handlers/sessions.rs:51:5
[INFO] [stdout]    |
[INFO] [stdout] 51 |     ws_manager: Arc<WebSocketManager>,
[INFO] [stdout]    |     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ws_manager`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ws_manager`
[INFO] [stdout]    --> src/handlers/sessions.rs:104:5
[INFO] [stdout]     |
[INFO] [stdout] 104 |     ws_manager: Arc<WebSocketManager>,
[INFO] [stdout]     |     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ws_manager`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ws_manager`
[INFO] [stdout]    --> src/handlers/sessions.rs:154:5
[INFO] [stdout]     |
[INFO] [stdout] 154 |     ws_manager: Arc<WebSocketManager>,
[INFO] [stdout]     |     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ws_manager`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `storage`
[INFO] [stdout]    --> src/handlers/sessions.rs:155:5
[INFO] [stdout]     |
[INFO] [stdout] 155 |     storage: Arc<LocalStorage>,
[INFO] [stdout]     |     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_storage`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `include_system`
[INFO] [stdout]    --> src/handlers/sessions.rs:159:9
[INFO] [stdout]     |
[INFO] [stdout] 159 |     let include_system = query.include_system.unwrap_or(false);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_include_system`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ws_manager`
[INFO] [stdout]    --> src/handlers/sessions.rs:203:5
[INFO] [stdout]     |
[INFO] [stdout] 203 |     ws_manager: Arc<WebSocketManager>,
[INFO] [stdout]     |     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ws_manager`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ws_manager`
[INFO] [stdout]    --> src/handlers/sessions.rs:226:5
[INFO] [stdout]     |
[INFO] [stdout] 226 |     ws_manager: Arc<WebSocketManager>,
[INFO] [stdout]     |     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ws_manager`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ws_manager`
[INFO] [stdout]    --> src/handlers/sessions.rs:247:5
[INFO] [stdout]     |
[INFO] [stdout] 247 |     ws_manager: Arc<WebSocketManager>,
[INFO] [stdout]     |     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ws_manager`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `storage`
[INFO] [stdout]   --> src/handlers/analytics.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 |     storage: Arc<LocalStorage>,
[INFO] [stdout]    |     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_storage`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `storage`
[INFO] [stdout]   --> src/handlers/analytics.rs:70:5
[INFO] [stdout]    |
[INFO] [stdout] 70 |     storage: Arc<LocalStorage>,
[INFO] [stdout]    |     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_storage`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `group_by`
[INFO] [stdout]   --> src/handlers/analytics.rs:72:9
[INFO] [stdout]    |
[INFO] [stdout] 72 |     let group_by = query.group_by.unwrap_or_else(|| "day".to_string());
[INFO] [stdout]    |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_group_by`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `query`
[INFO] [stdout]    --> src/handlers/analytics.rs:124:5
[INFO] [stdout]     |
[INFO] [stdout] 124 |     query: AnalyticsDateRange,
[INFO] [stdout]     |     ^^^^^ help: if this is intentional, prefix it with an underscore: `_query`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ws_manager`
[INFO] [stdout]    --> src/handlers/analytics.rs:125:5
[INFO] [stdout]     |
[INFO] [stdout] 125 |     ws_manager: Arc<WebSocketManager>,
[INFO] [stdout]     |     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ws_manager`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `user_manager`
[INFO] [stdout]    --> src/handlers/analytics.rs:126:5
[INFO] [stdout]     |
[INFO] [stdout] 126 |     user_manager: Arc<UserManager>,
[INFO] [stdout]     |     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_user_manager`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `connection_stats`
[INFO] [stdout]    --> src/handlers/analytics.rs:179:9
[INFO] [stdout]     |
[INFO] [stdout] 179 |     let connection_stats = ws_manager.get_connection_stats().await;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_connection_stats`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `request`
[INFO] [stdout]    --> src/handlers/analytics.rs:230:5
[INFO] [stdout]     |
[INFO] [stdout] 230 |     request: GenerateReportRequest,
[INFO] [stdout]     |     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_request`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ws_manager`
[INFO] [stdout]    --> src/handlers/analytics.rs:231:5
[INFO] [stdout]     |
[INFO] [stdout] 231 |     ws_manager: Arc<WebSocketManager>,
[INFO] [stdout]     |     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ws_manager`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `storage`
[INFO] [stdout]    --> src/handlers/analytics.rs:232:5
[INFO] [stdout]     |
[INFO] [stdout] 232 |     storage: Arc<LocalStorage>,
[INFO] [stdout]     |     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_storage`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ws_manager`
[INFO] [stdout]    --> src/handlers/analytics.rs:261:5
[INFO] [stdout]     |
[INFO] [stdout] 261 |     ws_manager: Arc<WebSocketManager>,
[INFO] [stdout]     |     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ws_manager`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `storage`
[INFO] [stdout]    --> src/handlers/analytics.rs:262:5
[INFO] [stdout]     |
[INFO] [stdout] 262 |     storage: Arc<LocalStorage>,
[INFO] [stdout]     |     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_storage`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `kefu-system` (bin "kefu-system" test) due to 15 previous errors; 41 warnings emitted
[INFO] [stderr] 
[INFO] [stderr] Caused by:
[INFO] [stderr]   process didn't exit successfully: `/opt/rustwide/rustup-home/toolchains/5b150d238fbd4fe7bc2cd3140d8e6fb4406099fa/bin/rustc --crate-name kefu_system --edition=2021 src/main.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --emit=dep-info,metadata -C embed-bitcode=no -C debuginfo=2 -C split-debuginfo=unpacked --test --check-cfg 'cfg(docsrs,test)' --check-cfg 'cfg(feature, values())' -C metadata=52d5d89e945dd28c -C extra-filename=-7ead4950078b6b10 --out-dir /opt/rustwide/target/debug/deps -L dependency=/opt/rustwide/target/debug/deps --extern anyhow=/opt/rustwide/target/debug/deps/libanyhow-0796c3646e485f40.rmeta --extern async_stream=/opt/rustwide/target/debug/deps/libasync_stream-c6a6a60bb241cb3e.rmeta --extern async_trait=/opt/rustwide/target/debug/deps/libasync_trait-a301e395ab384a01.so --extern base64=/opt/rustwide/target/debug/deps/libbase64-912aa4421648a288.rmeta --extern bytes=/opt/rustwide/target/debug/deps/libbytes-682009485d284db2.rmeta --extern chrono=/opt/rustwide/target/debug/deps/libchrono-35062e6da1a1f520.rmeta --extern deadpool_redis=/opt/rustwide/target/debug/deps/libdeadpool_redis-ef19f3d65c03eeeb.rmeta --extern digest=/opt/rustwide/target/debug/deps/libdigest-c85b3791a33cd688.rmeta --extern flate2=/opt/rustwide/target/debug/deps/libflate2-c1414a61de1cc715.rmeta --extern futures_util=/opt/rustwide/target/debug/deps/libfutures_util-be749505ea6d0159.rmeta --extern kefu_system=/opt/rustwide/target/debug/deps/libkefu_system-0946a5ab0f5695f8.rmeta --extern md5=/opt/rustwide/target/debug/deps/libmd5-22269cf999b0813c.rmeta --extern mime_guess=/opt/rustwide/target/debug/deps/libmime_guess-227dd29a92d44812.rmeta --extern rand=/opt/rustwide/target/debug/deps/librand-0c5b8e5ed533dd47.rmeta --extern redis=/opt/rustwide/target/debug/deps/libredis-cdb760f1f1a89152.rmeta --extern regex=/opt/rustwide/target/debug/deps/libregex-4674bda5e66a9187.rmeta --extern reqwest=/opt/rustwide/target/debug/deps/libreqwest-3149945f7d6b1beb.rmeta --extern serde=/opt/rustwide/target/debug/deps/libserde-99527273b39aca82.rmeta --extern serde_json=/opt/rustwide/target/debug/deps/libserde_json-197b2dd82e2f2b50.rmeta --extern sha2=/opt/rustwide/target/debug/deps/libsha2-01b498fada612137.rmeta --extern sled=/opt/rustwide/target/debug/deps/libsled-07433a9b510d2fa2.rmeta --extern thiserror=/opt/rustwide/target/debug/deps/libthiserror-54cb760deaa0723b.rmeta --extern tokio=/opt/rustwide/target/debug/deps/libtokio-7ccf3a5fb4362ea6.rmeta --extern tokio_tungstenite=/opt/rustwide/target/debug/deps/libtokio_tungstenite-37a2974308e73f25.rmeta --extern tracing=/opt/rustwide/target/debug/deps/libtracing-788153449a421139.rmeta --extern tracing_subscriber=/opt/rustwide/target/debug/deps/libtracing_subscriber-50b1fd9b15fcb68e.rmeta --extern url=/opt/rustwide/target/debug/deps/liburl-b913e521684bba6d.rmeta --extern utoipa=/opt/rustwide/target/debug/deps/libutoipa-264df20ba82f9002.rmeta --extern utoipa_rapidoc=/opt/rustwide/target/debug/deps/libutoipa_rapidoc-e3d72ec1938852c9.rmeta --extern utoipa_redoc=/opt/rustwide/target/debug/deps/libutoipa_redoc-5476e1bdf6ae5c31.rmeta --extern utoipa_swagger_ui=/opt/rustwide/target/debug/deps/libutoipa_swagger_ui-979909c56e723c24.rmeta --extern uuid=/opt/rustwide/target/debug/deps/libuuid-bc314b4b64bf63d0.rmeta --extern warp=/opt/rustwide/target/debug/deps/libwarp-0a1a2d4f9467f070.rmeta --cap-lints=forbid` (signal: 9, SIGKILL: kill)
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] Some errors have detailed explanations: E0107, E0277, E0308, E0599.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0107`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `kefu-system` (bin "kefu-system") due to 21 previous errors; 41 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "6ad30ba882e530467702cff8afd3365479c316e082c134a7cb929fad7c1683c4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6ad30ba882e530467702cff8afd3365479c316e082c134a7cb929fad7c1683c4", kill_on_drop: false }`
[INFO] [stdout] 6ad30ba882e530467702cff8afd3365479c316e082c134a7cb929fad7c1683c4
