[INFO] cloning repository https://github.com/jzwdsb/leveldb-rs
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/jzwdsb/leveldb-rs" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjzwdsb%2Fleveldb-rs", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjzwdsb%2Fleveldb-rs'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 3eaeb57b7e8f4db53015ccc1d8048cd69bc54fad
[INFO] testing jzwdsb/leveldb-rs against beta-2024-12-08 for beta-1.84.0-4-retry
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjzwdsb%2Fleveldb-rs" "/workspace/builds/worker-7-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc2/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/jzwdsb/leveldb-rs on toolchain beta-2024-12-08
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2024-12-08" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/jzwdsb/leveldb-rs
[INFO] finished tweaking git repo https://github.com/jzwdsb/leveldb-rs
[INFO] tweaked toml for git repo https://github.com/jzwdsb/leveldb-rs written to /workspace/builds/worker-7-tc2/source/Cargo.toml
[INFO] crate git repo https://github.com/jzwdsb/leveldb-rs 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-2024-12-08" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2024-12-08" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 8267c21a1d72d221e017c66ce5afacc3beb05fa8275c55666b9aa2de5fff37c5
[INFO] running `Command { std: "docker" "start" "-a" "8267c21a1d72d221e017c66ce5afacc3beb05fa8275c55666b9aa2de5fff37c5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "8267c21a1d72d221e017c66ce5afacc3beb05fa8275c55666b9aa2de5fff37c5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "8267c21a1d72d221e017c66ce5afacc3beb05fa8275c55666b9aa2de5fff37c5", kill_on_drop: false }`
[INFO] [stdout] 8267c21a1d72d221e017c66ce5afacc3beb05fa8275c55666b9aa2de5fff37c5
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2024-12-08" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 26f8caab9d5b5cf3dcc868480e0d1826dd16f010423142ad96f0c1fcb6f2472b
[INFO] running `Command { std: "docker" "start" "-a" "26f8caab9d5b5cf3dcc868480e0d1826dd16f010423142ad96f0c1fcb6f2472b", kill_on_drop: false }`
[INFO] [stderr]    Compiling serde v1.0.196
[INFO] [stderr]    Compiling bytes v1.5.0
[INFO] [stderr]    Compiling leveldb-rs v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `super::*`
[INFO] [stdout]   --> src/common/slice.rs:72:9
[INFO] [stdout]    |
[INFO] [stdout] 72 |     use super::*;
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Status`
[INFO] [stdout]  --> src/db/db_iter.rs:3:27
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::common::{Iter, Status};
[INFO] [stdout]   |                           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `mutex::*`
[INFO] [stdout]  --> src/port/mod.rs:3:9
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub use mutex::*;
[INFO] [stdout]   |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::*`
[INFO] [stdout]   --> src/util/random.rs:38:9
[INFO] [stdout]    |
[INFO] [stdout] 38 |     use super::*;
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `logging::*`
[INFO] [stdout]   --> src/util/mod.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub use logging::*;
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `random::*`
[INFO] [stdout]   --> src/util/mod.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use random::*;
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]   --> src/common/options.rs:59:27
[INFO] [stdout]    |
[INFO] [stdout] 59 |     pub fn put(&mut self, key: &Slice, value: &Slice) {
[INFO] [stdout]    |                           ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/common/options.rs:59:40
[INFO] [stdout]    |
[INFO] [stdout] 59 |     pub fn put(&mut self, key: &Slice, value: &Slice) {
[INFO] [stdout]    |                                        ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]   --> src/common/options.rs:63:30
[INFO] [stdout]    |
[INFO] [stdout] 63 |     pub fn delete(&mut self, key: &Slice) {
[INFO] [stdout]    |                              ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dbname`
[INFO] [stdout]   --> src/common/table_cache.rs:11:16
[INFO] [stdout]    |
[INFO] [stdout] 11 |     pub fn new(dbname: String, options: Options, entries: u64) -> Self {
[INFO] [stdout]    |                ^^^^^^ help: if this is intentional, prefix it with an underscore: `_dbname`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `options`
[INFO] [stdout]   --> src/common/table_cache.rs:11:32
[INFO] [stdout]    |
[INFO] [stdout] 11 |     pub fn new(dbname: String, options: Options, entries: u64) -> Self {
[INFO] [stdout]    |                                ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_options`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `entries`
[INFO] [stdout]   --> src/common/table_cache.rs:11:50
[INFO] [stdout]    |
[INFO] [stdout] 11 |     pub fn new(dbname: String, options: Options, entries: u64) -> Self {
[INFO] [stdout]    |                                                  ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_entries`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `options`
[INFO] [stdout]   --> src/common/table_cache.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 17 |         options: &ReadOptions,
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_options`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `file_number`
[INFO] [stdout]   --> src/common/table_cache.rs:18:9
[INFO] [stdout]    |
[INFO] [stdout] 18 |         file_number: u64,
[INFO] [stdout]    |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_file_number`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `file_size`
[INFO] [stdout]   --> src/common/table_cache.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 19 |         file_size: u64,
[INFO] [stdout]    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_file_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `options`
[INFO] [stdout]   --> src/common/table_cache.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 26 |         options: &ReadOptions,
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_options`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `file_number`
[INFO] [stdout]   --> src/common/table_cache.rs:27:9
[INFO] [stdout]    |
[INFO] [stdout] 27 |         file_number: u64,
[INFO] [stdout]    |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_file_number`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `file_size`
[INFO] [stdout]   --> src/common/table_cache.rs:28:9
[INFO] [stdout]    |
[INFO] [stdout] 28 |         file_size: u64,
[INFO] [stdout]    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_file_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]   --> src/common/table_cache.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 29 |         key: &Slice,
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `handle_value`
[INFO] [stdout]   --> src/common/table_cache.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 30 |         handle_value: &mut Box<dyn Handle>,
[INFO] [stdout]    |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_handle_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `file_number`
[INFO] [stdout]   --> src/common/table_cache.rs:35:29
[INFO] [stdout]    |
[INFO] [stdout] 35 |     pub fn evict(&mut self, file_number: u64) {
[INFO] [stdout]    |                             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_file_number`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `file_number`
[INFO] [stdout]   --> src/common/table_cache.rs:39:30
[INFO] [stdout]    |
[INFO] [stdout] 39 |     fn find_table(&mut self, file_number: u64, file_size: u64) -> Option<Box<dyn Handle>> {
[INFO] [stdout]    |                              ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_file_number`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `file_size`
[INFO] [stdout]   --> src/common/table_cache.rs:39:48
[INFO] [stdout]    |
[INFO] [stdout] 39 |     fn find_table(&mut self, file_number: u64, file_size: u64) -> Option<Box<dyn Handle>> {
[INFO] [stdout]    |                                                ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_file_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start`
[INFO] [stdout]    --> src/db/db_format.rs:112:43
[INFO] [stdout]     |
[INFO] [stdout] 112 |         fn find_shortest_separator(&self, start: &mut Slice, limit: &Slice) {
[INFO] [stdout]     |                                           ^^^^^ help: if this is intentional, prefix it with an underscore: `_start`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `limit`
[INFO] [stdout]    --> src/db/db_format.rs:112:62
[INFO] [stdout]     |
[INFO] [stdout] 112 |         fn find_shortest_separator(&self, start: &mut Slice, limit: &Slice) {
[INFO] [stdout]     |                                                              ^^^^^ help: if this is intentional, prefix it with an underscore: `_limit`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]    --> src/db/db_format.rs:116:40
[INFO] [stdout]     |
[INFO] [stdout] 116 |         fn find_short_successor(&self, key: &mut Slice) {
[INFO] [stdout]     |                                        ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `keys`
[INFO] [stdout]    --> src/db/db_format.rs:128:33
[INFO] [stdout]     |
[INFO] [stdout] 128 |         fn create_filter(&self, keys: &[Slice]) -> Slice {
[INFO] [stdout]     |                                 ^^^^ help: if this is intentional, prefix it with an underscore: `_keys`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]    --> src/db/db_format.rs:132:33
[INFO] [stdout]     |
[INFO] [stdout] 132 |         fn key_may_match(&self, key: &Slice, filter: &Slice) -> bool {
[INFO] [stdout]     |                                 ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `filter`
[INFO] [stdout]    --> src/db/db_format.rs:132:46
[INFO] [stdout]     |
[INFO] [stdout] 132 |         fn key_may_match(&self, key: &Slice, filter: &Slice) -> bool {
[INFO] [stdout]     |                                              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_filter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `options`
[INFO] [stdout]   --> src/db/db_impl.rs:32:17
[INFO] [stdout]    |
[INFO] [stdout] 32 |         fn open(options: &Options, name: &str, db: &mut Self) -> Status {
[INFO] [stdout]    |                 ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_options`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> src/db/db_impl.rs:32:36
[INFO] [stdout]    |
[INFO] [stdout] 32 |         fn open(options: &Options, name: &str, db: &mut Self) -> Status {
[INFO] [stdout]    |                                    ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `db`
[INFO] [stdout]   --> src/db/db_impl.rs:32:48
[INFO] [stdout]    |
[INFO] [stdout] 32 |         fn open(options: &Options, name: &str, db: &mut Self) -> Status {
[INFO] [stdout]    |                                                ^^ help: if this is intentional, prefix it with an underscore: `_db`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `options`
[INFO] [stdout]   --> src/db/db_impl.rs:36:27
[INFO] [stdout]    |
[INFO] [stdout] 36 |         fn put(&mut self, options: &WriteOptions, key: &Slice, value: &Slice) -> Status {
[INFO] [stdout]    |                           ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_options`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]   --> src/db/db_impl.rs:36:51
[INFO] [stdout]    |
[INFO] [stdout] 36 |         fn put(&mut self, options: &WriteOptions, key: &Slice, value: &Slice) -> Status {
[INFO] [stdout]    |                                                   ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/db/db_impl.rs:36:64
[INFO] [stdout]    |
[INFO] [stdout] 36 |         fn put(&mut self, options: &WriteOptions, key: &Slice, value: &Slice) -> Status {
[INFO] [stdout]    |                                                                ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `options`
[INFO] [stdout]   --> src/db/db_impl.rs:40:30
[INFO] [stdout]    |
[INFO] [stdout] 40 |         fn delete(&mut self, options: &WriteOptions, key: &Slice) -> Status {
[INFO] [stdout]    |                              ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_options`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]   --> src/db/db_impl.rs:40:54
[INFO] [stdout]    |
[INFO] [stdout] 40 |         fn delete(&mut self, options: &WriteOptions, key: &Slice) -> Status {
[INFO] [stdout]    |                                                      ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `options`
[INFO] [stdout]   --> src/db/db_impl.rs:44:29
[INFO] [stdout]    |
[INFO] [stdout] 44 |         fn write(&mut self, options: &WriteOptions, updates: &mut WriteBatch) -> Status {
[INFO] [stdout]    |                             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_options`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `updates`
[INFO] [stdout]   --> src/db/db_impl.rs:44:53
[INFO] [stdout]    |
[INFO] [stdout] 44 |         fn write(&mut self, options: &WriteOptions, updates: &mut WriteBatch) -> Status {
[INFO] [stdout]    |                                                     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_updates`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `options`
[INFO] [stdout]   --> src/db/db_impl.rs:48:27
[INFO] [stdout]    |
[INFO] [stdout] 48 |         fn get(&mut self, options: &ReadOptions, key: &Slice) -> Result<Slice, Status> {
[INFO] [stdout]    |                           ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_options`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]   --> src/db/db_impl.rs:48:50
[INFO] [stdout]    |
[INFO] [stdout] 48 |         fn get(&mut self, options: &ReadOptions, key: &Slice) -> Result<Slice, Status> {
[INFO] [stdout]    |                                                  ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `options`
[INFO] [stdout]   --> src/db/db_impl.rs:52:36
[INFO] [stdout]    |
[INFO] [stdout] 52 |         fn new_iterator(&mut self, options: &ReadOptions) -> Box<dyn crate::common::Iter> {
[INFO] [stdout]    |                                    ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_options`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `propname`
[INFO] [stdout]   --> src/db/db_impl.rs:60:36
[INFO] [stdout]    |
[INFO] [stdout] 60 |         fn get_property(&mut self, propname: &Slice) -> Option<String> {
[INFO] [stdout]    |                                    ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_propname`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ranges`
[INFO] [stdout]   --> src/db/db_impl.rs:64:45
[INFO] [stdout]    |
[INFO] [stdout] 64 |         fn get_approximate_sizes(&mut self, ranges: &crate::common::Range, n: i64) -> Vec<u64> {
[INFO] [stdout]    |                                             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_ranges`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]   --> src/db/db_impl.rs:64:76
[INFO] [stdout]    |
[INFO] [stdout] 64 |         fn get_approximate_sizes(&mut self, ranges: &crate::common::Range, n: i64) -> Vec<u64> {
[INFO] [stdout]    |                                                                            ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start`
[INFO] [stdout]   --> src/db/db_impl.rs:68:37
[INFO] [stdout]    |
[INFO] [stdout] 68 |         fn compact_range(&mut self, start: &Slice, end: &Slice) {
[INFO] [stdout]    |                                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_start`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `end`
[INFO] [stdout]   --> src/db/db_impl.rs:68:52
[INFO] [stdout]    |
[INFO] [stdout] 68 |         fn compact_range(&mut self, start: &Slice, end: &Slice) {
[INFO] [stdout]    |                                                    ^^^ help: if this is intentional, prefix it with an underscore: `_end`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `options`
[INFO] [stdout]   --> src/db/db_impl.rs:72:23
[INFO] [stdout]    |
[INFO] [stdout] 72 |         fn destory_db(options: &Options, name: &str) -> Status {
[INFO] [stdout]    |                       ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_options`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> src/db/db_impl.rs:72:42
[INFO] [stdout]    |
[INFO] [stdout] 72 |         fn destory_db(options: &Options, name: &str) -> Status {
[INFO] [stdout]    |                                          ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `options`
[INFO] [stdout]   --> src/db/db_impl.rs:76:22
[INFO] [stdout]    |
[INFO] [stdout] 76 |         fn repair_db(options: &Options, name: &str) -> Status {
[INFO] [stdout]    |                      ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_options`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> src/db/db_impl.rs:76:41
[INFO] [stdout]    |
[INFO] [stdout] 76 |         fn repair_db(options: &Options, name: &str) -> Status {
[INFO] [stdout]    |                                         ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `db`
[INFO] [stdout]   --> src/db/db_iter.rs:22:16
[INFO] [stdout]    |
[INFO] [stdout] 22 |     pub fn new(db: &DBImpl, iter: DBIter<'_>) -> Self {
[INFO] [stdout]    |                ^^ help: if this is intentional, prefix it with an underscore: `_db`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `iter`
[INFO] [stdout]   --> src/db/db_iter.rs:22:29
[INFO] [stdout]    |
[INFO] [stdout] 22 |     pub fn new(db: &DBImpl, iter: DBIter<'_>) -> Self {
[INFO] [stdout]    |                             ^^^^ help: if this is intentional, prefix it with an underscore: `_iter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `target`
[INFO] [stdout]   --> src/db/db_iter.rs:37:24
[INFO] [stdout]    |
[INFO] [stdout] 37 |     fn seek(&mut self, target: &crate::common::Slice) {
[INFO] [stdout]    |                        ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `guard`
[INFO] [stdout]   --> src/port/mutex.rs:39:24
[INFO] [stdout]    |
[INFO] [stdout] 39 |     pub fn wait(&self, guard: &mut MutexGuard<bool>) {}
[INFO] [stdout]    |                        ^^^^^ help: if this is intentional, prefix it with an underscore: `_guard`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dst`
[INFO] [stdout]   --> src/util/codec.rs:50:25
[INFO] [stdout]    |
[INFO] [stdout] 50 |     pub fn put_varint32(dst: &mut [u8], value: u32) {
[INFO] [stdout]    |                         ^^^ help: if this is intentional, prefix it with an underscore: `_dst`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/util/codec.rs:50:41
[INFO] [stdout]    |
[INFO] [stdout] 50 |     pub fn put_varint32(dst: &mut [u8], value: u32) {
[INFO] [stdout]    |                                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dst`
[INFO] [stdout]   --> src/util/codec.rs:54:25
[INFO] [stdout]    |
[INFO] [stdout] 54 |     pub fn put_varint64(dst: &mut [u8], value: u64) {
[INFO] [stdout]    |                         ^^^ help: if this is intentional, prefix it with an underscore: `_dst`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/util/codec.rs:54:41
[INFO] [stdout]    |
[INFO] [stdout] 54 |     pub fn put_varint64(dst: &mut [u8], value: u64) {
[INFO] [stdout]    |                                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dst`
[INFO] [stdout]   --> src/util/codec.rs:58:38
[INFO] [stdout]    |
[INFO] [stdout] 58 |     pub fn put_length_prefixed_slice(dst: &mut [u8], value: &[u8]) {
[INFO] [stdout]    |                                      ^^^ help: if this is intentional, prefix it with an underscore: `_dst`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/util/codec.rs:58:54
[INFO] [stdout]    |
[INFO] [stdout] 58 |     pub fn put_length_prefixed_slice(dst: &mut [u8], value: &[u8]) {
[INFO] [stdout]    |                                                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `src`
[INFO] [stdout]   --> src/util/codec.rs:62:24
[INFO] [stdout]    |
[INFO] [stdout] 62 |     pub fn get_fixed32(src: &Slice) -> u32 {
[INFO] [stdout]    |                        ^^^ help: if this is intentional, prefix it with an underscore: `_src`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `src`
[INFO] [stdout]   --> src/util/codec.rs:66:25
[INFO] [stdout]    |
[INFO] [stdout] 66 |     pub fn get_varint32(src: &Slice) -> Option<u32> {
[INFO] [stdout]    |                         ^^^ help: if this is intentional, prefix it with an underscore: `_src`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `src`
[INFO] [stdout]   --> src/util/codec.rs:70:24
[INFO] [stdout]    |
[INFO] [stdout] 70 |     pub fn get_fixed64(src: &Slice) -> Option<u64> {
[INFO] [stdout]    |                        ^^^ help: if this is intentional, prefix it with an underscore: `_src`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `src`
[INFO] [stdout]   --> src/util/codec.rs:74:38
[INFO] [stdout]    |
[INFO] [stdout] 74 |     pub fn get_length_prefixed_slice(src: &Slice) -> Option<&Slice> {
[INFO] [stdout]    |                                      ^^^ help: if this is intentional, prefix it with an underscore: `_src`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]  --> src/util/crc32.rs:3:19
[INFO] [stdout]   |
[INFO] [stdout] 3 |     pub fn Extend(data: &[u8], crc: u32) -> u32 {
[INFO] [stdout]   |                   ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `crc`
[INFO] [stdout]  --> src/util/crc32.rs:3:32
[INFO] [stdout]   |
[INFO] [stdout] 3 |     pub fn Extend(data: &[u8], crc: u32) -> u32 {
[INFO] [stdout]   |                                ^^^ help: if this is intentional, prefix it with an underscore: `_crc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `crc`
[INFO] [stdout]  --> src/util/crc32.rs:6:17
[INFO] [stdout]   |
[INFO] [stdout] 6 |     pub fn Mask(crc: u32) -> u32 {
[INFO] [stdout]   |                 ^^^ help: if this is intentional, prefix it with an underscore: `_crc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dest`
[INFO] [stdout]  --> src/util/logging.rs:3:25
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn append_number_to(dest: &mut String, num: u64) {
[INFO] [stdout]   |                         ^^^^ help: if this is intentional, prefix it with an underscore: `_dest`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `num`
[INFO] [stdout]  --> src/util/logging.rs:3:44
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn append_number_to(dest: &mut String, num: u64) {
[INFO] [stdout]   |                                            ^^^ help: if this is intentional, prefix it with an underscore: `_num`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dest`
[INFO] [stdout]  --> src/util/logging.rs:7:33
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn append_escaped_string_to(dest: &mut String, src: &Slice) {
[INFO] [stdout]   |                                 ^^^^ help: if this is intentional, prefix it with an underscore: `_dest`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `src`
[INFO] [stdout]  --> src/util/logging.rs:7:52
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn append_escaped_string_to(dest: &mut String, src: &Slice) {
[INFO] [stdout]   |                                                    ^^^ help: if this is intentional, prefix it with an underscore: `_src`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `num`
[INFO] [stdout]   --> src/util/logging.rs:11:25
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub fn number_to_string(num: u64) -> String {
[INFO] [stdout]    |                         ^^^ help: if this is intentional, prefix it with an underscore: `_num`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `src`
[INFO] [stdout]   --> src/util/logging.rs:15:22
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn escape_string(src: &Slice) -> String {
[INFO] [stdout]    |                      ^^^ help: if this is intentional, prefix it with an underscore: `_src`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `src`
[INFO] [stdout]   --> src/util/logging.rs:19:32
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub fn comsume_deciamal_number(src: &mut Slice) -> Option<u64> {
[INFO] [stdout]    |                                ^^^ help: if this is intentional, prefix it with an underscore: `_src`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Handle` is never used
[INFO] [stdout]   --> src/common/mod.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub trait Handle {
[INFO] [stdout]    |           ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `insert`, `lookup`, `release`, `erase`, `new_id`, and `prune` are never used
[INFO] [stdout]   --> src/common/mod.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub trait Cache {
[INFO] [stdout]    |           ----- methods in this trait
[INFO] [stdout] 21 |     fn insert(&mut self, key: &Slice, value: &Slice) -> Box<dyn Handle>;
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 22 |     fn lookup(&mut self, key: &Slice) -> Option<Box<dyn Handle>>;
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 23 |     fn release(&mut self, entry: Box<dyn Handle>);
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 24 |     fn erase(&mut self, key: &Slice);
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 25 |     fn new_id(&mut self) -> u64;
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 26 |     fn prune(&mut self);
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `name`, `create_filter`, and `key_may_match` are never used
[INFO] [stdout]   --> src/common/mod.rs:30:8
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub trait FilterPolicy {
[INFO] [stdout]    |           ------------ methods in this trait
[INFO] [stdout] 30 |     fn name(&self) -> &str;
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 31 |     fn create_filter(&self, keys: &[Slice]) -> Slice;
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 32 |     fn key_may_match(&self, key: &Slice, filter: &Slice) -> bool;
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `compare`, `name`, `find_shortest_separator`, and `find_short_successor` are never used
[INFO] [stdout]   --> src/common/mod.rs:36:8
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub trait Comparator {
[INFO] [stdout]    |           ---------- methods in this trait
[INFO] [stdout] 36 |     fn compare(&self, a: &Slice, b: &Slice) -> Ordering;
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 37 |     fn name(&self) -> &str;
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 38 |     fn find_shortest_separator(&self, start: &mut Slice, limit: &Slice);
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 39 |     fn find_short_successor(&self, key: &mut Slice);
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]   --> src/common/mod.rs:43:8
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub trait Env {
[INFO] [stdout]    |           --- methods in this trait
[INFO] [stdout] 43 |     fn new_sequential_file(&self, fname: &str, dest: &mut Box<dyn SequentialFile>) -> Status;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 44 |     fn new_random_access_file(&self, fname: &str, dest: &mut Box<dyn RandomAccessFile>) -> Status;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 45 |     fn new_writeable_file(&self, fname: &str, dest: &mut Box<dyn WritableFile>) -> Status;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 46 |     fn new_appendable_file(&self, fname: &str, dest: &mut Box<dyn WritableFile>) -> Status;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 47 |
[INFO] [stdout] 48 |     fn file_exists(&self, fname: &str) -> bool;
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 49 |     fn get_children(&self, dir: &str) -> Result<Vec<String>, Status>;
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 50 |     fn remove_file(&self, fname: &str) -> Status;
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 51 |     #[deprecated]
[INFO] [stdout] 52 |     fn delete_file(&self, fname: &str) -> Status {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 56 |     fn create_dir(&self, dirname: &str) -> Status;
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 57 |     fn remove_dir(&self, dirname: &str) -> Status;
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 58 |     #[deprecated]
[INFO] [stdout] 59 |     fn delete_dir(&self, dirname: &str) -> Status {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 62 |     fn get_file_size(&self, fname: &str) -> Result<usize, Status>;
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 63 |     fn rename_file(&self, src: &str, target: &str) -> Status;
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 64 |
[INFO] [stdout] 65 |     fn lock_file(&self, fname: &str, lock: &mut Box<dyn FileLock>) -> Status;
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 66 |     fn unlock_file(&self, lock: &mut Box<dyn FileLock>) -> Status;
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 67 |
[INFO] [stdout] 68 |     fn schedule(&self, f: Box<dyn FnOnce() + Send>) -> Status;
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 69 |     fn start_thread(&self, name: &str, f: Box<dyn FnOnce() + Send>) -> Status;
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 70 |
[INFO] [stdout] 71 |     fn get_test_directory(&self) -> String;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 72 |
[INFO] [stdout] 73 |     fn now_micros(&self) -> u64;
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 74 |     fn sleep_for_microseconds(&self, micros: u64);
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `SequentialFile` is never used
[INFO] [stdout]   --> src/common/mod.rs:77:11
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub trait SequentialFile {
[INFO] [stdout]    |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `WritableFile` is never used
[INFO] [stdout]   --> src/common/mod.rs:82:11
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub trait WritableFile {
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `RandomAccessFile` is never used
[INFO] [stdout]   --> src/common/mod.rs:89:11
[INFO] [stdout]    |
[INFO] [stdout] 89 | pub trait RandomAccessFile {
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `log` is never used
[INFO] [stdout]   --> src/common/mod.rs:94:8
[INFO] [stdout]    |
[INFO] [stdout] 93 | pub trait Logger {
[INFO] [stdout]    |           ------ method in this trait
[INFO] [stdout] 94 |     fn log(&mut self, msg: &str);
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `FileLock` is never used
[INFO] [stdout]   --> src/common/mod.rs:97:11
[INFO] [stdout]    |
[INFO] [stdout] 97 | pub trait FileLock {
[INFO] [stdout]    |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `start` and `limit` are never read
[INFO] [stdout]    --> src/common/mod.rs:102:9
[INFO] [stdout]     |
[INFO] [stdout] 101 | pub struct Range {
[INFO] [stdout]     |            ----- fields in this struct
[INFO] [stdout] 102 |     pub start: Slice,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 103 |     pub limit: Slice,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Table` is never used
[INFO] [stdout]    --> src/common/mod.rs:106:11
[INFO] [stdout]     |
[INFO] [stdout] 106 | pub trait Table {}
[INFO] [stdout]     |           ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/common/mod.rs:111:8
[INFO] [stdout]     |
[INFO] [stdout] 110 | pub trait Iter {
[INFO] [stdout]     |           ---- methods in this trait
[INFO] [stdout] 111 |     fn seek_to_first(&mut self);
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 112 |     fn seek_to_last(&mut self);
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 113 |     fn seek(&mut self, target: &Slice);
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 114 |     fn next(&mut self);
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 115 |     fn prev(&mut self);
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 116 |     fn valid(&self) -> bool;
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 117 |     fn key(&self) -> &Slice;
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 118 |     fn value(&self) -> &Slice;
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 119 |     fn status(&mut self) -> Status;
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/common/mod.rs:123:8
[INFO] [stdout]     |
[INFO] [stdout] 122 | pub trait DB {
[INFO] [stdout]     |           -- associated items in this trait
[INFO] [stdout] 123 |     fn open(options: &Options, name: &str, db: &mut Self) -> Status;
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 124 |
[INFO] [stdout] 125 |     fn put(&mut self, options: &WriteOptions, key: &Slice, value: &Slice) -> Status;
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 126 |     fn delete(&mut self, options: &WriteOptions, key: &Slice) -> Status;
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 127 |     fn write(&mut self, options: &WriteOptions, updates: &mut WriteBatch) -> Status;
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 128 |
[INFO] [stdout] 129 |     fn get(&mut self, options: &ReadOptions, key: &Slice) -> Result<Slice, Status>;
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 130 |     fn new_iterator(&mut self, options: &ReadOptions) -> Box<dyn Iter>;
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 131 |
[INFO] [stdout] 132 |     fn get_snapshot(&mut self) -> Box<dyn Snapshot>;
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 133 |
[INFO] [stdout] 134 |     fn get_property(&mut self, propname: &Slice) -> Option<String>;
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 135 |
[INFO] [stdout] 136 |     fn get_approximate_sizes(&mut self, ranges: &Range, n: i64) -> Vec<u64>;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 137 |
[INFO] [stdout] 138 |     fn compact_range(&mut self, start: &Slice, end: &Slice);
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 139 |
[INFO] [stdout] 140 |     fn destory_db(options: &Options, name: &str) -> Status;
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 141 |
[INFO] [stdout] 142 |     fn repair_db(options: &Options, name: &str) -> Status;
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Ok`, `NotFound`, `Corruption`, `NotSupported`, `InvalidArgument`, and `IOError` are never constructed
[INFO] [stdout]  --> src/common/code.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub enum Status {
[INFO] [stdout]   |          ------ variants in this enum
[INFO] [stdout] 4 |     Ok,
[INFO] [stdout]   |     ^^
[INFO] [stdout] 5 |     NotFound(Slice),
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 6 |     Corruption(Slice),
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 7 |     NotSupported(Slice),
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 8 |     InvalidArgument(Slice),
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 9 |     IOError,
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_ok`, `is_not_found`, `is_corruption`, `is_not_supported`, `is_invalid_argument`, and `is_io_error` are never used
[INFO] [stdout]   --> src/common/code.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl Status {
[INFO] [stdout]    | ----------- methods in this implementation
[INFO] [stdout] 13 |     pub fn is_ok(&self) -> bool {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 19 |     pub fn is_not_found(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 26 |     pub fn is_corruption(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub fn is_not_supported(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |     pub fn is_invalid_argument(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     pub fn is_io_error(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `CompressionType` is never used
[INFO] [stdout]  --> src/common/options.rs:3:10
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub enum CompressionType {
[INFO] [stdout]   |          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> src/common/options.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 9  | pub struct Options {
[INFO] [stdout]    |            ------- fields in this struct
[INFO] [stdout] 10 |     pub create_if_missing: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 11 |     pub error_if_exists: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 12 |     pub paranoid_checks: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 13 |     pub env: Option<Box<dyn Env>>,
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 14 |     pub comparator: Option<Box<dyn Comparator>>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 15 |     pub cache: Option<Box<dyn Cache>>,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 16 |     pub filter_policy: Option<Box<dyn FilterPolicy>>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 17 |     pub logger: Option<Box<dyn Logger>>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `verify_checksums`, `fill_cache`, and `snapshot` are never read
[INFO] [stdout]   --> src/common/options.rs:36:9
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub struct ReadOptions {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout] 36 |     pub verify_checksums: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 37 |     pub fill_cache: bool,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 38 |     pub snapshot: Option<Box<dyn Snapshot>>,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `sync` is never read
[INFO] [stdout]   --> src/common/options.rs:42:9
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub struct WriteOptions {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] 42 |     pub sync: bool,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `req` is never read
[INFO] [stdout]   --> src/common/options.rs:46:5
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub struct WriteBatch {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] 46 |     req: String,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WriteBatchIterator` is never constructed
[INFO] [stdout]   --> src/common/options.rs:49:12
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub struct WriteBatchIterator {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `put`, `delete`, `clear`, `approximate_size`, and `iter` are never used
[INFO] [stdout]   --> src/common/options.rs:55:12
[INFO] [stdout]    |
[INFO] [stdout] 54 | impl WriteBatch {
[INFO] [stdout]    | --------------- associated items in this implementation
[INFO] [stdout] 55 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 59 |     pub fn put(&mut self, key: &Slice, value: &Slice) {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 63 |     pub fn delete(&mut self, key: &Slice) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 67 |     pub fn clear(&mut self) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 71 |     pub fn approximate_size(&self) -> usize {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 75 |     pub fn iter(&self) -> WriteBatchIterator {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new_with_data` and `start_with` are never used
[INFO] [stdout]   --> src/common/slice.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 9  | impl Slice {
[INFO] [stdout]    | ---------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 14 |     pub fn new_with_data(data: &[u8]) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 32 |     pub fn start_with(&self, prefix: &Self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `cache`, `dbname`, `options`, and `env` are never read
[INFO] [stdout]  --> src/common/table_cache.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct TableCache {
[INFO] [stdout]   |            ---------- fields in this struct
[INFO] [stdout] 4 |     cache: Box<dyn Cache>,
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 5 |     dbname: String,
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout] 6 |     options: Options,
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 7 |     env: Box<dyn Env>,
[INFO] [stdout]   |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `new_iter`, `get`, `evict`, and `find_table` are never used
[INFO] [stdout]   --> src/common/table_cache.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl TableCache {
[INFO] [stdout]    | --------------- associated items in this implementation
[INFO] [stdout] 11 |     pub fn new(dbname: String, options: Options, entries: u64) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 15 |     pub fn new_iter(
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub fn get(
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 35 |     pub fn evict(&mut self, file_number: u64) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 39 |     fn find_table(&mut self, file_number: u64, file_size: u64) -> Option<Box<dyn Handle>> {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `KTypeDeletion` is never constructed
[INFO] [stdout]   --> src/db/db_format.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 19 |     enum ValueType {
[INFO] [stdout]    |          --------- variant in this enum
[INFO] [stdout] 20 |         KTypeDeletion = 0x0,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ValueType` 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: constant `K_VALUE_TYPE_FOR_SEEK` is never used
[INFO] [stdout]   --> src/db/db_format.rs:24:11
[INFO] [stdout]    |
[INFO] [stdout] 24 |     const K_VALUE_TYPE_FOR_SEEK: ValueType = ValueType::KTypeValue;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `K_MAX_SEQUENCE_NUMBER` is never used
[INFO] [stdout]   --> src/db/db_format.rs:26:11
[INFO] [stdout]    |
[INFO] [stdout] 26 |     const K_MAX_SEQUENCE_NUMBER: SequenceNumber = ((0x1u64) << 56) - 1;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `pack_sequence_and_type` is never used
[INFO] [stdout]   --> src/db/db_format.rs:28:8
[INFO] [stdout]    |
[INFO] [stdout] 28 |     fn pack_sequence_and_type(seq: SequenceNumber, t: ValueType) -> u64 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `user_key`, `sequence`, and `value_type` are never read
[INFO] [stdout]   --> src/db/db_format.rs:34:9
[INFO] [stdout]    |
[INFO] [stdout] 33 |     struct ParsedInternalKey {
[INFO] [stdout]    |            ----------------- fields in this struct
[INFO] [stdout] 34 |         user_key: Slice,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 35 |         sequence: SequenceNumber,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 36 |         value_type: ValueType,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `debug_string`, and `len` are never used
[INFO] [stdout]   --> src/db/db_format.rs:40:16
[INFO] [stdout]    |
[INFO] [stdout] 39 |     impl ParsedInternalKey {
[INFO] [stdout]    |     ---------------------- associated items in this implementation
[INFO] [stdout] 40 |         pub fn new(user_key: Slice, sequence: SequenceNumber, value_type: ValueType) -> Self {
[INFO] [stdout]    |                ^^^
[INFO] [stdout] ...
[INFO] [stdout] 48 |         pub fn debug_string(&self) -> String {
[INFO] [stdout]    |                ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 54 |         pub fn len(&self) -> usize {
[INFO] [stdout]    |                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `aoppend_internal_key` is never used
[INFO] [stdout]   --> src/db/db_format.rs:69:8
[INFO] [stdout]    |
[INFO] [stdout] 69 |     fn aoppend_internal_key(result: &mut String, key: &ParsedInternalKey) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `extract_user_key` is never used
[INFO] [stdout]   --> src/db/db_format.rs:77:12
[INFO] [stdout]    |
[INFO] [stdout] 77 |     pub fn extract_user_key(internal_key: &Slice) -> Slice {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `InternalKeyComparator` is never constructed
[INFO] [stdout]   --> src/db/db_format.rs:81:12
[INFO] [stdout]    |
[INFO] [stdout] 81 |     struct InternalKeyComparator {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/db/db_format.rs:86:16
[INFO] [stdout]    |
[INFO] [stdout] 85 |     impl InternalKeyComparator {
[INFO] [stdout]    |     -------------------------- associated function in this implementation
[INFO] [stdout] 86 |         pub fn new(user_comparator: Box<dyn Comparator>) -> Self {
[INFO] [stdout]    |                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `InternalFilterPolicy` is never constructed
[INFO] [stdout]    --> src/db/db_format.rs:121:12
[INFO] [stdout]     |
[INFO] [stdout] 121 |     struct InternalFilterPolicy {}
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `rep` is never read
[INFO] [stdout]    --> src/db/db_format.rs:142:9
[INFO] [stdout]     |
[INFO] [stdout] 141 |     struct InternalKey {
[INFO] [stdout]     |            ----------- field in this struct
[INFO] [stdout] 142 |         rep: Slice,
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `debug_string`, `decode_from`, `encode`, `user_key`, and `clear` are never used
[INFO] [stdout]    --> src/db/db_format.rs:146:16
[INFO] [stdout]     |
[INFO] [stdout] 145 |     impl InternalKey {
[INFO] [stdout]     |     ---------------- associated items in this implementation
[INFO] [stdout] 146 |         pub fn new(rep: Slice) -> Self {
[INFO] [stdout]     |                ^^^
[INFO] [stdout] ...
[INFO] [stdout] 150 |         pub fn debug_string(&self) -> String {
[INFO] [stdout]     |                ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 154 |         pub fn decode_from(&mut self, s: &Slice) {
[INFO] [stdout]     |                ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 158 |         pub fn encode(&self) -> Slice {
[INFO] [stdout]     |                ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 162 |         pub fn user_key(&self) -> Slice {
[INFO] [stdout]     |                ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 166 |         pub fn clear(&mut self) {
[INFO] [stdout]     |                ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `K_NUM_LEVELS` is never used
[INFO] [stdout]   --> src/db/db_format.rs:10:15
[INFO] [stdout]    |
[INFO] [stdout] 10 |         const K_NUM_LEVELS: usize = 7;
[INFO] [stdout]    |               ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `K_L0_COMPACTION_TRIGGER` is never used
[INFO] [stdout]   --> src/db/db_format.rs:11:15
[INFO] [stdout]    |
[INFO] [stdout] 11 |         const K_L0_COMPACTION_TRIGGER: usize = 4;
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `K_L0_SLOWDOWN_WRITES_TRIGGER` is never used
[INFO] [stdout]   --> src/db/db_format.rs:12:15
[INFO] [stdout]    |
[INFO] [stdout] 12 |         const K_L0_SLOWDOWN_WRITES_TRIGGER: usize = 8;
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `K_L0_STOP_WRITES_TRIGGER` is never used
[INFO] [stdout]   --> src/db/db_format.rs:13:15
[INFO] [stdout]    |
[INFO] [stdout] 13 |         const K_L0_STOP_WRITES_TRIGGER: usize = 12;
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `K_MAX_MEM_COMPACT_LEVEL` is never used
[INFO] [stdout]   --> src/db/db_format.rs:14:15
[INFO] [stdout]    |
[INFO] [stdout] 14 |         const K_MAX_MEM_COMPACT_LEVEL: usize = 2;
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `K_READ_BYTES_PERIOD` is never used
[INFO] [stdout]   --> src/db/db_format.rs:15:15
[INFO] [stdout]    |
[INFO] [stdout] 15 |         const K_READ_BYTES_PERIOD: usize = 1048576;
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ManualCompaction` is never constructed
[INFO] [stdout]  --> src/db/db_impl.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 |     struct ManualCompaction {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CompactionStats` is never constructed
[INFO] [stdout]   --> src/db/db_impl.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 15 |     struct CompactionStats {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> src/db/db_impl.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 21 |     pub struct DBImpl {
[INFO] [stdout]    |                ------ fields in this struct
[INFO] [stdout] 22 |         env: Box<dyn Env>,
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 23 |         internal_comparator: Box<dyn Comparator>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 24 |         options: Options,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 25 |         owns_info_log: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 26 |         owns_cache: bool,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 27 |         dbname: String,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 28 |         table_cache: TableCache,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Direction` is never used
[INFO] [stdout]  --> src/db/db_iter.rs:5:6
[INFO] [stdout]   |
[INFO] [stdout] 5 | enum Direction {
[INFO] [stdout]   |      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `db` is never read
[INFO] [stdout]   --> src/db/db_iter.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct DBIter<'a> {
[INFO] [stdout]    |            ------ field in this struct
[INFO] [stdout] 11 |     db: &'a DBImpl,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/db/db_iter.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | impl DBIter<'_> {
[INFO] [stdout]    | --------------- associated function in this implementation
[INFO] [stdout] 22 |     pub fn new(db: &DBImpl, iter: DBIter<'_>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MutexGuard` is never constructed
[INFO] [stdout]  --> src/port/mutex.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub struct MutexGuard<'a, T> {
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]  --> src/port/mutex.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | impl<'a, T> MutexGuard<'a, T> {
[INFO] [stdout]   | ----------------------------- associated function in this implementation
[INFO] [stdout] 6 |     pub fn new(guard: std::sync::MutexGuard<'a, T>) -> Self {
[INFO] [stdout]   |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Mutex` is never constructed
[INFO] [stdout]   --> src/port/mutex.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct Mutex<T> {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Mutex` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `lock` are never used
[INFO] [stdout]   --> src/port/mutex.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl<T> Mutex<T> {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout] 17 |     pub fn new(t: T) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 23 |     pub fn lock(&self) -> MutexGuard<T> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CondVar` is never constructed
[INFO] [stdout]   --> src/port/mutex.rs:28:12
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub struct CondVar {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `wait`, and `notify_one` are never used
[INFO] [stdout]   --> src/port/mutex.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 32 | impl CondVar {
[INFO] [stdout]    | ------------ associated items in this implementation
[INFO] [stdout] 33 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 39 |     pub fn wait(&self, guard: &mut MutexGuard<bool>) {}
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 40 |
[INFO] [stdout] 41 |     pub fn notify_one(&self) {}
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/util/bloom_filter.rs:12:16
[INFO] [stdout]    |
[INFO] [stdout] 11 |     impl BloomFilterPolicy {
[INFO] [stdout]    |     ---------------------- associated function in this implementation
[INFO] [stdout] 12 |         pub fn new(bits_per_key: usize) -> Self {
[INFO] [stdout]    |                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `encode_fixed32` is never used
[INFO] [stdout]  --> src/util/codec.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 |     pub fn encode_fixed32(dst: &mut [u8], value: u32) {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `encode_fixed64` is never used
[INFO] [stdout]   --> src/util/codec.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub fn encode_fixed64(dst: &mut [u8], value: u64) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `put_fixed32` is never used
[INFO] [stdout]   --> src/util/codec.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub fn put_fixed32(dst: &mut String, value: u32) {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `put_fixed64` is never used
[INFO] [stdout]   --> src/util/codec.rs:29:12
[INFO] [stdout]    |
[INFO] [stdout] 29 |     pub fn put_fixed64(dst: &mut String, value: u64) {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `decode_fixed64` is never used
[INFO] [stdout]   --> src/util/codec.rs:39:12
[INFO] [stdout]    |
[INFO] [stdout] 39 |     pub fn decode_fixed64(src: &Slice) -> u64 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `put_varint32` is never used
[INFO] [stdout]   --> src/util/codec.rs:50:12
[INFO] [stdout]    |
[INFO] [stdout] 50 |     pub fn put_varint32(dst: &mut [u8], value: u32) {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `put_varint64` is never used
[INFO] [stdout]   --> src/util/codec.rs:54:12
[INFO] [stdout]    |
[INFO] [stdout] 54 |     pub fn put_varint64(dst: &mut [u8], value: u64) {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `put_length_prefixed_slice` is never used
[INFO] [stdout]   --> src/util/codec.rs:58:12
[INFO] [stdout]    |
[INFO] [stdout] 58 |     pub fn put_length_prefixed_slice(dst: &mut [u8], value: &[u8]) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_fixed32` is never used
[INFO] [stdout]   --> src/util/codec.rs:62:12
[INFO] [stdout]    |
[INFO] [stdout] 62 |     pub fn get_fixed32(src: &Slice) -> u32 {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_varint32` is never used
[INFO] [stdout]   --> src/util/codec.rs:66:12
[INFO] [stdout]    |
[INFO] [stdout] 66 |     pub fn get_varint32(src: &Slice) -> Option<u32> {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_fixed64` is never used
[INFO] [stdout]   --> src/util/codec.rs:70:12
[INFO] [stdout]    |
[INFO] [stdout] 70 |     pub fn get_fixed64(src: &Slice) -> Option<u64> {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_length_prefixed_slice` is never used
[INFO] [stdout]   --> src/util/codec.rs:74:12
[INFO] [stdout]    |
[INFO] [stdout] 74 |     pub fn get_length_prefixed_slice(src: &Slice) -> Option<&Slice> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `K_MASK_DELTA` is never used
[INFO] [stdout]  --> src/util/crc32.rs:2:11
[INFO] [stdout]   |
[INFO] [stdout] 2 |     const K_MASK_DELTA: u32 = 0xa282ead8;
[INFO] [stdout]   |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `Extend` is never used
[INFO] [stdout]  --> src/util/crc32.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 |     pub fn Extend(data: &[u8], crc: u32) -> u32 {
[INFO] [stdout]   |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `Mask` is never used
[INFO] [stdout]  --> src/util/crc32.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 |     pub fn Mask(crc: u32) -> u32 {
[INFO] [stdout]   |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `EnvPosix` is never constructed
[INFO] [stdout]   --> src/util/env.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | struct EnvPosix {}
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/util/env.rs:16:8
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl EnvPosix {
[INFO] [stdout]    | ------------- associated function in this implementation
[INFO] [stdout] 16 |     fn new() -> EnvPosix {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `append_number_to` is never used
[INFO] [stdout]  --> src/util/logging.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn append_number_to(dest: &mut String, num: u64) {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `append_escaped_string_to` is never used
[INFO] [stdout]  --> src/util/logging.rs:7:8
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn append_escaped_string_to(dest: &mut String, src: &Slice) {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `number_to_string` is never used
[INFO] [stdout]   --> src/util/logging.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub fn number_to_string(num: u64) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `escape_string` is never used
[INFO] [stdout]   --> src/util/logging.rs:15:8
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn escape_string(src: &Slice) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `comsume_deciamal_number` is never used
[INFO] [stdout]   --> src/util/logging.rs:19:8
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub fn comsume_deciamal_number(src: &mut Slice) -> Option<u64> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Random` is never constructed
[INFO] [stdout]  --> src/util/random.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub struct Random {
[INFO] [stdout]   |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `next`, `uniform`, `one_in`, and `skew` are never used
[INFO] [stdout]   --> src/util/random.rs:6:12
[INFO] [stdout]    |
[INFO] [stdout] 5  | impl Random {
[INFO] [stdout]    | ----------- associated items in this implementation
[INFO] [stdout] 6  |     pub fn new(seed: u32) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 15 |     pub fn next(&mut self) -> u32 {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub fn uniform(&mut self, n: u32) -> u32 {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 26 |     pub fn one_in(&mut self, n: u32) -> bool {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub fn skew(&mut self) -> u32 {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `Crc32C` should have a snake case name
[INFO] [stdout]  --> src/util/crc32.rs:1:9
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub mod Crc32C {
[INFO] [stdout]   |         ^^^^^^ help: convert the identifier to snake case: `crc32_c`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `Extend` should have a snake case name
[INFO] [stdout]  --> src/util/crc32.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 |     pub fn Extend(data: &[u8], crc: u32) -> u32 {
[INFO] [stdout]   |            ^^^^^^ help: convert the identifier to snake case: `extend`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `Mask` should have a snake case name
[INFO] [stdout]  --> src/util/crc32.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 |     pub fn Mask(crc: u32) -> u32 {
[INFO] [stdout]   |            ^^^^ help: convert the identifier to snake case: `mask`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 4.79s
[INFO] running `Command { std: "docker" "inspect" "26f8caab9d5b5cf3dcc868480e0d1826dd16f010423142ad96f0c1fcb6f2472b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "26f8caab9d5b5cf3dcc868480e0d1826dd16f010423142ad96f0c1fcb6f2472b", kill_on_drop: false }`
[INFO] [stdout] 26f8caab9d5b5cf3dcc868480e0d1826dd16f010423142ad96f0c1fcb6f2472b
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2024-12-08" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 26fb7a92a281208a3bc767cad67ede8305a8d6234fb3b800e0b37dfd207df45d
[INFO] running `Command { std: "docker" "start" "-a" "26fb7a92a281208a3bc767cad67ede8305a8d6234fb3b800e0b37dfd207df45d", kill_on_drop: false }`
[INFO] [stdout] warning: unused import: `super::*`
[INFO] [stdout]   --> src/common/slice.rs:72:9
[INFO] [stdout]    |
[INFO] [stdout] 72 |     use super::*;
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Status`
[INFO] [stdout]  --> src/db/db_iter.rs:3:27
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::common::{Iter, Status};
[INFO] [stdout]   |                           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `mutex::*`
[INFO] [stdout]  --> src/port/mod.rs:3:9
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub use mutex::*;
[INFO] [stdout]   |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::*`
[INFO] [stdout]   --> src/util/random.rs:38:9
[INFO] [stdout]    |
[INFO] [stdout] 38 |     use super::*;
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `logging::*`
[INFO] [stdout]   --> src/util/mod.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub use logging::*;
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `random::*`
[INFO] [stdout]   --> src/util/mod.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use random::*;
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]   --> src/common/options.rs:59:27
[INFO] [stdout]    |
[INFO] [stdout] 59 |     pub fn put(&mut self, key: &Slice, value: &Slice) {
[INFO] [stdout]    |                           ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/common/options.rs:59:40
[INFO] [stdout]    |
[INFO] [stdout] 59 |     pub fn put(&mut self, key: &Slice, value: &Slice) {
[INFO] [stdout]    |                                        ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]   --> src/common/options.rs:63:30
[INFO] [stdout]    |
[INFO] [stdout] 63 |     pub fn delete(&mut self, key: &Slice) {
[INFO] [stdout]    |                              ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dbname`
[INFO] [stdout]   --> src/common/table_cache.rs:11:16
[INFO] [stdout]    |
[INFO] [stdout] 11 |     pub fn new(dbname: String, options: Options, entries: u64) -> Self {
[INFO] [stdout]    |                ^^^^^^ help: if this is intentional, prefix it with an underscore: `_dbname`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `options`
[INFO] [stdout]   --> src/common/table_cache.rs:11:32
[INFO] [stdout]    |
[INFO] [stdout] 11 |     pub fn new(dbname: String, options: Options, entries: u64) -> Self {
[INFO] [stdout]    |                                ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_options`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `entries`
[INFO] [stdout]   --> src/common/table_cache.rs:11:50
[INFO] [stdout]    |
[INFO] [stdout] 11 |     pub fn new(dbname: String, options: Options, entries: u64) -> Self {
[INFO] [stdout]    |                                                  ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_entries`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `options`
[INFO] [stdout]   --> src/common/table_cache.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 17 |         options: &ReadOptions,
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_options`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `file_number`
[INFO] [stdout]   --> src/common/table_cache.rs:18:9
[INFO] [stdout]    |
[INFO] [stdout] 18 |         file_number: u64,
[INFO] [stdout]    |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_file_number`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `file_size`
[INFO] [stdout]   --> src/common/table_cache.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 19 |         file_size: u64,
[INFO] [stdout]    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_file_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `options`
[INFO] [stdout]   --> src/common/table_cache.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 26 |         options: &ReadOptions,
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_options`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `file_number`
[INFO] [stdout]   --> src/common/table_cache.rs:27:9
[INFO] [stdout]    |
[INFO] [stdout] 27 |         file_number: u64,
[INFO] [stdout]    |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_file_number`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `file_size`
[INFO] [stdout]   --> src/common/table_cache.rs:28:9
[INFO] [stdout]    |
[INFO] [stdout] 28 |         file_size: u64,
[INFO] [stdout]    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_file_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]   --> src/common/table_cache.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 29 |         key: &Slice,
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `handle_value`
[INFO] [stdout]   --> src/common/table_cache.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 30 |         handle_value: &mut Box<dyn Handle>,
[INFO] [stdout]    |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_handle_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `file_number`
[INFO] [stdout]   --> src/common/table_cache.rs:35:29
[INFO] [stdout]    |
[INFO] [stdout] 35 |     pub fn evict(&mut self, file_number: u64) {
[INFO] [stdout]    |                             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_file_number`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `file_number`
[INFO] [stdout]   --> src/common/table_cache.rs:39:30
[INFO] [stdout]    |
[INFO] [stdout] 39 |     fn find_table(&mut self, file_number: u64, file_size: u64) -> Option<Box<dyn Handle>> {
[INFO] [stdout]    |                              ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_file_number`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `file_size`
[INFO] [stdout]   --> src/common/table_cache.rs:39:48
[INFO] [stdout]    |
[INFO] [stdout] 39 |     fn find_table(&mut self, file_number: u64, file_size: u64) -> Option<Box<dyn Handle>> {
[INFO] [stdout]    |                                                ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_file_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start`
[INFO] [stdout]    --> src/db/db_format.rs:112:43
[INFO] [stdout]     |
[INFO] [stdout] 112 |         fn find_shortest_separator(&self, start: &mut Slice, limit: &Slice) {
[INFO] [stdout]     |                                           ^^^^^ help: if this is intentional, prefix it with an underscore: `_start`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `limit`
[INFO] [stdout]    --> src/db/db_format.rs:112:62
[INFO] [stdout]     |
[INFO] [stdout] 112 |         fn find_shortest_separator(&self, start: &mut Slice, limit: &Slice) {
[INFO] [stdout]     |                                                              ^^^^^ help: if this is intentional, prefix it with an underscore: `_limit`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]    --> src/db/db_format.rs:116:40
[INFO] [stdout]     |
[INFO] [stdout] 116 |         fn find_short_successor(&self, key: &mut Slice) {
[INFO] [stdout]     |                                        ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `keys`
[INFO] [stdout]    --> src/db/db_format.rs:128:33
[INFO] [stdout]     |
[INFO] [stdout] 128 |         fn create_filter(&self, keys: &[Slice]) -> Slice {
[INFO] [stdout]     |                                 ^^^^ help: if this is intentional, prefix it with an underscore: `_keys`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]    --> src/db/db_format.rs:132:33
[INFO] [stdout]     |
[INFO] [stdout] 132 |         fn key_may_match(&self, key: &Slice, filter: &Slice) -> bool {
[INFO] [stdout]     |                                 ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `filter`
[INFO] [stdout]    --> src/db/db_format.rs:132:46
[INFO] [stdout]     |
[INFO] [stdout] 132 |         fn key_may_match(&self, key: &Slice, filter: &Slice) -> bool {
[INFO] [stdout]     |                                              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_filter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `options`
[INFO] [stdout]   --> src/db/db_impl.rs:32:17
[INFO] [stdout]    |
[INFO] [stdout] 32 |         fn open(options: &Options, name: &str, db: &mut Self) -> Status {
[INFO] [stdout]    |                 ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_options`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> src/db/db_impl.rs:32:36
[INFO] [stdout]    |
[INFO] [stdout] 32 |         fn open(options: &Options, name: &str, db: &mut Self) -> Status {
[INFO] [stdout]    |                                    ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `db`
[INFO] [stdout]   --> src/db/db_impl.rs:32:48
[INFO] [stdout]    |
[INFO] [stdout] 32 |         fn open(options: &Options, name: &str, db: &mut Self) -> Status {
[INFO] [stdout]    |                                                ^^ help: if this is intentional, prefix it with an underscore: `_db`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `options`
[INFO] [stdout]   --> src/db/db_impl.rs:36:27
[INFO] [stdout]    |
[INFO] [stdout] 36 |         fn put(&mut self, options: &WriteOptions, key: &Slice, value: &Slice) -> Status {
[INFO] [stdout]    |                           ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_options`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]   --> src/db/db_impl.rs:36:51
[INFO] [stdout]    |
[INFO] [stdout] 36 |         fn put(&mut self, options: &WriteOptions, key: &Slice, value: &Slice) -> Status {
[INFO] [stdout]    |                                                   ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/db/db_impl.rs:36:64
[INFO] [stdout]    |
[INFO] [stdout] 36 |         fn put(&mut self, options: &WriteOptions, key: &Slice, value: &Slice) -> Status {
[INFO] [stdout]    |                                                                ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `options`
[INFO] [stdout]   --> src/db/db_impl.rs:40:30
[INFO] [stdout]    |
[INFO] [stdout] 40 |         fn delete(&mut self, options: &WriteOptions, key: &Slice) -> Status {
[INFO] [stdout]    |                              ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_options`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]   --> src/db/db_impl.rs:40:54
[INFO] [stdout]    |
[INFO] [stdout] 40 |         fn delete(&mut self, options: &WriteOptions, key: &Slice) -> Status {
[INFO] [stdout]    |                                                      ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `options`
[INFO] [stdout]   --> src/db/db_impl.rs:44:29
[INFO] [stdout]    |
[INFO] [stdout] 44 |         fn write(&mut self, options: &WriteOptions, updates: &mut WriteBatch) -> Status {
[INFO] [stdout]    |                             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_options`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `updates`
[INFO] [stdout]   --> src/db/db_impl.rs:44:53
[INFO] [stdout]    |
[INFO] [stdout] 44 |         fn write(&mut self, options: &WriteOptions, updates: &mut WriteBatch) -> Status {
[INFO] [stdout]    |                                                     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_updates`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `options`
[INFO] [stdout]   --> src/db/db_impl.rs:48:27
[INFO] [stdout]    |
[INFO] [stdout] 48 |         fn get(&mut self, options: &ReadOptions, key: &Slice) -> Result<Slice, Status> {
[INFO] [stdout]    |                           ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_options`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]   --> src/db/db_impl.rs:48:50
[INFO] [stdout]    |
[INFO] [stdout] 48 |         fn get(&mut self, options: &ReadOptions, key: &Slice) -> Result<Slice, Status> {
[INFO] [stdout]    |                                                  ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `options`
[INFO] [stdout]   --> src/db/db_impl.rs:52:36
[INFO] [stdout]    |
[INFO] [stdout] 52 |         fn new_iterator(&mut self, options: &ReadOptions) -> Box<dyn crate::common::Iter> {
[INFO] [stdout]    |                                    ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_options`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `propname`
[INFO] [stdout]   --> src/db/db_impl.rs:60:36
[INFO] [stdout]    |
[INFO] [stdout] 60 |         fn get_property(&mut self, propname: &Slice) -> Option<String> {
[INFO] [stdout]    |                                    ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_propname`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ranges`
[INFO] [stdout]   --> src/db/db_impl.rs:64:45
[INFO] [stdout]    |
[INFO] [stdout] 64 |         fn get_approximate_sizes(&mut self, ranges: &crate::common::Range, n: i64) -> Vec<u64> {
[INFO] [stdout]    |                                             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_ranges`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]   --> src/db/db_impl.rs:64:76
[INFO] [stdout]    |
[INFO] [stdout] 64 |         fn get_approximate_sizes(&mut self, ranges: &crate::common::Range, n: i64) -> Vec<u64> {
[INFO] [stdout]    |                                                                            ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start`
[INFO] [stdout]   --> src/db/db_impl.rs:68:37
[INFO] [stdout]    |
[INFO] [stdout] 68 |         fn compact_range(&mut self, start: &Slice, end: &Slice) {
[INFO] [stdout]    |                                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_start`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `end`
[INFO] [stdout]   --> src/db/db_impl.rs:68:52
[INFO] [stdout]    |
[INFO] [stdout] 68 |         fn compact_range(&mut self, start: &Slice, end: &Slice) {
[INFO] [stdout]    |                                                    ^^^ help: if this is intentional, prefix it with an underscore: `_end`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `options`
[INFO] [stdout]   --> src/db/db_impl.rs:72:23
[INFO] [stdout]    |
[INFO] [stdout] 72 |         fn destory_db(options: &Options, name: &str) -> Status {
[INFO] [stdout]    |                       ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_options`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> src/db/db_impl.rs:72:42
[INFO] [stdout]    |
[INFO] [stdout] 72 |         fn destory_db(options: &Options, name: &str) -> Status {
[INFO] [stdout]    |                                          ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `options`
[INFO] [stdout]   --> src/db/db_impl.rs:76:22
[INFO] [stdout]    |
[INFO] [stdout] 76 |         fn repair_db(options: &Options, name: &str) -> Status {
[INFO] [stdout]    |                      ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_options`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> src/db/db_impl.rs:76:41
[INFO] [stdout]    |
[INFO] [stdout] 76 |         fn repair_db(options: &Options, name: &str) -> Status {
[INFO] [stdout]    |                                         ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `db`
[INFO] [stdout]   --> src/db/db_iter.rs:22:16
[INFO] [stdout]    |
[INFO] [stdout] 22 |     pub fn new(db: &DBImpl, iter: DBIter<'_>) -> Self {
[INFO] [stdout]    |                ^^ help: if this is intentional, prefix it with an underscore: `_db`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `iter`
[INFO] [stdout]   --> src/db/db_iter.rs:22:29
[INFO] [stdout]    |
[INFO] [stdout] 22 |     pub fn new(db: &DBImpl, iter: DBIter<'_>) -> Self {
[INFO] [stdout]    |                             ^^^^ help: if this is intentional, prefix it with an underscore: `_iter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `target`
[INFO] [stdout]   --> src/db/db_iter.rs:37:24
[INFO] [stdout]    |
[INFO] [stdout] 37 |     fn seek(&mut self, target: &crate::common::Slice) {
[INFO] [stdout]    |                        ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `guard`
[INFO] [stdout]   --> src/port/mutex.rs:39:24
[INFO] [stdout]    |
[INFO] [stdout] 39 |     pub fn wait(&self, guard: &mut MutexGuard<bool>) {}
[INFO] [stdout]    |                        ^^^^^ help: if this is intentional, prefix it with an underscore: `_guard`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dst`
[INFO] [stdout]   --> src/util/codec.rs:50:25
[INFO] [stdout]    |
[INFO] [stdout] 50 |     pub fn put_varint32(dst: &mut [u8], value: u32) {
[INFO] [stdout]    |                         ^^^ help: if this is intentional, prefix it with an underscore: `_dst`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/util/codec.rs:50:41
[INFO] [stdout]    |
[INFO] [stdout] 50 |     pub fn put_varint32(dst: &mut [u8], value: u32) {
[INFO] [stdout]    |                                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dst`
[INFO] [stdout]   --> src/util/codec.rs:54:25
[INFO] [stdout]    |
[INFO] [stdout] 54 |     pub fn put_varint64(dst: &mut [u8], value: u64) {
[INFO] [stdout]    |                         ^^^ help: if this is intentional, prefix it with an underscore: `_dst`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/util/codec.rs:54:41
[INFO] [stdout]    |
[INFO] [stdout] 54 |     pub fn put_varint64(dst: &mut [u8], value: u64) {
[INFO] [stdout]    |                                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dst`
[INFO] [stdout]   --> src/util/codec.rs:58:38
[INFO] [stdout]    |
[INFO] [stdout] 58 |     pub fn put_length_prefixed_slice(dst: &mut [u8], value: &[u8]) {
[INFO] [stdout]    |                                      ^^^ help: if this is intentional, prefix it with an underscore: `_dst`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/util/codec.rs:58:54
[INFO] [stdout]    |
[INFO] [stdout] 58 |     pub fn put_length_prefixed_slice(dst: &mut [u8], value: &[u8]) {
[INFO] [stdout]    |                                                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `src`
[INFO] [stdout]   --> src/util/codec.rs:62:24
[INFO] [stdout]    |
[INFO] [stdout] 62 |     pub fn get_fixed32(src: &Slice) -> u32 {
[INFO] [stdout]    |                        ^^^ help: if this is intentional, prefix it with an underscore: `_src`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `src`
[INFO] [stdout]   --> src/util/codec.rs:66:25
[INFO] [stdout]    |
[INFO] [stdout] 66 |     pub fn get_varint32(src: &Slice) -> Option<u32> {
[INFO] [stdout]    |                         ^^^ help: if this is intentional, prefix it with an underscore: `_src`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `src`
[INFO] [stdout]   --> src/util/codec.rs:70:24
[INFO] [stdout]    |
[INFO] [stdout] 70 |     pub fn get_fixed64(src: &Slice) -> Option<u64> {
[INFO] [stdout]    |                        ^^^ help: if this is intentional, prefix it with an underscore: `_src`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `src`
[INFO] [stdout]   --> src/util/codec.rs:74:38
[INFO] [stdout]    |
[INFO] [stdout] 74 |     pub fn get_length_prefixed_slice(src: &Slice) -> Option<&Slice> {
[INFO] [stdout]    |                                      ^^^ help: if this is intentional, prefix it with an underscore: `_src`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]  --> src/util/crc32.rs:3:19
[INFO] [stdout]   |
[INFO] [stdout] 3 |     pub fn Extend(data: &[u8], crc: u32) -> u32 {
[INFO] [stdout]   |                   ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `crc`
[INFO] [stdout]  --> src/util/crc32.rs:3:32
[INFO] [stdout]   |
[INFO] [stdout] 3 |     pub fn Extend(data: &[u8], crc: u32) -> u32 {
[INFO] [stdout]   |                                ^^^ help: if this is intentional, prefix it with an underscore: `_crc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `crc`
[INFO] [stdout]  --> src/util/crc32.rs:6:17
[INFO] [stdout]   |
[INFO] [stdout] 6 |     pub fn Mask(crc: u32) -> u32 {
[INFO] [stdout]   |                 ^^^ help: if this is intentional, prefix it with an underscore: `_crc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dest`
[INFO] [stdout]  --> src/util/logging.rs:3:25
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn append_number_to(dest: &mut String, num: u64) {
[INFO] [stdout]   |                         ^^^^ help: if this is intentional, prefix it with an underscore: `_dest`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `num`
[INFO] [stdout]  --> src/util/logging.rs:3:44
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn append_number_to(dest: &mut String, num: u64) {
[INFO] [stdout]   |                                            ^^^ help: if this is intentional, prefix it with an underscore: `_num`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dest`
[INFO] [stdout]  --> src/util/logging.rs:7:33
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn append_escaped_string_to(dest: &mut String, src: &Slice) {
[INFO] [stdout]   |                                 ^^^^ help: if this is intentional, prefix it with an underscore: `_dest`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `src`
[INFO] [stdout]  --> src/util/logging.rs:7:52
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn append_escaped_string_to(dest: &mut String, src: &Slice) {
[INFO] [stdout]   |                                                    ^^^ help: if this is intentional, prefix it with an underscore: `_src`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `num`
[INFO] [stdout]   --> src/util/logging.rs:11:25
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub fn number_to_string(num: u64) -> String {
[INFO] [stdout]    |                         ^^^ help: if this is intentional, prefix it with an underscore: `_num`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `src`
[INFO] [stdout]   --> src/util/logging.rs:15:22
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn escape_string(src: &Slice) -> String {
[INFO] [stdout]    |                      ^^^ help: if this is intentional, prefix it with an underscore: `_src`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `src`
[INFO] [stdout]   --> src/util/logging.rs:19:32
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub fn comsume_deciamal_number(src: &mut Slice) -> Option<u64> {
[INFO] [stdout]    |                                ^^^ help: if this is intentional, prefix it with an underscore: `_src`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Handle` is never used
[INFO] [stdout]   --> src/common/mod.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub trait Handle {
[INFO] [stdout]    |           ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `insert`, `lookup`, `release`, `erase`, `new_id`, and `prune` are never used
[INFO] [stdout]   --> src/common/mod.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub trait Cache {
[INFO] [stdout]    |           ----- methods in this trait
[INFO] [stdout] 21 |     fn insert(&mut self, key: &Slice, value: &Slice) -> Box<dyn Handle>;
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 22 |     fn lookup(&mut self, key: &Slice) -> Option<Box<dyn Handle>>;
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 23 |     fn release(&mut self, entry: Box<dyn Handle>);
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 24 |     fn erase(&mut self, key: &Slice);
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 25 |     fn new_id(&mut self) -> u64;
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 26 |     fn prune(&mut self);
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `name`, `create_filter`, and `key_may_match` are never used
[INFO] [stdout]   --> src/common/mod.rs:30:8
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub trait FilterPolicy {
[INFO] [stdout]    |           ------------ methods in this trait
[INFO] [stdout] 30 |     fn name(&self) -> &str;
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 31 |     fn create_filter(&self, keys: &[Slice]) -> Slice;
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 32 |     fn key_may_match(&self, key: &Slice, filter: &Slice) -> bool;
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `compare`, `name`, `find_shortest_separator`, and `find_short_successor` are never used
[INFO] [stdout]   --> src/common/mod.rs:36:8
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub trait Comparator {
[INFO] [stdout]    |           ---------- methods in this trait
[INFO] [stdout] 36 |     fn compare(&self, a: &Slice, b: &Slice) -> Ordering;
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 37 |     fn name(&self) -> &str;
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 38 |     fn find_shortest_separator(&self, start: &mut Slice, limit: &Slice);
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 39 |     fn find_short_successor(&self, key: &mut Slice);
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]   --> src/common/mod.rs:43:8
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub trait Env {
[INFO] [stdout]    |           --- methods in this trait
[INFO] [stdout] 43 |     fn new_sequential_file(&self, fname: &str, dest: &mut Box<dyn SequentialFile>) -> Status;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 44 |     fn new_random_access_file(&self, fname: &str, dest: &mut Box<dyn RandomAccessFile>) -> Status;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 45 |     fn new_writeable_file(&self, fname: &str, dest: &mut Box<dyn WritableFile>) -> Status;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 46 |     fn new_appendable_file(&self, fname: &str, dest: &mut Box<dyn WritableFile>) -> Status;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 47 |
[INFO] [stdout] 48 |     fn file_exists(&self, fname: &str) -> bool;
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 49 |     fn get_children(&self, dir: &str) -> Result<Vec<String>, Status>;
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 50 |     fn remove_file(&self, fname: &str) -> Status;
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 51 |     #[deprecated]
[INFO] [stdout] 52 |     fn delete_file(&self, fname: &str) -> Status {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 56 |     fn create_dir(&self, dirname: &str) -> Status;
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 57 |     fn remove_dir(&self, dirname: &str) -> Status;
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 58 |     #[deprecated]
[INFO] [stdout] 59 |     fn delete_dir(&self, dirname: &str) -> Status {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 62 |     fn get_file_size(&self, fname: &str) -> Result<usize, Status>;
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 63 |     fn rename_file(&self, src: &str, target: &str) -> Status;
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 64 |
[INFO] [stdout] 65 |     fn lock_file(&self, fname: &str, lock: &mut Box<dyn FileLock>) -> Status;
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 66 |     fn unlock_file(&self, lock: &mut Box<dyn FileLock>) -> Status;
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 67 |
[INFO] [stdout] 68 |     fn schedule(&self, f: Box<dyn FnOnce() + Send>) -> Status;
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 69 |     fn start_thread(&self, name: &str, f: Box<dyn FnOnce() + Send>) -> Status;
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 70 |
[INFO] [stdout] 71 |     fn get_test_directory(&self) -> String;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 72 |
[INFO] [stdout] 73 |     fn now_micros(&self) -> u64;
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 74 |     fn sleep_for_microseconds(&self, micros: u64);
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `SequentialFile` is never used
[INFO] [stdout]   --> src/common/mod.rs:77:11
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub trait SequentialFile {
[INFO] [stdout]    |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `WritableFile` is never used
[INFO] [stdout]   --> src/common/mod.rs:82:11
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub trait WritableFile {
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `RandomAccessFile` is never used
[INFO] [stdout]   --> src/common/mod.rs:89:11
[INFO] [stdout]    |
[INFO] [stdout] 89 | pub trait RandomAccessFile {
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `log` is never used
[INFO] [stdout]   --> src/common/mod.rs:94:8
[INFO] [stdout]    |
[INFO] [stdout] 93 | pub trait Logger {
[INFO] [stdout]    |           ------ method in this trait
[INFO] [stdout] 94 |     fn log(&mut self, msg: &str);
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `FileLock` is never used
[INFO] [stdout]   --> src/common/mod.rs:97:11
[INFO] [stdout]    |
[INFO] [stdout] 97 | pub trait FileLock {
[INFO] [stdout]    |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `start` and `limit` are never read
[INFO] [stdout]    --> src/common/mod.rs:102:9
[INFO] [stdout]     |
[INFO] [stdout] 101 | pub struct Range {
[INFO] [stdout]     |            ----- fields in this struct
[INFO] [stdout] 102 |     pub start: Slice,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 103 |     pub limit: Slice,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Table` is never used
[INFO] [stdout]    --> src/common/mod.rs:106:11
[INFO] [stdout]     |
[INFO] [stdout] 106 | pub trait Table {}
[INFO] [stdout]     |           ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/common/mod.rs:111:8
[INFO] [stdout]     |
[INFO] [stdout] 110 | pub trait Iter {
[INFO] [stdout]     |           ---- methods in this trait
[INFO] [stdout] 111 |     fn seek_to_first(&mut self);
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 112 |     fn seek_to_last(&mut self);
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 113 |     fn seek(&mut self, target: &Slice);
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 114 |     fn next(&mut self);
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 115 |     fn prev(&mut self);
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 116 |     fn valid(&self) -> bool;
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 117 |     fn key(&self) -> &Slice;
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 118 |     fn value(&self) -> &Slice;
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 119 |     fn status(&mut self) -> Status;
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/common/mod.rs:123:8
[INFO] [stdout]     |
[INFO] [stdout] 122 | pub trait DB {
[INFO] [stdout]     |           -- associated items in this trait
[INFO] [stdout] 123 |     fn open(options: &Options, name: &str, db: &mut Self) -> Status;
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 124 |
[INFO] [stdout] 125 |     fn put(&mut self, options: &WriteOptions, key: &Slice, value: &Slice) -> Status;
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 126 |     fn delete(&mut self, options: &WriteOptions, key: &Slice) -> Status;
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 127 |     fn write(&mut self, options: &WriteOptions, updates: &mut WriteBatch) -> Status;
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 128 |
[INFO] [stdout] 129 |     fn get(&mut self, options: &ReadOptions, key: &Slice) -> Result<Slice, Status>;
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 130 |     fn new_iterator(&mut self, options: &ReadOptions) -> Box<dyn Iter>;
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 131 |
[INFO] [stdout] 132 |     fn get_snapshot(&mut self) -> Box<dyn Snapshot>;
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 133 |
[INFO] [stdout] 134 |     fn get_property(&mut self, propname: &Slice) -> Option<String>;
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 135 |
[INFO] [stdout] 136 |     fn get_approximate_sizes(&mut self, ranges: &Range, n: i64) -> Vec<u64>;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 137 |
[INFO] [stdout] 138 |     fn compact_range(&mut self, start: &Slice, end: &Slice);
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 139 |
[INFO] [stdout] 140 |     fn destory_db(options: &Options, name: &str) -> Status;
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 141 |
[INFO] [stdout] 142 |     fn repair_db(options: &Options, name: &str) -> Status;
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Ok`, `NotFound`, `Corruption`, `NotSupported`, `InvalidArgument`, and `IOError` are never constructed
[INFO] [stdout]  --> src/common/code.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub enum Status {
[INFO] [stdout]   |          ------ variants in this enum
[INFO] [stdout] 4 |     Ok,
[INFO] [stdout]   |     ^^
[INFO] [stdout] 5 |     NotFound(Slice),
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 6 |     Corruption(Slice),
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 7 |     NotSupported(Slice),
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 8 |     InvalidArgument(Slice),
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 9 |     IOError,
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_ok`, `is_not_found`, `is_corruption`, `is_not_supported`, `is_invalid_argument`, and `is_io_error` are never used
[INFO] [stdout]   --> src/common/code.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl Status {
[INFO] [stdout]    | ----------- methods in this implementation
[INFO] [stdout] 13 |     pub fn is_ok(&self) -> bool {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 19 |     pub fn is_not_found(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 26 |     pub fn is_corruption(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub fn is_not_supported(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |     pub fn is_invalid_argument(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     pub fn is_io_error(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `CompressionType` is never used
[INFO] [stdout]  --> src/common/options.rs:3:10
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub enum CompressionType {
[INFO] [stdout]   |          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> src/common/options.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 9  | pub struct Options {
[INFO] [stdout]    |            ------- fields in this struct
[INFO] [stdout] 10 |     pub create_if_missing: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 11 |     pub error_if_exists: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 12 |     pub paranoid_checks: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 13 |     pub env: Option<Box<dyn Env>>,
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 14 |     pub comparator: Option<Box<dyn Comparator>>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 15 |     pub cache: Option<Box<dyn Cache>>,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 16 |     pub filter_policy: Option<Box<dyn FilterPolicy>>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 17 |     pub logger: Option<Box<dyn Logger>>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `verify_checksums`, `fill_cache`, and `snapshot` are never read
[INFO] [stdout]   --> src/common/options.rs:36:9
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub struct ReadOptions {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout] 36 |     pub verify_checksums: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 37 |     pub fill_cache: bool,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 38 |     pub snapshot: Option<Box<dyn Snapshot>>,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `sync` is never read
[INFO] [stdout]   --> src/common/options.rs:42:9
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub struct WriteOptions {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] 42 |     pub sync: bool,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `req` is never read
[INFO] [stdout]   --> src/common/options.rs:46:5
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub struct WriteBatch {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] 46 |     req: String,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WriteBatchIterator` is never constructed
[INFO] [stdout]   --> src/common/options.rs:49:12
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub struct WriteBatchIterator {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `put`, `delete`, `clear`, `approximate_size`, and `iter` are never used
[INFO] [stdout]   --> src/common/options.rs:55:12
[INFO] [stdout]    |
[INFO] [stdout] 54 | impl WriteBatch {
[INFO] [stdout]    | --------------- associated items in this implementation
[INFO] [stdout] 55 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 59 |     pub fn put(&mut self, key: &Slice, value: &Slice) {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 63 |     pub fn delete(&mut self, key: &Slice) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 67 |     pub fn clear(&mut self) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 71 |     pub fn approximate_size(&self) -> usize {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 75 |     pub fn iter(&self) -> WriteBatchIterator {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new_with_data` and `start_with` are never used
[INFO] [stdout]   --> src/common/slice.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 9  | impl Slice {
[INFO] [stdout]    | ---------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 14 |     pub fn new_with_data(data: &[u8]) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 32 |     pub fn start_with(&self, prefix: &Self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `cache`, `dbname`, `options`, and `env` are never read
[INFO] [stdout]  --> src/common/table_cache.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct TableCache {
[INFO] [stdout]   |            ---------- fields in this struct
[INFO] [stdout] 4 |     cache: Box<dyn Cache>,
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 5 |     dbname: String,
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout] 6 |     options: Options,
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 7 |     env: Box<dyn Env>,
[INFO] [stdout]   |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `new_iter`, `get`, `evict`, and `find_table` are never used
[INFO] [stdout]   --> src/common/table_cache.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl TableCache {
[INFO] [stdout]    | --------------- associated items in this implementation
[INFO] [stdout] 11 |     pub fn new(dbname: String, options: Options, entries: u64) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 15 |     pub fn new_iter(
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub fn get(
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 35 |     pub fn evict(&mut self, file_number: u64) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 39 |     fn find_table(&mut self, file_number: u64, file_size: u64) -> Option<Box<dyn Handle>> {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `KTypeDeletion` is never constructed
[INFO] [stdout]   --> src/db/db_format.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 19 |     enum ValueType {
[INFO] [stdout]    |          --------- variant in this enum
[INFO] [stdout] 20 |         KTypeDeletion = 0x0,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ValueType` 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: constant `K_VALUE_TYPE_FOR_SEEK` is never used
[INFO] [stdout]   --> src/db/db_format.rs:24:11
[INFO] [stdout]    |
[INFO] [stdout] 24 |     const K_VALUE_TYPE_FOR_SEEK: ValueType = ValueType::KTypeValue;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `K_MAX_SEQUENCE_NUMBER` is never used
[INFO] [stdout]   --> src/db/db_format.rs:26:11
[INFO] [stdout]    |
[INFO] [stdout] 26 |     const K_MAX_SEQUENCE_NUMBER: SequenceNumber = ((0x1u64) << 56) - 1;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `pack_sequence_and_type` is never used
[INFO] [stdout]   --> src/db/db_format.rs:28:8
[INFO] [stdout]    |
[INFO] [stdout] 28 |     fn pack_sequence_and_type(seq: SequenceNumber, t: ValueType) -> u64 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `user_key`, `sequence`, and `value_type` are never read
[INFO] [stdout]   --> src/db/db_format.rs:34:9
[INFO] [stdout]    |
[INFO] [stdout] 33 |     struct ParsedInternalKey {
[INFO] [stdout]    |            ----------------- fields in this struct
[INFO] [stdout] 34 |         user_key: Slice,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 35 |         sequence: SequenceNumber,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 36 |         value_type: ValueType,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `debug_string`, and `len` are never used
[INFO] [stdout]   --> src/db/db_format.rs:40:16
[INFO] [stdout]    |
[INFO] [stdout] 39 |     impl ParsedInternalKey {
[INFO] [stdout]    |     ---------------------- associated items in this implementation
[INFO] [stdout] 40 |         pub fn new(user_key: Slice, sequence: SequenceNumber, value_type: ValueType) -> Self {
[INFO] [stdout]    |                ^^^
[INFO] [stdout] ...
[INFO] [stdout] 48 |         pub fn debug_string(&self) -> String {
[INFO] [stdout]    |                ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 54 |         pub fn len(&self) -> usize {
[INFO] [stdout]    |                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `aoppend_internal_key` is never used
[INFO] [stdout]   --> src/db/db_format.rs:69:8
[INFO] [stdout]    |
[INFO] [stdout] 69 |     fn aoppend_internal_key(result: &mut String, key: &ParsedInternalKey) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `extract_user_key` is never used
[INFO] [stdout]   --> src/db/db_format.rs:77:12
[INFO] [stdout]    |
[INFO] [stdout] 77 |     pub fn extract_user_key(internal_key: &Slice) -> Slice {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `InternalKeyComparator` is never constructed
[INFO] [stdout]   --> src/db/db_format.rs:81:12
[INFO] [stdout]    |
[INFO] [stdout] 81 |     struct InternalKeyComparator {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/db/db_format.rs:86:16
[INFO] [stdout]    |
[INFO] [stdout] 85 |     impl InternalKeyComparator {
[INFO] [stdout]    |     -------------------------- associated function in this implementation
[INFO] [stdout] 86 |         pub fn new(user_comparator: Box<dyn Comparator>) -> Self {
[INFO] [stdout]    |                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `InternalFilterPolicy` is never constructed
[INFO] [stdout]    --> src/db/db_format.rs:121:12
[INFO] [stdout]     |
[INFO] [stdout] 121 |     struct InternalFilterPolicy {}
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `rep` is never read
[INFO] [stdout]    --> src/db/db_format.rs:142:9
[INFO] [stdout]     |
[INFO] [stdout] 141 |     struct InternalKey {
[INFO] [stdout]     |            ----------- field in this struct
[INFO] [stdout] 142 |         rep: Slice,
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `debug_string`, `decode_from`, `encode`, `user_key`, and `clear` are never used
[INFO] [stdout]    --> src/db/db_format.rs:146:16
[INFO] [stdout]     |
[INFO] [stdout] 145 |     impl InternalKey {
[INFO] [stdout]     |     ---------------- associated items in this implementation
[INFO] [stdout] 146 |         pub fn new(rep: Slice) -> Self {
[INFO] [stdout]     |                ^^^
[INFO] [stdout] ...
[INFO] [stdout] 150 |         pub fn debug_string(&self) -> String {
[INFO] [stdout]     |                ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 154 |         pub fn decode_from(&mut self, s: &Slice) {
[INFO] [stdout]     |                ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 158 |         pub fn encode(&self) -> Slice {
[INFO] [stdout]     |                ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 162 |         pub fn user_key(&self) -> Slice {
[INFO] [stdout]     |                ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 166 |         pub fn clear(&mut self) {
[INFO] [stdout]     |                ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `K_NUM_LEVELS` is never used
[INFO] [stdout]   --> src/db/db_format.rs:10:15
[INFO] [stdout]    |
[INFO] [stdout] 10 |         const K_NUM_LEVELS: usize = 7;
[INFO] [stdout]    |               ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `K_L0_COMPACTION_TRIGGER` is never used
[INFO] [stdout]   --> src/db/db_format.rs:11:15
[INFO] [stdout]    |
[INFO] [stdout] 11 |         const K_L0_COMPACTION_TRIGGER: usize = 4;
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `K_L0_SLOWDOWN_WRITES_TRIGGER` is never used
[INFO] [stdout]   --> src/db/db_format.rs:12:15
[INFO] [stdout]    |
[INFO] [stdout] 12 |         const K_L0_SLOWDOWN_WRITES_TRIGGER: usize = 8;
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `K_L0_STOP_WRITES_TRIGGER` is never used
[INFO] [stdout]   --> src/db/db_format.rs:13:15
[INFO] [stdout]    |
[INFO] [stdout] 13 |         const K_L0_STOP_WRITES_TRIGGER: usize = 12;
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `K_MAX_MEM_COMPACT_LEVEL` is never used
[INFO] [stdout]   --> src/db/db_format.rs:14:15
[INFO] [stdout]    |
[INFO] [stdout] 14 |         const K_MAX_MEM_COMPACT_LEVEL: usize = 2;
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `K_READ_BYTES_PERIOD` is never used
[INFO] [stdout]   --> src/db/db_format.rs:15:15
[INFO] [stdout]    |
[INFO] [stdout] 15 |         const K_READ_BYTES_PERIOD: usize = 1048576;
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ManualCompaction` is never constructed
[INFO] [stdout]  --> src/db/db_impl.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 |     struct ManualCompaction {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CompactionStats` is never constructed
[INFO] [stdout]   --> src/db/db_impl.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 15 |     struct CompactionStats {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> src/db/db_impl.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 21 |     pub struct DBImpl {
[INFO] [stdout]    |                ------ fields in this struct
[INFO] [stdout] 22 |         env: Box<dyn Env>,
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 23 |         internal_comparator: Box<dyn Comparator>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 24 |         options: Options,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 25 |         owns_info_log: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 26 |         owns_cache: bool,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 27 |         dbname: String,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 28 |         table_cache: TableCache,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Direction` is never used
[INFO] [stdout]  --> src/db/db_iter.rs:5:6
[INFO] [stdout]   |
[INFO] [stdout] 5 | enum Direction {
[INFO] [stdout]   |      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `db` is never read
[INFO] [stdout]   --> src/db/db_iter.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct DBIter<'a> {
[INFO] [stdout]    |            ------ field in this struct
[INFO] [stdout] 11 |     db: &'a DBImpl,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/db/db_iter.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | impl DBIter<'_> {
[INFO] [stdout]    | --------------- associated function in this implementation
[INFO] [stdout] 22 |     pub fn new(db: &DBImpl, iter: DBIter<'_>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MutexGuard` is never constructed
[INFO] [stdout]  --> src/port/mutex.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub struct MutexGuard<'a, T> {
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]  --> src/port/mutex.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | impl<'a, T> MutexGuard<'a, T> {
[INFO] [stdout]   | ----------------------------- associated function in this implementation
[INFO] [stdout] 6 |     pub fn new(guard: std::sync::MutexGuard<'a, T>) -> Self {
[INFO] [stdout]   |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Mutex` is never constructed
[INFO] [stdout]   --> src/port/mutex.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct Mutex<T> {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Mutex` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `lock` are never used
[INFO] [stdout]   --> src/port/mutex.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl<T> Mutex<T> {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout] 17 |     pub fn new(t: T) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 23 |     pub fn lock(&self) -> MutexGuard<T> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CondVar` is never constructed
[INFO] [stdout]   --> src/port/mutex.rs:28:12
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub struct CondVar {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `wait`, and `notify_one` are never used
[INFO] [stdout]   --> src/port/mutex.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 32 | impl CondVar {
[INFO] [stdout]    | ------------ associated items in this implementation
[INFO] [stdout] 33 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 39 |     pub fn wait(&self, guard: &mut MutexGuard<bool>) {}
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 40 |
[INFO] [stdout] 41 |     pub fn notify_one(&self) {}
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/util/bloom_filter.rs:12:16
[INFO] [stdout]    |
[INFO] [stdout] 11 |     impl BloomFilterPolicy {
[INFO] [stdout]    |     ---------------------- associated function in this implementation
[INFO] [stdout] 12 |         pub fn new(bits_per_key: usize) -> Self {
[INFO] [stdout]    |                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `encode_fixed32` is never used
[INFO] [stdout]  --> src/util/codec.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 |     pub fn encode_fixed32(dst: &mut [u8], value: u32) {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `encode_fixed64` is never used
[INFO] [stdout]   --> src/util/codec.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub fn encode_fixed64(dst: &mut [u8], value: u64) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `put_fixed32` is never used
[INFO] [stdout]   --> src/util/codec.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub fn put_fixed32(dst: &mut String, value: u32) {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `put_fixed64` is never used
[INFO] [stdout]   --> src/util/codec.rs:29:12
[INFO] [stdout]    |
[INFO] [stdout] 29 |     pub fn put_fixed64(dst: &mut String, value: u64) {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `decode_fixed64` is never used
[INFO] [stdout]   --> src/util/codec.rs:39:12
[INFO] [stdout]    |
[INFO] [stdout] 39 |     pub fn decode_fixed64(src: &Slice) -> u64 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `put_varint32` is never used
[INFO] [stdout]   --> src/util/codec.rs:50:12
[INFO] [stdout]    |
[INFO] [stdout] 50 |     pub fn put_varint32(dst: &mut [u8], value: u32) {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `put_varint64` is never used
[INFO] [stdout]   --> src/util/codec.rs:54:12
[INFO] [stdout]    |
[INFO] [stdout] 54 |     pub fn put_varint64(dst: &mut [u8], value: u64) {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `put_length_prefixed_slice` is never used
[INFO] [stdout]   --> src/util/codec.rs:58:12
[INFO] [stdout]    |
[INFO] [stdout] 58 |     pub fn put_length_prefixed_slice(dst: &mut [u8], value: &[u8]) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_fixed32` is never used
[INFO] [stdout]   --> src/util/codec.rs:62:12
[INFO] [stdout]    |
[INFO] [stdout] 62 |     pub fn get_fixed32(src: &Slice) -> u32 {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_varint32` is never used
[INFO] [stdout]   --> src/util/codec.rs:66:12
[INFO] [stdout]    |
[INFO] [stdout] 66 |     pub fn get_varint32(src: &Slice) -> Option<u32> {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_fixed64` is never used
[INFO] [stdout]   --> src/util/codec.rs:70:12
[INFO] [stdout]    |
[INFO] [stdout] 70 |     pub fn get_fixed64(src: &Slice) -> Option<u64> {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_length_prefixed_slice` is never used
[INFO] [stdout]   --> src/util/codec.rs:74:12
[INFO] [stdout]    |
[INFO] [stdout] 74 |     pub fn get_length_prefixed_slice(src: &Slice) -> Option<&Slice> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `K_MASK_DELTA` is never used
[INFO] [stdout]  --> src/util/crc32.rs:2:11
[INFO] [stdout]   |
[INFO] [stdout] 2 |     const K_MASK_DELTA: u32 = 0xa282ead8;
[INFO] [stdout]   |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `Extend` is never used
[INFO] [stdout]  --> src/util/crc32.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 |     pub fn Extend(data: &[u8], crc: u32) -> u32 {
[INFO] [stdout]   |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `Mask` is never used
[INFO] [stdout]  --> src/util/crc32.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 |     pub fn Mask(crc: u32) -> u32 {
[INFO] [stdout]   |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `EnvPosix` is never constructed
[INFO] [stdout]   --> src/util/env.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | struct EnvPosix {}
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/util/env.rs:16:8
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl EnvPosix {
[INFO] [stdout]    | ------------- associated function in this implementation
[INFO] [stdout] 16 |     fn new() -> EnvPosix {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `append_number_to` is never used
[INFO] [stdout]  --> src/util/logging.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn append_number_to(dest: &mut String, num: u64) {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `append_escaped_string_to` is never used
[INFO] [stdout]  --> src/util/logging.rs:7:8
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn append_escaped_string_to(dest: &mut String, src: &Slice) {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `number_to_string` is never used
[INFO] [stdout]   --> src/util/logging.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub fn number_to_string(num: u64) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `escape_string` is never used
[INFO] [stdout]   --> src/util/logging.rs:15:8
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn escape_string(src: &Slice) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `comsume_deciamal_number` is never used
[INFO] [stdout]   --> src/util/logging.rs:19:8
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub fn comsume_deciamal_number(src: &mut Slice) -> Option<u64> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Random` is never constructed
[INFO] [stdout]  --> src/util/random.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub struct Random {
[INFO] [stdout]   |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `next`, `uniform`, `one_in`, and `skew` are never used
[INFO] [stdout]   --> src/util/random.rs:6:12
[INFO] [stdout]    |
[INFO] [stdout] 5  | impl Random {
[INFO] [stdout]    | ----------- associated items in this implementation
[INFO] [stdout] 6  |     pub fn new(seed: u32) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 15 |     pub fn next(&mut self) -> u32 {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub fn uniform(&mut self, n: u32) -> u32 {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 26 |     pub fn one_in(&mut self, n: u32) -> bool {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub fn skew(&mut self) -> u32 {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `Crc32C` should have a snake case name
[INFO] [stdout]  --> src/util/crc32.rs:1:9
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub mod Crc32C {
[INFO] [stdout]   |         ^^^^^^ help: convert the identifier to snake case: `crc32_c`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `Extend` should have a snake case name
[INFO] [stdout]  --> src/util/crc32.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 |     pub fn Extend(data: &[u8], crc: u32) -> u32 {
[INFO] [stdout]   |            ^^^^^^ help: convert the identifier to snake case: `extend`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling leveldb-rs v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: function `Mask` should have a snake case name
[INFO] [stdout]  --> src/util/crc32.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 |     pub fn Mask(crc: u32) -> u32 {
[INFO] [stdout]   |            ^^^^ help: convert the identifier to snake case: `mask`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Status`
[INFO] [stdout]  --> src/db/db_iter.rs:3:27
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::common::{Iter, Status};
[INFO] [stdout]   |                           ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `mutex::*`
[INFO] [stdout]  --> src/port/mod.rs:3:9
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub use mutex::*;
[INFO] [stdout]   |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::*`
[INFO] [stdout]   --> src/util/random.rs:38:9
[INFO] [stdout]    |
[INFO] [stdout] 38 |     use super::*;
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `logging::*`
[INFO] [stdout]   --> src/util/mod.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub use logging::*;
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `random::*`
[INFO] [stdout]   --> src/util/mod.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use random::*;
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]   --> src/common/options.rs:59:27
[INFO] [stdout]    |
[INFO] [stdout] 59 |     pub fn put(&mut self, key: &Slice, value: &Slice) {
[INFO] [stdout]    |                           ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/common/options.rs:59:40
[INFO] [stdout]    |
[INFO] [stdout] 59 |     pub fn put(&mut self, key: &Slice, value: &Slice) {
[INFO] [stdout]    |                                        ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]   --> src/common/options.rs:63:30
[INFO] [stdout]    |
[INFO] [stdout] 63 |     pub fn delete(&mut self, key: &Slice) {
[INFO] [stdout]    |                              ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dbname`
[INFO] [stdout]   --> src/common/table_cache.rs:11:16
[INFO] [stdout]    |
[INFO] [stdout] 11 |     pub fn new(dbname: String, options: Options, entries: u64) -> Self {
[INFO] [stdout]    |                ^^^^^^ help: if this is intentional, prefix it with an underscore: `_dbname`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `options`
[INFO] [stdout]   --> src/common/table_cache.rs:11:32
[INFO] [stdout]    |
[INFO] [stdout] 11 |     pub fn new(dbname: String, options: Options, entries: u64) -> Self {
[INFO] [stdout]    |                                ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_options`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `entries`
[INFO] [stdout]   --> src/common/table_cache.rs:11:50
[INFO] [stdout]    |
[INFO] [stdout] 11 |     pub fn new(dbname: String, options: Options, entries: u64) -> Self {
[INFO] [stdout]    |                                                  ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_entries`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `options`
[INFO] [stdout]   --> src/common/table_cache.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 17 |         options: &ReadOptions,
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_options`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `file_number`
[INFO] [stdout]   --> src/common/table_cache.rs:18:9
[INFO] [stdout]    |
[INFO] [stdout] 18 |         file_number: u64,
[INFO] [stdout]    |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_file_number`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `file_size`
[INFO] [stdout]   --> src/common/table_cache.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 19 |         file_size: u64,
[INFO] [stdout]    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_file_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `options`
[INFO] [stdout]   --> src/common/table_cache.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 26 |         options: &ReadOptions,
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_options`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `file_number`
[INFO] [stdout]   --> src/common/table_cache.rs:27:9
[INFO] [stdout]    |
[INFO] [stdout] 27 |         file_number: u64,
[INFO] [stdout]    |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_file_number`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `file_size`
[INFO] [stdout]   --> src/common/table_cache.rs:28:9
[INFO] [stdout]    |
[INFO] [stdout] 28 |         file_size: u64,
[INFO] [stdout]    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_file_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]   --> src/common/table_cache.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 29 |         key: &Slice,
[INFO] [stdout]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `handle_value`
[INFO] [stdout]   --> src/common/table_cache.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 30 |         handle_value: &mut Box<dyn Handle>,
[INFO] [stdout]    |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_handle_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `file_number`
[INFO] [stdout]   --> src/common/table_cache.rs:35:29
[INFO] [stdout]    |
[INFO] [stdout] 35 |     pub fn evict(&mut self, file_number: u64) {
[INFO] [stdout]    |                             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_file_number`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `file_number`
[INFO] [stdout]   --> src/common/table_cache.rs:39:30
[INFO] [stdout]    |
[INFO] [stdout] 39 |     fn find_table(&mut self, file_number: u64, file_size: u64) -> Option<Box<dyn Handle>> {
[INFO] [stdout]    |                              ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_file_number`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `file_size`
[INFO] [stdout]   --> src/common/table_cache.rs:39:48
[INFO] [stdout]    |
[INFO] [stdout] 39 |     fn find_table(&mut self, file_number: u64, file_size: u64) -> Option<Box<dyn Handle>> {
[INFO] [stdout]    |                                                ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_file_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start`
[INFO] [stdout]    --> src/db/db_format.rs:112:43
[INFO] [stdout]     |
[INFO] [stdout] 112 |         fn find_shortest_separator(&self, start: &mut Slice, limit: &Slice) {
[INFO] [stdout]     |                                           ^^^^^ help: if this is intentional, prefix it with an underscore: `_start`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `limit`
[INFO] [stdout]    --> src/db/db_format.rs:112:62
[INFO] [stdout]     |
[INFO] [stdout] 112 |         fn find_shortest_separator(&self, start: &mut Slice, limit: &Slice) {
[INFO] [stdout]     |                                                              ^^^^^ help: if this is intentional, prefix it with an underscore: `_limit`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]    --> src/db/db_format.rs:116:40
[INFO] [stdout]     |
[INFO] [stdout] 116 |         fn find_short_successor(&self, key: &mut Slice) {
[INFO] [stdout]     |                                        ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `keys`
[INFO] [stdout]    --> src/db/db_format.rs:128:33
[INFO] [stdout]     |
[INFO] [stdout] 128 |         fn create_filter(&self, keys: &[Slice]) -> Slice {
[INFO] [stdout]     |                                 ^^^^ help: if this is intentional, prefix it with an underscore: `_keys`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]    --> src/db/db_format.rs:132:33
[INFO] [stdout]     |
[INFO] [stdout] 132 |         fn key_may_match(&self, key: &Slice, filter: &Slice) -> bool {
[INFO] [stdout]     |                                 ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `filter`
[INFO] [stdout]    --> src/db/db_format.rs:132:46
[INFO] [stdout]     |
[INFO] [stdout] 132 |         fn key_may_match(&self, key: &Slice, filter: &Slice) -> bool {
[INFO] [stdout]     |                                              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_filter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `options`
[INFO] [stdout]   --> src/db/db_impl.rs:32:17
[INFO] [stdout]    |
[INFO] [stdout] 32 |         fn open(options: &Options, name: &str, db: &mut Self) -> Status {
[INFO] [stdout]    |                 ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_options`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> src/db/db_impl.rs:32:36
[INFO] [stdout]    |
[INFO] [stdout] 32 |         fn open(options: &Options, name: &str, db: &mut Self) -> Status {
[INFO] [stdout]    |                                    ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `db`
[INFO] [stdout]   --> src/db/db_impl.rs:32:48
[INFO] [stdout]    |
[INFO] [stdout] 32 |         fn open(options: &Options, name: &str, db: &mut Self) -> Status {
[INFO] [stdout]    |                                                ^^ help: if this is intentional, prefix it with an underscore: `_db`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `options`
[INFO] [stdout]   --> src/db/db_impl.rs:36:27
[INFO] [stdout]    |
[INFO] [stdout] 36 |         fn put(&mut self, options: &WriteOptions, key: &Slice, value: &Slice) -> Status {
[INFO] [stdout]    |                           ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_options`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]   --> src/db/db_impl.rs:36:51
[INFO] [stdout]    |
[INFO] [stdout] 36 |         fn put(&mut self, options: &WriteOptions, key: &Slice, value: &Slice) -> Status {
[INFO] [stdout]    |                                                   ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/db/db_impl.rs:36:64
[INFO] [stdout]    |
[INFO] [stdout] 36 |         fn put(&mut self, options: &WriteOptions, key: &Slice, value: &Slice) -> Status {
[INFO] [stdout]    |                                                                ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `options`
[INFO] [stdout]   --> src/db/db_impl.rs:40:30
[INFO] [stdout]    |
[INFO] [stdout] 40 |         fn delete(&mut self, options: &WriteOptions, key: &Slice) -> Status {
[INFO] [stdout]    |                              ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_options`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]   --> src/db/db_impl.rs:40:54
[INFO] [stdout]    |
[INFO] [stdout] 40 |         fn delete(&mut self, options: &WriteOptions, key: &Slice) -> Status {
[INFO] [stdout]    |                                                      ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `options`
[INFO] [stdout]   --> src/db/db_impl.rs:44:29
[INFO] [stdout]    |
[INFO] [stdout] 44 |         fn write(&mut self, options: &WriteOptions, updates: &mut WriteBatch) -> Status {
[INFO] [stdout]    |                             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_options`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `updates`
[INFO] [stdout]   --> src/db/db_impl.rs:44:53
[INFO] [stdout]    |
[INFO] [stdout] 44 |         fn write(&mut self, options: &WriteOptions, updates: &mut WriteBatch) -> Status {
[INFO] [stdout]    |                                                     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_updates`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `options`
[INFO] [stdout]   --> src/db/db_impl.rs:48:27
[INFO] [stdout]    |
[INFO] [stdout] 48 |         fn get(&mut self, options: &ReadOptions, key: &Slice) -> Result<Slice, Status> {
[INFO] [stdout]    |                           ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_options`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]   --> src/db/db_impl.rs:48:50
[INFO] [stdout]    |
[INFO] [stdout] 48 |         fn get(&mut self, options: &ReadOptions, key: &Slice) -> Result<Slice, Status> {
[INFO] [stdout]    |                                                  ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `options`
[INFO] [stdout]   --> src/db/db_impl.rs:52:36
[INFO] [stdout]    |
[INFO] [stdout] 52 |         fn new_iterator(&mut self, options: &ReadOptions) -> Box<dyn crate::common::Iter> {
[INFO] [stdout]    |                                    ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_options`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `propname`
[INFO] [stdout]   --> src/db/db_impl.rs:60:36
[INFO] [stdout]    |
[INFO] [stdout] 60 |         fn get_property(&mut self, propname: &Slice) -> Option<String> {
[INFO] [stdout]    |                                    ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_propname`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ranges`
[INFO] [stdout]   --> src/db/db_impl.rs:64:45
[INFO] [stdout]    |
[INFO] [stdout] 64 |         fn get_approximate_sizes(&mut self, ranges: &crate::common::Range, n: i64) -> Vec<u64> {
[INFO] [stdout]    |                                             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_ranges`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]   --> src/db/db_impl.rs:64:76
[INFO] [stdout]    |
[INFO] [stdout] 64 |         fn get_approximate_sizes(&mut self, ranges: &crate::common::Range, n: i64) -> Vec<u64> {
[INFO] [stdout]    |                                                                            ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start`
[INFO] [stdout]   --> src/db/db_impl.rs:68:37
[INFO] [stdout]    |
[INFO] [stdout] 68 |         fn compact_range(&mut self, start: &Slice, end: &Slice) {
[INFO] [stdout]    |                                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_start`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `end`
[INFO] [stdout]   --> src/db/db_impl.rs:68:52
[INFO] [stdout]    |
[INFO] [stdout] 68 |         fn compact_range(&mut self, start: &Slice, end: &Slice) {
[INFO] [stdout]    |                                                    ^^^ help: if this is intentional, prefix it with an underscore: `_end`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `options`
[INFO] [stdout]   --> src/db/db_impl.rs:72:23
[INFO] [stdout]    |
[INFO] [stdout] 72 |         fn destory_db(options: &Options, name: &str) -> Status {
[INFO] [stdout]    |                       ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_options`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> src/db/db_impl.rs:72:42
[INFO] [stdout]    |
[INFO] [stdout] 72 |         fn destory_db(options: &Options, name: &str) -> Status {
[INFO] [stdout]    |                                          ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `options`
[INFO] [stdout]   --> src/db/db_impl.rs:76:22
[INFO] [stdout]    |
[INFO] [stdout] 76 |         fn repair_db(options: &Options, name: &str) -> Status {
[INFO] [stdout]    |                      ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_options`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> src/db/db_impl.rs:76:41
[INFO] [stdout]    |
[INFO] [stdout] 76 |         fn repair_db(options: &Options, name: &str) -> Status {
[INFO] [stdout]    |                                         ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `db`
[INFO] [stdout]   --> src/db/db_iter.rs:22:16
[INFO] [stdout]    |
[INFO] [stdout] 22 |     pub fn new(db: &DBImpl, iter: DBIter<'_>) -> Self {
[INFO] [stdout]    |                ^^ help: if this is intentional, prefix it with an underscore: `_db`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `iter`
[INFO] [stdout]   --> src/db/db_iter.rs:22:29
[INFO] [stdout]    |
[INFO] [stdout] 22 |     pub fn new(db: &DBImpl, iter: DBIter<'_>) -> Self {
[INFO] [stdout]    |                             ^^^^ help: if this is intentional, prefix it with an underscore: `_iter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `target`
[INFO] [stdout]   --> src/db/db_iter.rs:37:24
[INFO] [stdout]    |
[INFO] [stdout] 37 |     fn seek(&mut self, target: &crate::common::Slice) {
[INFO] [stdout]    |                        ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `guard`
[INFO] [stdout]   --> src/port/mutex.rs:39:24
[INFO] [stdout]    |
[INFO] [stdout] 39 |     pub fn wait(&self, guard: &mut MutexGuard<bool>) {}
[INFO] [stdout]    |                        ^^^^^ help: if this is intentional, prefix it with an underscore: `_guard`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dst`
[INFO] [stdout]   --> src/util/codec.rs:50:25
[INFO] [stdout]    |
[INFO] [stdout] 50 |     pub fn put_varint32(dst: &mut [u8], value: u32) {
[INFO] [stdout]    |                         ^^^ help: if this is intentional, prefix it with an underscore: `_dst`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/util/codec.rs:50:41
[INFO] [stdout]    |
[INFO] [stdout] 50 |     pub fn put_varint32(dst: &mut [u8], value: u32) {
[INFO] [stdout]    |                                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dst`
[INFO] [stdout]   --> src/util/codec.rs:54:25
[INFO] [stdout]    |
[INFO] [stdout] 54 |     pub fn put_varint64(dst: &mut [u8], value: u64) {
[INFO] [stdout]    |                         ^^^ help: if this is intentional, prefix it with an underscore: `_dst`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/util/codec.rs:54:41
[INFO] [stdout]    |
[INFO] [stdout] 54 |     pub fn put_varint64(dst: &mut [u8], value: u64) {
[INFO] [stdout]    |                                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dst`
[INFO] [stdout]   --> src/util/codec.rs:58:38
[INFO] [stdout]    |
[INFO] [stdout] 58 |     pub fn put_length_prefixed_slice(dst: &mut [u8], value: &[u8]) {
[INFO] [stdout]    |                                      ^^^ help: if this is intentional, prefix it with an underscore: `_dst`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> src/util/codec.rs:58:54
[INFO] [stdout]    |
[INFO] [stdout] 58 |     pub fn put_length_prefixed_slice(dst: &mut [u8], value: &[u8]) {
[INFO] [stdout]    |                                                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `src`
[INFO] [stdout]   --> src/util/codec.rs:62:24
[INFO] [stdout]    |
[INFO] [stdout] 62 |     pub fn get_fixed32(src: &Slice) -> u32 {
[INFO] [stdout]    |                        ^^^ help: if this is intentional, prefix it with an underscore: `_src`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `src`
[INFO] [stdout]   --> src/util/codec.rs:66:25
[INFO] [stdout]    |
[INFO] [stdout] 66 |     pub fn get_varint32(src: &Slice) -> Option<u32> {
[INFO] [stdout]    |                         ^^^ help: if this is intentional, prefix it with an underscore: `_src`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `src`
[INFO] [stdout]   --> src/util/codec.rs:70:24
[INFO] [stdout]    |
[INFO] [stdout] 70 |     pub fn get_fixed64(src: &Slice) -> Option<u64> {
[INFO] [stdout]    |                        ^^^ help: if this is intentional, prefix it with an underscore: `_src`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `src`
[INFO] [stdout]   --> src/util/codec.rs:74:38
[INFO] [stdout]    |
[INFO] [stdout] 74 |     pub fn get_length_prefixed_slice(src: &Slice) -> Option<&Slice> {
[INFO] [stdout]    |                                      ^^^ help: if this is intentional, prefix it with an underscore: `_src`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]  --> src/util/crc32.rs:3:19
[INFO] [stdout]   |
[INFO] [stdout] 3 |     pub fn Extend(data: &[u8], crc: u32) -> u32 {
[INFO] [stdout]   |                   ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `crc`
[INFO] [stdout]  --> src/util/crc32.rs:3:32
[INFO] [stdout]   |
[INFO] [stdout] 3 |     pub fn Extend(data: &[u8], crc: u32) -> u32 {
[INFO] [stdout]   |                                ^^^ help: if this is intentional, prefix it with an underscore: `_crc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `crc`
[INFO] [stdout]  --> src/util/crc32.rs:6:17
[INFO] [stdout]   |
[INFO] [stdout] 6 |     pub fn Mask(crc: u32) -> u32 {
[INFO] [stdout]   |                 ^^^ help: if this is intentional, prefix it with an underscore: `_crc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dest`
[INFO] [stdout]  --> src/util/logging.rs:3:25
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn append_number_to(dest: &mut String, num: u64) {
[INFO] [stdout]   |                         ^^^^ help: if this is intentional, prefix it with an underscore: `_dest`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `num`
[INFO] [stdout]  --> src/util/logging.rs:3:44
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn append_number_to(dest: &mut String, num: u64) {
[INFO] [stdout]   |                                            ^^^ help: if this is intentional, prefix it with an underscore: `_num`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dest`
[INFO] [stdout]  --> src/util/logging.rs:7:33
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn append_escaped_string_to(dest: &mut String, src: &Slice) {
[INFO] [stdout]   |                                 ^^^^ help: if this is intentional, prefix it with an underscore: `_dest`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `src`
[INFO] [stdout]  --> src/util/logging.rs:7:52
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn append_escaped_string_to(dest: &mut String, src: &Slice) {
[INFO] [stdout]   |                                                    ^^^ help: if this is intentional, prefix it with an underscore: `_src`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `num`
[INFO] [stdout]   --> src/util/logging.rs:11:25
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub fn number_to_string(num: u64) -> String {
[INFO] [stdout]    |                         ^^^ help: if this is intentional, prefix it with an underscore: `_num`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `src`
[INFO] [stdout]   --> src/util/logging.rs:15:22
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn escape_string(src: &Slice) -> String {
[INFO] [stdout]    |                      ^^^ help: if this is intentional, prefix it with an underscore: `_src`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `src`
[INFO] [stdout]   --> src/util/logging.rs:19:32
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub fn comsume_deciamal_number(src: &mut Slice) -> Option<u64> {
[INFO] [stdout]    |                                ^^^ help: if this is intentional, prefix it with an underscore: `_src`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Handle` is never used
[INFO] [stdout]   --> src/common/mod.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub trait Handle {
[INFO] [stdout]    |           ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `insert`, `lookup`, `release`, `erase`, `new_id`, and `prune` are never used
[INFO] [stdout]   --> src/common/mod.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub trait Cache {
[INFO] [stdout]    |           ----- methods in this trait
[INFO] [stdout] 21 |     fn insert(&mut self, key: &Slice, value: &Slice) -> Box<dyn Handle>;
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 22 |     fn lookup(&mut self, key: &Slice) -> Option<Box<dyn Handle>>;
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 23 |     fn release(&mut self, entry: Box<dyn Handle>);
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 24 |     fn erase(&mut self, key: &Slice);
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 25 |     fn new_id(&mut self) -> u64;
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 26 |     fn prune(&mut self);
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `name`, `create_filter`, and `key_may_match` are never used
[INFO] [stdout]   --> src/common/mod.rs:30:8
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub trait FilterPolicy {
[INFO] [stdout]    |           ------------ methods in this trait
[INFO] [stdout] 30 |     fn name(&self) -> &str;
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 31 |     fn create_filter(&self, keys: &[Slice]) -> Slice;
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 32 |     fn key_may_match(&self, key: &Slice, filter: &Slice) -> bool;
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `compare`, `name`, `find_shortest_separator`, and `find_short_successor` are never used
[INFO] [stdout]   --> src/common/mod.rs:36:8
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub trait Comparator {
[INFO] [stdout]    |           ---------- methods in this trait
[INFO] [stdout] 36 |     fn compare(&self, a: &Slice, b: &Slice) -> Ordering;
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 37 |     fn name(&self) -> &str;
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 38 |     fn find_shortest_separator(&self, start: &mut Slice, limit: &Slice);
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 39 |     fn find_short_successor(&self, key: &mut Slice);
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]   --> src/common/mod.rs:43:8
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub trait Env {
[INFO] [stdout]    |           --- methods in this trait
[INFO] [stdout] 43 |     fn new_sequential_file(&self, fname: &str, dest: &mut Box<dyn SequentialFile>) -> Status;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 44 |     fn new_random_access_file(&self, fname: &str, dest: &mut Box<dyn RandomAccessFile>) -> Status;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 45 |     fn new_writeable_file(&self, fname: &str, dest: &mut Box<dyn WritableFile>) -> Status;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 46 |     fn new_appendable_file(&self, fname: &str, dest: &mut Box<dyn WritableFile>) -> Status;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 47 |
[INFO] [stdout] 48 |     fn file_exists(&self, fname: &str) -> bool;
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 49 |     fn get_children(&self, dir: &str) -> Result<Vec<String>, Status>;
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 50 |     fn remove_file(&self, fname: &str) -> Status;
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 51 |     #[deprecated]
[INFO] [stdout] 52 |     fn delete_file(&self, fname: &str) -> Status {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 56 |     fn create_dir(&self, dirname: &str) -> Status;
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 57 |     fn remove_dir(&self, dirname: &str) -> Status;
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 58 |     #[deprecated]
[INFO] [stdout] 59 |     fn delete_dir(&self, dirname: &str) -> Status {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 62 |     fn get_file_size(&self, fname: &str) -> Result<usize, Status>;
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 63 |     fn rename_file(&self, src: &str, target: &str) -> Status;
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 64 |
[INFO] [stdout] 65 |     fn lock_file(&self, fname: &str, lock: &mut Box<dyn FileLock>) -> Status;
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 66 |     fn unlock_file(&self, lock: &mut Box<dyn FileLock>) -> Status;
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 67 |
[INFO] [stdout] 68 |     fn schedule(&self, f: Box<dyn FnOnce() + Send>) -> Status;
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 69 |     fn start_thread(&self, name: &str, f: Box<dyn FnOnce() + Send>) -> Status;
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 70 |
[INFO] [stdout] 71 |     fn get_test_directory(&self) -> String;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 72 |
[INFO] [stdout] 73 |     fn now_micros(&self) -> u64;
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 74 |     fn sleep_for_microseconds(&self, micros: u64);
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `SequentialFile` is never used
[INFO] [stdout]   --> src/common/mod.rs:77:11
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub trait SequentialFile {
[INFO] [stdout]    |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `WritableFile` is never used
[INFO] [stdout]   --> src/common/mod.rs:82:11
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub trait WritableFile {
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `RandomAccessFile` is never used
[INFO] [stdout]   --> src/common/mod.rs:89:11
[INFO] [stdout]    |
[INFO] [stdout] 89 | pub trait RandomAccessFile {
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `log` is never used
[INFO] [stdout]   --> src/common/mod.rs:94:8
[INFO] [stdout]    |
[INFO] [stdout] 93 | pub trait Logger {
[INFO] [stdout]    |           ------ method in this trait
[INFO] [stdout] 94 |     fn log(&mut self, msg: &str);
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `FileLock` is never used
[INFO] [stdout]   --> src/common/mod.rs:97:11
[INFO] [stdout]    |
[INFO] [stdout] 97 | pub trait FileLock {
[INFO] [stdout]    |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `start` and `limit` are never read
[INFO] [stdout]    --> src/common/mod.rs:102:9
[INFO] [stdout]     |
[INFO] [stdout] 101 | pub struct Range {
[INFO] [stdout]     |            ----- fields in this struct
[INFO] [stdout] 102 |     pub start: Slice,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 103 |     pub limit: Slice,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Table` is never used
[INFO] [stdout]    --> src/common/mod.rs:106:11
[INFO] [stdout]     |
[INFO] [stdout] 106 | pub trait Table {}
[INFO] [stdout]     |           ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/common/mod.rs:111:8
[INFO] [stdout]     |
[INFO] [stdout] 110 | pub trait Iter {
[INFO] [stdout]     |           ---- methods in this trait
[INFO] [stdout] 111 |     fn seek_to_first(&mut self);
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 112 |     fn seek_to_last(&mut self);
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 113 |     fn seek(&mut self, target: &Slice);
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 114 |     fn next(&mut self);
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 115 |     fn prev(&mut self);
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 116 |     fn valid(&self) -> bool;
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 117 |     fn key(&self) -> &Slice;
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 118 |     fn value(&self) -> &Slice;
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 119 |     fn status(&mut self) -> Status;
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/common/mod.rs:123:8
[INFO] [stdout]     |
[INFO] [stdout] 122 | pub trait DB {
[INFO] [stdout]     |           -- associated items in this trait
[INFO] [stdout] 123 |     fn open(options: &Options, name: &str, db: &mut Self) -> Status;
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 124 |
[INFO] [stdout] 125 |     fn put(&mut self, options: &WriteOptions, key: &Slice, value: &Slice) -> Status;
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 126 |     fn delete(&mut self, options: &WriteOptions, key: &Slice) -> Status;
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 127 |     fn write(&mut self, options: &WriteOptions, updates: &mut WriteBatch) -> Status;
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 128 |
[INFO] [stdout] 129 |     fn get(&mut self, options: &ReadOptions, key: &Slice) -> Result<Slice, Status>;
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 130 |     fn new_iterator(&mut self, options: &ReadOptions) -> Box<dyn Iter>;
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 131 |
[INFO] [stdout] 132 |     fn get_snapshot(&mut self) -> Box<dyn Snapshot>;
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 133 |
[INFO] [stdout] 134 |     fn get_property(&mut self, propname: &Slice) -> Option<String>;
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 135 |
[INFO] [stdout] 136 |     fn get_approximate_sizes(&mut self, ranges: &Range, n: i64) -> Vec<u64>;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 137 |
[INFO] [stdout] 138 |     fn compact_range(&mut self, start: &Slice, end: &Slice);
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 139 |
[INFO] [stdout] 140 |     fn destory_db(options: &Options, name: &str) -> Status;
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 141 |
[INFO] [stdout] 142 |     fn repair_db(options: &Options, name: &str) -> Status;
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Ok`, `NotFound`, `Corruption`, `NotSupported`, `InvalidArgument`, and `IOError` are never constructed
[INFO] [stdout]  --> src/common/code.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub enum Status {
[INFO] [stdout]   |          ------ variants in this enum
[INFO] [stdout] 4 |     Ok,
[INFO] [stdout]   |     ^^
[INFO] [stdout] 5 |     NotFound(Slice),
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 6 |     Corruption(Slice),
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 7 |     NotSupported(Slice),
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 8 |     InvalidArgument(Slice),
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 9 |     IOError,
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_ok`, `is_not_found`, `is_corruption`, `is_not_supported`, `is_invalid_argument`, and `is_io_error` are never used
[INFO] [stdout]   --> src/common/code.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl Status {
[INFO] [stdout]    | ----------- methods in this implementation
[INFO] [stdout] 13 |     pub fn is_ok(&self) -> bool {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 19 |     pub fn is_not_found(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 26 |     pub fn is_corruption(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub fn is_not_supported(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |     pub fn is_invalid_argument(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     pub fn is_io_error(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `CompressionType` is never used
[INFO] [stdout]  --> src/common/options.rs:3:10
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub enum CompressionType {
[INFO] [stdout]   |          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> src/common/options.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 9  | pub struct Options {
[INFO] [stdout]    |            ------- fields in this struct
[INFO] [stdout] 10 |     pub create_if_missing: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 11 |     pub error_if_exists: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 12 |     pub paranoid_checks: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 13 |     pub env: Option<Box<dyn Env>>,
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 14 |     pub comparator: Option<Box<dyn Comparator>>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 15 |     pub cache: Option<Box<dyn Cache>>,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 16 |     pub filter_policy: Option<Box<dyn FilterPolicy>>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 17 |     pub logger: Option<Box<dyn Logger>>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `verify_checksums`, `fill_cache`, and `snapshot` are never read
[INFO] [stdout]   --> src/common/options.rs:36:9
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub struct ReadOptions {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout] 36 |     pub verify_checksums: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 37 |     pub fill_cache: bool,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 38 |     pub snapshot: Option<Box<dyn Snapshot>>,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `sync` is never read
[INFO] [stdout]   --> src/common/options.rs:42:9
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub struct WriteOptions {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] 42 |     pub sync: bool,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `req` is never read
[INFO] [stdout]   --> src/common/options.rs:46:5
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub struct WriteBatch {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] 46 |     req: String,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WriteBatchIterator` is never constructed
[INFO] [stdout]   --> src/common/options.rs:49:12
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub struct WriteBatchIterator {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `put`, `delete`, `clear`, `approximate_size`, and `iter` are never used
[INFO] [stdout]   --> src/common/options.rs:55:12
[INFO] [stdout]    |
[INFO] [stdout] 54 | impl WriteBatch {
[INFO] [stdout]    | --------------- associated items in this implementation
[INFO] [stdout] 55 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 59 |     pub fn put(&mut self, key: &Slice, value: &Slice) {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 63 |     pub fn delete(&mut self, key: &Slice) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 67 |     pub fn clear(&mut self) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 71 |     pub fn approximate_size(&self) -> usize {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 75 |     pub fn iter(&self) -> WriteBatchIterator {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new_with_data` and `start_with` are never used
[INFO] [stdout]   --> src/common/slice.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 9  | impl Slice {
[INFO] [stdout]    | ---------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 14 |     pub fn new_with_data(data: &[u8]) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 32 |     pub fn start_with(&self, prefix: &Self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `cache`, `dbname`, `options`, and `env` are never read
[INFO] [stdout]  --> src/common/table_cache.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct TableCache {
[INFO] [stdout]   |            ---------- fields in this struct
[INFO] [stdout] 4 |     cache: Box<dyn Cache>,
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 5 |     dbname: String,
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout] 6 |     options: Options,
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 7 |     env: Box<dyn Env>,
[INFO] [stdout]   |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `new_iter`, `get`, `evict`, and `find_table` are never used
[INFO] [stdout]   --> src/common/table_cache.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl TableCache {
[INFO] [stdout]    | --------------- associated items in this implementation
[INFO] [stdout] 11 |     pub fn new(dbname: String, options: Options, entries: u64) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 15 |     pub fn new_iter(
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub fn get(
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 35 |     pub fn evict(&mut self, file_number: u64) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 39 |     fn find_table(&mut self, file_number: u64, file_size: u64) -> Option<Box<dyn Handle>> {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `KTypeDeletion` is never constructed
[INFO] [stdout]   --> src/db/db_format.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 19 |     enum ValueType {
[INFO] [stdout]    |          --------- variant in this enum
[INFO] [stdout] 20 |         KTypeDeletion = 0x0,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ValueType` 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: constant `K_VALUE_TYPE_FOR_SEEK` is never used
[INFO] [stdout]   --> src/db/db_format.rs:24:11
[INFO] [stdout]    |
[INFO] [stdout] 24 |     const K_VALUE_TYPE_FOR_SEEK: ValueType = ValueType::KTypeValue;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `K_MAX_SEQUENCE_NUMBER` is never used
[INFO] [stdout]   --> src/db/db_format.rs:26:11
[INFO] [stdout]    |
[INFO] [stdout] 26 |     const K_MAX_SEQUENCE_NUMBER: SequenceNumber = ((0x1u64) << 56) - 1;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `pack_sequence_and_type` is never used
[INFO] [stdout]   --> src/db/db_format.rs:28:8
[INFO] [stdout]    |
[INFO] [stdout] 28 |     fn pack_sequence_and_type(seq: SequenceNumber, t: ValueType) -> u64 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `user_key`, `sequence`, and `value_type` are never read
[INFO] [stdout]   --> src/db/db_format.rs:34:9
[INFO] [stdout]    |
[INFO] [stdout] 33 |     struct ParsedInternalKey {
[INFO] [stdout]    |            ----------------- fields in this struct
[INFO] [stdout] 34 |         user_key: Slice,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 35 |         sequence: SequenceNumber,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 36 |         value_type: ValueType,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `debug_string`, and `len` are never used
[INFO] [stdout]   --> src/db/db_format.rs:40:16
[INFO] [stdout]    |
[INFO] [stdout] 39 |     impl ParsedInternalKey {
[INFO] [stdout]    |     ---------------------- associated items in this implementation
[INFO] [stdout] 40 |         pub fn new(user_key: Slice, sequence: SequenceNumber, value_type: ValueType) -> Self {
[INFO] [stdout]    |                ^^^
[INFO] [stdout] ...
[INFO] [stdout] 48 |         pub fn debug_string(&self) -> String {
[INFO] [stdout]    |                ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 54 |         pub fn len(&self) -> usize {
[INFO] [stdout]    |                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `aoppend_internal_key` is never used
[INFO] [stdout]   --> src/db/db_format.rs:69:8
[INFO] [stdout]    |
[INFO] [stdout] 69 |     fn aoppend_internal_key(result: &mut String, key: &ParsedInternalKey) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `extract_user_key` is never used
[INFO] [stdout]   --> src/db/db_format.rs:77:12
[INFO] [stdout]    |
[INFO] [stdout] 77 |     pub fn extract_user_key(internal_key: &Slice) -> Slice {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `InternalKeyComparator` is never constructed
[INFO] [stdout]   --> src/db/db_format.rs:81:12
[INFO] [stdout]    |
[INFO] [stdout] 81 |     struct InternalKeyComparator {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/db/db_format.rs:86:16
[INFO] [stdout]    |
[INFO] [stdout] 85 |     impl InternalKeyComparator {
[INFO] [stdout]    |     -------------------------- associated function in this implementation
[INFO] [stdout] 86 |         pub fn new(user_comparator: Box<dyn Comparator>) -> Self {
[INFO] [stdout]    |                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `InternalFilterPolicy` is never constructed
[INFO] [stdout]    --> src/db/db_format.rs:121:12
[INFO] [stdout]     |
[INFO] [stdout] 121 |     struct InternalFilterPolicy {}
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `rep` is never read
[INFO] [stdout]    --> src/db/db_format.rs:142:9
[INFO] [stdout]     |
[INFO] [stdout] 141 |     struct InternalKey {
[INFO] [stdout]     |            ----------- field in this struct
[INFO] [stdout] 142 |         rep: Slice,
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `debug_string`, `decode_from`, `encode`, `user_key`, and `clear` are never used
[INFO] [stdout]    --> src/db/db_format.rs:146:16
[INFO] [stdout]     |
[INFO] [stdout] 145 |     impl InternalKey {
[INFO] [stdout]     |     ---------------- associated items in this implementation
[INFO] [stdout] 146 |         pub fn new(rep: Slice) -> Self {
[INFO] [stdout]     |                ^^^
[INFO] [stdout] ...
[INFO] [stdout] 150 |         pub fn debug_string(&self) -> String {
[INFO] [stdout]     |                ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 154 |         pub fn decode_from(&mut self, s: &Slice) {
[INFO] [stdout]     |                ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 158 |         pub fn encode(&self) -> Slice {
[INFO] [stdout]     |                ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 162 |         pub fn user_key(&self) -> Slice {
[INFO] [stdout]     |                ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 166 |         pub fn clear(&mut self) {
[INFO] [stdout]     |                ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `K_NUM_LEVELS` is never used
[INFO] [stdout]   --> src/db/db_format.rs:10:15
[INFO] [stdout]    |
[INFO] [stdout] 10 |         const K_NUM_LEVELS: usize = 7;
[INFO] [stdout]    |               ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `K_L0_COMPACTION_TRIGGER` is never used
[INFO] [stdout]   --> src/db/db_format.rs:11:15
[INFO] [stdout]    |
[INFO] [stdout] 11 |         const K_L0_COMPACTION_TRIGGER: usize = 4;
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `K_L0_SLOWDOWN_WRITES_TRIGGER` is never used
[INFO] [stdout]   --> src/db/db_format.rs:12:15
[INFO] [stdout]    |
[INFO] [stdout] 12 |         const K_L0_SLOWDOWN_WRITES_TRIGGER: usize = 8;
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `K_L0_STOP_WRITES_TRIGGER` is never used
[INFO] [stdout]   --> src/db/db_format.rs:13:15
[INFO] [stdout]    |
[INFO] [stdout] 13 |         const K_L0_STOP_WRITES_TRIGGER: usize = 12;
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `K_MAX_MEM_COMPACT_LEVEL` is never used
[INFO] [stdout]   --> src/db/db_format.rs:14:15
[INFO] [stdout]    |
[INFO] [stdout] 14 |         const K_MAX_MEM_COMPACT_LEVEL: usize = 2;
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `K_READ_BYTES_PERIOD` is never used
[INFO] [stdout]   --> src/db/db_format.rs:15:15
[INFO] [stdout]    |
[INFO] [stdout] 15 |         const K_READ_BYTES_PERIOD: usize = 1048576;
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ManualCompaction` is never constructed
[INFO] [stdout]  --> src/db/db_impl.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 |     struct ManualCompaction {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CompactionStats` is never constructed
[INFO] [stdout]   --> src/db/db_impl.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 15 |     struct CompactionStats {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> src/db/db_impl.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 21 |     pub struct DBImpl {
[INFO] [stdout]    |                ------ fields in this struct
[INFO] [stdout] 22 |         env: Box<dyn Env>,
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 23 |         internal_comparator: Box<dyn Comparator>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 24 |         options: Options,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 25 |         owns_info_log: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 26 |         owns_cache: bool,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 27 |         dbname: String,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 28 |         table_cache: TableCache,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Direction` is never used
[INFO] [stdout]  --> src/db/db_iter.rs:5:6
[INFO] [stdout]   |
[INFO] [stdout] 5 | enum Direction {
[INFO] [stdout]   |      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `db` is never read
[INFO] [stdout]   --> src/db/db_iter.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct DBIter<'a> {
[INFO] [stdout]    |            ------ field in this struct
[INFO] [stdout] 11 |     db: &'a DBImpl,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/db/db_iter.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | impl DBIter<'_> {
[INFO] [stdout]    | --------------- associated function in this implementation
[INFO] [stdout] 22 |     pub fn new(db: &DBImpl, iter: DBIter<'_>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MutexGuard` is never constructed
[INFO] [stdout]  --> src/port/mutex.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub struct MutexGuard<'a, T> {
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]  --> src/port/mutex.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | impl<'a, T> MutexGuard<'a, T> {
[INFO] [stdout]   | ----------------------------- associated function in this implementation
[INFO] [stdout] 6 |     pub fn new(guard: std::sync::MutexGuard<'a, T>) -> Self {
[INFO] [stdout]   |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Mutex` is never constructed
[INFO] [stdout]   --> src/port/mutex.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct Mutex<T> {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Mutex` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `lock` are never used
[INFO] [stdout]   --> src/port/mutex.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl<T> Mutex<T> {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout] 17 |     pub fn new(t: T) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 23 |     pub fn lock(&self) -> MutexGuard<T> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CondVar` is never constructed
[INFO] [stdout]   --> src/port/mutex.rs:28:12
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub struct CondVar {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `wait`, and `notify_one` are never used
[INFO] [stdout]   --> src/port/mutex.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 32 | impl CondVar {
[INFO] [stdout]    | ------------ associated items in this implementation
[INFO] [stdout] 33 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 39 |     pub fn wait(&self, guard: &mut MutexGuard<bool>) {}
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 40 |
[INFO] [stdout] 41 |     pub fn notify_one(&self) {}
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/util/bloom_filter.rs:12:16
[INFO] [stdout]    |
[INFO] [stdout] 11 |     impl BloomFilterPolicy {
[INFO] [stdout]    |     ---------------------- associated function in this implementation
[INFO] [stdout] 12 |         pub fn new(bits_per_key: usize) -> Self {
[INFO] [stdout]    |                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `encode_fixed32` is never used
[INFO] [stdout]  --> src/util/codec.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 |     pub fn encode_fixed32(dst: &mut [u8], value: u32) {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `encode_fixed64` is never used
[INFO] [stdout]   --> src/util/codec.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub fn encode_fixed64(dst: &mut [u8], value: u64) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `put_fixed32` is never used
[INFO] [stdout]   --> src/util/codec.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub fn put_fixed32(dst: &mut String, value: u32) {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `put_fixed64` is never used
[INFO] [stdout]   --> src/util/codec.rs:29:12
[INFO] [stdout]    |
[INFO] [stdout] 29 |     pub fn put_fixed64(dst: &mut String, value: u64) {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `decode_fixed64` is never used
[INFO] [stdout]   --> src/util/codec.rs:39:12
[INFO] [stdout]    |
[INFO] [stdout] 39 |     pub fn decode_fixed64(src: &Slice) -> u64 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `put_varint32` is never used
[INFO] [stdout]   --> src/util/codec.rs:50:12
[INFO] [stdout]    |
[INFO] [stdout] 50 |     pub fn put_varint32(dst: &mut [u8], value: u32) {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `put_varint64` is never used
[INFO] [stdout]   --> src/util/codec.rs:54:12
[INFO] [stdout]    |
[INFO] [stdout] 54 |     pub fn put_varint64(dst: &mut [u8], value: u64) {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `put_length_prefixed_slice` is never used
[INFO] [stdout]   --> src/util/codec.rs:58:12
[INFO] [stdout]    |
[INFO] [stdout] 58 |     pub fn put_length_prefixed_slice(dst: &mut [u8], value: &[u8]) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_fixed32` is never used
[INFO] [stdout]   --> src/util/codec.rs:62:12
[INFO] [stdout]    |
[INFO] [stdout] 62 |     pub fn get_fixed32(src: &Slice) -> u32 {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_varint32` is never used
[INFO] [stdout]   --> src/util/codec.rs:66:12
[INFO] [stdout]    |
[INFO] [stdout] 66 |     pub fn get_varint32(src: &Slice) -> Option<u32> {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_fixed64` is never used
[INFO] [stdout]   --> src/util/codec.rs:70:12
[INFO] [stdout]    |
[INFO] [stdout] 70 |     pub fn get_fixed64(src: &Slice) -> Option<u64> {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_length_prefixed_slice` is never used
[INFO] [stdout]   --> src/util/codec.rs:74:12
[INFO] [stdout]    |
[INFO] [stdout] 74 |     pub fn get_length_prefixed_slice(src: &Slice) -> Option<&Slice> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `K_MASK_DELTA` is never used
[INFO] [stdout]  --> src/util/crc32.rs:2:11
[INFO] [stdout]   |
[INFO] [stdout] 2 |     const K_MASK_DELTA: u32 = 0xa282ead8;
[INFO] [stdout]   |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `Extend` is never used
[INFO] [stdout]  --> src/util/crc32.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 |     pub fn Extend(data: &[u8], crc: u32) -> u32 {
[INFO] [stdout]   |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `Mask` is never used
[INFO] [stdout]  --> src/util/crc32.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 |     pub fn Mask(crc: u32) -> u32 {
[INFO] [stdout]   |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `EnvPosix` is never constructed
[INFO] [stdout]   --> src/util/env.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | struct EnvPosix {}
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/util/env.rs:16:8
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl EnvPosix {
[INFO] [stdout]    | ------------- associated function in this implementation
[INFO] [stdout] 16 |     fn new() -> EnvPosix {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `append_number_to` is never used
[INFO] [stdout]  --> src/util/logging.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn append_number_to(dest: &mut String, num: u64) {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `append_escaped_string_to` is never used
[INFO] [stdout]  --> src/util/logging.rs:7:8
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn append_escaped_string_to(dest: &mut String, src: &Slice) {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `number_to_string` is never used
[INFO] [stdout]   --> src/util/logging.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub fn number_to_string(num: u64) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `escape_string` is never used
[INFO] [stdout]   --> src/util/logging.rs:15:8
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn escape_string(src: &Slice) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `comsume_deciamal_number` is never used
[INFO] [stdout]   --> src/util/logging.rs:19:8
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub fn comsume_deciamal_number(src: &mut Slice) -> Option<u64> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Random` is never constructed
[INFO] [stdout]  --> src/util/random.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub struct Random {
[INFO] [stdout]   |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `next`, `uniform`, `one_in`, and `skew` are never used
[INFO] [stdout]   --> src/util/random.rs:6:12
[INFO] [stdout]    |
[INFO] [stdout] 5  | impl Random {
[INFO] [stdout]    | ----------- associated items in this implementation
[INFO] [stdout] 6  |     pub fn new(seed: u32) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 15 |     pub fn next(&mut self) -> u32 {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub fn uniform(&mut self, n: u32) -> u32 {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 26 |     pub fn one_in(&mut self, n: u32) -> bool {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub fn skew(&mut self) -> u32 {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `Crc32C` should have a snake case name
[INFO] [stdout]  --> src/util/crc32.rs:1:9
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub mod Crc32C {
[INFO] [stdout]   |         ^^^^^^ help: convert the identifier to snake case: `crc32_c`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `Extend` should have a snake case name
[INFO] [stdout]  --> src/util/crc32.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 |     pub fn Extend(data: &[u8], crc: u32) -> u32 {
[INFO] [stdout]   |            ^^^^^^ help: convert the identifier to snake case: `extend`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `Mask` should have a snake case name
[INFO] [stdout]  --> src/util/crc32.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 |     pub fn Mask(crc: u32) -> u32 {
[INFO] [stdout]   |            ^^^^ help: convert the identifier to snake case: `mask`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.62s
[INFO] running `Command { std: "docker" "inspect" "26fb7a92a281208a3bc767cad67ede8305a8d6234fb3b800e0b37dfd207df45d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "26fb7a92a281208a3bc767cad67ede8305a8d6234fb3b800e0b37dfd207df45d", kill_on_drop: false }`
[INFO] [stdout] 26fb7a92a281208a3bc767cad67ede8305a8d6234fb3b800e0b37dfd207df45d
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2024-12-08" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] fec643331184eb7020fa577a8fdde7c33b80a25a51a1528f5beb05e36d2173e7
[INFO] running `Command { std: "docker" "start" "-a" "fec643331184eb7020fa577a8fdde7c33b80a25a51a1528f5beb05e36d2173e7", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `super::*`
[INFO] [stderr]   --> src/common/slice.rs:72:9
[INFO] [stderr]    |
[INFO] [stderr] 72 |     use super::*;
[INFO] [stderr]    |         ^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Status`
[INFO] [stderr]  --> src/db/db_iter.rs:3:27
[INFO] [stderr]   |
[INFO] [stderr] 3 | use crate::common::{Iter, Status};
[INFO] [stderr]   |                           ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `mutex::*`
[INFO] [stderr]  --> src/port/mod.rs:3:9
[INFO] [stderr]   |
[INFO] [stderr] 3 | pub use mutex::*;
[INFO] [stderr]   |         ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `super::*`
[INFO] [stderr]   --> src/util/random.rs:38:9
[INFO] [stderr]    |
[INFO] [stderr] 38 |     use super::*;
[INFO] [stderr]    |         ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `logging::*`
[INFO] [stderr]   --> src/util/mod.rs:10:9
[INFO] [stderr]    |
[INFO] [stderr] 10 | pub use logging::*;
[INFO] [stderr]    |         ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `random::*`
[INFO] [stderr]   --> src/util/mod.rs:11:9
[INFO] [stderr]    |
[INFO] [stderr] 11 | pub use random::*;
[INFO] [stderr]    |         ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `key`
[INFO] [stderr]   --> src/common/options.rs:59:27
[INFO] [stderr]    |
[INFO] [stderr] 59 |     pub fn put(&mut self, key: &Slice, value: &Slice) {
[INFO] [stderr]    |                           ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `value`
[INFO] [stderr]   --> src/common/options.rs:59:40
[INFO] [stderr]    |
[INFO] [stderr] 59 |     pub fn put(&mut self, key: &Slice, value: &Slice) {
[INFO] [stderr]    |                                        ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `key`
[INFO] [stderr]   --> src/common/options.rs:63:30
[INFO] [stderr]    |
[INFO] [stderr] 63 |     pub fn delete(&mut self, key: &Slice) {
[INFO] [stderr]    |                              ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `dbname`
[INFO] [stderr]   --> src/common/table_cache.rs:11:16
[INFO] [stderr]    |
[INFO] [stderr] 11 |     pub fn new(dbname: String, options: Options, entries: u64) -> Self {
[INFO] [stderr]    |                ^^^^^^ help: if this is intentional, prefix it with an underscore: `_dbname`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `options`
[INFO] [stderr]   --> src/common/table_cache.rs:11:32
[INFO] [stderr]    |
[INFO] [stderr] 11 |     pub fn new(dbname: String, options: Options, entries: u64) -> Self {
[INFO] [stderr]    |                                ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_options`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `entries`
[INFO] [stderr]   --> src/common/table_cache.rs:11:50
[INFO] [stderr]    |
[INFO] [stderr] 11 |     pub fn new(dbname: String, options: Options, entries: u64) -> Self {
[INFO] [stderr]    |                                                  ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_entries`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `options`
[INFO] [stderr]   --> src/common/table_cache.rs:17:9
[INFO] [stderr]    |
[INFO] [stderr] 17 |         options: &ReadOptions,
[INFO] [stderr]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_options`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `file_number`
[INFO] [stderr]   --> src/common/table_cache.rs:18:9
[INFO] [stderr]    |
[INFO] [stderr] 18 |         file_number: u64,
[INFO] [stderr]    |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_file_number`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `file_size`
[INFO] [stderr]   --> src/common/table_cache.rs:19:9
[INFO] [stderr]    |
[INFO] [stderr] 19 |         file_size: u64,
[INFO] [stderr]    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_file_size`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `options`
[INFO] [stderr]   --> src/common/table_cache.rs:26:9
[INFO] [stderr]    |
[INFO] [stderr] 26 |         options: &ReadOptions,
[INFO] [stderr]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_options`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `file_number`
[INFO] [stderr]   --> src/common/table_cache.rs:27:9
[INFO] [stderr]    |
[INFO] [stderr] 27 |         file_number: u64,
[INFO] [stderr]    |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_file_number`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `file_size`
[INFO] [stderr]   --> src/common/table_cache.rs:28:9
[INFO] [stderr]    |
[INFO] [stderr] 28 |         file_size: u64,
[INFO] [stderr]    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_file_size`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `key`
[INFO] [stderr]   --> src/common/table_cache.rs:29:9
[INFO] [stderr]    |
[INFO] [stderr] 29 |         key: &Slice,
[INFO] [stderr]    |         ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `handle_value`
[INFO] [stderr]   --> src/common/table_cache.rs:30:9
[INFO] [stderr]    |
[INFO] [stderr] 30 |         handle_value: &mut Box<dyn Handle>,
[INFO] [stderr]    |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_handle_value`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `file_number`
[INFO] [stderr]   --> src/common/table_cache.rs:35:29
[INFO] [stderr]    |
[INFO] [stderr] 35 |     pub fn evict(&mut self, file_number: u64) {
[INFO] [stderr]    |                             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_file_number`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `file_number`
[INFO] [stderr]   --> src/common/table_cache.rs:39:30
[INFO] [stderr]    |
[INFO] [stderr] 39 |     fn find_table(&mut self, file_number: u64, file_size: u64) -> Option<Box<dyn Handle>> {
[INFO] [stderr]    |                              ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_file_number`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `file_size`
[INFO] [stderr]   --> src/common/table_cache.rs:39:48
[INFO] [stderr]    |
[INFO] [stderr] 39 |     fn find_table(&mut self, file_number: u64, file_size: u64) -> Option<Box<dyn Handle>> {
[INFO] [stderr]    |                                                ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_file_size`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `start`
[INFO] [stderr]    --> src/db/db_format.rs:112:43
[INFO] [stderr]     |
[INFO] [stderr] 112 |         fn find_shortest_separator(&self, start: &mut Slice, limit: &Slice) {
[INFO] [stderr]     |                                           ^^^^^ help: if this is intentional, prefix it with an underscore: `_start`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `limit`
[INFO] [stderr]    --> src/db/db_format.rs:112:62
[INFO] [stderr]     |
[INFO] [stderr] 112 |         fn find_shortest_separator(&self, start: &mut Slice, limit: &Slice) {
[INFO] [stderr]     |                                                              ^^^^^ help: if this is intentional, prefix it with an underscore: `_limit`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `key`
[INFO] [stderr]    --> src/db/db_format.rs:116:40
[INFO] [stderr]     |
[INFO] [stderr] 116 |         fn find_short_successor(&self, key: &mut Slice) {
[INFO] [stderr]     |                                        ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `keys`
[INFO] [stderr]    --> src/db/db_format.rs:128:33
[INFO] [stderr]     |
[INFO] [stderr] 128 |         fn create_filter(&self, keys: &[Slice]) -> Slice {
[INFO] [stderr]     |                                 ^^^^ help: if this is intentional, prefix it with an underscore: `_keys`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `key`
[INFO] [stderr]    --> src/db/db_format.rs:132:33
[INFO] [stderr]     |
[INFO] [stderr] 132 |         fn key_may_match(&self, key: &Slice, filter: &Slice) -> bool {
[INFO] [stderr]     |                                 ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `filter`
[INFO] [stderr]    --> src/db/db_format.rs:132:46
[INFO] [stderr]     |
[INFO] [stderr] 132 |         fn key_may_match(&self, key: &Slice, filter: &Slice) -> bool {
[INFO] [stderr]     |                                              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_filter`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `options`
[INFO] [stderr]   --> src/db/db_impl.rs:32:17
[INFO] [stderr]    |
[INFO] [stderr] 32 |         fn open(options: &Options, name: &str, db: &mut Self) -> Status {
[INFO] [stderr]    |                 ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_options`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `name`
[INFO] [stderr]   --> src/db/db_impl.rs:32:36
[INFO] [stderr]    |
[INFO] [stderr] 32 |         fn open(options: &Options, name: &str, db: &mut Self) -> Status {
[INFO] [stderr]    |                                    ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `db`
[INFO] [stderr]   --> src/db/db_impl.rs:32:48
[INFO] [stderr]    |
[INFO] [stderr] 32 |         fn open(options: &Options, name: &str, db: &mut Self) -> Status {
[INFO] [stderr]    |                                                ^^ help: if this is intentional, prefix it with an underscore: `_db`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `options`
[INFO] [stderr]   --> src/db/db_impl.rs:36:27
[INFO] [stderr]    |
[INFO] [stderr] 36 |         fn put(&mut self, options: &WriteOptions, key: &Slice, value: &Slice) -> Status {
[INFO] [stderr]    |                           ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_options`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `key`
[INFO] [stderr]   --> src/db/db_impl.rs:36:51
[INFO] [stderr]    |
[INFO] [stderr] 36 |         fn put(&mut self, options: &WriteOptions, key: &Slice, value: &Slice) -> Status {
[INFO] [stderr]    |                                                   ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `value`
[INFO] [stderr]   --> src/db/db_impl.rs:36:64
[INFO] [stderr]    |
[INFO] [stderr] 36 |         fn put(&mut self, options: &WriteOptions, key: &Slice, value: &Slice) -> Status {
[INFO] [stderr]    |                                                                ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `options`
[INFO] [stderr]   --> src/db/db_impl.rs:40:30
[INFO] [stderr]    |
[INFO] [stderr] 40 |         fn delete(&mut self, options: &WriteOptions, key: &Slice) -> Status {
[INFO] [stderr]    |                              ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_options`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `key`
[INFO] [stderr]   --> src/db/db_impl.rs:40:54
[INFO] [stderr]    |
[INFO] [stderr] 40 |         fn delete(&mut self, options: &WriteOptions, key: &Slice) -> Status {
[INFO] [stderr]    |                                                      ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `options`
[INFO] [stderr]   --> src/db/db_impl.rs:44:29
[INFO] [stderr]    |
[INFO] [stderr] 44 |         fn write(&mut self, options: &WriteOptions, updates: &mut WriteBatch) -> Status {
[INFO] [stderr]    |                             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_options`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `updates`
[INFO] [stderr]   --> src/db/db_impl.rs:44:53
[INFO] [stderr]    |
[INFO] [stderr] 44 |         fn write(&mut self, options: &WriteOptions, updates: &mut WriteBatch) -> Status {
[INFO] [stderr]    |                                                     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_updates`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `options`
[INFO] [stderr]   --> src/db/db_impl.rs:48:27
[INFO] [stderr]    |
[INFO] [stderr] 48 |         fn get(&mut self, options: &ReadOptions, key: &Slice) -> Result<Slice, Status> {
[INFO] [stderr]    |                           ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_options`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `key`
[INFO] [stderr]   --> src/db/db_impl.rs:48:50
[INFO] [stderr]    |
[INFO] [stderr] 48 |         fn get(&mut self, options: &ReadOptions, key: &Slice) -> Result<Slice, Status> {
[INFO] [stderr]    |                                                  ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `options`
[INFO] [stderr]   --> src/db/db_impl.rs:52:36
[INFO] [stderr]    |
[INFO] [stderr] 52 |         fn new_iterator(&mut self, options: &ReadOptions) -> Box<dyn crate::common::Iter> {
[INFO] [stderr]    |                                    ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_options`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `propname`
[INFO] [stderr]   --> src/db/db_impl.rs:60:36
[INFO] [stderr]    |
[INFO] [stderr] 60 |         fn get_property(&mut self, propname: &Slice) -> Option<String> {
[INFO] [stderr]    |                                    ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_propname`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `ranges`
[INFO] [stderr]   --> src/db/db_impl.rs:64:45
[INFO] [stderr]    |
[INFO] [stderr] 64 |         fn get_approximate_sizes(&mut self, ranges: &crate::common::Range, n: i64) -> Vec<u64> {
[INFO] [stderr]    |                                             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_ranges`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `n`
[INFO] [stderr]   --> src/db/db_impl.rs:64:76
[INFO] [stderr]    |
[INFO] [stderr] 64 |         fn get_approximate_sizes(&mut self, ranges: &crate::common::Range, n: i64) -> Vec<u64> {
[INFO] [stderr]    |                                                                            ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `start`
[INFO] [stderr]   --> src/db/db_impl.rs:68:37
[INFO] [stderr]    |
[INFO] [stderr] 68 |         fn compact_range(&mut self, start: &Slice, end: &Slice) {
[INFO] [stderr]    |                                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_start`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `end`
[INFO] [stderr]   --> src/db/db_impl.rs:68:52
[INFO] [stderr]    |
[INFO] [stderr] 68 |         fn compact_range(&mut self, start: &Slice, end: &Slice) {
[INFO] [stderr]    |                                                    ^^^ help: if this is intentional, prefix it with an underscore: `_end`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `options`
[INFO] [stderr]   --> src/db/db_impl.rs:72:23
[INFO] [stderr]    |
[INFO] [stderr] 72 |         fn destory_db(options: &Options, name: &str) -> Status {
[INFO] [stderr]    |                       ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_options`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `name`
[INFO] [stderr]   --> src/db/db_impl.rs:72:42
[INFO] [stderr]    |
[INFO] [stderr] 72 |         fn destory_db(options: &Options, name: &str) -> Status {
[INFO] [stderr]    |                                          ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `options`
[INFO] [stderr]   --> src/db/db_impl.rs:76:22
[INFO] [stderr]    |
[INFO] [stderr] 76 |         fn repair_db(options: &Options, name: &str) -> Status {
[INFO] [stderr]    |                      ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_options`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `name`
[INFO] [stderr]   --> src/db/db_impl.rs:76:41
[INFO] [stderr]    |
[INFO] [stderr] 76 |         fn repair_db(options: &Options, name: &str) -> Status {
[INFO] [stderr]    |                                         ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `db`
[INFO] [stderr]   --> src/db/db_iter.rs:22:16
[INFO] [stderr]    |
[INFO] [stderr] 22 |     pub fn new(db: &DBImpl, iter: DBIter<'_>) -> Self {
[INFO] [stderr]    |                ^^ help: if this is intentional, prefix it with an underscore: `_db`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `iter`
[INFO] [stderr]   --> src/db/db_iter.rs:22:29
[INFO] [stderr]    |
[INFO] [stderr] 22 |     pub fn new(db: &DBImpl, iter: DBIter<'_>) -> Self {
[INFO] [stderr]    |                             ^^^^ help: if this is intentional, prefix it with an underscore: `_iter`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `target`
[INFO] [stderr]   --> src/db/db_iter.rs:37:24
[INFO] [stderr]    |
[INFO] [stderr] 37 |     fn seek(&mut self, target: &crate::common::Slice) {
[INFO] [stderr]    |                        ^^^^^^ help: if this is intentional, prefix it with an underscore: `_target`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `guard`
[INFO] [stderr]   --> src/port/mutex.rs:39:24
[INFO] [stderr]    |
[INFO] [stderr] 39 |     pub fn wait(&self, guard: &mut MutexGuard<bool>) {}
[INFO] [stderr]    |                        ^^^^^ help: if this is intentional, prefix it with an underscore: `_guard`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `dst`
[INFO] [stderr]   --> src/util/codec.rs:50:25
[INFO] [stderr]    |
[INFO] [stderr] 50 |     pub fn put_varint32(dst: &mut [u8], value: u32) {
[INFO] [stderr]    |                         ^^^ help: if this is intentional, prefix it with an underscore: `_dst`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `value`
[INFO] [stderr]   --> src/util/codec.rs:50:41
[INFO] [stderr]    |
[INFO] [stderr] 50 |     pub fn put_varint32(dst: &mut [u8], value: u32) {
[INFO] [stderr]    |                                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `dst`
[INFO] [stderr]   --> src/util/codec.rs:54:25
[INFO] [stderr]    |
[INFO] [stderr] 54 |     pub fn put_varint64(dst: &mut [u8], value: u64) {
[INFO] [stderr]    |                         ^^^ help: if this is intentional, prefix it with an underscore: `_dst`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `value`
[INFO] [stderr]   --> src/util/codec.rs:54:41
[INFO] [stderr]    |
[INFO] [stderr] 54 |     pub fn put_varint64(dst: &mut [u8], value: u64) {
[INFO] [stderr]    |                                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `dst`
[INFO] [stderr]   --> src/util/codec.rs:58:38
[INFO] [stderr]    |
[INFO] [stderr] 58 |     pub fn put_length_prefixed_slice(dst: &mut [u8], value: &[u8]) {
[INFO] [stderr]    |                                      ^^^ help: if this is intentional, prefix it with an underscore: `_dst`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `value`
[INFO] [stderr]   --> src/util/codec.rs:58:54
[INFO] [stderr]    |
[INFO] [stderr] 58 |     pub fn put_length_prefixed_slice(dst: &mut [u8], value: &[u8]) {
[INFO] [stderr]    |                                                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `src`
[INFO] [stderr]   --> src/util/codec.rs:62:24
[INFO] [stderr]    |
[INFO] [stderr] 62 |     pub fn get_fixed32(src: &Slice) -> u32 {
[INFO] [stderr]    |                        ^^^ help: if this is intentional, prefix it with an underscore: `_src`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `src`
[INFO] [stderr]   --> src/util/codec.rs:66:25
[INFO] [stderr]    |
[INFO] [stderr] 66 |     pub fn get_varint32(src: &Slice) -> Option<u32> {
[INFO] [stderr]    |                         ^^^ help: if this is intentional, prefix it with an underscore: `_src`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `src`
[INFO] [stderr]   --> src/util/codec.rs:70:24
[INFO] [stderr]    |
[INFO] [stderr] 70 |     pub fn get_fixed64(src: &Slice) -> Option<u64> {
[INFO] [stderr]    |                        ^^^ help: if this is intentional, prefix it with an underscore: `_src`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `src`
[INFO] [stderr]   --> src/util/codec.rs:74:38
[INFO] [stderr]    |
[INFO] [stderr] 74 |     pub fn get_length_prefixed_slice(src: &Slice) -> Option<&Slice> {
[INFO] [stderr]    |                                      ^^^ help: if this is intentional, prefix it with an underscore: `_src`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `data`
[INFO] [stderr]  --> src/util/crc32.rs:3:19
[INFO] [stderr]   |
[INFO] [stderr] 3 |     pub fn Extend(data: &[u8], crc: u32) -> u32 {
[INFO] [stderr]   |                   ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `crc`
[INFO] [stderr]  --> src/util/crc32.rs:3:32
[INFO] [stderr]   |
[INFO] [stderr] 3 |     pub fn Extend(data: &[u8], crc: u32) -> u32 {
[INFO] [stderr]   |                                ^^^ help: if this is intentional, prefix it with an underscore: `_crc`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `crc`
[INFO] [stderr]  --> src/util/crc32.rs:6:17
[INFO] [stderr]   |
[INFO] [stderr] 6 |     pub fn Mask(crc: u32) -> u32 {
[INFO] [stderr]   |                 ^^^ help: if this is intentional, prefix it with an underscore: `_crc`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `dest`
[INFO] [stderr]  --> src/util/logging.rs:3:25
[INFO] [stderr]   |
[INFO] [stderr] 3 | pub fn append_number_to(dest: &mut String, num: u64) {
[INFO] [stderr]   |                         ^^^^ help: if this is intentional, prefix it with an underscore: `_dest`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `num`
[INFO] [stderr]  --> src/util/logging.rs:3:44
[INFO] [stderr]   |
[INFO] [stderr] 3 | pub fn append_number_to(dest: &mut String, num: u64) {
[INFO] [stderr]   |                                            ^^^ help: if this is intentional, prefix it with an underscore: `_num`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `dest`
[INFO] [stderr]  --> src/util/logging.rs:7:33
[INFO] [stderr]   |
[INFO] [stderr] 7 | pub fn append_escaped_string_to(dest: &mut String, src: &Slice) {
[INFO] [stderr]   |                                 ^^^^ help: if this is intentional, prefix it with an underscore: `_dest`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `src`
[INFO] [stderr]  --> src/util/logging.rs:7:52
[INFO] [stderr]   |
[INFO] [stderr] 7 | pub fn append_escaped_string_to(dest: &mut String, src: &Slice) {
[INFO] [stderr]   |                                                    ^^^ help: if this is intentional, prefix it with an underscore: `_src`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `num`
[INFO] [stderr]   --> src/util/logging.rs:11:25
[INFO] [stderr]    |
[INFO] [stderr] 11 | pub fn number_to_string(num: u64) -> String {
[INFO] [stderr]    |                         ^^^ help: if this is intentional, prefix it with an underscore: `_num`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `src`
[INFO] [stderr]   --> src/util/logging.rs:15:22
[INFO] [stderr]    |
[INFO] [stderr] 15 | pub fn escape_string(src: &Slice) -> String {
[INFO] [stderr]    |                      ^^^ help: if this is intentional, prefix it with an underscore: `_src`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `src`
[INFO] [stderr]   --> src/util/logging.rs:19:32
[INFO] [stderr]    |
[INFO] [stderr] 19 | pub fn comsume_deciamal_number(src: &mut Slice) -> Option<u64> {
[INFO] [stderr]    |                                ^^^ help: if this is intentional, prefix it with an underscore: `_src`
[INFO] [stderr] 
[INFO] [stderr] warning: trait `Handle` is never used
[INFO] [stderr]   --> src/common/mod.rs:10:11
[INFO] [stderr]    |
[INFO] [stderr] 10 | pub trait Handle {
[INFO] [stderr]    |           ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: methods `insert`, `lookup`, `release`, `erase`, `new_id`, and `prune` are never used
[INFO] [stderr]   --> src/common/mod.rs:21:8
[INFO] [stderr]    |
[INFO] [stderr] 20 | pub trait Cache {
[INFO] [stderr]    |           ----- methods in this trait
[INFO] [stderr] 21 |     fn insert(&mut self, key: &Slice, value: &Slice) -> Box<dyn Handle>;
[INFO] [stderr]    |        ^^^^^^
[INFO] [stderr] 22 |     fn lookup(&mut self, key: &Slice) -> Option<Box<dyn Handle>>;
[INFO] [stderr]    |        ^^^^^^
[INFO] [stderr] 23 |     fn release(&mut self, entry: Box<dyn Handle>);
[INFO] [stderr]    |        ^^^^^^^
[INFO] [stderr] 24 |     fn erase(&mut self, key: &Slice);
[INFO] [stderr]    |        ^^^^^
[INFO] [stderr] 25 |     fn new_id(&mut self) -> u64;
[INFO] [stderr]    |        ^^^^^^
[INFO] [stderr] 26 |     fn prune(&mut self);
[INFO] [stderr]    |        ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `name`, `create_filter`, and `key_may_match` are never used
[INFO] [stderr]   --> src/common/mod.rs:30:8
[INFO] [stderr]    |
[INFO] [stderr] 29 | pub trait FilterPolicy {
[INFO] [stderr]    |           ------------ methods in this trait
[INFO] [stderr] 30 |     fn name(&self) -> &str;
[INFO] [stderr]    |        ^^^^
[INFO] [stderr] 31 |     fn create_filter(&self, keys: &[Slice]) -> Slice;
[INFO] [stderr]    |        ^^^^^^^^^^^^^
[INFO] [stderr] 32 |     fn key_may_match(&self, key: &Slice, filter: &Slice) -> bool;
[INFO] [stderr]    |        ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `compare`, `name`, `find_shortest_separator`, and `find_short_successor` are never used
[INFO] [stderr]   --> src/common/mod.rs:36:8
[INFO] [stderr]    |
[INFO] [stderr] 35 | pub trait Comparator {
[INFO] [stderr]    |           ---------- methods in this trait
[INFO] [stderr] 36 |     fn compare(&self, a: &Slice, b: &Slice) -> Ordering;
[INFO] [stderr]    |        ^^^^^^^
[INFO] [stderr] 37 |     fn name(&self) -> &str;
[INFO] [stderr]    |        ^^^^
[INFO] [stderr] 38 |     fn find_shortest_separator(&self, start: &mut Slice, limit: &Slice);
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 39 |     fn find_short_successor(&self, key: &mut Slice);
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple methods are never used
[INFO] [stderr]   --> src/common/mod.rs:43:8
[INFO] [stderr]    |
[INFO] [stderr] 42 | pub trait Env {
[INFO] [stderr]    |           --- methods in this trait
[INFO] [stderr] 43 |     fn new_sequential_file(&self, fname: &str, dest: &mut Box<dyn SequentialFile>) -> Status;
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 44 |     fn new_random_access_file(&self, fname: &str, dest: &mut Box<dyn RandomAccessFile>) -> Status;
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 45 |     fn new_writeable_file(&self, fname: &str, dest: &mut Box<dyn WritableFile>) -> Status;
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 46 |     fn new_appendable_file(&self, fname: &str, dest: &mut Box<dyn WritableFile>) -> Status;
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 47 |
[INFO] [stderr] 48 |     fn file_exists(&self, fname: &str) -> bool;
[INFO] [stderr]    |        ^^^^^^^^^^^
[INFO] [stderr] 49 |     fn get_children(&self, dir: &str) -> Result<Vec<String>, Status>;
[INFO] [stderr]    |        ^^^^^^^^^^^^
[INFO] [stderr] 50 |     fn remove_file(&self, fname: &str) -> Status;
[INFO] [stderr]    |        ^^^^^^^^^^^
[INFO] [stderr] 51 |     #[deprecated]
[INFO] [stderr] 52 |     fn delete_file(&self, fname: &str) -> Status {
[INFO] [stderr]    |        ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 56 |     fn create_dir(&self, dirname: &str) -> Status;
[INFO] [stderr]    |        ^^^^^^^^^^
[INFO] [stderr] 57 |     fn remove_dir(&self, dirname: &str) -> Status;
[INFO] [stderr]    |        ^^^^^^^^^^
[INFO] [stderr] 58 |     #[deprecated]
[INFO] [stderr] 59 |     fn delete_dir(&self, dirname: &str) -> Status {
[INFO] [stderr]    |        ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 62 |     fn get_file_size(&self, fname: &str) -> Result<usize, Status>;
[INFO] [stderr]    |        ^^^^^^^^^^^^^
[INFO] [stderr] 63 |     fn rename_file(&self, src: &str, target: &str) -> Status;
[INFO] [stderr]    |        ^^^^^^^^^^^
[INFO] [stderr] 64 |
[INFO] [stderr] 65 |     fn lock_file(&self, fname: &str, lock: &mut Box<dyn FileLock>) -> Status;
[INFO] [stderr]    |        ^^^^^^^^^
[INFO] [stderr] 66 |     fn unlock_file(&self, lock: &mut Box<dyn FileLock>) -> Status;
[INFO] [stderr]    |        ^^^^^^^^^^^
[INFO] [stderr] 67 |
[INFO] [stderr] 68 |     fn schedule(&self, f: Box<dyn FnOnce() + Send>) -> Status;
[INFO] [stderr]    |        ^^^^^^^^
[INFO] [stderr] 69 |     fn start_thread(&self, name: &str, f: Box<dyn FnOnce() + Send>) -> Status;
[INFO] [stderr]    |        ^^^^^^^^^^^^
[INFO] [stderr] 70 |
[INFO] [stderr] 71 |     fn get_test_directory(&self) -> String;
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 72 |
[INFO] [stderr] 73 |     fn now_micros(&self) -> u64;
[INFO] [stderr]    |        ^^^^^^^^^^
[INFO] [stderr] 74 |     fn sleep_for_microseconds(&self, micros: u64);
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait `SequentialFile` is never used
[INFO] [stderr]   --> src/common/mod.rs:77:11
[INFO] [stderr]    |
[INFO] [stderr] 77 | pub trait SequentialFile {
[INFO] [stderr]    |           ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait `WritableFile` is never used
[INFO] [stderr]   --> src/common/mod.rs:82:11
[INFO] [stderr]    |
[INFO] [stderr] 82 | pub trait WritableFile {
[INFO] [stderr]    |           ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait `RandomAccessFile` is never used
[INFO] [stderr]   --> src/common/mod.rs:89:11
[INFO] [stderr]    |
[INFO] [stderr] 89 | pub trait RandomAccessFile {
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `log` is never used
[INFO] [stderr]   --> src/common/mod.rs:94:8
[INFO] [stderr]    |
[INFO] [stderr] 93 | pub trait Logger {
[INFO] [stderr]    |           ------ method in this trait
[INFO] [stderr] 94 |     fn log(&mut self, msg: &str);
[INFO] [stderr]    |        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait `FileLock` is never used
[INFO] [stderr]   --> src/common/mod.rs:97:11
[INFO] [stderr]    |
[INFO] [stderr] 97 | pub trait FileLock {
[INFO] [stderr]    |           ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `start` and `limit` are never read
[INFO] [stderr]    --> src/common/mod.rs:102:9
[INFO] [stderr]     |
[INFO] [stderr] 101 | pub struct Range {
[INFO] [stderr]     |            ----- fields in this struct
[INFO] [stderr] 102 |     pub start: Slice,
[INFO] [stderr]     |         ^^^^^
[INFO] [stderr] 103 |     pub limit: Slice,
[INFO] [stderr]     |         ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait `Table` is never used
[INFO] [stderr]    --> src/common/mod.rs:106:11
[INFO] [stderr]     |
[INFO] [stderr] 106 | pub trait Table {}
[INFO] [stderr]     |           ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple methods are never used
[INFO] [stderr]    --> src/common/mod.rs:111:8
[INFO] [stderr]     |
[INFO] [stderr] 110 | pub trait Iter {
[INFO] [stderr]     |           ---- methods in this trait
[INFO] [stderr] 111 |     fn seek_to_first(&mut self);
[INFO] [stderr]     |        ^^^^^^^^^^^^^
[INFO] [stderr] 112 |     fn seek_to_last(&mut self);
[INFO] [stderr]     |        ^^^^^^^^^^^^
[INFO] [stderr] 113 |     fn seek(&mut self, target: &Slice);
[INFO] [stderr]     |        ^^^^
[INFO] [stderr] 114 |     fn next(&mut self);
[INFO] [stderr]     |        ^^^^
[INFO] [stderr] 115 |     fn prev(&mut self);
[INFO] [stderr]     |        ^^^^
[INFO] [stderr] 116 |     fn valid(&self) -> bool;
[INFO] [stderr]     |        ^^^^^
[INFO] [stderr] 117 |     fn key(&self) -> &Slice;
[INFO] [stderr]     |        ^^^
[INFO] [stderr] 118 |     fn value(&self) -> &Slice;
[INFO] [stderr]     |        ^^^^^
[INFO] [stderr] 119 |     fn status(&mut self) -> Status;
[INFO] [stderr]     |        ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple associated items are never used
[INFO] [stderr]    --> src/common/mod.rs:123:8
[INFO] [stderr]     |
[INFO] [stderr] 122 | pub trait DB {
[INFO] [stderr]     |           -- associated items in this trait
[INFO] [stderr] 123 |     fn open(options: &Options, name: &str, db: &mut Self) -> Status;
[INFO] [stderr]     |        ^^^^
[INFO] [stderr] 124 |
[INFO] [stderr] 125 |     fn put(&mut self, options: &WriteOptions, key: &Slice, value: &Slice) -> Status;
[INFO] [stderr]     |        ^^^
[INFO] [stderr] 126 |     fn delete(&mut self, options: &WriteOptions, key: &Slice) -> Status;
[INFO] [stderr]     |        ^^^^^^
[INFO] [stderr] 127 |     fn write(&mut self, options: &WriteOptions, updates: &mut WriteBatch) -> Status;
[INFO] [stderr]     |        ^^^^^
[INFO] [stderr] 128 |
[INFO] [stderr] 129 |     fn get(&mut self, options: &ReadOptions, key: &Slice) -> Result<Slice, Status>;
[INFO] [stderr]     |        ^^^
[INFO] [stderr] 130 |     fn new_iterator(&mut self, options: &ReadOptions) -> Box<dyn Iter>;
[INFO] [stderr]     |        ^^^^^^^^^^^^
[INFO] [stderr] 131 |
[INFO] [stderr] 132 |     fn get_snapshot(&mut self) -> Box<dyn Snapshot>;
[INFO] [stderr]     |        ^^^^^^^^^^^^
[INFO] [stderr] 133 |
[INFO] [stderr] 134 |     fn get_property(&mut self, propname: &Slice) -> Option<String>;
[INFO] [stderr]     |        ^^^^^^^^^^^^
[INFO] [stderr] 135 |
[INFO] [stderr] 136 |     fn get_approximate_sizes(&mut self, ranges: &Range, n: i64) -> Vec<u64>;
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 137 |
[INFO] [stderr] 138 |     fn compact_range(&mut self, start: &Slice, end: &Slice);
[INFO] [stderr]     |        ^^^^^^^^^^^^^
[INFO] [stderr] 139 |
[INFO] [stderr] 140 |     fn destory_db(options: &Options, name: &str) -> Status;
[INFO] [stderr]     |        ^^^^^^^^^^
[INFO] [stderr] 141 |
[INFO] [stderr] 142 |     fn repair_db(options: &Options, name: &str) -> Status;
[INFO] [stderr]     |        ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variants `Ok`, `NotFound`, `Corruption`, `NotSupported`, `InvalidArgument`, and `IOError` are never constructed
[INFO] [stderr]  --> src/common/code.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | pub enum Status {
[INFO] [stderr]   |          ------ variants in this enum
[INFO] [stderr] 4 |     Ok,
[INFO] [stderr]   |     ^^
[INFO] [stderr] 5 |     NotFound(Slice),
[INFO] [stderr]   |     ^^^^^^^^
[INFO] [stderr] 6 |     Corruption(Slice),
[INFO] [stderr]   |     ^^^^^^^^^^
[INFO] [stderr] 7 |     NotSupported(Slice),
[INFO] [stderr]   |     ^^^^^^^^^^^^
[INFO] [stderr] 8 |     InvalidArgument(Slice),
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^
[INFO] [stderr] 9 |     IOError,
[INFO] [stderr]   |     ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `is_ok`, `is_not_found`, `is_corruption`, `is_not_supported`, `is_invalid_argument`, and `is_io_error` are never used
[INFO] [stderr]   --> src/common/code.rs:13:12
[INFO] [stderr]    |
[INFO] [stderr] 12 | impl Status {
[INFO] [stderr]    | ----------- methods in this implementation
[INFO] [stderr] 13 |     pub fn is_ok(&self) -> bool {
[INFO] [stderr]    |            ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 19 |     pub fn is_not_found(&self) -> bool {
[INFO] [stderr]    |            ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 26 |     pub fn is_corruption(&self) -> bool {
[INFO] [stderr]    |            ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 33 |     pub fn is_not_supported(&self) -> bool {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 40 |     pub fn is_invalid_argument(&self) -> bool {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 47 |     pub fn is_io_error(&self) -> bool {
[INFO] [stderr]    |            ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `CompressionType` is never used
[INFO] [stderr]  --> src/common/options.rs:3:10
[INFO] [stderr]   |
[INFO] [stderr] 3 | pub enum CompressionType {
[INFO] [stderr]   |          ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple fields are never read
[INFO] [stderr]   --> src/common/options.rs:10:9
[INFO] [stderr]    |
[INFO] [stderr] 9  | pub struct Options {
[INFO] [stderr]    |            ------- fields in this struct
[INFO] [stderr] 10 |     pub create_if_missing: bool,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 11 |     pub error_if_exists: bool,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^
[INFO] [stderr] 12 |     pub paranoid_checks: bool,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^
[INFO] [stderr] 13 |     pub env: Option<Box<dyn Env>>,
[INFO] [stderr]    |         ^^^
[INFO] [stderr] 14 |     pub comparator: Option<Box<dyn Comparator>>,
[INFO] [stderr]    |         ^^^^^^^^^^
[INFO] [stderr] 15 |     pub cache: Option<Box<dyn Cache>>,
[INFO] [stderr]    |         ^^^^^
[INFO] [stderr] 16 |     pub filter_policy: Option<Box<dyn FilterPolicy>>,
[INFO] [stderr]    |         ^^^^^^^^^^^^^
[INFO] [stderr] 17 |     pub logger: Option<Box<dyn Logger>>,
[INFO] [stderr]    |         ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `verify_checksums`, `fill_cache`, and `snapshot` are never read
[INFO] [stderr]   --> src/common/options.rs:36:9
[INFO] [stderr]    |
[INFO] [stderr] 35 | pub struct ReadOptions {
[INFO] [stderr]    |            ----------- fields in this struct
[INFO] [stderr] 36 |     pub verify_checksums: bool,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^
[INFO] [stderr] 37 |     pub fill_cache: bool,
[INFO] [stderr]    |         ^^^^^^^^^^
[INFO] [stderr] 38 |     pub snapshot: Option<Box<dyn Snapshot>>,
[INFO] [stderr]    |         ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `sync` is never read
[INFO] [stderr]   --> src/common/options.rs:42:9
[INFO] [stderr]    |
[INFO] [stderr] 41 | pub struct WriteOptions {
[INFO] [stderr]    |            ------------ field in this struct
[INFO] [stderr] 42 |     pub sync: bool,
[INFO] [stderr]    |         ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `req` is never read
[INFO] [stderr]   --> src/common/options.rs:46:5
[INFO] [stderr]    |
[INFO] [stderr] 45 | pub struct WriteBatch {
[INFO] [stderr]    |            ---------- field in this struct
[INFO] [stderr] 46 |     req: String,
[INFO] [stderr]    |     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `WriteBatchIterator` is never constructed
[INFO] [stderr]   --> src/common/options.rs:49:12
[INFO] [stderr]    |
[INFO] [stderr] 49 | pub struct WriteBatchIterator {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new`, `put`, `delete`, `clear`, `approximate_size`, and `iter` are never used
[INFO] [stderr]   --> src/common/options.rs:55:12
[INFO] [stderr]    |
[INFO] [stderr] 54 | impl WriteBatch {
[INFO] [stderr]    | --------------- associated items in this implementation
[INFO] [stderr] 55 |     pub fn new() -> Self {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 59 |     pub fn put(&mut self, key: &Slice, value: &Slice) {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 63 |     pub fn delete(&mut self, key: &Slice) {
[INFO] [stderr]    |            ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 67 |     pub fn clear(&mut self) {
[INFO] [stderr]    |            ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 71 |     pub fn approximate_size(&self) -> usize {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 75 |     pub fn iter(&self) -> WriteBatchIterator {
[INFO] [stderr]    |            ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new_with_data` and `start_with` are never used
[INFO] [stderr]   --> src/common/slice.rs:14:12
[INFO] [stderr]    |
[INFO] [stderr] 9  | impl Slice {
[INFO] [stderr]    | ---------- associated items in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 14 |     pub fn new_with_data(data: &[u8]) -> Self {
[INFO] [stderr]    |            ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 32 |     pub fn start_with(&self, prefix: &Self) -> bool {
[INFO] [stderr]    |            ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `cache`, `dbname`, `options`, and `env` are never read
[INFO] [stderr]  --> src/common/table_cache.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | pub struct TableCache {
[INFO] [stderr]   |            ---------- fields in this struct
[INFO] [stderr] 4 |     cache: Box<dyn Cache>,
[INFO] [stderr]   |     ^^^^^
[INFO] [stderr] 5 |     dbname: String,
[INFO] [stderr]   |     ^^^^^^
[INFO] [stderr] 6 |     options: Options,
[INFO] [stderr]   |     ^^^^^^^
[INFO] [stderr] 7 |     env: Box<dyn Env>,
[INFO] [stderr]   |     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new`, `new_iter`, `get`, `evict`, and `find_table` are never used
[INFO] [stderr]   --> src/common/table_cache.rs:11:12
[INFO] [stderr]    |
[INFO] [stderr] 10 | impl TableCache {
[INFO] [stderr]    | --------------- associated items in this implementation
[INFO] [stderr] 11 |     pub fn new(dbname: String, options: Options, entries: u64) -> Self {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 15 |     pub fn new_iter(
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 24 |     pub fn get(
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 35 |     pub fn evict(&mut self, file_number: u64) {
[INFO] [stderr]    |            ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 39 |     fn find_table(&mut self, file_number: u64, file_size: u64) -> Option<Box<dyn Handle>> {
[INFO] [stderr]    |        ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variant `KTypeDeletion` is never constructed
[INFO] [stderr]   --> src/db/db_format.rs:20:9
[INFO] [stderr]    |
[INFO] [stderr] 19 |     enum ValueType {
[INFO] [stderr]    |          --------- variant in this enum
[INFO] [stderr] 20 |         KTypeDeletion = 0x0,
[INFO] [stderr]    |         ^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `ValueType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: constant `K_VALUE_TYPE_FOR_SEEK` is never used
[INFO] [stderr]   --> src/db/db_format.rs:24:11
[INFO] [stderr]    |
[INFO] [stderr] 24 |     const K_VALUE_TYPE_FOR_SEEK: ValueType = ValueType::KTypeValue;
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `K_MAX_SEQUENCE_NUMBER` is never used
[INFO] [stderr]   --> src/db/db_format.rs:26:11
[INFO] [stderr]    |
[INFO] [stderr] 26 |     const K_MAX_SEQUENCE_NUMBER: SequenceNumber = ((0x1u64) << 56) - 1;
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `pack_sequence_and_type` is never used
[INFO] [stderr]   --> src/db/db_format.rs:28:8
[INFO] [stderr]    |
[INFO] [stderr] 28 |     fn pack_sequence_and_type(seq: SequenceNumber, t: ValueType) -> u64 {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `user_key`, `sequence`, and `value_type` are never read
[INFO] [stderr]   --> src/db/db_format.rs:34:9
[INFO] [stderr]    |
[INFO] [stderr] 33 |     struct ParsedInternalKey {
[INFO] [stderr]    |            ----------------- fields in this struct
[INFO] [stderr] 34 |         user_key: Slice,
[INFO] [stderr]    |         ^^^^^^^^
[INFO] [stderr] 35 |         sequence: SequenceNumber,
[INFO] [stderr]    |         ^^^^^^^^
[INFO] [stderr] 36 |         value_type: ValueType,
[INFO] [stderr]    |         ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new`, `debug_string`, and `len` are never used
[INFO] [stderr]   --> src/db/db_format.rs:40:16
[INFO] [stderr]    |
[INFO] [stderr] 39 |     impl ParsedInternalKey {
[INFO] [stderr]    |     ---------------------- associated items in this implementation
[INFO] [stderr] 40 |         pub fn new(user_key: Slice, sequence: SequenceNumber, value_type: ValueType) -> Self {
[INFO] [stderr]    |                ^^^
[INFO] [stderr] ...
[INFO] [stderr] 48 |         pub fn debug_string(&self) -> String {
[INFO] [stderr]    |                ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 54 |         pub fn len(&self) -> usize {
[INFO] [stderr]    |                ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `aoppend_internal_key` is never used
[INFO] [stderr]   --> src/db/db_format.rs:69:8
[INFO] [stderr]    |
[INFO] [stderr] 69 |     fn aoppend_internal_key(result: &mut String, key: &ParsedInternalKey) {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `extract_user_key` is never used
[INFO] [stderr]   --> src/db/db_format.rs:77:12
[INFO] [stderr]    |
[INFO] [stderr] 77 |     pub fn extract_user_key(internal_key: &Slice) -> Slice {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `InternalKeyComparator` is never constructed
[INFO] [stderr]   --> src/db/db_format.rs:81:12
[INFO] [stderr]    |
[INFO] [stderr] 81 |     struct InternalKeyComparator {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]   --> src/db/db_format.rs:86:16
[INFO] [stderr]    |
[INFO] [stderr] 85 |     impl InternalKeyComparator {
[INFO] [stderr]    |     -------------------------- associated function in this implementation
[INFO] [stderr] 86 |         pub fn new(user_comparator: Box<dyn Comparator>) -> Self {
[INFO] [stderr]    |                ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `InternalFilterPolicy` is never constructed
[INFO] [stderr]    --> src/db/db_format.rs:121:12
[INFO] [stderr]     |
[INFO] [stderr] 121 |     struct InternalFilterPolicy {}
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `rep` is never read
[INFO] [stderr]    --> src/db/db_format.rs:142:9
[INFO] [stderr]     |
[INFO] [stderr] 141 |     struct InternalKey {
[INFO] [stderr]     |            ----------- field in this struct
[INFO] [stderr] 142 |         rep: Slice,
[INFO] [stderr]     |         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new`, `debug_string`, `decode_from`, `encode`, `user_key`, and `clear` are never used
[INFO] [stderr]    --> src/db/db_format.rs:146:16
[INFO] [stderr]     |
[INFO] [stderr] 145 |     impl InternalKey {
[INFO] [stderr]     |     ---------------- associated items in this implementation
[INFO] [stderr] 146 |         pub fn new(rep: Slice) -> Self {
[INFO] [stderr]     |                ^^^
[INFO] [stderr] ...
[INFO] [stderr] 150 |         pub fn debug_string(&self) -> String {
[INFO] [stderr]     |                ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 154 |         pub fn decode_from(&mut self, s: &Slice) {
[INFO] [stderr]     |                ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 158 |         pub fn encode(&self) -> Slice {
[INFO] [stderr]     |                ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 162 |         pub fn user_key(&self) -> Slice {
[INFO] [stderr]     |                ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 166 |         pub fn clear(&mut self) {
[INFO] [stderr]     |                ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `K_NUM_LEVELS` is never used
[INFO] [stderr]   --> src/db/db_format.rs:10:15
[INFO] [stderr]    |
[INFO] [stderr] 10 |         const K_NUM_LEVELS: usize = 7;
[INFO] [stderr]    |               ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `K_L0_COMPACTION_TRIGGER` is never used
[INFO] [stderr]   --> src/db/db_format.rs:11:15
[INFO] [stderr]    |
[INFO] [stderr] 11 |         const K_L0_COMPACTION_TRIGGER: usize = 4;
[INFO] [stderr]    |               ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `K_L0_SLOWDOWN_WRITES_TRIGGER` is never used
[INFO] [stderr]   --> src/db/db_format.rs:12:15
[INFO] [stderr]    |
[INFO] [stderr] 12 |         const K_L0_SLOWDOWN_WRITES_TRIGGER: usize = 8;
[INFO] [stderr]    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `K_L0_STOP_WRITES_TRIGGER` is never used
[INFO] [stderr]   --> src/db/db_format.rs:13:15
[INFO] [stderr]    |
[INFO] [stderr] 13 |         const K_L0_STOP_WRITES_TRIGGER: usize = 12;
[INFO] [stderr]    |               ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `K_MAX_MEM_COMPACT_LEVEL` is never used
[INFO] [stderr]   --> src/db/db_format.rs:14:15
[INFO] [stderr]    |
[INFO] [stderr] 14 |         const K_MAX_MEM_COMPACT_LEVEL: usize = 2;
[INFO] [stderr]    |               ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `K_READ_BYTES_PERIOD` is never used
[INFO] [stderr]   --> src/db/db_format.rs:15:15
[INFO] [stderr]    |
[INFO] [stderr] 15 |         const K_READ_BYTES_PERIOD: usize = 1048576;
[INFO] [stderr]    |               ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `ManualCompaction` is never constructed
[INFO] [stderr]  --> src/db/db_impl.rs:8:12
[INFO] [stderr]   |
[INFO] [stderr] 8 |     struct ManualCompaction {
[INFO] [stderr]   |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `CompactionStats` is never constructed
[INFO] [stderr]   --> src/db/db_impl.rs:15:12
[INFO] [stderr]    |
[INFO] [stderr] 15 |     struct CompactionStats {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple fields are never read
[INFO] [stderr]   --> src/db/db_impl.rs:22:9
[INFO] [stderr]    |
[INFO] [stderr] 21 |     pub struct DBImpl {
[INFO] [stderr]    |                ------ fields in this struct
[INFO] [stderr] 22 |         env: Box<dyn Env>,
[INFO] [stderr]    |         ^^^
[INFO] [stderr] 23 |         internal_comparator: Box<dyn Comparator>,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 24 |         options: Options,
[INFO] [stderr]    |         ^^^^^^^
[INFO] [stderr] 25 |         owns_info_log: bool,
[INFO] [stderr]    |         ^^^^^^^^^^^^^
[INFO] [stderr] 26 |         owns_cache: bool,
[INFO] [stderr]    |         ^^^^^^^^^^
[INFO] [stderr] 27 |         dbname: String,
[INFO] [stderr]    |         ^^^^^^
[INFO] [stderr] 28 |         table_cache: TableCache,
[INFO] [stderr]    |         ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `Direction` is never used
[INFO] [stderr]  --> src/db/db_iter.rs:5:6
[INFO] [stderr]   |
[INFO] [stderr] 5 | enum Direction {
[INFO] [stderr]   |      ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `db` is never read
[INFO] [stderr]   --> src/db/db_iter.rs:11:5
[INFO] [stderr]    |
[INFO] [stderr] 10 | pub struct DBIter<'a> {
[INFO] [stderr]    |            ------ field in this struct
[INFO] [stderr] 11 |     db: &'a DBImpl,
[INFO] [stderr]    |     ^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]   --> src/db/db_iter.rs:22:12
[INFO] [stderr]    |
[INFO] [stderr] 21 | impl DBIter<'_> {
[INFO] [stderr]    | --------------- associated function in this implementation
[INFO] [stderr] 22 |     pub fn new(db: &DBImpl, iter: DBIter<'_>) -> Self {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `MutexGuard` is never constructed
[INFO] [stderr]  --> src/port/mutex.rs:1:12
[INFO] [stderr]   |
[INFO] [stderr] 1 | pub struct MutexGuard<'a, T> {
[INFO] [stderr]   |            ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]  --> src/port/mutex.rs:6:12
[INFO] [stderr]   |
[INFO] [stderr] 5 | impl<'a, T> MutexGuard<'a, T> {
[INFO] [stderr]   | ----------------------------- associated function in this implementation
[INFO] [stderr] 6 |     pub fn new(guard: std::sync::MutexGuard<'a, T>) -> Self {
[INFO] [stderr]   |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Mutex` is never constructed
[INFO] [stderr]   --> src/port/mutex.rs:12:12
[INFO] [stderr]    |
[INFO] [stderr] 12 | pub struct Mutex<T> {
[INFO] [stderr]    |            ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Mutex` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new` and `lock` are never used
[INFO] [stderr]   --> src/port/mutex.rs:17:12
[INFO] [stderr]    |
[INFO] [stderr] 16 | impl<T> Mutex<T> {
[INFO] [stderr]    | ---------------- associated items in this implementation
[INFO] [stderr] 17 |     pub fn new(t: T) -> Self {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 23 |     pub fn lock(&self) -> MutexGuard<T> {
[INFO] [stderr]    |            ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `CondVar` is never constructed
[INFO] [stderr]   --> src/port/mutex.rs:28:12
[INFO] [stderr]    |
[INFO] [stderr] 28 | pub struct CondVar {
[INFO] [stderr]    |            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new`, `wait`, and `notify_one` are never used
[INFO] [stderr]   --> src/port/mutex.rs:33:12
[INFO] [stderr]    |
[INFO] [stderr] 32 | impl CondVar {
[INFO] [stderr]    | ------------ associated items in this implementation
[INFO] [stderr] 33 |     pub fn new() -> Self {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 39 |     pub fn wait(&self, guard: &mut MutexGuard<bool>) {}
[INFO] [stderr]    |            ^^^^
[INFO] [stderr] 40 |
[INFO] [stderr] 41 |     pub fn notify_one(&self) {}
[INFO] [stderr]    |            ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]   --> src/util/bloom_filter.rs:12:16
[INFO] [stderr]    |
[INFO] [stderr] 11 |     impl BloomFilterPolicy {
[INFO] [stderr]    |     ---------------------- associated function in this implementation
[INFO] [stderr] 12 |         pub fn new(bits_per_key: usize) -> Self {
[INFO] [stderr]    |                ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `encode_fixed32` is never used
[INFO] [stderr]  --> src/util/codec.rs:5:12
[INFO] [stderr]   |
[INFO] [stderr] 5 |     pub fn encode_fixed32(dst: &mut [u8], value: u32) {
[INFO] [stderr]   |            ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `encode_fixed64` is never used
[INFO] [stderr]   --> src/util/codec.rs:12:12
[INFO] [stderr]    |
[INFO] [stderr] 12 |     pub fn encode_fixed64(dst: &mut [u8], value: u64) {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `put_fixed32` is never used
[INFO] [stderr]   --> src/util/codec.rs:23:12
[INFO] [stderr]    |
[INFO] [stderr] 23 |     pub fn put_fixed32(dst: &mut String, value: u32) {
[INFO] [stderr]    |            ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `put_fixed64` is never used
[INFO] [stderr]   --> src/util/codec.rs:29:12
[INFO] [stderr]    |
[INFO] [stderr] 29 |     pub fn put_fixed64(dst: &mut String, value: u64) {
[INFO] [stderr]    |            ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `decode_fixed64` is never used
[INFO] [stderr]   --> src/util/codec.rs:39:12
[INFO] [stderr]    |
[INFO] [stderr] 39 |     pub fn decode_fixed64(src: &Slice) -> u64 {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `put_varint32` is never used
[INFO] [stderr]   --> src/util/codec.rs:50:12
[INFO] [stderr]    |
[INFO] [stderr] 50 |     pub fn put_varint32(dst: &mut [u8], value: u32) {
[INFO] [stderr]    |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `put_varint64` is never used
[INFO] [stderr]   --> src/util/codec.rs:54:12
[INFO] [stderr]    |
[INFO] [stderr] 54 |     pub fn put_varint64(dst: &mut [u8], value: u64) {
[INFO] [stderr]    |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `put_length_prefixed_slice` is never used
[INFO] [stderr]   --> src/util/codec.rs:58:12
[INFO] [stderr]    |
[INFO] [stderr] 58 |     pub fn put_length_prefixed_slice(dst: &mut [u8], value: &[u8]) {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_fixed32` is never used
[INFO] [stderr]   --> src/util/codec.rs:62:12
[INFO] [stderr]    |
[INFO] [stderr] 62 |     pub fn get_fixed32(src: &Slice) -> u32 {
[INFO] [stderr]    |            ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_varint32` is never used
[INFO] [stderr]   --> src/util/codec.rs:66:12
[INFO] [stderr]    |
[INFO] [stderr] 66 |     pub fn get_varint32(src: &Slice) -> Option<u32> {
[INFO] [stderr]    |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_fixed64` is never used
[INFO] [stderr]   --> src/util/codec.rs:70:12
[INFO] [stderr]    |
[INFO] [stderr] 70 |     pub fn get_fixed64(src: &Slice) -> Option<u64> {
[INFO] [stderr]    |            ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_length_prefixed_slice` is never used
[INFO] [stderr]   --> src/util/codec.rs:74:12
[INFO] [stderr]    |
[INFO] [stderr] 74 |     pub fn get_length_prefixed_slice(src: &Slice) -> Option<&Slice> {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `K_MASK_DELTA` is never used
[INFO] [stderr]  --> src/util/crc32.rs:2:11
[INFO] [stderr]   |
[INFO] [stderr] 2 |     const K_MASK_DELTA: u32 = 0xa282ead8;
[INFO] [stderr]   |           ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `Extend` is never used
[INFO] [stderr]  --> src/util/crc32.rs:3:12
[INFO] [stderr]   |
[INFO] [stderr] 3 |     pub fn Extend(data: &[u8], crc: u32) -> u32 {
[INFO] [stderr]   |            ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `Mask` is never used
[INFO] [stderr]  --> src/util/crc32.rs:6:12
[INFO] [stderr]   |
[INFO] [stderr] 6 |     pub fn Mask(crc: u32) -> u32 {
[INFO] [stderr]   |            ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `EnvPosix` is never constructed
[INFO] [stderr]   --> src/util/env.rs:12:8
[INFO] [stderr]    |
[INFO] [stderr] 12 | struct EnvPosix {}
[INFO] [stderr]    |        ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]   --> src/util/env.rs:16:8
[INFO] [stderr]    |
[INFO] [stderr] 15 | impl EnvPosix {
[INFO] [stderr]    | ------------- associated function in this implementation
[INFO] [stderr] 16 |     fn new() -> EnvPosix {
[INFO] [stderr]    |        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `append_number_to` is never used
[INFO] [stderr]  --> src/util/logging.rs:3:8
[INFO] [stderr]   |
[INFO] [stderr] 3 | pub fn append_number_to(dest: &mut String, num: u64) {
[INFO] [stderr]   |        ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `append_escaped_string_to` is never used
[INFO] [stderr]  --> src/util/logging.rs:7:8
[INFO] [stderr]   |
[INFO] [stderr] 7 | pub fn append_escaped_string_to(dest: &mut String, src: &Slice) {
[INFO] [stderr]   |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `number_to_string` is never used
[INFO] [stderr]   --> src/util/logging.rs:11:8
[INFO] [stderr]    |
[INFO] [stderr] 11 | pub fn number_to_string(num: u64) -> String {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `escape_string` is never used
[INFO] [stderr]   --> src/util/logging.rs:15:8
[INFO] [stderr]    |
[INFO] [stderr] 15 | pub fn escape_string(src: &Slice) -> String {
[INFO] [stderr]    |        ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `comsume_deciamal_number` is never used
[INFO] [stderr]   --> src/util/logging.rs:19:8
[INFO] [stderr]    |
[INFO] [stderr] 19 | pub fn comsume_deciamal_number(src: &mut Slice) -> Option<u64> {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Random` is never constructed
[INFO] [stderr]  --> src/util/random.rs:1:12
[INFO] [stderr]   |
[INFO] [stderr] 1 | pub struct Random {
[INFO] [stderr]   |            ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new`, `next`, `uniform`, `one_in`, and `skew` are never used
[INFO] [stderr]   --> src/util/random.rs:6:12
[INFO] [stderr]    |
[INFO] [stderr] 5  | impl Random {
[INFO] [stderr]    | ----------- associated items in this implementation
[INFO] [stderr] 6  |     pub fn new(seed: u32) -> Self {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 15 |     pub fn next(&mut self) -> u32 {
[INFO] [stderr]    |            ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 22 |     pub fn uniform(&mut self, n: u32) -> u32 {
[INFO] [stderr]    |            ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 26 |     pub fn one_in(&mut self, n: u32) -> bool {
[INFO] [stderr]    |            ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 30 |     pub fn skew(&mut self) -> u32 {
[INFO] [stderr]    |            ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: module `Crc32C` should have a snake case name
[INFO] [stderr]  --> src/util/crc32.rs:1:9
[INFO] [stderr]   |
[INFO] [stderr] 1 | pub mod Crc32C {
[INFO] [stderr]   |         ^^^^^^ help: convert the identifier to snake case: `crc32_c`
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(non_snake_case)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function `Extend` should have a snake case name
[INFO] [stderr]  --> src/util/crc32.rs:3:12
[INFO] [stderr]   |
[INFO] [stderr] 3 |     pub fn Extend(data: &[u8], crc: u32) -> u32 {
[INFO] [stderr]   |            ^^^^^^ help: convert the identifier to snake case: `extend`
[INFO] [stderr] 
[INFO] [stderr] warning: function `Mask` should have a snake case name
[INFO] [stderr]  --> src/util/crc32.rs:6:12
[INFO] [stderr]   |
[INFO] [stderr] 6 |     pub fn Mask(crc: u32) -> u32 {
[INFO] [stderr]   |            ^^^^ help: convert the identifier to snake case: `mask`
[INFO] [stderr] 
[INFO] [stderr] warning: `leveldb-rs` (lib) generated 160 warnings (run `cargo fix --lib -p leveldb-rs` to apply 6 suggestions)
[INFO] [stderr] warning: unused import: `Status`
[INFO] [stderr]  --> src/db/db_iter.rs:3:27
[INFO] [stderr]   |
[INFO] [stderr] 3 | use crate::common::{Iter, Status};
[INFO] [stderr]   |                           ^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `leveldb-rs` (lib test) generated 159 warnings (158 duplicates) (run `cargo fix --lib -p leveldb-rs --tests` to apply 1 suggestion)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.06s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/leveldb_rs-e27d7d2e73d311ef)
[INFO] [stdout] 
[INFO] [stdout] running 6 tests
[INFO] [stdout] test common::slice::test::test_slice ... ok
[INFO] [stdout] test util::hash::tests::test_hash ... ok
[INFO] [stdout] test util::random::test::test_one_in ... FAILED
[INFO] [stdout] test util::random::test::test_skew ... FAILED
[INFO] [stdout] test util::random::test::test_random ... FAILED
[INFO] [stdout] test util::random::test::test_uniform ... FAILED
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- util::random::test::test_one_in stdout ----
[INFO] [stdout] thread 'util::random::test::test_one_in' panicked at src/util/random.rs:52:9:
[INFO] [stdout] not yet implemented
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x60480f3a024a - std::backtrace_rs::backtrace::libunwind::trace::h8810477743020387
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/../../backtrace/src/backtrace/libunwind.rs:116:5
[INFO] [stdout]    1:     0x60480f3a024a - std::backtrace_rs::backtrace::trace_unsynchronized::h3aa55355dd6c54a6
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
[INFO] [stdout]    2:     0x60480f3a024a - std::sys::backtrace::_print_fmt::h8588b0f62410823f
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/sys/backtrace.rs:66:9
[INFO] [stdout]    3:     0x60480f3a024a - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::h98c26ac25ffe89bb
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/sys/backtrace.rs:39:26
[INFO] [stdout]    4:     0x60480f3c5c83 - core::fmt::rt::Argument::fmt::hf95377f4aebd453b
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/fmt/rt.rs:177:76
[INFO] [stdout]    5:     0x60480f3c5c83 - core::fmt::write::h0dd5f6e2238c7982
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/fmt/mod.rs:1189:21
[INFO] [stdout]    6:     0x60480f39d3e3 - std::io::Write::write_fmt::h03bb0ca26e6faf8c
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/io/mod.rs:1884:15
[INFO] [stdout]    7:     0x60480f3a0092 - std::sys::backtrace::BacktraceLock::print::h5c19c1c038ee186d
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/sys/backtrace.rs:42:9
[INFO] [stdout]    8:     0x60480f3a16cd - std::panicking::default_hook::{{closure}}::h77172f079a1fcb13
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:268:22
[INFO] [stdout]    9:     0x60480f3a14d7 - std::panicking::default_hook::he5f8e3b203ccddba
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:292:9
[INFO] [stdout]   10:     0x60480f3654c7 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h7a3c7b4a1ae77f2f
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/alloc/src/boxed.rs:1986:9
[INFO] [stdout]   11:     0x60480f3654c7 - test::test_main::{{closure}}::hf0d3b69ae9b353d1
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/test/src/lib.rs:134:21
[INFO] [stdout]   12:     0x60480f3a1d78 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h6332e82e7b189abd
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/alloc/src/boxed.rs:1986:9
[INFO] [stdout]   13:     0x60480f3a1d78 - std::panicking::rust_panic_with_hook::h53863d4e9018df39
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:809:13
[INFO] [stdout]   14:     0x60480f3a1b06 - std::panicking::begin_panic_handler::{{closure}}::h67280e6fa0757873
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:667:13
[INFO] [stdout]   15:     0x60480f3a0729 - std::sys::backtrace::__rust_end_short_backtrace::h1dac3f54d6fbbeb2
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/sys/backtrace.rs:170:18
[INFO] [stdout]   16:     0x60480f3a17cc - rust_begin_unwind
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:665:5
[INFO] [stdout]   17:     0x60480f329a90 - core::panicking::panic_fmt::h6792bd1b2bf01041
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/panicking.rs:76:14
[INFO] [stdout]   18:     0x60480f329b1c - core::panicking::panic::hbb5c236a846c507c
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/panicking.rs:148:5
[INFO] [stdout]   19:     0x60480f32bbcd - leveldb_rs::util::random::test::test_one_in::h6f4f521e168bfa22
[INFO] [stdout]                                at /opt/rustwide/workdir/src/util/random.rs:52:9
[INFO] [stdout]   20:     0x60480f32bb97 - leveldb_rs::util::random::test::test_one_in::{{closure}}::hdd86924381901d6e
[INFO] [stdout]                                at /opt/rustwide/workdir/src/util/random.rs:51:21
[INFO] [stdout]   21:     0x60480f32a6f6 - core::ops::function::FnOnce::call_once::hc4c4f1c9986e8bf9
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   22:     0x60480f369feb - core::ops::function::FnOnce::call_once::h871bf86719ec9aa4
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x60480f369feb - test::__rust_begin_short_backtrace::h2167df1e2b7d76fd
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/test/src/lib.rs:632:18
[INFO] [stdout]   24:     0x60480f3699d8 - test::run_test_in_process::{{closure}}::h15d92f75a3adfb79
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/test/src/lib.rs:655:60
[INFO] [stdout]   25:     0x60480f3699d8 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::hb6c8955835a8dbbb
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/panic/unwind_safe.rs:272:9
[INFO] [stdout]   26:     0x60480f3699d8 - std::panicking::try::do_call::hc79d0fc888a0bd30
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:557:40
[INFO] [stdout]   27:     0x60480f3699d8 - std::panicking::try::hb8a7878e3a8589d6
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:520:19
[INFO] [stdout]   28:     0x60480f3699d8 - std::panic::catch_unwind::hb8e4600ff0ff5cfa
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panic.rs:358:14
[INFO] [stdout]   29:     0x60480f3699d8 - test::run_test_in_process::hc2900b0b18688dd6
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/test/src/lib.rs:655:27
[INFO] [stdout]   30:     0x60480f3699d8 - test::run_test::{{closure}}::hac2a9cb07be3d48d
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/test/src/lib.rs:576:43
[INFO] [stdout]   31:     0x60480f32d47a - test::run_test::{{closure}}::h4a5b729e66a38cd8
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/test/src/lib.rs:606:41
[INFO] [stdout]   32:     0x60480f32d47a - std::sys::backtrace::__rust_begin_short_backtrace::h0496fb742492f573
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/sys/backtrace.rs:154:18
[INFO] [stdout]   33:     0x60480f330df4 - std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}::hbb6d257c550a54bd
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/thread/mod.rs:561:17
[INFO] [stdout]   34:     0x60480f330df4 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h46696fe4a6832328
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/panic/unwind_safe.rs:272:9
[INFO] [stdout]   35:     0x60480f330df4 - std::panicking::try::do_call::h2625a51b667bfb64
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:557:40
[INFO] [stdout]   36:     0x60480f330df4 - std::panicking::try::hb956a59a1973aa4c
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:520:19
[INFO] [stdout]   37:     0x60480f330df4 - std::panic::catch_unwind::h64f3b9d1067ef6a0
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panic.rs:358:14
[INFO] [stdout]   38:     0x60480f330df4 - std::thread::Builder::spawn_unchecked_::{{closure}}::h42b2841295b6c0b2
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/thread/mod.rs:559:30
[INFO] [stdout]   39:     0x60480f330df4 - core::ops::function::FnOnce::call_once{{vtable.shim}}::h6127de71b8124639
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   40:     0x60480f3a5cbb - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h42f0ba71002a1b2c
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/alloc/src/boxed.rs:1972:9
[INFO] [stdout]   41:     0x60480f3a5cbb - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::had9e47d7a3dcecb8
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/alloc/src/boxed.rs:1972:9
[INFO] [stdout]   42:     0x60480f3a5cbb - std::sys::pal::unix::thread::Thread::new::thread_start::h48cf765408f6f5f2
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/sys/pal/unix/thread.rs:105:17
[INFO] [stdout]   43:     0x7f91799cdac3 - <unknown>
[INFO] [stdout]   44:     0x7f9179a5ea04 - clone
[INFO] [stdout]   45:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- util::random::test::test_skew stdout ----
[INFO] [stdout] thread 'util::random::test::test_skew' panicked at src/util/random.rs:57:9:
[INFO] [stdout] not yet implemented
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x60480f3a024a - std::backtrace_rs::backtrace::libunwind::trace::h8810477743020387
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/../../backtrace/src/backtrace/libunwind.rs:116:5
[INFO] [stdout]    1:     0x60480f3a024a - std::backtrace_rs::backtrace::trace_unsynchronized::h3aa55355dd6c54a6
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
[INFO] [stdout]    2:     0x60480f3a024a - std::sys::backtrace::_print_fmt::h8588b0f62410823f
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/sys/backtrace.rs:66:9
[INFO] [stdout]    3:     0x60480f3a024a - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::h98c26ac25ffe89bb
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/sys/backtrace.rs:39:26
[INFO] [stdout]    4:     0x60480f3c5c83 - core::fmt::rt::Argument::fmt::hf95377f4aebd453b
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/fmt/rt.rs:177:76
[INFO] [stdout]    5:     0x60480f3c5c83 - core::fmt::write::h0dd5f6e2238c7982
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/fmt/mod.rs:1189:21
[INFO] [stdout]    6:     0x60480f39d3e3 - std::io::Write::write_fmt::h03bb0ca26e6faf8c
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/io/mod.rs:1884:15
[INFO] [stdout]    7:     0x60480f3a0092 - std::sys::backtrace::BacktraceLock::print::h5c19c1c038ee186d
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/sys/backtrace.rs:42:9
[INFO] [stdout]    8:     0x60480f3a16cd - std::panicking::default_hook::{{closure}}::h77172f079a1fcb13
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:268:22
[INFO] [stdout]    9:     0x60480f3a14d7 - std::panicking::default_hook::he5f8e3b203ccddba
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:292:9
[INFO] [stdout]   10:     0x60480f3654c7 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h7a3c7b4a1ae77f2f
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/alloc/src/boxed.rs:1986:9
[INFO] [stdout]   11:     0x60480f3654c7 - test::test_main::{{closure}}::hf0d3b69ae9b353d1
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/test/src/lib.rs:134:21
[INFO] [stdout]   12:     0x60480f3a1d78 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h6332e82e7b189abd
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/alloc/src/boxed.rs:1986:9
[INFO] [stdout]   13:     0x60480f3a1d78 - std::panicking::rust_panic_with_hook::h53863d4e9018df39
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:809:13
[INFO] [stdout]   14:     0x60480f3a1b06 - std::panicking::begin_panic_handler::{{closure}}::h67280e6fa0757873
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:667:13
[INFO] [stdout]   15:     0x60480f3a0729 - std::sys::backtrace::__rust_end_short_backtrace::h1dac3f54d6fbbeb2
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/sys/backtrace.rs:170:18
[INFO] [stdout]   16:     0x60480f3a17cc - rust_begin_unwind
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:665:5
[INFO] [stdout]   17:     0x60480f329a90 - core::panicking::panic_fmt::h6792bd1b2bf01041
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/panicking.rs:76:14
[INFO] [stdout]   18:     0x60480f329b1c - core::panicking::panic::hbb5c236a846c507c
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/panicking.rs:148:5
[INFO] [stdout]   19:     0x60480f32bc1d - leveldb_rs::util::random::test::test_skew::he3a46993d7b3dc83
[INFO] [stdout]                                at /opt/rustwide/workdir/src/util/random.rs:57:9
[INFO] [stdout]   20:     0x60480f32bbe7 - leveldb_rs::util::random::test::test_skew::{{closure}}::h02d1d8e9793e587a
[INFO] [stdout]                                at /opt/rustwide/workdir/src/util/random.rs:56:19
[INFO] [stdout]   21:     0x60480f32a666 - core::ops::function::FnOnce::call_once::h6f17c1999e5bc5a1
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   22:     0x60480f369feb - core::ops::function::FnOnce::call_once::h871bf86719ec9aa4
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x60480f369feb - test::__rust_begin_short_backtrace::h2167df1e2b7d76fd
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/test/src/lib.rs:632:18
[INFO] [stdout]   24:     0x60480f3699d8 - test::run_test_in_process::{{closure}}::h15d92f75a3adfb79
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/test/src/lib.rs:655:60
[INFO] [stdout]   25:     0x60480f3699d8 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::hb6c8955835a8dbbb
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/panic/unwind_safe.rs:272:9
[INFO] [stdout]   26:     0x60480f3699d8 - std::panicking::try::do_call::hc79d0fc888a0bd30
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:557:40
[INFO] [stdout]   27:     0x60480f3699d8 - std::panicking::try::hb8a7878e3a8589d6
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:520:19
[INFO] [stdout]   28:     0x60480f3699d8 - std::panic::catch_unwind::hb8e4600ff0ff5cfa
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panic.rs:358:14
[INFO] [stdout]   29:     0x60480f3699d8 - test::run_test_in_process::hc2900b0b18688dd6
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/test/src/lib.rs:655:27
[INFO] [stdout]   30:     0x60480f3699d8 - test::run_test::{{closure}}::hac2a9cb07be3d48d
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/test/src/lib.rs:576:43
[INFO] [stdout]   31:     0x60480f32d47a - test::run_test::{{closure}}::h4a5b729e66a38cd8
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/test/src/lib.rs:606:41
[INFO] [stdout]   32:     0x60480f32d47a - std::sys::backtrace::__rust_begin_short_backtrace::h0496fb742492f573
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/sys/backtrace.rs:154:18
[INFO] [stdout]   33:     0x60480f330df4 - std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}::hbb6d257c550a54bd
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/thread/mod.rs:561:17
[INFO] [stdout]   34:     0x60480f330df4 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h46696fe4a6832328
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/panic/unwind_safe.rs:272:9
[INFO] [stdout]   35:     0x60480f330df4 - std::panicking::try::do_call::h2625a51b667bfb64
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:557:40
[INFO] [stdout]   36:     0x60480f330df4 - std::panicking::try::hb956a59a1973aa4c
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:520:19
[INFO] [stdout]   37:     0x60480f330df4 - std::panic::catch_unwind::h64f3b9d1067ef6a0
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panic.rs:358:14
[INFO] [stdout]   38:     0x60480f330df4 - std::thread::Builder::spawn_unchecked_::{{closure}}::h42b2841295b6c0b2
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/thread/mod.rs:559:30
[INFO] [stdout]   39:     0x60480f330df4 - core::ops::function::FnOnce::call_once{{vtable.shim}}::h6127de71b8124639
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   40:     0x60480f3a5cbb - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h42f0ba71002a1b2c
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/alloc/src/boxed.rs:1972:9
[INFO] [stdout]   41:     0x60480f3a5cbb - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::had9e47d7a3dcecb8
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/alloc/src/boxed.rs:1972:9
[INFO] [stdout]   42:     0x60480f3a5cbb - std::sys::pal::unix::thread::Thread::new::thread_start::h48cf765408f6f5f2
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/sys/pal/unix/thread.rs:105:17
[INFO] [stdout]   43:     0x7f91799cdac3 - <unknown>
[INFO] [stdout]   44:     0x7f9179a5ea04 - clone
[INFO] [stdout]   45:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- util::random::test::test_random stdout ----
[INFO] [stdout] thread 'util::random::test::test_random' panicked at src/util/random.rs:42:9:
[INFO] [stdout] not yet implemented
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x60480f3a024a - std::backtrace_rs::backtrace::libunwind::trace::h8810477743020387
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/../../backtrace/src/backtrace/libunwind.rs:116:5
[INFO] [stdout]    1:     0x60480f3a024a - std::backtrace_rs::backtrace::trace_unsynchronized::h3aa55355dd6c54a6
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
[INFO] [stdout]    2:     0x60480f3a024a - std::sys::backtrace::_print_fmt::h8588b0f62410823f
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/sys/backtrace.rs:66:9
[INFO] [stdout]    3:     0x60480f3a024a - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::h98c26ac25ffe89bb
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/sys/backtrace.rs:39:26
[INFO] [stdout]    4:     0x60480f3c5c83 - core::fmt::rt::Argument::fmt::hf95377f4aebd453b
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/fmt/rt.rs:177:76
[INFO] [stdout]    5:     0x60480f3c5c83 - core::fmt::write::h0dd5f6e2238c7982
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/fmt/mod.rs:1189:21
[INFO] [stdout]    6:     0x60480f39d3e3 - std::io::Write::write_fmt::h03bb0ca26e6faf8c
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/io/mod.rs:1884:15
[INFO] [stdout]    7:     0x60480f3a0092 - std::sys::backtrace::BacktraceLock::print::h5c19c1c038ee186d
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/sys/backtrace.rs:42:9
[INFO] [stdout]    8:     0x60480f3a16cd - std::panicking::default_hook::{{closure}}::h77172f079a1fcb13
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:268:22
[INFO] [stdout]    9:     0x60480f3a14d7 - std::panicking::default_hook::he5f8e3b203ccddba
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:292:9
[INFO] [stdout]   10:     0x60480f3654c7 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h7a3c7b4a1ae77f2f
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/alloc/src/boxed.rs:1986:9
[INFO] [stdout]   11:     0x60480f3654c7 - test::test_main::{{closure}}::hf0d3b69ae9b353d1
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/test/src/lib.rs:134:21
[INFO] [stdout]   12:     0x60480f3a1d78 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h6332e82e7b189abd
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/alloc/src/boxed.rs:1986:9
[INFO] [stdout]   13:     0x60480f3a1d78 - std::panicking::rust_panic_with_hook::h53863d4e9018df39
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:809:13
[INFO] [stdout]   14:     0x60480f3a1b06 - std::panicking::begin_panic_handler::{{closure}}::h67280e6fa0757873
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:667:13
[INFO] [stdout]   15:     0x60480f3a0729 - std::sys::backtrace::__rust_end_short_backtrace::h1dac3f54d6fbbeb2
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/sys/backtrace.rs:170:18
[INFO] [stdout]   16:     0x60480f3a17cc - rust_begin_unwind
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:665:5
[INFO] [stdout]   17:     0x60480f329a90 - core::panicking::panic_fmt::h6792bd1b2bf01041
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/panicking.rs:76:14
[INFO] [stdout]   18:     0x60480f329b1c - core::panicking::panic::hbb5c236a846c507c
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/panicking.rs:148:5
[INFO] [stdout]   19:     0x60480f32bb2d - leveldb_rs::util::random::test::test_random::hdaca3a7deec00811
[INFO] [stdout]                                at /opt/rustwide/workdir/src/util/random.rs:42:9
[INFO] [stdout]   20:     0x60480f32baf7 - leveldb_rs::util::random::test::test_random::{{closure}}::hb5e744bcdff86bcc
[INFO] [stdout]                                at /opt/rustwide/workdir/src/util/random.rs:41:21
[INFO] [stdout]   21:     0x60480f32a626 - core::ops::function::FnOnce::call_once::h6509a3beef9e5295
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   22:     0x60480f369feb - core::ops::function::FnOnce::call_once::h871bf86719ec9aa4
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x60480f369feb - test::__rust_begin_short_backtrace::h2167df1e2b7d76fd
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/test/src/lib.rs:632:18
[INFO] [stdout]   24:     0x60480f3699d8 - test::run_test_in_process::{{closure}}::h15d92f75a3adfb79
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/test/src/lib.rs:655:60
[INFO] [stdout]   25:     0x60480f3699d8 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::hb6c8955835a8dbbb
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/panic/unwind_safe.rs:272:9
[INFO] [stdout]   26:     0x60480f3699d8 - std::panicking::try::do_call::hc79d0fc888a0bd30
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:557:40
[INFO] [stdout]   27:     0x60480f3699d8 - std::panicking::try::hb8a7878e3a8589d6
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:520:19
[INFO] [stdout]   28:     0x60480f3699d8 - std::panic::catch_unwind::hb8e4600ff0ff5cfa
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panic.rs:358:14
[INFO] [stdout]   29:     0x60480f3699d8 - test::run_test_in_process::hc2900b0b18688dd6
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/test/src/lib.rs:655:27
[INFO] [stdout]   30:     0x60480f3699d8 - test::run_test::{{closure}}::hac2a9cb07be3d48d
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/test/src/lib.rs:576:43
[INFO] [stdout]   31:     0x60480f32d47a - test::run_test::{{closure}}::h4a5b729e66a38cd8
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/test/src/lib.rs:606:41
[INFO] [stdout]   32:     0x60480f32d47a - std::sys::backtrace::__rust_begin_short_backtrace::h0496fb742492f573
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/sys/backtrace.rs:154:18
[INFO] [stdout]   33:     0x60480f330df4 - std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}::hbb6d257c550a54bd
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/thread/mod.rs:561:17
[INFO] [stdout]   34:     0x60480f330df4 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h46696fe4a6832328
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/panic/unwind_safe.rs:272:9
[INFO] [stdout]   35:     0x60480f330df4 - std::panicking::try::do_call::h2625a51b667bfb64
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:557:40
[INFO] [stdout]   36:     0x60480f330df4 - std::panicking::try::hb956a59a1973aa4c
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:520:19
[INFO] [stdout]   37:     0x60480f330df4 - std::panic::catch_unwind::h64f3b9d1067ef6a0
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panic.rs:358:14
[INFO] [stdout]   38:     0x60480f330df4 - std::thread::Builder::spawn_unchecked_::{{closure}}::h42b2841295b6c0b2
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/thread/mod.rs:559:30
[INFO] [stdout]   39:     0x60480f330df4 - core::ops::function::FnOnce::call_once{{vtable.shim}}::h6127de71b8124639
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   40:     0x60480f3a5cbb - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h42f0ba71002a1b2c
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/alloc/src/boxed.rs:1972:9
[INFO] [stdout]   41:     0x60480f3a5cbb - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::had9e47d7a3dcecb8
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/alloc/src/boxed.rs:1972:9
[INFO] [stdout]   42:     0x60480f3a5cbb - std::sys::pal::unix::thread::Thread::new::thread_start::h48cf765408f6f5f2
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/sys/pal/unix/thread.rs:105:17
[INFO] [stdout]   43:     0x7f91799cdac3 - <unknown>
[INFO] [stdout]   44:     0x7f9179a5ea04 - clone
[INFO] [stdout]   45:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- util::random::test::test_uniform stdout ----
[INFO] [stdout] thread 'util::random::test::test_uniform' panicked at src/util/random.rs:47:9:
[INFO] [stdout] not yet implemented
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x60480f3a024a - std::backtrace_rs::backtrace::libunwind::trace::h8810477743020387
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/../../backtrace/src/backtrace/libunwind.rs:116:5
[INFO] [stdout]    1:     0x60480f3a024a - std::backtrace_rs::backtrace::trace_unsynchronized::h3aa55355dd6c54a6
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
[INFO] [stdout]    2:     0x60480f3a024a - std::sys::backtrace::_print_fmt::h8588b0f62410823f
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/sys/backtrace.rs:66:9
[INFO] [stdout]    3:     0x60480f3a024a - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::h98c26ac25ffe89bb
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/sys/backtrace.rs:39:26
[INFO] [stdout]    4:     0x60480f3c5c83 - core::fmt::rt::Argument::fmt::hf95377f4aebd453b
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/fmt/rt.rs:177:76
[INFO] [stdout]    5:     0x60480f3c5c83 - core::fmt::write::h0dd5f6e2238c7982
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/fmt/mod.rs:1189:21
[INFO] [stdout]    6:     0x60480f39d3e3 - std::io::Write::write_fmt::h03bb0ca26e6faf8c
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/io/mod.rs:1884:15
[INFO] [stdout]    7:     0x60480f3a0092 - std::sys::backtrace::BacktraceLock::print::h5c19c1c038ee186d
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/sys/backtrace.rs:42:9
[INFO] [stdout]    8:     0x60480f3a16cd - std::panicking::default_hook::{{closure}}::h77172f079a1fcb13
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:268:22
[INFO] [stdout]    9:     0x60480f3a14d7 - std::panicking::default_hook::he5f8e3b203ccddba
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:292:9
[INFO] [stdout]   10:     0x60480f3654c7 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h7a3c7b4a1ae77f2f
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/alloc/src/boxed.rs:1986:9
[INFO] [stdout]   11:     0x60480f3654c7 - test::test_main::{{closure}}::hf0d3b69ae9b353d1
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/test/src/lib.rs:134:21
[INFO] [stdout]   12:     0x60480f3a1d78 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h6332e82e7b189abd
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/alloc/src/boxed.rs:1986:9
[INFO] [stdout]   13:     0x60480f3a1d78 - std::panicking::rust_panic_with_hook::h53863d4e9018df39
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:809:13
[INFO] [stdout]   14:     0x60480f3a1b06 - std::panicking::begin_panic_handler::{{closure}}::h67280e6fa0757873
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:667:13
[INFO] [stdout]   15:     0x60480f3a0729 - std::sys::backtrace::__rust_end_short_backtrace::h1dac3f54d6fbbeb2
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/sys/backtrace.rs:170:18
[INFO] [stdout]   16:     0x60480f3a17cc - rust_begin_unwind
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:665:5
[INFO] [stdout]   17:     0x60480f329a90 - core::panicking::panic_fmt::h6792bd1b2bf01041
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/panicking.rs:76:14
[INFO] [stdout]   18:     0x60480f329b1c - core::panicking::panic::hbb5c236a846c507c
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/panicking.rs:148:5
[INFO] [stdout]   19:     0x60480f32bb7d - leveldb_rs::util::random::test::test_uniform::ha054423925b74345
[INFO] [stdout]                                at /opt/rustwide/workdir/src/util/random.rs:47:9
[INFO] [stdout]   20:     0x60480f32bb47 - leveldb_rs::util::random::test::test_uniform::{{closure}}::hbf954a2e8c5acd8d
[INFO] [stdout]                                at /opt/rustwide/workdir/src/util/random.rs:46:22
[INFO] [stdout]   21:     0x60480f32a5e6 - core::ops::function::FnOnce::call_once::h59ae8d99b771a0ca
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   22:     0x60480f369feb - core::ops::function::FnOnce::call_once::h871bf86719ec9aa4
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x60480f369feb - test::__rust_begin_short_backtrace::h2167df1e2b7d76fd
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/test/src/lib.rs:632:18
[INFO] [stdout]   24:     0x60480f3699d8 - test::run_test_in_process::{{closure}}::h15d92f75a3adfb79
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/test/src/lib.rs:655:60
[INFO] [stdout]   25:     0x60480f3699d8 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::hb6c8955835a8dbbb
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/panic/unwind_safe.rs:272:9
[INFO] [stdout]   26:     0x60480f3699d8 - std::panicking::try::do_call::hc79d0fc888a0bd30
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:557:40
[INFO] [stdout]   27:     0x60480f3699d8 - std::panicking::try::hb8a7878e3a8589d6
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:520:19
[INFO] [stdout]   28:     0x60480f3699d8 - std::panic::catch_unwind::hb8e4600ff0ff5cfa
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panic.rs:358:14
[INFO] [stdout]   29:     0x60480f3699d8 - test::run_test_in_process::hc2900b0b18688dd6
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/test/src/lib.rs:655:27
[INFO] [stdout]   30:     0x60480f3699d8 - test::run_test::{{closure}}::hac2a9cb07be3d48d
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/test/src/lib.rs:576:43
[INFO] [stdout]   31:     0x60480f32d47a - test::run_test::{{closure}}::h4a5b729e66a38cd8
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/test/src/lib.rs:606:41
[INFO] [stdout]   32:     0x60480f32d47a - std::sys::backtrace::__rust_begin_short_backtrace::h0496fb742492f573
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/sys/backtrace.rs:154:18
[INFO] [stdout]   33:     0x60480f330df4 - std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}::hbb6d257c550a54bd
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/thread/mod.rs:561:17
[INFO] [stdout]   34:     0x60480f330df4 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h46696fe4a6832328
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/panic/unwind_safe.rs:272:9
[INFO] [stdout]   35:     0x60480f330df4 - std::panicking::try::do_call::h2625a51b667bfb64
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:557:40
[INFO] [stdout]   36:     0x60480f330df4 - std::panicking::try::hb956a59a1973aa4c
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panicking.rs:520:19
[INFO] [stdout]   37:     0x60480f330df4 - std::panic::catch_unwind::h64f3b9d1067ef6a0
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/panic.rs:358:14
[INFO] [stdout]   38:     0x60480f330df4 - std::thread::Builder::spawn_unchecked_::{{closure}}::h42b2841295b6c0b2
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/thread/mod.rs:559:30
[INFO] [stdout]   39:     0x60480f330df4 - core::ops::function::FnOnce::call_once{{vtable.shim}}::h6127de71b8124639
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   40:     0x60480f3a5cbb - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h42f0ba71002a1b2c
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/alloc/src/boxed.rs:1972:9
[INFO] [stdout]   41:     0x60480f3a5cbb - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::had9e47d7a3dcecb8
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/alloc/src/boxed.rs:1972:9
[INFO] [stdout]   42:     0x60480f3a5cbb - std::sys::pal::unix::thread::Thread::new::thread_start::h48cf765408f6f5f2
[INFO] [stdout]                                at /rustc/202008a1b8de96d2e5b6bc02d379db03a877d34d/library/std/src/sys/pal/unix/thread.rs:105:17
[INFO] [stdout]   43:     0x7f91799cdac3 - <unknown>
[INFO] [stdout]   44:     0x7f9179a5ea04 - clone
[INFO] [stdout]   45:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     util::random::test::test_one_in
[INFO] [stdout]     util::random::test::test_random
[INFO] [stdout]     util::random::test::test_skew
[INFO] [stdout]     util::random::test::test_uniform
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 2 passed; 4 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `--lib`
[INFO] running `Command { std: "docker" "inspect" "fec643331184eb7020fa577a8fdde7c33b80a25a51a1528f5beb05e36d2173e7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "fec643331184eb7020fa577a8fdde7c33b80a25a51a1528f5beb05e36d2173e7", kill_on_drop: false }`
[INFO] [stdout] fec643331184eb7020fa577a8fdde7c33b80a25a51a1528f5beb05e36d2173e7
