[INFO] fetching crate rat_memcache 0.2.3...
[INFO] testing rat_memcache-0.2.3 against beta-2025-10-28 for beta-1.92-2
[INFO] extracting crate rat_memcache 0.2.3 into /workspace/builds/worker-0-tc2/source
[INFO] started tweaking crates.io crate rat_memcache 0.2.3
[INFO] removed 0 missing examples
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate rat_memcache 0.2.3
[INFO] tweaked toml for crates.io crate rat_memcache 0.2.3 written to /workspace/builds/worker-0-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate rat_memcache 0.2.3 on toolchain beta-2025-10-28
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2025-10-28" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate rat_memcache 0.2.3 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2025-10-28" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-10-28" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] aa30ff08cf032013af28e28e65dfacd6063b7f6d33bbac11e41eb57a315e563c
[INFO] running `Command { std: "docker" "start" "-a" "aa30ff08cf032013af28e28e65dfacd6063b7f6d33bbac11e41eb57a315e563c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "aa30ff08cf032013af28e28e65dfacd6063b7f6d33bbac11e41eb57a315e563c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "aa30ff08cf032013af28e28e65dfacd6063b7f6d33bbac11e41eb57a315e563c", kill_on_drop: false }`
[INFO] [stdout] aa30ff08cf032013af28e28e65dfacd6063b7f6d33bbac11e41eb57a315e563c
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-10-28" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] afc0829797c18a4c7d53ed2fd446f18eab43c16e177554b56be1182b245981b7
[INFO] running `Command { std: "docker" "start" "-a" "afc0829797c18a4c7d53ed2fd446f18eab43c16e177554b56be1182b245981b7", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.101
[INFO] [stderr]    Compiling getrandom v0.2.16
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling parking_lot_core v0.9.11
[INFO] [stderr]    Compiling lz4-sys v1.11.1+lz4-1.10.0
[INFO] [stderr]    Compiling hashbrown v0.15.5
[INFO] [stderr]    Compiling rustix v1.0.8
[INFO] [stderr]    Compiling anstream v0.6.20
[INFO] [stderr]    Compiling crossbeam-channel v0.5.15
[INFO] [stderr]    Compiling mio v1.0.4
[INFO] [stderr]    Compiling signal-hook-registry v1.4.6
[INFO] [stderr]    Compiling num_cpus v1.17.0
[INFO] [stderr]    Compiling socket2 v0.6.0
[INFO] [stderr]    Compiling iana-time-zone v0.1.63
[INFO] [stderr]    Compiling rayon v1.11.0
[INFO] [stderr]    Compiling bitflags v2.9.2
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling anyhow v1.0.99
[INFO] [stderr]    Compiling winnow v0.7.12
[INFO] [stderr]    Compiling threadpool v1.8.1
[INFO] [stderr]    Compiling parking_lot v0.12.4
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling quote v1.0.40
[INFO] [stderr]    Compiling crossbeam v0.8.4
[INFO] [stderr]    Compiling dashmap v6.1.0
[INFO] [stderr]    Compiling clap_builder v4.5.44
[INFO] [stderr]    Compiling indexmap v2.10.0
[INFO] [stderr]    Compiling getrandom v0.3.3
[INFO] [stderr]    Compiling arc-swap v1.7.1
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling syn v2.0.106
[INFO] [stderr]    Compiling dashmap v5.5.3
[INFO] [stderr]    Compiling tempfile v3.20.0
[INFO] [stderr]    Compiling sysinfo v0.30.13
[INFO] [stderr]    Compiling clap v4.5.45
[INFO] [stderr]    Compiling serde_derive v1.0.219
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling tokio-macros v2.5.0
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling tokio v1.47.1
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling futures-util v0.3.31
[INFO] [stderr]    Compiling serde v1.0.219
[INFO] [stderr]    Compiling futures-executor v0.3.31
[INFO] [stderr]    Compiling futures v0.3.31
[INFO] [stderr]    Compiling serde_spanned v0.6.9
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling bincode v2.0.1
[INFO] [stderr]    Compiling chrono v0.4.41
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]    Compiling toml v0.8.23
[INFO] [stderr]    Compiling lz4 v1.28.1
[INFO] [stderr]    Compiling rat_logger v0.2.8
[INFO] [stderr]    Compiling rat_memcache v0.2.3 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `CacheError`
[INFO] [stdout]  --> src/cache.rs:8:20
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::error::{CacheError, CacheResult};
[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: `CacheLayer` and `CacheOperation`
[INFO] [stdout]   --> src/cache.rs:13:20
[INFO] [stdout]    |
[INFO] [stdout] 13 | use crate::types::{CacheLayer, CacheOperation};
[INFO] [stdout]    |                    ^^^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::cache_log`
[INFO] [stdout]   --> src/cache.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use crate::cache_log;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `interval`
[INFO] [stdout]   --> src/cache.rs:19:19
[INFO] [stdout]    |
[INFO] [stdout] 19 | use tokio::time::{interval, Duration};
[INFO] [stdout]    |                   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `chrono`
[INFO] [stdout]  --> src/types.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use chrono;
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Write`
[INFO] [stdout]   --> src/logging.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use std::io::Write;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `chrono::Local`
[INFO] [stdout]   --> src/logging.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | use chrono::Local;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Level`
[INFO] [stdout]   --> src/logging.rs:20:33
[INFO] [stdout]    |
[INFO] [stdout] 20 | use rat_logger::{LoggerBuilder, Level, LevelFilter, Logger};
[INFO] [stdout]    |                                 ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Metadata` and `Record`
[INFO] [stdout]   --> src/logging.rs:21:26
[INFO] [stdout]    |
[INFO] [stdout] 21 | use rat_logger::config::{Record, Metadata};
[INFO] [stdout]    |                          ^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rat_logger::handler::term::TermConfig`
[INFO] [stdout]   --> src/logging.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | use rat_logger::handler::term::TermConfig;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ColorConfig`, `FormatConfig`, and `LevelStyle`
[INFO] [stdout]   --> src/logging.rs:23:18
[INFO] [stdout]    |
[INFO] [stdout] 23 | use rat_logger::{FormatConfig, LevelStyle, ColorConfig};
[INFO] [stdout]    |                  ^^^^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CacheLayer` and `CacheOperation`
[INFO] [stdout]  --> src/l1_cache.rs:9:50
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::types::{CacheValue, EvictionStrategy, CacheLayer, CacheOperation};
[INFO] [stdout]   |                                                  ^^^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CacheError`
[INFO] [stdout]  --> src/ttl.rs:6:20
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::error::{CacheError, CacheResult};
[INFO] [stdout]   |                    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `rat_logger::LoggerBuilder::init`: 请使用init_global_logger方法
[INFO] [stdout]    --> src/logging.rs:130:17
[INFO] [stdout]     |
[INFO] [stdout] 130 |         builder.init().map_err(|e| {
[INFO] [stdout]     |                 ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `l2_cache`
[INFO] [stdout]    --> src/cache.rs:225:13
[INFO] [stdout]     |
[INFO] [stdout] 225 |         let l2_cache: Option<()> = None;
[INFO] [stdout]     |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_l2_cache`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start_time`
[INFO] [stdout]    --> src/cache.rs:253:13
[INFO] [stdout]     |
[INFO] [stdout] 253 |         let start_time = Instant::now();
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_start_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start_time`
[INFO] [stdout]    --> src/l1_cache.rs:158:13
[INFO] [stdout]     |
[INFO] [stdout] 158 |         let start_time = Instant::now();
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_start_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start_time`
[INFO] [stdout]   --> src/l1_cache.rs:91:13
[INFO] [stdout]    |
[INFO] [stdout] 91 |         let start_time = Instant::now();
[INFO] [stdout]    |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_start_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start_time`
[INFO] [stdout]    --> src/cache.rs:309:13
[INFO] [stdout]     |
[INFO] [stdout] 309 |         let start_time = Instant::now();
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_start_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start_time`
[INFO] [stdout]    --> src/l1_cache.rs:117:13
[INFO] [stdout]     |
[INFO] [stdout] 117 |         let start_time = Instant::now();
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_start_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start_time`
[INFO] [stdout]    --> src/cache.rs:387:13
[INFO] [stdout]     |
[INFO] [stdout] 387 |         let start_time = Instant::now();
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_start_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start_time`
[INFO] [stdout]    --> src/cache.rs:394:13
[INFO] [stdout]     |
[INFO] [stdout] 394 |         let start_time = Instant::now();
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_start_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `PendingSetOperation` is more private than the item `StreamingParser::check_set_complete`
[INFO] [stdout]    --> src/streaming_protocol.rs:120:5
[INFO] [stdout]     |
[INFO] [stdout] 120 |     pub fn check_set_complete(&mut self, key: &str) -> Option<(PendingSetOperation, Vec<u8>)> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `StreamingParser::check_set_complete` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `PendingSetOperation` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/streaming_protocol.rs:44:1
[INFO] [stdout]     |
[INFO] [stdout]  44 | struct PendingSetOperation {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `total_memory` is never read
[INFO] [stdout]    --> src/config.rs:509:5
[INFO] [stdout]     |
[INFO] [stdout] 508 | struct SystemInfo {
[INFO] [stdout]     |        ---------- field in this struct
[INFO] [stdout] 509 |     total_memory: u64,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `recommended_l1_memory` and `recommended_worker_threads` are never used
[INFO] [stdout]    --> src/config.rs:528:8
[INFO] [stdout]     |
[INFO] [stdout] 514 | impl SystemInfo {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 528 |     fn recommended_l1_memory(&self) -> usize {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 535 |     fn recommended_worker_threads(&self) -> usize {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PathUtils` is never constructed
[INFO] [stdout]    --> src/config.rs:542:8
[INFO] [stdout]     |
[INFO] [stdout] 542 | struct PathUtils;
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `default_cache_dir` and `validate_writable_path` are never used
[INFO] [stdout]    --> src/config.rs:546:8
[INFO] [stdout]     |
[INFO] [stdout] 544 | impl PathUtils {
[INFO] [stdout]     | -------------- associated functions in this implementation
[INFO] [stdout] 545 |     /// 获取跨平台的默认缓存目录
[INFO] [stdout] 546 |     fn default_cache_dir() -> CacheResult<PathBuf> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 570 |     fn validate_writable_path(path: &PathBuf) -> CacheResult<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `total_size`, `flags`, and `exptime` are never read
[INFO] [stdout]   --> src/streaming_protocol.rs:45:5
[INFO] [stdout]    |
[INFO] [stdout] 44 | struct PendingSetOperation {
[INFO] [stdout]    |        ------------------- fields in this struct
[INFO] [stdout] 45 |     total_size: usize,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 46 |     chunk_count: usize,
[INFO] [stdout] 47 |     flags: u32,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 48 |     exptime: u32,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PendingSetOperation` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `l2_config` is never read
[INFO] [stdout]   --> src/compression.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct Compressor {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] 15 |     l2_config: Arc<L2Config>,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Compressor` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CompressionResult` is never constructed
[INFO] [stdout]   --> src/compression.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct CompressionResult {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DecompressionResult` is never constructed
[INFO] [stdout]   --> src/compression.rs:35:12
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub struct DecompressionResult {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/compression.rs:85:12
[INFO] [stdout]     |
[INFO] [stdout]  42 | impl Compressor {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  85 |     pub fn compress(&self, data: &[u8]) -> CacheResult<CompressionResult> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 127 |     pub fn decompress(&self, compressed_data: &[u8], is_compressed: bool) -> CacheResult<DecompressionResult> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 147 |     fn should_compress(&self, data: &[u8]) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 167 |     fn estimate_compressibility(&self, data: &[u8]) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 194 |     fn compress_lz4(&self, data: &[u8]) -> CacheResult<Vec<u8>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 210 |     fn decompress_lz4(&self, compressed_data: &[u8]) -> CacheResult<Vec<u8>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 222 |     pub fn config(&self) -> &L2Config {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 227 |     pub fn estimate_compressed_size(&self, original_size: usize) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CompressionStats` is never constructed
[INFO] [stdout]    --> src/compression.rs:247:12
[INFO] [stdout]     |
[INFO] [stdout] 247 | pub struct CompressionStats {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/compression.rs:266:12
[INFO] [stdout]     |
[INFO] [stdout] 264 | impl CompressionStats {
[INFO] [stdout]     | --------------------- associated items in this implementation
[INFO] [stdout] 265 |     /// 创建新的统计信息
[INFO] [stdout] 266 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 271 |     pub fn record_compression(&mut self, result: &CompressionResult) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 284 |     pub fn record_decompression(&mut self, _size: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 289 |     pub fn record_compression_failure(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 294 |     pub fn record_decompression_failure(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 299 |     pub fn overall_compression_ratio(&self) -> f64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 307 |     pub fn bytes_saved(&self) -> u64 {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 316 |     pub fn compression_success_rate(&self) -> f64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 325 |     pub fn decompression_success_rate(&self) -> f64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 334 |     pub fn reset(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `compressor` is never read
[INFO] [stdout]   --> src/l1_cache.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct L1Cache {
[INFO] [stdout]    |            ------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 30 |     compressor: Arc<Compressor>,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `L1Cache` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `len` and `is_empty` are never used
[INFO] [stdout]    --> src/l1_cache.rs:216:12
[INFO] [stdout]     |
[INFO] [stdout]  61 | impl L1Cache {
[INFO] [stdout]     | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 216 |     pub fn len(&self) -> usize {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 221 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `key` and `expire_time` are never read
[INFO] [stdout]   --> src/ttl.rs:34:14
[INFO] [stdout]    |
[INFO] [stdout] 34 |     AddKey { key: String, expire_time: u64 },
[INFO] [stdout]    |     ------   ^^^          ^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     fields in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CleanupCommand` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `key` is never read
[INFO] [stdout]   --> src/ttl.rs:36:17
[INFO] [stdout]    |
[INFO] [stdout] 36 |     RemoveKey { key: String },
[INFO] [stdout]    |     ---------   ^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CleanupCommand` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `UpdateKey` and `ForceCleanup` are never constructed
[INFO] [stdout]   --> src/ttl.rs:38:5
[INFO] [stdout]    |
[INFO] [stdout] 32 | enum CleanupCommand {
[INFO] [stdout]    |      -------------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 38 |     UpdateKey { key: String, expire_time: u64 },
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 39 |     /// 强制清理过期键
[INFO] [stdout] 40 |     ForceCleanup,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CleanupCommand` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `update_key`, `force_cleanup`, `get_stats`, `reset_stats`, and `stop` are never used
[INFO] [stdout]    --> src/ttl.rs:134:18
[INFO] [stdout]     |
[INFO] [stdout]  62 | impl TtlManager {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 134 |     pub async fn update_key(&self, key: String, ttl_seconds: Option<u64>) -> CacheResult<u64> {
[INFO] [stdout]     |                  ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 210 |     pub async fn force_cleanup(&self) {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 217 |     pub async fn get_stats(&self) -> TtlStats {
[INFO] [stdout]     |                  ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 229 |     pub async fn reset_stats(&self) {
[INFO] [stdout]     |                  ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 236 |     pub async fn stop(&self) {
[INFO] [stdout]     |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_expire_time` is never used
[INFO] [stdout]    --> src/ttl.rs:433:12
[INFO] [stdout]     |
[INFO] [stdout] 433 |     pub fn calculate_expire_time(ttl_seconds: u64) -> u64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_valid_expire_time` is never used
[INFO] [stdout]    --> src/ttl.rs:438:12
[INFO] [stdout]     |
[INFO] [stdout] 438 |     pub fn is_valid_expire_time(expire_time: u64) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `format_remaining_time` is never used
[INFO] [stdout]    --> src/ttl.rs:443:12
[INFO] [stdout]     |
[INFO] [stdout] 443 |     pub fn format_remaining_time(ttl_seconds: u64) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 46.80s
[INFO] running `Command { std: "docker" "inspect" "afc0829797c18a4c7d53ed2fd446f18eab43c16e177554b56be1182b245981b7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "afc0829797c18a4c7d53ed2fd446f18eab43c16e177554b56be1182b245981b7", kill_on_drop: false }`
[INFO] [stdout] afc0829797c18a4c7d53ed2fd446f18eab43c16e177554b56be1182b245981b7
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-10-28" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] f131ef6475af98f0560c93df840cfbf45a3569413b0a87326528d7855ff0c4bf
[INFO] running `Command { std: "docker" "start" "-a" "f131ef6475af98f0560c93df840cfbf45a3569413b0a87326528d7855ff0c4bf", kill_on_drop: false }`
[INFO] [stderr]    Compiling futures-channel v0.3.31
[INFO] [stderr]    Compiling serde_json v1.0.142
[INFO] [stderr]    Compiling tokio v1.47.1
[INFO] [stderr]    Compiling half v2.6.0
[INFO] [stderr]    Compiling chrono v0.4.41
[INFO] [stderr]    Compiling async-stream-impl v0.3.6
[INFO] [stderr]    Compiling itertools v0.10.5
[INFO] [stderr]    Compiling plotters v0.3.7
[INFO] [stderr]    Compiling sysinfo v0.30.13
[INFO] [stderr]    Compiling is-terminal v0.4.16
[INFO] [stderr]    Compiling futures-util v0.3.31
[INFO] [stderr]    Compiling ciborium-ll v0.2.2
[INFO] [stderr]    Compiling ciborium v0.2.2
[INFO] [stderr]    Compiling async-stream v0.3.6
[INFO] [stderr]    Compiling tinytemplate v1.2.1
[INFO] [stderr]    Compiling criterion-plot v0.5.0
[INFO] [stderr]    Compiling criterion v0.5.1
[INFO] [stderr]    Compiling futures-executor v0.3.31
[INFO] [stderr]    Compiling futures v0.3.31
[INFO] [stderr]    Compiling rat_logger v0.2.8
[INFO] [stderr]    Compiling tokio-stream v0.1.17
[INFO] [stderr]    Compiling tokio-test v0.4.4
[INFO] [stderr]    Compiling rat_memcache v0.2.3 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `CacheError`
[INFO] [stdout]  --> src/cache.rs:8:20
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::error::{CacheError, CacheResult};
[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: `CacheLayer` and `CacheOperation`
[INFO] [stdout]   --> src/cache.rs:13:20
[INFO] [stdout]    |
[INFO] [stdout] 13 | use crate::types::{CacheLayer, CacheOperation};
[INFO] [stdout]    |                    ^^^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::cache_log`
[INFO] [stdout]   --> src/cache.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use crate::cache_log;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `interval`
[INFO] [stdout]   --> src/cache.rs:19:19
[INFO] [stdout]    |
[INFO] [stdout] 19 | use tokio::time::{interval, Duration};
[INFO] [stdout]    |                   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `chrono`
[INFO] [stdout]  --> src/types.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use chrono;
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Write`
[INFO] [stdout]   --> src/logging.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use std::io::Write;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `chrono::Local`
[INFO] [stdout]   --> src/logging.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | use chrono::Local;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Level`
[INFO] [stdout]   --> src/logging.rs:20:33
[INFO] [stdout]    |
[INFO] [stdout] 20 | use rat_logger::{LoggerBuilder, Level, LevelFilter, Logger};
[INFO] [stdout]    |                                 ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Metadata` and `Record`
[INFO] [stdout]   --> src/logging.rs:21:26
[INFO] [stdout]    |
[INFO] [stdout] 21 | use rat_logger::config::{Record, Metadata};
[INFO] [stdout]    |                          ^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rat_logger::handler::term::TermConfig`
[INFO] [stdout]   --> src/logging.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | use rat_logger::handler::term::TermConfig;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ColorConfig`, `FormatConfig`, and `LevelStyle`
[INFO] [stdout]   --> src/logging.rs:23:18
[INFO] [stdout]    |
[INFO] [stdout] 23 | use rat_logger::{FormatConfig, LevelStyle, ColorConfig};
[INFO] [stdout]    |                  ^^^^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CacheLayer` and `CacheOperation`
[INFO] [stdout]  --> src/l1_cache.rs:9:50
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::types::{CacheValue, EvictionStrategy, CacheLayer, CacheOperation};
[INFO] [stdout]   |                                                  ^^^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CacheError`
[INFO] [stdout]  --> src/ttl.rs:6:20
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::error::{CacheError, CacheResult};
[INFO] [stdout]   |                    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `rat_logger::LoggerBuilder::init`: 请使用init_global_logger方法
[INFO] [stdout]    --> src/logging.rs:130:17
[INFO] [stdout]     |
[INFO] [stdout] 130 |         builder.init().map_err(|e| {
[INFO] [stdout]     |                 ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `l2_cache`
[INFO] [stdout]    --> src/cache.rs:225:13
[INFO] [stdout]     |
[INFO] [stdout] 225 |         let l2_cache: Option<()> = None;
[INFO] [stdout]     |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_l2_cache`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start_time`
[INFO] [stdout]    --> src/cache.rs:253:13
[INFO] [stdout]     |
[INFO] [stdout] 253 |         let start_time = Instant::now();
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_start_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start_time`
[INFO] [stdout]    --> src/l1_cache.rs:158:13
[INFO] [stdout]     |
[INFO] [stdout] 158 |         let start_time = Instant::now();
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_start_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start_time`
[INFO] [stdout]   --> src/l1_cache.rs:91:13
[INFO] [stdout]    |
[INFO] [stdout] 91 |         let start_time = Instant::now();
[INFO] [stdout]    |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_start_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start_time`
[INFO] [stdout]    --> src/cache.rs:309:13
[INFO] [stdout]     |
[INFO] [stdout] 309 |         let start_time = Instant::now();
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_start_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start_time`
[INFO] [stdout]    --> src/l1_cache.rs:117:13
[INFO] [stdout]     |
[INFO] [stdout] 117 |         let start_time = Instant::now();
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_start_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start_time`
[INFO] [stdout]    --> src/cache.rs:387:13
[INFO] [stdout]     |
[INFO] [stdout] 387 |         let start_time = Instant::now();
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_start_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start_time`
[INFO] [stdout]    --> src/cache.rs:394:13
[INFO] [stdout]     |
[INFO] [stdout] 394 |         let start_time = Instant::now();
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_start_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `PendingSetOperation` is more private than the item `StreamingParser::check_set_complete`
[INFO] [stdout]    --> src/streaming_protocol.rs:120:5
[INFO] [stdout]     |
[INFO] [stdout] 120 |     pub fn check_set_complete(&mut self, key: &str) -> Option<(PendingSetOperation, Vec<u8>)> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `StreamingParser::check_set_complete` is reachable at visibility `pub`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `PendingSetOperation` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/streaming_protocol.rs:44:1
[INFO] [stdout]     |
[INFO] [stdout]  44 | struct PendingSetOperation {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `total_memory` is never read
[INFO] [stdout]    --> src/config.rs:509:5
[INFO] [stdout]     |
[INFO] [stdout] 508 | struct SystemInfo {
[INFO] [stdout]     |        ---------- field in this struct
[INFO] [stdout] 509 |     total_memory: u64,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `recommended_l1_memory` and `recommended_worker_threads` are never used
[INFO] [stdout]    --> src/config.rs:528:8
[INFO] [stdout]     |
[INFO] [stdout] 514 | impl SystemInfo {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 528 |     fn recommended_l1_memory(&self) -> usize {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 535 |     fn recommended_worker_threads(&self) -> usize {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PathUtils` is never constructed
[INFO] [stdout]    --> src/config.rs:542:8
[INFO] [stdout]     |
[INFO] [stdout] 542 | struct PathUtils;
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `default_cache_dir` and `validate_writable_path` are never used
[INFO] [stdout]    --> src/config.rs:546:8
[INFO] [stdout]     |
[INFO] [stdout] 544 | impl PathUtils {
[INFO] [stdout]     | -------------- associated functions in this implementation
[INFO] [stdout] 545 |     /// 获取跨平台的默认缓存目录
[INFO] [stdout] 546 |     fn default_cache_dir() -> CacheResult<PathBuf> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 570 |     fn validate_writable_path(path: &PathBuf) -> CacheResult<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `total_size`, `flags`, and `exptime` are never read
[INFO] [stdout]   --> src/streaming_protocol.rs:45:5
[INFO] [stdout]    |
[INFO] [stdout] 44 | struct PendingSetOperation {
[INFO] [stdout]    |        ------------------- fields in this struct
[INFO] [stdout] 45 |     total_size: usize,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 46 |     chunk_count: usize,
[INFO] [stdout] 47 |     flags: u32,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 48 |     exptime: u32,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PendingSetOperation` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `l2_config` is never read
[INFO] [stdout]   --> src/compression.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct Compressor {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] 15 |     l2_config: Arc<L2Config>,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Compressor` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CompressionResult` is never constructed
[INFO] [stdout]   --> src/compression.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct CompressionResult {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DecompressionResult` is never constructed
[INFO] [stdout]   --> src/compression.rs:35:12
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub struct DecompressionResult {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/compression.rs:85:12
[INFO] [stdout]     |
[INFO] [stdout]  42 | impl Compressor {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  85 |     pub fn compress(&self, data: &[u8]) -> CacheResult<CompressionResult> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 127 |     pub fn decompress(&self, compressed_data: &[u8], is_compressed: bool) -> CacheResult<DecompressionResult> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 147 |     fn should_compress(&self, data: &[u8]) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 167 |     fn estimate_compressibility(&self, data: &[u8]) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 194 |     fn compress_lz4(&self, data: &[u8]) -> CacheResult<Vec<u8>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 210 |     fn decompress_lz4(&self, compressed_data: &[u8]) -> CacheResult<Vec<u8>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 222 |     pub fn config(&self) -> &L2Config {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 227 |     pub fn estimate_compressed_size(&self, original_size: usize) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CompressionStats` is never constructed
[INFO] [stdout]    --> src/compression.rs:247:12
[INFO] [stdout]     |
[INFO] [stdout] 247 | pub struct CompressionStats {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/compression.rs:266:12
[INFO] [stdout]     |
[INFO] [stdout] 264 | impl CompressionStats {
[INFO] [stdout]     | --------------------- associated items in this implementation
[INFO] [stdout] 265 |     /// 创建新的统计信息
[INFO] [stdout] 266 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 271 |     pub fn record_compression(&mut self, result: &CompressionResult) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 284 |     pub fn record_decompression(&mut self, _size: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 289 |     pub fn record_compression_failure(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 294 |     pub fn record_decompression_failure(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 299 |     pub fn overall_compression_ratio(&self) -> f64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 307 |     pub fn bytes_saved(&self) -> u64 {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 316 |     pub fn compression_success_rate(&self) -> f64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 325 |     pub fn decompression_success_rate(&self) -> f64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 334 |     pub fn reset(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `compressor` is never read
[INFO] [stdout]   --> src/l1_cache.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct L1Cache {
[INFO] [stdout]    |            ------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 30 |     compressor: Arc<Compressor>,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `L1Cache` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `len` and `is_empty` are never used
[INFO] [stdout]    --> src/l1_cache.rs:216:12
[INFO] [stdout]     |
[INFO] [stdout]  61 | impl L1Cache {
[INFO] [stdout]     | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 216 |     pub fn len(&self) -> usize {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 221 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `key` and `expire_time` are never read
[INFO] [stdout]   --> src/ttl.rs:34:14
[INFO] [stdout]    |
[INFO] [stdout] 34 |     AddKey { key: String, expire_time: u64 },
[INFO] [stdout]    |     ------   ^^^          ^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     fields in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CleanupCommand` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `key` is never read
[INFO] [stdout]   --> src/ttl.rs:36:17
[INFO] [stdout]    |
[INFO] [stdout] 36 |     RemoveKey { key: String },
[INFO] [stdout]    |     ---------   ^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CleanupCommand` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `UpdateKey` and `ForceCleanup` are never constructed
[INFO] [stdout]   --> src/ttl.rs:38:5
[INFO] [stdout]    |
[INFO] [stdout] 32 | enum CleanupCommand {
[INFO] [stdout]    |      -------------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 38 |     UpdateKey { key: String, expire_time: u64 },
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 39 |     /// 强制清理过期键
[INFO] [stdout] 40 |     ForceCleanup,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CleanupCommand` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `update_key`, `force_cleanup`, `get_stats`, `reset_stats`, and `stop` are never used
[INFO] [stdout]    --> src/ttl.rs:134:18
[INFO] [stdout]     |
[INFO] [stdout]  62 | impl TtlManager {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 134 |     pub async fn update_key(&self, key: String, ttl_seconds: Option<u64>) -> CacheResult<u64> {
[INFO] [stdout]     |                  ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 210 |     pub async fn force_cleanup(&self) {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 217 |     pub async fn get_stats(&self) -> TtlStats {
[INFO] [stdout]     |                  ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 229 |     pub async fn reset_stats(&self) {
[INFO] [stdout]     |                  ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 236 |     pub async fn stop(&self) {
[INFO] [stdout]     |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_expire_time` is never used
[INFO] [stdout]    --> src/ttl.rs:433:12
[INFO] [stdout]     |
[INFO] [stdout] 433 |     pub fn calculate_expire_time(ttl_seconds: u64) -> u64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_valid_expire_time` is never used
[INFO] [stdout]    --> src/ttl.rs:438:12
[INFO] [stdout]     |
[INFO] [stdout] 438 |     pub fn is_valid_expire_time(expire_time: u64) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `format_remaining_time` is never used
[INFO] [stdout]    --> src/ttl.rs:443:12
[INFO] [stdout]     |
[INFO] [stdout] 443 |     pub fn format_remaining_time(ttl_seconds: u64) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CacheError`
[INFO] [stdout]  --> src/cache.rs:8:20
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::error::{CacheError, CacheResult};
[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: `CacheLayer` and `CacheOperation`
[INFO] [stdout]   --> src/cache.rs:13:20
[INFO] [stdout]    |
[INFO] [stdout] 13 | use crate::types::{CacheLayer, CacheOperation};
[INFO] [stdout]    |                    ^^^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::cache_log`
[INFO] [stdout]   --> src/cache.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use crate::cache_log;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `interval`
[INFO] [stdout]   --> src/cache.rs:19:19
[INFO] [stdout]    |
[INFO] [stdout] 19 | use tokio::time::{interval, Duration};
[INFO] [stdout]    |                   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `chrono`
[INFO] [stdout]  --> src/types.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use chrono;
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Write`
[INFO] [stdout]   --> src/logging.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use std::io::Write;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `chrono::Local`
[INFO] [stdout]   --> src/logging.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | use chrono::Local;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Level`
[INFO] [stdout]   --> src/logging.rs:20:33
[INFO] [stdout]    |
[INFO] [stdout] 20 | use rat_logger::{LoggerBuilder, Level, LevelFilter, Logger};
[INFO] [stdout]    |                                 ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Metadata` and `Record`
[INFO] [stdout]   --> src/logging.rs:21:26
[INFO] [stdout]    |
[INFO] [stdout] 21 | use rat_logger::config::{Record, Metadata};
[INFO] [stdout]    |                          ^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rat_logger::handler::term::TermConfig`
[INFO] [stdout]   --> src/logging.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | use rat_logger::handler::term::TermConfig;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ColorConfig`, `FormatConfig`, and `LevelStyle`
[INFO] [stdout]   --> src/logging.rs:23:18
[INFO] [stdout]    |
[INFO] [stdout] 23 | use rat_logger::{FormatConfig, LevelStyle, ColorConfig};
[INFO] [stdout]    |                  ^^^^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CacheLayer` and `CacheOperation`
[INFO] [stdout]  --> src/l1_cache.rs:9:50
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::types::{CacheValue, EvictionStrategy, CacheLayer, CacheOperation};
[INFO] [stdout]   |                                                  ^^^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CacheError`
[INFO] [stdout]  --> src/ttl.rs:6:20
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::error::{CacheError, CacheResult};
[INFO] [stdout]   |                    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> examples/test_library_logging.rs:70:5
[INFO] [stdout]    |
[INFO] [stdout] 70 |     cache_log!(&log_config, info, "这是缓存信息日志测试");
[INFO] [stdout]    |     ^^^^^^^^^^^-----------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |     |          |
[INFO] [stdout]    |     |          this expression has type `&LoggingConfig`
[INFO] [stdout]    |     expected `LoggingConfig`, found `Option<_>`
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected struct `LoggingConfig`
[INFO] [stdout]                 found enum `Option<_>`
[INFO] [stdout]    = note: this error originates in the macro `cache_log` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> examples/test_library_logging.rs:71:5
[INFO] [stdout]    |
[INFO] [stdout] 71 |     cache_log!(&log_config, warn, "这是缓存警告日志测试");
[INFO] [stdout]    |     ^^^^^^^^^^^-----------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |     |          |
[INFO] [stdout]    |     |          this expression has type `&LoggingConfig`
[INFO] [stdout]    |     expected `LoggingConfig`, found `Option<_>`
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected struct `LoggingConfig`
[INFO] [stdout]                 found enum `Option<_>`
[INFO] [stdout]    = note: this error originates in the macro `cache_log` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0308`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `rat_memcache` (example "test_library_logging") due to 2 previous errors
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] error[E0061]: this function takes 3 arguments but 4 arguments were supplied
[INFO] [stdout]    --> src/l1_cache.rs:535:9
[INFO] [stdout]     |
[INFO] [stdout] 535 |         L1Cache::new(l1_config, logging_config, compressor, ttl_manager).await.unwrap()
[INFO] [stdout]     |         ^^^^^^^^^^^^            -------------- unexpected argument #2 of type `config::LoggingConfig`
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/l1_cache.rs:63:18
[INFO] [stdout]     |
[INFO] [stdout]  63 |     pub async fn new(
[INFO] [stdout]     |                  ^^^
[INFO] [stdout] help: remove the extra argument
[INFO] [stdout]     |
[INFO] [stdout] 535 -         L1Cache::new(l1_config, logging_config, compressor, ttl_manager).await.unwrap()
[INFO] [stdout] 535 +         L1Cache::new(l1_config, compressor, ttl_manager).await.unwrap()
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rat_memcache::RatMemCacheBuilder`
[INFO] [stdout]  --> tests/test_compression_architecture.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use rat_memcache::RatMemCacheBuilder;
[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: `L1Config`, `LoggingConfig`, `PerformanceConfig`, and `TtlConfig`
[INFO] [stdout]  --> tests/test_compression_architecture.rs:6:28
[INFO] [stdout]   |
[INFO] [stdout] 6 | use rat_memcache::config::{L1Config, PerformanceConfig, TtlConfig, LoggingConfig};
[INFO] [stdout]   |                            ^^^^^^^^  ^^^^^^^^^^^^^^^^^  ^^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `bytes::Bytes`
[INFO] [stdout]  --> tests/test_compression_architecture.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use bytes::Bytes;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tempfile::TempDir`
[INFO] [stdout]  --> tests/test_compression_architecture.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use tempfile::TempDir;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CacheOptions`
[INFO] [stdout]  --> examples/test_l1_no_compression.rs:6:40
[INFO] [stdout]   |
[INFO] [stdout] 6 | use rat_memcache::{RatMemCacheBuilder, CacheOptions};
[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: `rat_memcache::RatMemCacheBuilder`
[INFO] [stdout]  --> tests/test_large_value.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use rat_memcache::RatMemCacheBuilder;
[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: `L1Config`, `LoggingConfig`, `PerformanceConfig`, and `TtlConfig`
[INFO] [stdout]  --> tests/test_large_value.rs:3:20
[INFO] [stdout]   |
[INFO] [stdout] 3 | use rat_memcache::{L1Config, PerformanceConfig, TtlConfig, LoggingConfig};
[INFO] [stdout]   |                    ^^^^^^^^  ^^^^^^^^^^^^^^^^^  ^^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rat_memcache::types::EvictionStrategy`
[INFO] [stdout]  --> tests/test_large_value.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use rat_memcache::types::EvictionStrategy;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tempfile::TempDir`
[INFO] [stdout]   --> tests/test_large_value.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use tempfile::TempDir;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `bytes::Bytes`
[INFO] [stdout]   --> tests/test_large_value.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use bytes::Bytes;
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `rat_logger::LoggerBuilder::init`: 请使用init_global_logger方法
[INFO] [stdout]    --> src/logging.rs:130:17
[INFO] [stdout]     |
[INFO] [stdout] 130 |         builder.init().map_err(|e| {
[INFO] [stdout]     |                 ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this function takes 3 arguments but 4 arguments were supplied
[INFO] [stdout]    --> src/l1_cache.rs:622:21
[INFO] [stdout]     |
[INFO] [stdout] 622 |         let cache = L1Cache::new(l1_config, logging_config, compressor, ttl_manager).await.unwrap();
[INFO] [stdout]     |                     ^^^^^^^^^^^^            -------------- unexpected argument #2 of type `config::LoggingConfig`
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/l1_cache.rs:63:18
[INFO] [stdout]     |
[INFO] [stdout]  63 |     pub async fn new(
[INFO] [stdout]     |                  ^^^
[INFO] [stdout] help: remove the extra argument
[INFO] [stdout]     |
[INFO] [stdout] 622 -         let cache = L1Cache::new(l1_config, logging_config, compressor, ttl_manager).await.unwrap();
[INFO] [stdout] 622 +         let cache = L1Cache::new(l1_config, compressor, ttl_manager).await.unwrap();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `l2_cache`
[INFO] [stdout]    --> src/cache.rs:225:13
[INFO] [stdout]     |
[INFO] [stdout] 225 |         let l2_cache: Option<()> = None;
[INFO] [stdout]     |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_l2_cache`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start_time`
[INFO] [stdout]    --> src/cache.rs:253:13
[INFO] [stdout]     |
[INFO] [stdout] 253 |         let start_time = Instant::now();
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_start_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start_time`
[INFO] [stdout]    --> src/l1_cache.rs:158:13
[INFO] [stdout]     |
[INFO] [stdout] 158 |         let start_time = Instant::now();
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_start_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start_time`
[INFO] [stdout]   --> src/l1_cache.rs:91:13
[INFO] [stdout]    |
[INFO] [stdout] 91 |         let start_time = Instant::now();
[INFO] [stdout]    |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_start_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start_time`
[INFO] [stdout]    --> src/cache.rs:309:13
[INFO] [stdout]     |
[INFO] [stdout] 309 |         let start_time = Instant::now();
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_start_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start_time`
[INFO] [stdout]    --> src/l1_cache.rs:117:13
[INFO] [stdout]     |
[INFO] [stdout] 117 |         let start_time = Instant::now();
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_start_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start_time`
[INFO] [stdout]    --> src/cache.rs:387:13
[INFO] [stdout]     |
[INFO] [stdout] 387 |         let start_time = Instant::now();
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_start_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start_time`
[INFO] [stdout]    --> src/cache.rs:394:13
[INFO] [stdout]     |
[INFO] [stdout] 394 |         let start_time = Instant::now();
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_start_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0061`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `rat_memcache` (lib test) due to 2 previous errors; 22 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "f131ef6475af98f0560c93df840cfbf45a3569413b0a87326528d7855ff0c4bf", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f131ef6475af98f0560c93df840cfbf45a3569413b0a87326528d7855ff0c4bf", kill_on_drop: false }`
[INFO] [stdout] f131ef6475af98f0560c93df840cfbf45a3569413b0a87326528d7855ff0c4bf
