[INFO] cloning repository https://github.com/Myster987/carcinusdb
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Myster987/carcinusdb" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FMyster987%2Fcarcinusdb", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FMyster987%2Fcarcinusdb'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] deafecb2f8117ddee77bc838c4bee5ee5fddd7be
[INFO] testing Myster987/carcinusdb against master#2fd6efc32704647e64d3d646d21c4c68eae100e4 for pr-149852-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FMyster987%2Fcarcinusdb" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/Myster987/carcinusdb
[INFO] finished tweaking git repo https://github.com/Myster987/carcinusdb
[INFO] tweaked toml for git repo https://github.com/Myster987/carcinusdb written to /workspace/builds/worker-6-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Myster987/carcinusdb on toolchain 2fd6efc32704647e64d3d646d21c4c68eae100e4
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+2fd6efc32704647e64d3d646d21c4c68eae100e4" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+2fd6efc32704647e64d3d646d21c4c68eae100e4" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 117 packages to latest Rust 1.94.0-nightly compatible versions
[INFO] [stderr]       Adding criterion v0.5.1 (available: v0.8.1)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+2fd6efc32704647e64d3d646d21c4c68eae100e4" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded time-core v0.1.7
[INFO] [stderr]   Downloaded ciborium v0.2.2
[INFO] [stderr]   Downloaded redox_syscall v0.5.18
[INFO] [stderr]   Downloaded is-terminal v0.4.17
[INFO] [stderr]   Downloaded winapi-util v0.1.11
[INFO] [stderr]   Downloaded crossbeam v0.8.4
[INFO] [stderr]   Downloaded criterion-plot v0.5.0
[INFO] [stderr]   Downloaded dotenvy v0.15.7
[INFO] [stderr]   Downloaded deranged v0.5.5
[INFO] [stderr]   Downloaded rayon-core v1.13.0
[INFO] [stderr]   Downloaded plotters v0.3.7
[INFO] [stderr]   Downloaded parking_lot_core v0.9.12
[INFO] [stderr]   Downloaded windows-targets v0.53.5
[INFO] [stderr]   Downloaded windows_i686_gnullvm v0.53.1
[INFO] [stderr]   Downloaded criterion v0.5.1
[INFO] [stderr]   Downloaded hermit-abi v0.5.2
[INFO] [stderr]   Downloaded windows_x86_64_gnu v0.53.1
[INFO] [stderr]   Downloaded ciborium-io v0.2.2
[INFO] [stderr]   Downloaded regex-automata v0.4.13
[INFO] [stderr]   Downloaded half v2.7.1
[INFO] [stderr]   Downloaded tokio-macros v2.6.0
[INFO] [stderr]   Downloaded regex v1.12.2
[INFO] [stderr]   Downloaded walkdir v2.5.0
[INFO] [stderr]   Downloaded anes v0.1.6
[INFO] [stderr]   Downloaded dashmap v6.1.0
[INFO] [stderr]   Downloaded crossbeam-epoch v0.9.18
[INFO] [stderr]   Downloaded signal-hook-registry v1.4.8
[INFO] [stderr]   Downloaded thiserror v2.0.17
[INFO] [stderr]   Downloaded crossbeam-queue v0.3.12
[INFO] [stderr]   Downloaded parking_lot v0.12.5
[INFO] [stderr]   Downloaded bumpalo v3.19.1
[INFO] [stderr]   Downloaded crossbeam-deque v0.8.6
[INFO] [stderr]   Downloaded oorandom v11.1.5
[INFO] [stderr]   Downloaded wasm-bindgen-macro v0.2.108
[INFO] [stderr]   Downloaded wasm-bindgen v0.2.108
[INFO] [stderr]   Downloaded windows_i686_gnullvm v0.52.6
[INFO] [stderr]   Downloaded windows-targets v0.52.6
[INFO] [stderr]   Downloaded num-conv v0.1.0
[INFO] [stderr]   Downloaded windows-link v0.2.1
[INFO] [stderr]   Downloaded plotters-backend v0.3.7
[INFO] [stderr]   Downloaded lock_api v0.4.14
[INFO] [stderr]   Downloaded web-sys v0.3.85
[INFO] [stderr]   Downloaded crunchy v0.2.4
[INFO] [stderr]   Downloaded thiserror-impl v2.0.17
[INFO] [stderr]   Downloaded aho-corasick v1.1.4
[INFO] [stderr]   Downloaded ciborium-ll v0.2.2
[INFO] [stderr]   Downloaded powerfmt v0.2.0
[INFO] [stderr]   Downloaded windows_x86_64_msvc v0.52.6
[INFO] [stderr]   Downloaded plotters-svg v0.3.7
[INFO] [stderr]   Downloaded windows_x86_64_msvc v0.53.1
[INFO] [stderr]   Downloaded zmij v1.0.14
[INFO] [stderr]   Downloaded time-macros v0.2.25
[INFO] [stderr]   Downloaded num_threads v0.1.7
[INFO] [stderr]   Downloaded wasi v0.11.1+wasi-snapshot-preview1
[INFO] [stderr]   Downloaded windows_aarch64_msvc v0.53.1
[INFO] [stderr]   Downloaded simple_logger v5.1.0
[INFO] [stderr]   Downloaded windows_i686_gnu v0.53.1
[INFO] [stderr]   Downloaded rustversion v1.0.22
[INFO] [stderr]   Downloaded either v1.15.0
[INFO] [stderr]   Downloaded wasm-bindgen-macro-support v0.2.108
[INFO] [stderr]   Downloaded zerocopy v0.8.33
[INFO] [stderr]   Downloaded hashbrown v0.14.5
[INFO] [stderr]   Downloaded rayon v1.11.0
[INFO] [stderr]   Downloaded serde_json v1.0.149
[INFO] [stderr]   Downloaded tinytemplate v1.2.1
[INFO] [stderr]   Downloaded time v0.3.45
[INFO] [stderr]   Downloaded windows_x86_64_gnullvm v0.52.6
[INFO] [stderr]   Downloaded cast v0.3.0
[INFO] [stderr]   Downloaded windows_i686_msvc v0.52.6
[INFO] [stderr]   Downloaded windows_aarch64_gnullvm v0.53.1
[INFO] [stderr]   Downloaded regex-syntax v0.8.8
[INFO] [stderr]   Downloaded windows_aarch64_gnullvm v0.52.6
[INFO] [stderr]   Downloaded windows_aarch64_msvc v0.52.6
[INFO] [stderr]   Downloaded windows_i686_msvc v0.53.1
[INFO] [stderr]   Downloaded same-file v1.0.6
[INFO] [stderr]   Downloaded js-sys v0.3.85
[INFO] [stderr]   Downloaded windows_i686_gnu v0.52.6
[INFO] [stderr]   Downloaded windows_x86_64_gnullvm v0.53.1
[INFO] [stderr]   Downloaded windows_x86_64_gnu v0.52.6
[INFO] [stderr]   Downloaded zerocopy-derive v0.8.33
[INFO] [stderr]   Downloaded windows-sys v0.59.0
[INFO] [stderr]   Downloaded windows-sys v0.60.2
[INFO] [stderr]   Downloaded wasm-bindgen-shared v0.2.108
[INFO] [stderr]   Downloaded windows-sys v0.61.2
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+2fd6efc32704647e64d3d646d21c4c68eae100e4" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] aa9aa9f6f31d40de3ca6365fee6287ae8793fa3482dd25f27a806f882dc52174
[INFO] running `Command { std: "docker" "start" "-a" "aa9aa9f6f31d40de3ca6365fee6287ae8793fa3482dd25f27a806f882dc52174", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "aa9aa9f6f31d40de3ca6365fee6287ae8793fa3482dd25f27a806f882dc52174", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "aa9aa9f6f31d40de3ca6365fee6287ae8793fa3482dd25f27a806f882dc52174", kill_on_drop: false }`
[INFO] [stdout] aa9aa9f6f31d40de3ca6365fee6287ae8793fa3482dd25f27a806f882dc52174
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+2fd6efc32704647e64d3d646d21c4c68eae100e4" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 202b44a5d37721be459efef0d9085309566c1f78e2fab45072b698fd53f9e318
[INFO] running `Command { std: "docker" "start" "-a" "202b44a5d37721be459efef0d9085309566c1f78e2fab45072b698fd53f9e318", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.180
[INFO] [stderr]    Compiling proc-macro2 v1.0.105
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]    Compiling quote v1.0.43
[INFO] [stderr]    Compiling unicode-ident v1.0.22
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling scopeguard v1.2.0
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling cfg-if v1.0.4
[INFO] [stderr]    Compiling time-core v0.1.7
[INFO] [stderr]    Compiling num-conv v0.1.0
[INFO] [stderr]    Compiling powerfmt v0.2.0
[INFO] [stderr]    Compiling num_threads v0.1.7
[INFO] [stderr]    Compiling itoa v1.0.17
[INFO] [stderr]    Compiling anyhow v1.0.100
[INFO] [stderr]    Compiling thiserror v2.0.17
[INFO] [stderr]    Compiling lock_api v0.4.14
[INFO] [stderr]    Compiling colored v3.0.0
[INFO] [stderr]    Compiling bytes v1.11.0
[INFO] [stderr]    Compiling once_cell v1.21.3
[INFO] [stderr]    Compiling time-macros v0.2.25
[INFO] [stderr]    Compiling hashbrown v0.14.5
[INFO] [stderr]    Compiling log v0.4.29
[INFO] [stderr]    Compiling pin-project-lite v0.2.16
[INFO] [stderr]    Compiling deranged v0.5.5
[INFO] [stderr]    Compiling dotenvy v0.15.7
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.18
[INFO] [stderr]    Compiling crossbeam-channel v0.5.15
[INFO] [stderr]    Compiling crossbeam-queue v0.3.12
[INFO] [stderr]    Compiling syn v2.0.114
[INFO] [stderr]    Compiling crossbeam-deque v0.8.6
[INFO] [stderr]    Compiling crossbeam v0.8.4
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling mio v1.1.1
[INFO] [stderr]    Compiling socket2 v0.6.1
[INFO] [stderr]    Compiling time v0.3.45
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling dashmap v6.1.0
[INFO] [stderr]    Compiling simple_logger v5.1.0
[INFO] [stderr]    Compiling tokio-macros v2.6.0
[INFO] [stderr]    Compiling thiserror-impl v2.0.17
[INFO] [stderr]    Compiling tokio v1.49.0
[INFO] [stderr]    Compiling carcinusdb v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `borrow::Cow`
[INFO] [stdout]  --> src/storage/page.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 |     borrow::Cow,
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::error::DatabaseResult`
[INFO] [stdout]  --> src/tcp/server/connection.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::error::DatabaseResult;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AtomicU32` and `Ordering`
[INFO] [stdout]  --> src/utils/io.rs:7:20
[INFO] [stdout]   |
[INFO] [stdout] 7 |     sync::atomic::{AtomicU32, Ordering},
[INFO] [stdout]   |                    ^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]   --> src/database/mod.rs:43:5
[INFO] [stdout]    |
[INFO] [stdout] 38 | /     loop {
[INFO] [stdout] 39 | |         let conn = tcp_server.accept_connection().await?;
[INFO] [stdout] 40 | |         tokio::spawn(async move { handle_connection(conn) });
[INFO] [stdout] 41 | |     }
[INFO] [stdout]    | |_____- any code following this expression is unreachable
[INFO] [stdout] 42 |
[INFO] [stdout] 43 |       Ok(())
[INFO] [stdout]    |       ^^^^^^ unreachable expression
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `input` is never read
[INFO] [stdout]   --> src/sql/parser.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub struct Parser<'a> {
[INFO] [stdout]    |            ------ field in this struct
[INFO] [stdout] 27 |     input: &'a str,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `previous`, `current`, `expect_one_of`, and `parse_constrains` are never used
[INFO] [stdout]    --> src/sql/parser.rs:62:8
[INFO] [stdout]     |
[INFO] [stdout]  37 | impl<'a> Parser<'a> {
[INFO] [stdout]     | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  62 |     fn previous(&self) -> Option<&Token> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  66 |     fn current(&self) -> Option<&Token> {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 173 |     fn expect_one_of<'k, K>(&mut self, keywords: &'k K) -> sql::Result<Keyword>
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 371 |     fn parse_constrains(&mut self) -> sql::Result<Constrains> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `kind` is never read
[INFO] [stdout]   --> src/sql/types/text.rs:72:5
[INFO] [stdout]    |
[INFO] [stdout] 70 | pub struct TextRef<'a> {
[INFO] [stdout]    |            ------- field in this struct
[INFO] [stdout] 71 |     value: &'a str,
[INFO] [stdout] 72 |     kind: TextKind,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TextRef` 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: method `put` is never used
[INFO] [stdout]   --> src/storage/buffer_pool.rs:96:8
[INFO] [stdout]    |
[INFO] [stdout] 66 | impl LocalBufferPool {
[INFO] [stdout]    | -------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 96 |     fn put(&mut self, mem: NonNull<u8>) {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Semaphore` is never constructed
[INFO] [stdout]   --> src/storage/wal/locks.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct Semaphore {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `acquire`, and `release` are never used
[INFO] [stdout]   --> src/storage/wal/locks.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl Semaphore {
[INFO] [stdout]    | -------------- associated items in this implementation
[INFO] [stdout] 21 |     pub fn new(initial: usize) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 29 |     pub fn acquire(&self) {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |     pub fn release(&self) {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `min_active_frame` is never used
[INFO] [stdout]   --> src/storage/wal/locks.rs:67:12
[INFO] [stdout]    |
[INFO] [stdout] 55 | impl<const READERS_NUM: usize> ReadersPool<READERS_NUM> {
[INFO] [stdout]    | ------------------------------------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 67 |     pub fn min_active_frame(&self) -> FrameNumber {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/database/mod.rs:107:9
[INFO] [stdout]     |
[INFO] [stdout] 107 | /         self.freelist_pages
[INFO] [stdout] 108 | |             .fetch_update(Ordering::Acquire, Ordering::Acquire, |val| {
[INFO] [stdout] 109 | |                 Some(val.saturating_sub(sub))
[INFO] [stdout] 110 | |             });
[INFO] [stdout]     | |______________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 107 |         let _ = self.freelist_pages
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/storage/page.rs:291:24
[INFO] [stdout]     |
[INFO] [stdout] 291 |     pub fn as_io_slice(&self) -> IoSlice {
[INFO] [stdout]     |                        ^^^^^     ^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 291 |     pub fn as_io_slice(&self) -> IoSlice<'_> {
[INFO] [stdout]     |                                         ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/storage/page.rs:344:23
[INFO] [stdout]     |
[INFO] [stdout] 344 |     pub fn slot_array(&self) -> SlotArray {
[INFO] [stdout]     |                       ^^^^^     ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 344 |     pub fn slot_array(&self) -> SlotArray<'_> {
[INFO] [stdout]     |                                          ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/storage/page.rs:348:27
[INFO] [stdout]     |
[INFO] [stdout] 348 |     pub fn freeblock_list(&self) -> FreeblockList {
[INFO] [stdout]     |                           ^^^^^     ^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 348 |     pub fn freeblock_list(&self) -> FreeblockList<'_> {
[INFO] [stdout]     |                                                  ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/storage/page.rs:419:27
[INFO] [stdout]     |
[INFO] [stdout] 419 |     fn get_cell_at_offset(&self, offset: u16) -> storage::Result<BTreeCellRef> {
[INFO] [stdout]     |                           ^^^^^ the lifetime is elided here      ^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 419 |     fn get_cell_at_offset(&self, offset: u16) -> storage::Result<BTreeCellRef<'_>> {
[INFO] [stdout]     |                                                                              ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/storage/wal/mod.rs:472:26
[INFO] [stdout]     |
[INFO] [stdout] 472 |     pub fn begin_read_tx(&mut self) -> storage::Result<ReadGuard<READERS_NUM>> {
[INFO] [stdout]     |                          ^^^^^^^^^                     ^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                          |
[INFO] [stdout]     |                          the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 472 |     pub fn begin_read_tx(&mut self) -> storage::Result<ReadGuard<'_, READERS_NUM>> {
[INFO] [stdout]     |                                                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/storage/wal/mod.rs:488:27
[INFO] [stdout]     |
[INFO] [stdout] 488 |     pub fn begin_write_tx(&mut self) -> storage::Result<WriteGuard> {
[INFO] [stdout]     |                           ^^^^^^^^^                     ^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 488 |     pub fn begin_write_tx(&mut self) -> storage::Result<WriteGuard<'_>> {
[INFO] [stdout]     |                                                                   ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `borrow::Cow`
[INFO] [stdout]  --> src/storage/page.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 |     borrow::Cow,
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::error::DatabaseResult`
[INFO] [stdout]  --> src/tcp/server/connection.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::error::DatabaseResult;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AtomicU32` and `Ordering`
[INFO] [stdout]  --> src/utils/io.rs:7:20
[INFO] [stdout]   |
[INFO] [stdout] 7 |     sync::atomic::{AtomicU32, Ordering},
[INFO] [stdout]   |                    ^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]   --> src/database/mod.rs:43:5
[INFO] [stdout]    |
[INFO] [stdout] 38 | /     loop {
[INFO] [stdout] 39 | |         let conn = tcp_server.accept_connection().await?;
[INFO] [stdout] 40 | |         tokio::spawn(async move { handle_connection(conn) });
[INFO] [stdout] 41 | |     }
[INFO] [stdout]    | |_____- any code following this expression is unreachable
[INFO] [stdout] 42 |
[INFO] [stdout] 43 |       Ok(())
[INFO] [stdout]    |       ^^^^^^ unreachable expression
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `GLOBAL_INIT_POOL_SIZE` is never used
[INFO] [stdout]   --> src/database/mod.rs:25:11
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub const GLOBAL_INIT_POOL_SIZE: usize = 250;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LOCAL_INIT_POOL_SIZE` is never used
[INFO] [stdout]   --> src/database/mod.rs:26:11
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub const LOCAL_INIT_POOL_SIZE: usize = 40;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MemDatabaseHeader` is never constructed
[INFO] [stdout]   --> src/database/mod.rs:52:12
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub struct MemDatabaseHeader {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/database/mod.rs:64:12
[INFO] [stdout]     |
[INFO] [stdout]  63 | impl MemDatabaseHeader {
[INFO] [stdout]     | ---------------------- methods in this implementation
[INFO] [stdout]  64 |     pub fn into_raw_header(&self) -> DatabaseHeader {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  77 |     pub fn get_change_counter(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  81 |     pub fn get_database_size(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  85 |     pub fn get_first_freelist_page(&self) -> PageNumber {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  89 |     pub fn get_freelist_pages(&self) -> PageNumber {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  93 |     pub fn increment_change_counter(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  97 |     pub fn add_database_size(&self, add: u32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 101 |     pub fn set_first_freelist_page(&self, page_number: PageNumber) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 106 |     pub fn sub_freelist_pages(&self, sub: u32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Database` is never constructed
[INFO] [stdout]    --> src/database/mod.rs:129:12
[INFO] [stdout]     |
[INFO] [stdout] 129 | pub struct Database {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `pager` are never used
[INFO] [stdout]    --> src/database/mod.rs:139:12
[INFO] [stdout]     |
[INFO] [stdout] 138 | impl Database {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] 139 |     pub fn new(db_file_path: PathBuf) -> DatabaseResult<Self> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 206 |     pub fn pager(&self) -> Pager {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `InvalidBytes`, `InvalidHostname`, `InvalidFilePath`, `InvalidPort`, and `Unknown` are never constructed
[INFO] [stdout]   --> src/error.rs:8:5
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub enum DatabaseError {
[INFO] [stdout]    |          ------------- variants in this enum
[INFO] [stdout]  7 |     #[error("invalid bytes")]
[INFO] [stdout]  8 |     InvalidBytes,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 12 |     InvalidHostname { msg: String, hostname: String },
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 13 |     #[error("provided path is not file: {0}")]
[INFO] [stdout] 14 |     InvalidFilePath(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 15 |     #[error("invalid port number: {0}")]
[INFO] [stdout] 16 |     InvalidPort(String),
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 35 |     Unknown,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DatabaseError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `DISK_BLOCK_SIZE` is never used
[INFO] [stdout]   --> src/os.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub static DISK_BLOCK_SIZE: LazyLock<usize> = LazyLock::new(|| {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `FileSystemBlockSize` is never used
[INFO] [stdout]   --> src/os.rs:15:11
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub trait FileSystemBlockSize {
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Open` is never used
[INFO] [stdout]   --> src/os.rs:19:11
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub trait Open {
[INFO] [stdout]    |           ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Fs` is never constructed
[INFO] [stdout]   --> src/os.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct Fs;
[INFO] [stdout]    |            ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `OpenOptions` is never constructed
[INFO] [stdout]   --> src/os.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct OpenOptions {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]   --> src/os.rs:45:12
[INFO] [stdout]    |
[INFO] [stdout] 43 | impl OpenOptions {
[INFO] [stdout]    | ---------------- methods in this implementation
[INFO] [stdout] 44 |     /// disable OS
[INFO] [stdout] 45 |     pub fn bypass_cache(mut self, bypass_cache: bool) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 51 |     pub fn sync_on_write(mut self, sync_on_write: bool) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 57 |     pub fn create(mut self, create: bool) -> Self {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 63 |     pub fn read(mut self, read: bool) -> Self {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 69 |     pub fn write(mut self, write: bool) -> Self {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 77 |     pub fn lock(mut self, lock: bool) -> Self {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 83 |     pub fn truncate(mut self, truncate: bool) -> Self {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Result` is never used
[INFO] [stdout]   --> src/sql/mod.rs:12:10
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub type Result<T> = std::result::Result<T, Error>;
[INFO] [stdout]    |          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Error` is never used
[INFO] [stdout]   --> src/sql/mod.rs:15:10
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub enum Error {
[INFO] [stdout]    |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `StatementParser` is never used
[INFO] [stdout]   --> src/sql/parser.rs:13:11
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub trait StatementParser {
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Parser` is never constructed
[INFO] [stdout]   --> src/sql/parser.rs:26:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub struct Parser<'a> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/sql/parser.rs:43:12
[INFO] [stdout]     |
[INFO] [stdout]  37 | impl<'a> Parser<'a> {
[INFO] [stdout]     | ------------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  43 |     pub fn new(input: &'a str) -> sql::Result<Self> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  54 |     fn validate(token_stream: Vec<sql::Result<Token>>) -> sql::Result<Vec<Token>> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  58 |     fn token_at(&self, idx: usize) -> Option<&Token> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  62 |     fn previous(&self) -> Option<&Token> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  66 |     fn current(&self) -> Option<&Token> {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  70 |     fn peek(&self) -> Option<&Token> {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout]  74 |     fn next(&mut self) -> Option<Token> {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout]  81 |     fn prev_token(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  93 |     fn peek_token(&mut self) -> sql::Result<&Token> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 104 |     fn next_token(&mut self) -> sql::Result<Token> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 115 |     fn next_keyword(&mut self) -> sql::Result<Keyword> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 123 |     fn expect_token(&mut self, expected: Token) -> sql::Result<Token> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 140 |     fn expect_keyword(&mut self, expected: Keyword) -> sql::Result<Keyword> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 146 |     fn consume_optional_token(&mut self, optional: Token) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 157 |     fn consume_optional_keyword(&mut self, optional: Keyword) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 162 |     fn consume_one_of<'k, K>(&mut self, keywords: &'k K) -> Keyword
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 173 |     fn expect_one_of<'k, K>(&mut self, keywords: &'k K) -> sql::Result<Keyword>
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 187 |     fn get_next_precedence(&mut self) -> u8 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 203 |     fn parse_expression(&mut self) -> sql::Result<Expression> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 208 |     fn parse_expr(&mut self, precedence: u8) -> sql::Result<Expression> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 221 |     fn parse_prefix(&mut self) -> sql::Result<Expression> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 256 |     fn parse_infix(&mut self, left: Expression, precedence: u8) -> sql::Result<Expression> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 281 |     fn parse_identifier(&mut self) -> sql::Result<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 289 |     fn parse_comma_separeted<T>(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 313 |     fn parse_comma_separeted_values(&mut self) -> sql::Result<Vec<Expression>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 318 |     fn parse_identifier_list(&mut self) -> sql::Result<Vec<String>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 322 |     fn parse_optional_identifier_list(&mut self) -> sql::Result<Option<Vec<String>>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 333 |     fn parse_assignment(&mut self) -> sql::Result<Assignment> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 341 |     fn parse_data_type(&mut self) -> sql::Result<DataType> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 371 |     fn parse_constrains(&mut self) -> sql::Result<Constrains> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 388 |     fn parse_column(&mut self) -> sql::Result<Column> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 415 |     fn parse_where(&mut self) -> sql::Result<Option<Expression>> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 423 |     fn parse_order_by(&mut self) -> sql::Result<Option<Vec<Expression>>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 432 |     pub fn parse_statement(&mut self) -> sql::Result<Statement> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_COLUMN_COUNT` is never used
[INFO] [stdout]   --> src/sql/record.rs:14:11
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub const MAX_COLUMN_COUNT: usize = 2000;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Record` is never constructed
[INFO] [stdout]   --> src/sql/record.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct Record<'a> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> src/sql/record.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | impl<'a> Record<'a> {
[INFO] [stdout]    | ------------------- associated items in this implementation
[INFO] [stdout] 24 |     pub fn new(payload: Cow<'a, [u8]>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 29 |     pub fn from_borrowed(payload: &'a [u8]) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub fn from_owned(payload: Vec<u8>) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub fn get_value(&'a self, index: usize) -> ValueRef<'a> {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub fn try_get_value(&'a self, index: usize) -> sql::Result<ValueRef<'a>> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 45 |     pub fn count(&self) -> usize {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 49 |     pub fn len(&self) -> usize {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 53 |     pub fn to_owned(&self) -> Record<'static> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RecordCursor` is never constructed
[INFO] [stdout]   --> src/sql/record.rs:85:12
[INFO] [stdout]    |
[INFO] [stdout] 85 | pub struct RecordCursor {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `with_capacity`, `parse_up_to`, `full_parse`, `get_value`, and `len` are never used
[INFO] [stdout]    --> src/sql/record.rs:96:12
[INFO] [stdout]     |
[INFO] [stdout]  95 | impl RecordCursor {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout]  96 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 105 |     pub fn with_capacity(capacity: usize) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 114 |     fn parse_up_to(&mut self, payload: &[u8], index: usize) -> sql::Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 146 |     pub fn full_parse(&mut self, payload: &[u8]) -> sql::Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 150 |     pub fn get_value<'a>(&mut self, payload: &'a [u8], index: usize) -> sql::Result<ValueRef<'a>> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 166 |     pub fn len(&mut self, payload: &[u8]) -> usize {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RecordBuilder` is never constructed
[INFO] [stdout]    --> src/sql/record.rs:172:12
[INFO] [stdout]     |
[INFO] [stdout] 172 | pub struct RecordBuilder {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `add`, `calculate_header_size`, `serialize`, and `get` are never used
[INFO] [stdout]    --> src/sql/record.rs:177:12
[INFO] [stdout]     |
[INFO] [stdout] 176 | impl RecordBuilder {
[INFO] [stdout]     | ------------------ associated items in this implementation
[INFO] [stdout] 177 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 181 |     pub fn add(&mut self, value: Value) {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 185 |     fn calculate_header_size(size_of_serial_types: usize) -> usize {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 193 |     pub fn serialize(&self) -> Vec<u8> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 256 |     pub fn get(&self, index: usize) -> &Value {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `records_equal` is never used
[INFO] [stdout]    --> src/sql/record.rs:284:8
[INFO] [stdout]     |
[INFO] [stdout] 284 | pub fn records_equal(r1: &Record, r2: &Record) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compare_records` is never used
[INFO] [stdout]    --> src/sql/record.rs:303:8
[INFO] [stdout]     |
[INFO] [stdout] 303 | pub fn compare_records(r1: &Record, r2: &Record) -> std::cmp::Ordering {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Statement` is never used
[INFO] [stdout]  --> src/sql/statement.rs:7:10
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub enum Statement {
[INFO] [stdout]   |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Expression` is never used
[INFO] [stdout]    --> src/sql/statement.rs:121:10
[INFO] [stdout]     |
[INFO] [stdout] 121 | pub enum Expression {
[INFO] [stdout]     |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `BinaryOperator` is never used
[INFO] [stdout]    --> src/sql/statement.rs:158:10
[INFO] [stdout]     |
[INFO] [stdout] 158 | pub enum BinaryOperator {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `UnaryOperator` is never used
[INFO] [stdout]    --> src/sql/statement.rs:193:10
[INFO] [stdout]     |
[INFO] [stdout] 193 | pub enum UnaryOperator {
[INFO] [stdout]     |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `DataType` is never used
[INFO] [stdout]    --> src/sql/statement.rs:209:10
[INFO] [stdout]     |
[INFO] [stdout] 209 | pub enum DataType {
[INFO] [stdout]     |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Constrains` is never used
[INFO] [stdout]    --> src/sql/statement.rs:232:10
[INFO] [stdout]     |
[INFO] [stdout] 232 | pub enum Constrains {
[INFO] [stdout]     |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Assignment` is never constructed
[INFO] [stdout]    --> src/sql/statement.rs:248:12
[INFO] [stdout]     |
[INFO] [stdout] 248 | pub struct Assignment {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Column` is never constructed
[INFO] [stdout]    --> src/sql/statement.rs:261:12
[INFO] [stdout]     |
[INFO] [stdout] 261 | pub struct Column {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/sql/statement.rs:268:12
[INFO] [stdout]     |
[INFO] [stdout] 267 | impl Column {
[INFO] [stdout]     | ----------- associated function in this implementation
[INFO] [stdout] 268 |     pub fn new(name: &str, data_type: DataType) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Create` is never used
[INFO] [stdout]    --> src/sql/statement.rs:306:10
[INFO] [stdout]     |
[INFO] [stdout] 306 | pub enum Create {
[INFO] [stdout]     |          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Drop` is never used
[INFO] [stdout]    --> src/sql/statement.rs:342:10
[INFO] [stdout]     |
[INFO] [stdout] 342 | pub enum Drop {
[INFO] [stdout]     |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fmt_join` is never used
[INFO] [stdout]    --> src/sql/statement.rs:356:8
[INFO] [stdout]     |
[INFO] [stdout] 356 | pub fn fmt_join<'t, T: Display + 't>(
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Token` is never used
[INFO] [stdout]  --> src/sql/token.rs:4:10
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub enum Token {
[INFO] [stdout]   |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `is_part_keyword_or_identifier` is never used
[INFO] [stdout]   --> src/sql/token.rs:29:12
[INFO] [stdout]    |
[INFO] [stdout] 28 | impl Token {
[INFO] [stdout]    | ---------- associated function in this implementation
[INFO] [stdout] 29 |     pub fn is_part_keyword_or_identifier(ch: &char) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Keyword` is never used
[INFO] [stdout]   --> src/sql/token.rs:68:10
[INFO] [stdout]    |
[INFO] [stdout] 68 | pub enum Keyword {
[INFO] [stdout]    |          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Whitespace` is never used
[INFO] [stdout]    --> src/sql/token.rs:150:10
[INFO] [stdout]     |
[INFO] [stdout] 150 | pub enum Whitespace {
[INFO] [stdout]     |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Stream` is never constructed
[INFO] [stdout]  --> src/sql/tokenizer.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct Stream<'a> {
[INFO] [stdout]   |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `raw`, `position`, `next`, `peek`, and `peek_next` are never used
[INFO] [stdout]   --> src/sql/tokenizer.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl<'a> Stream<'a> {
[INFO] [stdout]    | ------------------- associated items in this implementation
[INFO] [stdout] 15 |     pub fn new(input: &'a str) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub fn raw(&self) -> &'a str {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub fn position(&self) -> usize {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 32 |     pub fn next(&mut self) -> Option<char> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub fn peek(&mut self) -> Option<&char> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub fn peek_next(&mut self) -> Option<&char> {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Tokenizer` is never constructed
[INFO] [stdout]   --> src/sql/tokenizer.rs:47:12
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub struct Tokenizer<'a> {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `consume`, `consume_number`, `consume_string`, `consume_keyword_or_identifier`, and `next_token` are never used
[INFO] [stdout]    --> src/sql/tokenizer.rs:52:12
[INFO] [stdout]     |
[INFO] [stdout]  51 | impl<'a> Tokenizer<'a> {
[INFO] [stdout]     | ---------------------- associated items in this implementation
[INFO] [stdout]  52 |     pub fn new(input: &'a str) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  59 |     fn consume(&mut self, token: Token) -> sql::Result<Token> {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  65 |     fn consume_number(&mut self) -> sql::Result<Token> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  80 |     fn consume_string(&mut self) -> sql::Result<Token> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     fn consume_keyword_or_identifier(&mut self) -> sql::Result<Token> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 157 |     pub fn next_token(&mut self) -> sql::Result<Token> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ValueType` is never used
[INFO] [stdout]   --> src/sql/types/mod.rs:16:10
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub enum ValueType {
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Value` is never used
[INFO] [stdout]   --> src/sql/types/mod.rs:26:10
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub enum Value {
[INFO] [stdout]    |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ValueRef` is never used
[INFO] [stdout]   --> src/sql/types/mod.rs:35:10
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub enum ValueRef<'a> {
[INFO] [stdout]    |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `as_ref` and `value_type` are never used
[INFO] [stdout]   --> src/sql/types/mod.rs:44:12
[INFO] [stdout]    |
[INFO] [stdout] 43 | impl Value {
[INFO] [stdout]    | ---------- methods in this implementation
[INFO] [stdout] 44 |     pub fn as_ref<'a>(&'a self) -> ValueRef<'a> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 54 |     pub fn value_type(&self) -> ValueType {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `AsValueRef` is never used
[INFO] [stdout]   --> src/sql/types/mod.rs:91:11
[INFO] [stdout]    |
[INFO] [stdout] 91 | pub trait AsValueRef {
[INFO] [stdout]    |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_value` is never used
[INFO] [stdout]    --> src/sql/types/mod.rs:125:8
[INFO] [stdout]     |
[INFO] [stdout] 125 | pub fn parse_value<'a>(buffer: &'a [u8], serial_type: &SerialType) -> sql::Result<ValueRef<'a>> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `to_owned` and `to_value_type` are never used
[INFO] [stdout]    --> src/sql/types/mod.rs:184:12
[INFO] [stdout]     |
[INFO] [stdout] 183 | impl<'a> ValueRef<'a> {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] 184 |     pub fn to_owned(&self) -> Value {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 194 |     pub fn to_value_type(&self) -> ValueType {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `AnyBlob` is never used
[INFO] [stdout]  --> src/sql/types/blob.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub trait AnyBlob {
[INFO] [stdout]   |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SerialType` is never constructed
[INFO] [stdout]   --> src/sql/types/serial.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct SerialType(VarInt);
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> src/sql/types/serial.rs:13:11
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl SerialType {
[INFO] [stdout]    | --------------- associated items in this implementation
[INFO] [stdout] 13 |     const NULL: Self = Self(0);
[INFO] [stdout]    |           ^^^^
[INFO] [stdout] 14 |     const BOOL_FALSE: Self = Self(1);
[INFO] [stdout]    |           ^^^^^^^^^^
[INFO] [stdout] 15 |     const BOOL_TRUE: Self = Self(2);
[INFO] [stdout]    |           ^^^^^^^^^
[INFO] [stdout] 16 |     const I8: Self = Self(3);
[INFO] [stdout]    |           ^^
[INFO] [stdout] 17 |     const I16: Self = Self(4);
[INFO] [stdout]    |           ^^^
[INFO] [stdout] 18 |     const I32: Self = Self(5);
[INFO] [stdout]    |           ^^^
[INFO] [stdout] 19 |     const I64: Self = Self(6);
[INFO] [stdout]    |           ^^^
[INFO] [stdout] 20 |
[INFO] [stdout] 21 |     pub fn null() -> Self {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub fn bool_false() -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 27 |     pub fn bool_true() -> Self {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 31 |     pub fn int8() -> Self {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 35 |     pub fn int16() -> Self {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub fn int32() -> Self {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub fn int64() -> Self {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub fn blob(size: VarInt) -> Self {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     pub fn text(size: VarInt) -> Self {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 51 |     pub fn code(&self) -> VarInt {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 55 |     pub fn kind(&self) -> SerialTypeKind {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 73 |     pub fn size(&self) -> usize {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 87 |     pub fn to_varint(&self) -> Vec<u8> {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `SerialTypeKind` is never used
[INFO] [stdout]   --> src/sql/types/serial.rs:96:10
[INFO] [stdout]    |
[INFO] [stdout] 96 | pub enum SerialTypeKind {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `kind` is never read
[INFO] [stdout]   --> src/sql/types/text.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct Text {
[INFO] [stdout]    |            ---- field in this struct
[INFO] [stdout] 11 |     value: String,
[INFO] [stdout] 12 |     kind: TextKind,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Text` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TextRef` is never constructed
[INFO] [stdout]   --> src/sql/types/text.rs:70:12
[INFO] [stdout]    |
[INFO] [stdout] 70 | pub struct TextRef<'a> {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `as_str` are never used
[INFO] [stdout]   --> src/sql/types/text.rs:76:12
[INFO] [stdout]    |
[INFO] [stdout] 75 | impl<'a> TextRef<'a> {
[INFO] [stdout]    | -------------------- associated items in this implementation
[INFO] [stdout] 76 |     pub fn new(value: &'a str, kind: TextKind) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 81 |     pub fn as_str(&self) -> &'a str {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `AnyText` is never used
[INFO] [stdout]    --> src/sql/types/text.rs:102:11
[INFO] [stdout]     |
[INFO] [stdout] 102 | pub trait AnyText: AsRef<str> {
[INFO] [stdout]     |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `SlotNumber` is never used
[INFO] [stdout]   --> src/storage/mod.rs:16:10
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub type SlotNumber = u16;
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `FrameNumber` is never used
[INFO] [stdout]   --> src/storage/mod.rs:18:10
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub type FrameNumber = BlockNumber;
[INFO] [stdout]    |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PAGE_NUMBER_SIZE` is never used
[INFO] [stdout]   --> src/storage/mod.rs:20:11
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub const PAGE_NUMBER_SIZE: usize = std::mem::size_of::<PageNumber>();
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SLOT_SIZE` is never used
[INFO] [stdout]   --> src/storage/mod.rs:21:11
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub const SLOT_SIZE: usize = std::mem::size_of::<SlotNumber>();
[INFO] [stdout]    |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Result` is never used
[INFO] [stdout]   --> src/storage/mod.rs:23:10
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub type Result<T> = std::result::Result<T, Error>;
[INFO] [stdout]    |          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]   --> src/storage/mod.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub enum Error {
[INFO] [stdout]    |          ----- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 29 |     PageNotFound(PageNumber),
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 30 |     #[error("invalid page type")]
[INFO] [stdout] 31 |     InvalidPageType,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 32 |     #[error("page number must be grater than 0")]
[INFO] [stdout] 33 |     PageNumberOutOfRange,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 34 |     #[error("page is corrupted. Exptected state doesn't match")]
[INFO] [stdout] 35 |     Corruped,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 36 |     #[error("cell slot number is out of range")]
[INFO] [stdout] 37 |     CellIndexOutRange,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |     InvalidChecksum,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 42 |     #[error("page {0} not found in WAL")]
[INFO] [stdout] 43 |     PageNotFoundInWal(PageNumber),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 57 |     PartialRead { expected: usize, read: usize },
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Error` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Node` is never constructed
[INFO] [stdout]  --> src/storage/allocator.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct Node<T> {
[INFO] [stdout]   |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LocalStack` is never constructed
[INFO] [stdout]   --> src/storage/allocator.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct LocalStack<T> {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `len`, `push`, and `pop` are never used
[INFO] [stdout]   --> src/storage/allocator.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl<T> LocalStack<T> {
[INFO] [stdout]    | --------------------- associated items in this implementation
[INFO] [stdout] 18 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub fn len(&self) -> usize {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 26 |     pub fn push(&mut self, value: T) {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 35 |     pub fn pop(&mut self) -> Option<T> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_GLOBAL_BATCH_SIZE` is never used
[INFO] [stdout]   --> src/storage/allocator.rs:53:7
[INFO] [stdout]    |
[INFO] [stdout] 53 | const DEFAULT_GLOBAL_BATCH_SIZE: usize = 32;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_LOCAL_BATCH_SIZE` is never used
[INFO] [stdout]   --> src/storage/allocator.rs:54:7
[INFO] [stdout]    |
[INFO] [stdout] 54 | const DEFAULT_LOCAL_BATCH_SIZE: usize = 16;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_LOCAL_MIN_PAGES` is never used
[INFO] [stdout]   --> src/storage/allocator.rs:55:7
[INFO] [stdout]    |
[INFO] [stdout] 55 | const DEFAULT_LOCAL_MIN_PAGES: usize = 8;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_LOCAL_MAX_PAGES` is never used
[INFO] [stdout]   --> src/storage/allocator.rs:56:7
[INFO] [stdout]    |
[INFO] [stdout] 56 | const DEFAULT_LOCAL_MAX_PAGES: usize = 64;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GlobalPageAllocator` is never constructed
[INFO] [stdout]   --> src/storage/allocator.rs:58:12
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub struct GlobalPageAllocator {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/storage/allocator.rs:73:12
[INFO] [stdout]     |
[INFO] [stdout]  72 | impl GlobalPageAllocator {
[INFO] [stdout]     | ------------------------ associated items in this implementation
[INFO] [stdout]  73 |     pub fn new(
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  98 |     pub fn default(page_size: usize, page_count: usize) -> Self {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 109 |     fn max_size(&self) -> usize {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 117 |     pub fn len(&self) -> usize {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 121 |     pub fn try_alloc(&self) -> Option<NonNull<u8>> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 125 |     pub fn alloc_batch(&self, to_alloc: usize) -> Vec<NonNull<u8>> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 150 |     pub fn dealloc_batch(&self, mut mem: Vec<NonNull<u8>>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 165 |     pub fn dealloc(&self, mem: NonNull<u8>) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LocalPageAllocator` is never constructed
[INFO] [stdout]    --> src/storage/allocator.rs:189:12
[INFO] [stdout]     |
[INFO] [stdout] 189 | pub struct LocalPageAllocator {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `default`, `len`, `alloc`, `dealloc`, and `drain` are never used
[INFO] [stdout]    --> src/storage/allocator.rs:196:12
[INFO] [stdout]     |
[INFO] [stdout] 195 | impl LocalPageAllocator {
[INFO] [stdout]     | ----------------------- associated items in this implementation
[INFO] [stdout] 196 |     pub fn new(global_allocator: Arc<GlobalPageAllocator>, page_count: usize) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 210 |     pub fn default(global_allocator: Arc<GlobalPageAllocator>) -> Self {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 214 |     pub fn len(&self) -> usize {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 218 |     pub fn alloc(&mut self) -> NonNull<u8> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 237 |     pub fn dealloc(&mut self, mem: NonNull<u8>) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 245 |     pub fn drain(&mut self) -> Vec<NonNull<u8>> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `BTreeKey` is never used
[INFO] [stdout]   --> src/storage/btree.rs:13:10
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub enum BTreeKey<'a> {
[INFO] [stdout]    |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new_table_row_id`, `new_index_key`, `get_record`, and `to_owned` are never used
[INFO] [stdout]   --> src/storage/btree.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl<'a> BTreeKey<'a> {
[INFO] [stdout]    | --------------------- associated items in this implementation
[INFO] [stdout] 19 |     pub fn new_table_row_id(row_id: i64, record: Option<Record<'a>>) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 23 |     pub fn new_index_key(record: Record<'a>) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 27 |     pub fn get_record(&self) -> Option<Record<'a>> {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |     pub fn to_owned(&self) -> BTreeKey<'static> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `SearchResult` is never used
[INFO] [stdout]   --> src/storage/btree.rs:79:10
[INFO] [stdout]    |
[INFO] [stdout] 79 | pub enum SearchResult {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_found` is never used
[INFO] [stdout]   --> src/storage/btree.rs:85:12
[INFO] [stdout]    |
[INFO] [stdout] 84 | impl SearchResult {
[INFO] [stdout]    | ----------------- method in this implementation
[INFO] [stdout] 85 |     pub fn is_found(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BTree` is never constructed
[INFO] [stdout]   --> src/storage/btree.rs:96:12
[INFO] [stdout]    |
[INFO] [stdout] 96 | pub struct BTree {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `key_in_range`, `extract_high_key`, and `extracty_key` are never used
[INFO] [stdout]    --> src/storage/btree.rs:102:12
[INFO] [stdout]     |
[INFO] [stdout] 101 | impl BTree {
[INFO] [stdout]     | ---------- associated items in this implementation
[INFO] [stdout] 102 |     pub fn new(pager: Pager, root: PageNumber) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 108 |     pub fn key_in_range(&mut self, page: &Page, key: &BTreeKey) -> storage::Result<bool> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 117 |     fn extract_high_key<'a>(&mut self, page: &'a Page) -> storage::Result<Option<BTreeKey<'a>>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 127 |     fn extracty_key<'a>(
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `DatabaseCursor` is never used
[INFO] [stdout]    --> src/storage/btree.rs:157:11
[INFO] [stdout]     |
[INFO] [stdout] 157 | pub trait DatabaseCursor {
[INFO] [stdout]     |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BTreeCursor` is never constructed
[INFO] [stdout]    --> src/storage/btree.rs:186:12
[INFO] [stdout]     |
[INFO] [stdout] 186 | pub struct BTreeCursor<'a> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `binary_search` are never used
[INFO] [stdout]    --> src/storage/btree.rs:196:12
[INFO] [stdout]     |
[INFO] [stdout] 195 | impl<'a> BTreeCursor<'a> {
[INFO] [stdout]     | ------------------------ associated items in this implementation
[INFO] [stdout] 196 |     pub fn new(btree: &'a mut BTree) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 210 |     fn binary_search(
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `reassemble_payload` is never used
[INFO] [stdout]    --> src/storage/btree.rs:378:8
[INFO] [stdout]     |
[INFO] [stdout] 378 | pub fn reassemble_payload<'a>(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GlobalBufferPool` is never constructed
[INFO] [stdout]   --> src/storage/buffer_pool.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct GlobalBufferPool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `default`, `local_pool`, and `len` are never used
[INFO] [stdout]   --> src/storage/buffer_pool.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl GlobalBufferPool {
[INFO] [stdout]    | --------------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub fn new(
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 45 |     pub fn default(page_size: usize, init_size: usize) -> Self {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 51 |     pub fn local_pool(&self, init_size: usize) -> LocalBufferPool {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 56 |     pub fn len(&self) -> usize {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LocalBufferPool` is never constructed
[INFO] [stdout]   --> src/storage/buffer_pool.rs:62:12
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub struct LocalBufferPool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `len`, `get`, and `put` are never used
[INFO] [stdout]   --> src/storage/buffer_pool.rs:67:12
[INFO] [stdout]    |
[INFO] [stdout] 66 | impl LocalBufferPool {
[INFO] [stdout]    | -------------------- associated items in this implementation
[INFO] [stdout] 67 |     pub fn new(global_allocator: Arc<GlobalPageAllocator>, init_size: usize) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 76 |     pub fn len(&self) -> usize {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 81 |     pub fn get(&self) -> Buffer {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 96 |     fn put(&mut self, mem: NonNull<u8>) {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Result` is never used
[INFO] [stdout]   --> src/storage/cache.rs:13:10
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub type Result<T> = std::result::Result<T, Error>;
[INFO] [stdout]    |          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `KeyExists`, `PagePinned`, `Dirty`, `Full`, and `Internal` are never constructed
[INFO] [stdout]   --> src/storage/cache.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub enum Error {
[INFO] [stdout]    |          ----- variants in this enum
[INFO] [stdout] 17 |     #[error("key already exists in cache.")]
[INFO] [stdout] 18 |     KeyExists,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 19 |     #[error("page is currently pinned.")]
[INFO] [stdout] 20 |     PagePinned,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 21 |     #[error("page {id} is dirty.")]
[INFO] [stdout] 22 |     Dirty { id: PageNumber },
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 23 |     #[error("cache is already full.")]
[INFO] [stdout] 24 |     Full,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 25 |     #[error("{0}")]
[INFO] [stdout] 26 |     Internal(String),
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Error` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `PageCacheKey` is never used
[INFO] [stdout]   --> src/storage/cache.rs:29:10
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub type PageCacheKey = PageNumber;
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PageCacheEntry` is never constructed
[INFO] [stdout]   --> src/storage/cache.rs:32:12
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub struct PageCacheEntry {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/storage/cache.rs:44:12
[INFO] [stdout]    |
[INFO] [stdout] 43 | impl PageCacheEntry {
[INFO] [stdout]    | ------------------- associated function in this implementation
[INFO] [stdout] 44 |     pub fn new(key: PageCacheKey, page: MemPageRef) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ShardedLruCache` is never constructed
[INFO] [stdout]   --> src/storage/cache.rs:54:12
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub struct ShardedLruCache<S: BuildHasher = RandomState> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_SHARD_COUNT` is never used
[INFO] [stdout]   --> src/storage/cache.rs:62:7
[INFO] [stdout]    |
[INFO] [stdout] 62 | const DEFAULT_SHARD_COUNT: usize = 16;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/storage/cache.rs:65:12
[INFO] [stdout]    |
[INFO] [stdout] 64 | impl ShardedLruCache {
[INFO] [stdout]    | -------------------- associated function in this implementation
[INFO] [stdout] 65 |     pub fn new(capacity: usize) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_shard`, `get`, `insert`, `delete`, and `clear` are never used
[INFO] [stdout]    --> src/storage/cache.rs:78:8
[INFO] [stdout]     |
[INFO] [stdout]  77 | impl<S: BuildHasher> ShardedLruCache<S> {
[INFO] [stdout]     | --------------------------------------- methods in this implementation
[INFO] [stdout]  78 |     fn get_shard(&self, key: &PageCacheKey) -> &Shard {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  89 |     pub fn get(&self, key: &PageCacheKey) -> Option<MemPageRef> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  93 |     pub fn insert(&self, key: PageCacheKey, page: MemPageRef) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  97 |     pub fn delete(&self, key: PageCacheKey) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 101 |     pub fn clear(&self) -> Result<()> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Shard` is never used
[INFO] [stdout]    --> src/storage/cache.rs:131:6
[INFO] [stdout]     |
[INFO] [stdout] 131 | type Shard = Mutex<LruPageCache>;
[INFO] [stdout]     |      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LruPageCache` is never constructed
[INFO] [stdout]    --> src/storage/cache.rs:134:8
[INFO] [stdout]     |
[INFO] [stdout] 134 | struct LruPageCache {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/storage/cache.rs:146:12
[INFO] [stdout]     |
[INFO] [stdout] 145 | impl LruPageCache {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout] 146 |     pub fn new(capacity: usize) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 157 |     pub fn len(&self) -> usize {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 162 |     pub fn contains_key(&self, key: &PageCacheKey) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 167 |     fn get_ptr(&self, key: &PageCacheKey) -> Option<NonNull<PageCacheEntry>> {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 171 |     pub fn peek(&mut self, key: &PageCacheKey, touch: bool) -> Option<MemPageRef> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 181 |     pub fn get(&mut self, key: &PageCacheKey) -> Option<MemPageRef> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 185 |     pub fn insert(&mut self, key: PageCacheKey, page: MemPageRef) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 189 |     fn try_insert(&mut self, key: PageCacheKey, page: MemPageRef) -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 206 |     pub fn delete(&mut self, key: PageCacheKey) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 210 |     fn try_delete(&mut self, key: PageCacheKey, clean_page: bool) -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 229 |     fn detach(&mut self, mut entry: NonNull<PageCacheEntry>, clean_page: bool) -> Result<()> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 254 |     fn unlink(&mut self, mut entry: NonNull<PageCacheEntry>) {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 287 |     fn touch(&mut self, mut entry: NonNull<PageCacheEntry>) {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 301 |     fn make_room_for(&mut self, entries_num: usize) -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 339 |     pub fn clear(&mut self) -> Result<()> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DATABASE_HEADER_PAGE_NUMBER` is never used
[INFO] [stdout]   --> src/storage/page.rs:17:11
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub const DATABASE_HEADER_PAGE_NUMBER: PageNumber = 1;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DATABASE_HEADER_SIZE` is never used
[INFO] [stdout]   --> src/storage/page.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub const DATABASE_HEADER_SIZE: usize = size_of::<DatabaseHeader>();
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_PAGE_SIZE` is never used
[INFO] [stdout]   --> src/storage/page.rs:20:11
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub const DEFAULT_PAGE_SIZE: u32 = 4096;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_CACHE_SIZE` is never used
[INFO] [stdout]   --> src/storage/page.rs:22:7
[INFO] [stdout]    |
[INFO] [stdout] 22 | const DEFAULT_CACHE_SIZE: u32 = 2000;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MIN_PAGE_SIZE` is never used
[INFO] [stdout]   --> src/storage/page.rs:24:11
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub const MIN_PAGE_SIZE: usize = 512;
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_PAGE_SIZE` is never used
[INFO] [stdout]   --> src/storage/page.rs:25:11
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub const MAX_PAGE_SIZE: usize = 64 << 10;
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `usable_space` is never used
[INFO] [stdout]   --> src/storage/page.rs:28:8
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub fn usable_space(page_size: usize, reserved: usize) -> usize {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `min_cell_size` is never used
[INFO] [stdout]   --> src/storage/page.rs:32:8
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub fn min_cell_size(usable_space: usize) -> usize {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `max_cell_size` is never used
[INFO] [stdout]   --> src/storage/page.rs:36:8
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub fn max_cell_size(usable_space: usize) -> usize {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DatabaseHeader` is never constructed
[INFO] [stdout]   --> src/storage/page.rs:42:12
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub struct DatabaseHeader {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `get_page_size`, `from_bytes`, `to_bytes`, and `write_to_buffer` are never used
[INFO] [stdout]   --> src/storage/page.rs:62:12
[INFO] [stdout]    |
[INFO] [stdout] 61 | impl DatabaseHeader {
[INFO] [stdout]    | ------------------- associated items in this implementation
[INFO] [stdout] 62 |     pub fn get_page_size(&self) -> usize {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 70 |     pub fn from_bytes(buffer: &[u8]) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 92 |     pub fn to_bytes(&self) -> Vec<u8> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 98 |     pub fn write_to_buffer(&self, buffer: &mut [u8]) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `PageType` is never used
[INFO] [stdout]    --> src/storage/page.rs:127:10
[INFO] [stdout]     |
[INFO] [stdout] 127 | pub enum PageType {
[INFO] [stdout]     |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_leaf` and `is_internal` are never used
[INFO] [stdout]    --> src/storage/page.rs:135:12
[INFO] [stdout]     |
[INFO] [stdout] 134 | impl PageType {
[INFO] [stdout]     | ------------- methods in this implementation
[INFO] [stdout] 135 |     pub fn is_leaf(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 142 |     pub fn is_internal(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Page` is never constructed
[INFO] [stdout]    --> src/storage/page.rs:198:12
[INFO] [stdout]     |
[INFO] [stdout] 198 | pub struct Page {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/storage/page.rs:219:11
[INFO] [stdout]     |
[INFO] [stdout] 218 | impl Page {
[INFO] [stdout]     | --------- associated items in this implementation
[INFO] [stdout] 219 |     const PAGE_TYPE_OFFSET: usize = 0;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^
[INFO] [stdout] 220 |     const FIRST_FREEBLOCK_OFFSET: usize = Self::PAGE_TYPE_OFFSET + size_of::<PageType>();
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 221 |     const LENGTH_OFFSET: usize = Self::FIRST_FREEBLOCK_OFFSET + size_of::<SlotNumber>();
[INFO] [stdout]     |           ^^^^^^^^^^^^^
[INFO] [stdout] 222 |     const LAST_USED_OFFSET: usize = Self::LENGTH_OFFSET + size_of::<SlotNumber>();
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^
[INFO] [stdout] 223 |     const FREE_FRAGMENTS_OFFSET: usize = Self::LAST_USED_OFFSET + size_of::<SlotNumber>();
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 224 |     const RIGTH_SIBLING_OFFSET: usize = Self::FREE_FRAGMENTS_OFFSET + size_of::<u8>();
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 225 |     const RIGTH_CHILD_OFFSET: usize = Self::RIGTH_SIBLING_OFFSET + size_of::<PageNumber>();
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 226 |
[INFO] [stdout] 227 |     pub const HIGH_KEY_SLOT: SlotNumber = 0;
[INFO] [stdout]     |               ^^^^^^^^^^^^^
[INFO] [stdout] 228 |     const FIRST_DATA_KEY: SlotNumber = Self::HIGH_KEY_SLOT + 1;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 231 |     const NEXT_OVERFLOW_OFFSET: usize = 0;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 232 |     const PAYLOAD_SIZE_OFFSET: usize = Self::NEXT_OVERFLOW_OFFSET + size_of::<PageNumber>();
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 233 |     const PAYLOAD_OFFSET: usize = Self::PAYLOAD_SIZE_OFFSET + size_of::<SlotNumber>();
[INFO] [stdout]     |           ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 236 |     pub const LEAF_PAGE_HEADER_SIZE: usize = 12;
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 237 |     pub const INTERNAL_PAGE_HEADER_SIZE: usize = 16;
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 238 |
[INFO] [stdout] 239 |     pub fn new(offset: usize, buffer: Buffer) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 254 |     pub fn alloc(size: usize, drop: Option<DropFn>) -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 261 |     pub fn initialize(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 265 |     pub fn as_ptr(&self) -> &mut [u8] {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 269 |     fn usable_space(&self) -> usize {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 274 |     fn min_cell_size(&self) -> usize {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 279 |     fn max_cell_size(&self) -> usize {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 283 |     fn total_free_space(&self) -> u16 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 291 |     pub fn as_io_slice(&self) -> IoSlice {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 294 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 298 |     pub fn is_leaf(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 305 |     fn overflow_map(&self) -> &mut HashMap<SlotNumber, BTreeCell> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 309 |     pub fn is_overflow(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 314 |     pub fn header_size(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 322 |     pub fn storage_space(&self) -> u16 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 327 |     pub fn storage_size(&self, cell_size: u16) -> u16 {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 332 |     pub fn free_space(&self) -> u16 {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 336 |     pub fn first_data_offset(&self) -> SlotNumber {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 344 |     pub fn slot_array(&self) -> SlotArray {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 348 |     pub fn freeblock_list(&self) -> FreeblockList {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 378 |     fn defragment(&self) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 408 |     fn get_cell_size(&self, offset: u16) -> u16 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 419 |     fn get_cell_at_offset(&self, offset: u16) -> storage::Result<BTreeCellRef> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 441 |     pub fn get_cell<'a>(&'a self, index: SlotNumber) -> storage::Result<BTreeCellRef<'a>> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 450 |     pub fn insert_cell(&self, index: SlotNumber, cell: BTreeCell) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 465 |     fn try_insert_cell(&self, index: SlotNumber, cell: BTreeCell) -> Result<SlotNumber, BTreeCell> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 515 |     pub fn try_replace(
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 556 |     pub fn remove(&self, index: SlotNumber) -> BTreeCell {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 566 |     pub fn child(&self, index: SlotNumber) -> PageNumber {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 586 |     pub fn has_high_key(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `read_u8`, `read_u16`, `read_u32`, `write_u8`, `write_u16`, and `write_u32` are never used
[INFO] [stdout]    --> src/storage/page.rs:592:8
[INFO] [stdout]     |
[INFO] [stdout] 591 | impl Page {
[INFO] [stdout]     | --------- methods in this implementation
[INFO] [stdout] 592 |     fn read_u8(&self, pos: usize) -> u8 {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 596 |     fn read_u16(&self, pos: usize) -> u16 {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 601 |     fn read_u32(&self, pos: usize) -> u32 {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 606 |     fn write_u8(&self, pos: usize, value: u8) {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 611 |     fn write_u16(&self, pos: usize, value: u16) {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 616 |     fn write_u32(&self, pos: usize, value: u32) {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/storage/page.rs:623:12
[INFO] [stdout]     |
[INFO] [stdout] 622 | impl Page {
[INFO] [stdout]     | --------- methods in this implementation
[INFO] [stdout] 623 |     pub fn try_page_type(&self) -> Option<PageType> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 627 |     pub fn page_type(&self) -> PageType {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 631 |     pub fn first_freeblock(&self) -> u16 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 635 |     pub fn set_first_freeblock(&self, value: u16) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 639 |     pub fn last_used_offset(&self) -> u16 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 643 |     pub fn set_last_used_offset(&self, value: u16) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 647 |     pub fn free_fragments(&self) -> u8 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 651 |     pub fn set_free_fragments(&self, value: u8) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 655 |     pub fn add_free_fragment(&self, value: u8) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 668 |     pub fn try_rigth_sibling(&self) -> Option<PageNumber> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 675 |     pub fn try_rigth_child(&self) -> Option<PageNumber> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 685 |     pub fn len(&self) -> u16 {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 689 |     pub fn set_len(&self, value: u16) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 694 |     pub fn count(&self) -> u16 {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `next_overflow`, `overflow_payload_size`, and `overflow_payload` are never used
[INFO] [stdout]    --> src/storage/page.rs:702:12
[INFO] [stdout]     |
[INFO] [stdout] 700 | impl Page {
[INFO] [stdout]     | --------- methods in this implementation
[INFO] [stdout] 701 |     /// Use only when page type is overflow.
[INFO] [stdout] 702 |     pub fn next_overflow(&self) -> Option<PageNumber> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 709 |     pub fn overflow_payload_size(&self) -> u16 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 714 |     pub fn overflow_payload(&self) -> &[u8] {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `db_header` and `write_db_header` are never used
[INFO] [stdout]    --> src/storage/page.rs:724:12
[INFO] [stdout]     |
[INFO] [stdout] 722 | impl Page {
[INFO] [stdout]     | --------- methods in this implementation
[INFO] [stdout] 723 |     /// Returns database header. Only use with page that have non-zero offset.
[INFO] [stdout] 724 |     pub fn db_header(&self) -> DatabaseHeader {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 728 |     pub fn write_db_header(&self, header: DatabaseHeader) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `freelist_next` and `freelist_set` are never used
[INFO] [stdout]    --> src/storage/page.rs:736:12
[INFO] [stdout]     |
[INFO] [stdout] 734 | impl Page {
[INFO] [stdout]     | --------- methods in this implementation
[INFO] [stdout] 735 |     /// Returns page number of next free page, if exists.
[INFO] [stdout] 736 |     pub fn freelist_next(&self) -> PageNumber {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 740 |     pub fn freelist_set(&self, value: PageNumber) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SlotArray` is never constructed
[INFO] [stdout]    --> src/storage/page.rs:769:12
[INFO] [stdout]     |
[INFO] [stdout] 769 | pub struct SlotArray<'a> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/storage/page.rs:777:12
[INFO] [stdout]     |
[INFO] [stdout] 776 | impl<'a> SlotArray<'a> {
[INFO] [stdout]     | ---------------------- associated items in this implementation
[INFO] [stdout] 777 |     pub fn new(mem: &'a mut [u8], slot_array_offset: usize) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 784 |     fn read_u16(&self, pos: usize) -> u16 {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 788 |     fn write_u16(&mut self, pos: usize, value: u16) {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 792 |     pub fn len(&self) -> u16 {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 796 |     pub fn set_len(&mut self, value: u16) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 800 |     pub fn increment_len(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 805 |     pub fn decrement_len(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 811 |     fn slot_array(&self) -> &[u16] {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 820 |     fn slot_array_mut(&mut self) -> &mut [u16] {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 829 |     pub fn get(&self, index: SlotNumber) -> u16 {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 834 |     pub fn try_get(&self, index: SlotNumber) -> Option<u16> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 840 |     pub fn set(&mut self, index: SlotNumber, value: u16) {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 852 |     pub fn insert(&mut self, index: SlotNumber, value: u16) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 866 |     pub fn push(&mut self, value: u16) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 870 |     pub fn remove(&mut self, index: SlotNumber) -> u16 {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FreeblockList` is never constructed
[INFO] [stdout]    --> src/storage/page.rs:896:12
[INFO] [stdout]     |
[INFO] [stdout] 896 | pub struct FreeblockList<'a> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]     --> src/storage/page.rs:902:12
[INFO] [stdout]      |
[INFO] [stdout]  901 | impl<'a> FreeblockList<'a> {
[INFO] [stdout]      | -------------------------- associated items in this implementation
[INFO] [stdout]  902 |     pub fn new(mem: &'a mut [u8]) -> Self {
[INFO] [stdout]      |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  906 |     fn read_u8(&self, pos: usize) -> u8 {
[INFO] [stdout]      |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  910 |     fn read_u16(&self, pos: usize) -> u16 {
[INFO] [stdout]      |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  914 |     fn write_u8(&mut self, pos: usize, value: u8) {
[INFO] [stdout]      |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  918 |     fn write_u16(&mut self, pos: usize, value: u16) {
[INFO] [stdout]      |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  922 |     pub fn first_freeblock(&self) -> u16 {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  926 |     pub fn set_first_freeblock(&mut self, value: u16) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  930 |     pub fn free_fragments(&self) -> u8 {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  934 |     pub fn set_free_fragments(&mut self, value: u8) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  938 |     pub fn add_free_fragment(&mut self, value: u8) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  943 |     fn get_freeblock(&self, offset: u16) -> (u16, u16) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  949 |     fn set_freeblock(&mut self, offset: u16, next: u16, size: u16) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  957 |     fn take_freeblock(&mut self, cell_size: u16) -> Option<u16> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  991 |     fn push_freeblock(&mut self, offset: u16, size: u16) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1008 |     fn iter(&self) -> FreeblockIterator<'_> {
[INFO] [stdout]      |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FreeblockIterator` is never constructed
[INFO] [stdout]     --> src/storage/page.rs:1016:8
[INFO] [stdout]      |
[INFO] [stdout] 1016 | struct FreeblockIterator<'a> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CellIterator` is never constructed
[INFO] [stdout]     --> src/storage/page.rs:1036:12
[INFO] [stdout]      |
[INFO] [stdout] 1036 | pub struct CellIterator<'a> {
[INFO] [stdout]      |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `CellOps` is never used
[INFO] [stdout]     --> src/storage/page.rs:1051:11
[INFO] [stdout]      |
[INFO] [stdout] 1051 | pub trait CellOps {
[INFO] [stdout]      |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PayloadRef` is never constructed
[INFO] [stdout]     --> src/storage/page.rs:1072:12
[INFO] [stdout]      |
[INFO] [stdout] 1072 | pub struct PayloadRef {
[INFO] [stdout]      |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `as_slice` is never used
[INFO] [stdout]     --> src/storage/page.rs:1078:12
[INFO] [stdout]      |
[INFO] [stdout] 1077 | impl PayloadRef {
[INFO] [stdout]      | --------------- method in this implementation
[INFO] [stdout] 1078 |     pub fn as_slice<'a>(&self, raw: &'a [u8]) -> &'a [u8] {
[INFO] [stdout]      |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `BTreeCell` is never used
[INFO] [stdout]     --> src/storage/page.rs:1085:10
[INFO] [stdout]      |
[INFO] [stdout] 1085 | pub enum BTreeCell {
[INFO] [stdout]      |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `IndexInternalCell` is never constructed
[INFO] [stdout]     --> src/storage/page.rs:1167:12
[INFO] [stdout]      |
[INFO] [stdout] 1167 | pub struct IndexInternalCell {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `payload` are never used
[INFO] [stdout]     --> src/storage/page.rs:1184:12
[INFO] [stdout]      |
[INFO] [stdout] 1181 | impl IndexInternalCell {
[INFO] [stdout]      | ---------------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 1184 |     pub fn new(
[INFO] [stdout]      |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 1216 |     pub fn payload(&self) -> &[u8] {
[INFO] [stdout]      |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `IndexLeafCell` is never constructed
[INFO] [stdout]     --> src/storage/page.rs:1259:12
[INFO] [stdout]      |
[INFO] [stdout] 1259 | pub struct IndexLeafCell {
[INFO] [stdout]      |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]     --> src/storage/page.rs:1274:12
[INFO] [stdout]      |
[INFO] [stdout] 1271 | impl IndexLeafCell {
[INFO] [stdout]      | ------------------ associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 1274 |     pub fn new(payload_size: VarInt, payload: &[u8], first_overflow: Option<PageNumber>) -> Self {
[INFO] [stdout]      |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TableInternalCell` is never constructed
[INFO] [stdout]     --> src/storage/page.rs:1338:12
[INFO] [stdout]      |
[INFO] [stdout] 1338 | pub struct TableInternalCell {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]     --> src/storage/page.rs:1350:12
[INFO] [stdout]      |
[INFO] [stdout] 1347 | impl TableInternalCell {
[INFO] [stdout]      | ---------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 1350 |     pub fn new(row_id: i64, left_child: PageNumber) -> Self {
[INFO] [stdout]      |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TableLeafCell` is never constructed
[INFO] [stdout]     --> src/storage/page.rs:1405:12
[INFO] [stdout]      |
[INFO] [stdout] 1405 | pub struct TableLeafCell {
[INFO] [stdout]      |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]     --> src/storage/page.rs:1422:12
[INFO] [stdout]      |
[INFO] [stdout] 1419 | impl TableLeafCell {
[INFO] [stdout]      | ------------------ associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 1422 |     pub fn new(
[INFO] [stdout]      |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `BTreeCellRef` is never used
[INFO] [stdout]     --> src/storage/page.rs:1493:10
[INFO] [stdout]      |
[INFO] [stdout] 1493 | pub enum BTreeCellRef<'a> {
[INFO] [stdout]      |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `offset_in_page` and `to_owned` are never used
[INFO] [stdout]     --> src/storage/page.rs:1581:12
[INFO] [stdout]      |
[INFO] [stdout] 1574 | impl<'a> BTreeCellRef<'a> {
[INFO] [stdout]      | ------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 1581 |     pub fn offset_in_page(&self, page_buffer: &[u8]) -> usize {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1585 |     pub fn to_owned(&self) -> BTreeCell {
[INFO] [stdout]      |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `IndexInternalCellRef` is never constructed
[INFO] [stdout]     --> src/storage/page.rs:1619:12
[INFO] [stdout]      |
[INFO] [stdout] 1619 | pub struct IndexInternalCellRef<'a> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `IndexLeafCellRef` is never constructed
[INFO] [stdout]     --> src/storage/page.rs:1665:12
[INFO] [stdout]      |
[INFO] [stdout] 1665 | pub struct IndexLeafCellRef<'a> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TableInternalCellRef` is never constructed
[INFO] [stdout]     --> src/storage/page.rs:1710:12
[INFO] [stdout]      |
[INFO] [stdout] 1710 | pub struct TableInternalCellRef<'a> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TableLeafCellRef` is never constructed
[INFO] [stdout]     --> src/storage/page.rs:1755:12
[INFO] [stdout]      |
[INFO] [stdout] 1755 | pub struct TableLeafCellRef<'a> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_btree_cell_ref` is never used
[INFO] [stdout]     --> src/storage/page.rs:1800:4
[INFO] [stdout]      |
[INFO] [stdout] 1800 | fn read_btree_cell_ref<'a>(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_btree_cell` is never used
[INFO] [stdout]     --> src/storage/page.rs:1941:8
[INFO] [stdout]      |
[INFO] [stdout] 1941 | pub fn write_btree_cell<T: CellOps>(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_local_payload` is never used
[INFO] [stdout]     --> src/storage/page.rs:1955:8
[INFO] [stdout]      |
[INFO] [stdout] 1955 | pub fn read_local_payload(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cell_overflows` is never used
[INFO] [stdout]     --> src/storage/page.rs:1981:8
[INFO] [stdout]      |
[INFO] [stdout] 1981 | pub fn cell_overflows(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `MemPageRef` is never used
[INFO] [stdout]   --> src/storage/pager.rs:18:10
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub type MemPageRef = Arc<MemPage>;
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MemPage` is never constructed
[INFO] [stdout]   --> src/storage/pager.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct MemPage {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `inner`, and `id` are never used
[INFO] [stdout]   --> src/storage/pager.rs:34:12
[INFO] [stdout]    |
[INFO] [stdout] 33 | impl MemPage {
[INFO] [stdout]    | ------------ associated items in this implementation
[INFO] [stdout] 34 |     pub fn new(id: PageNumber) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     pub(super) fn inner(&self) -> &mut MemPageInner {
[INFO] [stdout]    |                   ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 52 |     pub fn id(&self) -> PageNumber {
[INFO] [stdout]    |            ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> src/storage/pager.rs:60:11
[INFO] [stdout]    |
[INFO] [stdout] 58 | impl MemPage {
[INFO] [stdout]    | ------------ associated items in this implementation
[INFO] [stdout] 59 |     /// Page is in I/O error state.
[INFO] [stdout] 60 |     const PAGE_ERROR: usize = 1 << 0;
[INFO] [stdout]    |           ^^^^^^^^^^
[INFO] [stdout] 61 |     /// Page needs to be flushed to disk.
[INFO] [stdout] 62 |     const PAGE_DIRTY: usize = 1 << 1;
[INFO] [stdout]    |           ^^^^^^^^^^
[INFO] [stdout] 63 |     /// Page is loaded into memory.
[INFO] [stdout] 64 |     const PAGE_LOADED: usize = 1 << 2;
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout] 65 |
[INFO] [stdout] 66 |     pub fn is_error(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 70 |     pub fn is_dirty(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 74 |     pub fn is_loaded(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 78 |     pub fn set_error(&self) {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 82 |     pub fn set_dirty(&self) {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 86 |     pub fn set_loaded(&self) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 90 |     pub fn clear_error(&self) {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 94 |     pub fn clear_dirty(&self) {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 98 |     pub fn clear_loaded(&self) {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/storage/pager.rs:106:11
[INFO] [stdout]     |
[INFO] [stdout] 104 | impl MemPage {
[INFO] [stdout]     | ------------ associated items in this implementation
[INFO] [stdout] 105 |     // Locking state
[INFO] [stdout] 106 |     const LOCKED_EXCLUSIVE: usize = 1 << 3;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^
[INFO] [stdout] 107 |     const SEEKS_LOCK: usize = 1 << 4;
[INFO] [stdout]     |           ^^^^^^^^^^
[INFO] [stdout] 108 |
[INFO] [stdout] 109 |     const SHARED_LOCKS_SHIFT: usize = 5;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 110 |     const SHARED_LOCK_ONE: usize = 1 << Self::SHARED_LOCKS_SHIFT;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 111 |
[INFO] [stdout] 112 |     pub fn is_locked(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 118 |     pub fn pin_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 124 |     pub fn lock_shared(self: &Arc<Self>) -> SharedPageGuard {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 148 |     fn lock_seek(self: &Arc<Self>) {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 172 |     pub fn lock_exclusive(self: &Arc<Self>) -> ExclusivePageGuard {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 201 |     pub fn unlock_shared(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 206 |     pub fn unlock_exclusive(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MemPageInner` is never constructed
[INFO] [stdout]    --> src/storage/pager.rs:212:12
[INFO] [stdout]     |
[INFO] [stdout] 212 | pub struct MemPageInner {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SharedPageGuard` is never constructed
[INFO] [stdout]    --> src/storage/pager.rs:217:12
[INFO] [stdout]     |
[INFO] [stdout] 217 | pub struct SharedPageGuard {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/storage/pager.rs:222:12
[INFO] [stdout]     |
[INFO] [stdout] 221 | impl SharedPageGuard {
[INFO] [stdout]     | -------------------- methods in this implementation
[INFO] [stdout] 222 |     pub fn get(&self) -> &Page {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 230 |     pub fn into_pin<T>(self, inner: T) -> PagePin<Self, T> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 234 |     pub fn id(&self) -> PageNumber {
[INFO] [stdout]     |            ^^
[INFO] [stdout] ...
[INFO] [stdout] 238 |     pub fn is_error(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 242 |     pub fn is_dirty(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 246 |     pub fn is_loaded(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 250 |     pub fn set_error(&self) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 254 |     pub fn set_dirty(&self) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 258 |     pub fn set_loaded(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 262 |     pub fn clear_error(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 266 |     pub fn clear_dirty(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 270 |     pub fn clear_loaded(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ExclusivePageGuard` is never constructed
[INFO] [stdout]    --> src/storage/pager.rs:289:12
[INFO] [stdout]     |
[INFO] [stdout] 289 | pub struct ExclusivePageGuard {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/storage/pager.rs:294:12
[INFO] [stdout]     |
[INFO] [stdout] 293 | impl ExclusivePageGuard {
[INFO] [stdout]     | ----------------------- methods in this implementation
[INFO] [stdout] 294 |     pub fn get(&self) -> &Page {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 302 |     pub fn get_mut(&mut self) -> &mut Page {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 310 |     pub fn replace(&mut self, page: Page) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 314 |     pub fn take(&mut self) -> Option<Page> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 318 |     pub fn into_pin<T>(self, inner: T) -> PagePin<Self, T> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 322 |     pub fn id(&self) -> PageNumber {
[INFO] [stdout]     |            ^^
[INFO] [stdout] ...
[INFO] [stdout] 326 |     pub fn is_error(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 330 |     pub fn is_dirty(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 334 |     pub fn is_loaded(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 338 |     pub fn set_error(&self) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 342 |     pub fn set_dirty(&self) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 346 |     pub fn set_loaded(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 350 |     pub fn clear_error(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 354 |     pub fn clear_dirty(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 358 |     pub fn clear_loaded(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PagePin` is never constructed
[INFO] [stdout]    --> src/storage/pager.rs:384:12
[INFO] [stdout]     |
[INFO] [stdout] 384 | pub struct PagePin<G, T> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/storage/pager.rs:390:12
[INFO] [stdout]     |
[INFO] [stdout] 389 | impl<G, T> PagePin<G, T> {
[INFO] [stdout]     | ------------------------ associated function in this implementation
[INFO] [stdout] 390 |     pub fn new(guard: G, inner: T) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Pager` is never constructed
[INFO] [stdout]    --> src/storage/pager.rs:413:12
[INFO] [stdout]     |
[INFO] [stdout] 413 | pub struct Pager {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/storage/pager.rs:427:12
[INFO] [stdout]     |
[INFO] [stdout] 426 | impl Pager {
[INFO] [stdout]     | ---------- associated items in this implementation
[INFO] [stdout] 427 |     pub fn new(
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 443 |     pub fn write_header(&mut self) -> storage::Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 453 |     pub fn read_page(&mut self, page_number: PageNumber) -> storage::Result<MemPageRef> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 486 |     fn read_page_from_disk(&mut self, page_number: PageNumber) -> storage::Result<Page> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 512 |     pub fn write_page(&mut self, page: MemPageRef) -> storage::Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 521 |     pub fn alloc_page(&mut self) -> storage::Result<PageNumber> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 550 |     pub fn flush(&mut self) -> storage::Result<()> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 554 |     pub fn sync(&self) -> storage::Result<()> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `complete_write_page` is never used
[INFO] [stdout]    --> src/storage/pager.rs:599:8
[INFO] [stdout]     |
[INFO] [stdout] 599 | pub fn complete_write_page(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAL_HEADER_SIZE` is never used
[INFO] [stdout]   --> src/storage/wal/mod.rs:34:7
[INFO] [stdout]    |
[INFO] [stdout] 34 | const WAL_HEADER_SIZE: usize = size_of::<WalHeader>();
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAL_HEADER_SIZE_NO_CHECKSUM` is never used
[INFO] [stdout]   --> src/storage/wal/mod.rs:35:7
[INFO] [stdout]    |
[INFO] [stdout] 35 | const WAL_HEADER_SIZE_NO_CHECKSUM: usize = WAL_HEADER_SIZE - size_of::<[u32; 2]>();
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FRAME_HEADER_SIZE` is never used
[INFO] [stdout]   --> src/storage/wal/mod.rs:36:7
[INFO] [stdout]    |
[INFO] [stdout] 36 | const FRAME_HEADER_SIZE: usize = size_of::<FrameHeader>();
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `READERS_NUM` is never used
[INFO] [stdout]   --> src/storage/wal/mod.rs:37:7
[INFO] [stdout]    |
[INFO] [stdout] 37 | const READERS_NUM: usize = 5;
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_CHECKPOINT_SIZE` is never used
[INFO] [stdout]   --> src/storage/wal/mod.rs:39:7
[INFO] [stdout]    |
[INFO] [stdout] 39 | const DEFAULT_CHECKPOINT_SIZE: FrameNumber = 1000;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Checksum` is never used
[INFO] [stdout]   --> src/storage/wal/mod.rs:41:6
[INFO] [stdout]    |
[INFO] [stdout] 41 | type Checksum = (u32, u32);
[INFO] [stdout]    |      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WalHeader` is never constructed
[INFO] [stdout]   --> src/storage/wal/mod.rs:45:12
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub struct WalHeader {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `update_checksum`, `default`, `from_bytes`, `to_bytes`, `write_to_buffer`, and `checksum_self` are never used
[INFO] [stdout]    --> src/storage/wal/mod.rs:64:12
[INFO] [stdout]     |
[INFO] [stdout]  62 | impl WalHeader {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout]  63 |     /// Recalculates checksum of all fields except `checksum`.
[INFO] [stdout]  64 |     pub fn update_checksum(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  68 |     pub fn default(page_size: u32, db_size: u32) -> Self {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  82 |     pub fn from_bytes(buffer: &[u8]) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 105 |     pub fn to_bytes(&self) -> Vec<u8> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |     pub fn write_to_buffer(&self, buffer: &mut [u8]) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 122 |     fn checksum_self(&self, seed: Option<Checksum>) -> Checksum {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MemWalHeader` is never constructed
[INFO] [stdout]    --> src/storage/wal/mod.rs:128:12
[INFO] [stdout]     |
[INFO] [stdout] 128 | pub struct MemWalHeader {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/storage/wal/mod.rs:138:12
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl MemWalHeader {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] 138 |     pub fn into_raw_header(&self) -> WalHeader {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 150 |     pub fn update_checksum(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 155 |     pub fn get_checkpoint_seq_num(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 159 |     pub fn get_last_checkpointed(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 163 |     pub fn get_db_size(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 167 |     pub fn get_backfilled_number(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 171 |     pub fn get_checksum(&self) -> Checksum {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 175 |     pub fn increment_checkpoint_seq_num(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 179 |     pub fn set_last_checkpointed(&self, value: PageNumber) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 183 |     pub fn set_db_size(&self, value: u32) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 187 |     pub fn set_backfilled_number(&self, value: u32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 191 |     pub fn set_checksum(&self, (val_1, val_2): Checksum) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FrameHeader` is never constructed
[INFO] [stdout]    --> src/storage/wal/mod.rs:211:12
[INFO] [stdout]     |
[INFO] [stdout] 211 | pub struct FrameHeader {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from_bytes` and `to_bytes` are never used
[INFO] [stdout]    --> src/storage/wal/mod.rs:222:12
[INFO] [stdout]     |
[INFO] [stdout] 221 | impl FrameHeader {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout] 222 |     pub fn from_bytes(buffer: &[u8]) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 237 |     pub fn to_bytes(&self, buffer: &mut [u8]) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WalManager` is never constructed
[INFO] [stdout]    --> src/storage/wal/mod.rs:245:12
[INFO] [stdout]     |
[INFO] [stdout] 245 | pub struct WalManager {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `local_wal` are never used
[INFO] [stdout]    --> src/storage/wal/mod.rs:250:12
[INFO] [stdout]     |
[INFO] [stdout] 249 | impl WalManager {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout] 250 |     pub fn new(
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 294 |     pub fn local_wal(&self) -> LocalWal {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GlobalWal` is never constructed
[INFO] [stdout]    --> src/storage/wal/mod.rs:299:12
[INFO] [stdout]     |
[INFO] [stdout] 299 | pub struct GlobalWal {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/storage/wal/mod.rs:335:12
[INFO] [stdout]     |
[INFO] [stdout] 334 | impl GlobalWal {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout] 335 |     pub fn new(
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 390 |     pub fn write_header(&self) -> storage::Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 398 |     pub fn get_min_frame(&self) -> FrameNumber {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 402 |     pub fn get_max_frame(&self) -> FrameNumber {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 406 |     pub fn get_last_checksum(&self) -> Checksum {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 410 |     pub fn get_backfilled_number(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 414 |     pub fn get_checkpoint_seq_num(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 418 |     pub fn set_min_frame(&self, value: FrameNumber) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 422 |     pub fn set_max_frame(&self, value: FrameNumber) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 426 |     pub fn set_last_checksum(&self, value: Checksum) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 431 |     pub fn set_backfilled_number(&self, value: u32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 435 |     pub fn increment_checkpoint_seq_num(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LocalWal` is never constructed
[INFO] [stdout]    --> src/storage/wal/mod.rs:440:12
[INFO] [stdout]     |
[INFO] [stdout] 440 | pub struct LocalWal {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/storage/wal/mod.rs:452:12
[INFO] [stdout]     |
[INFO] [stdout] 451 | impl LocalWal {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] 452 |     pub fn new(global_wal: Arc<GlobalWal>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 461 |     fn calculate_frame_offset(&self, frame_number: FrameNumber) -> storage::Result<usize> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 468 |     pub fn is_in_wal(&self, page_number: &PageNumber) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 472 |     pub fn begin_read_tx(&mut self) -> storage::Result<ReadGuard<READERS_NUM>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 488 |     pub fn begin_write_tx(&mut self) -> storage::Result<WriteGuard> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 501 |     pub fn end_read_tx(&mut self, guard: ReadGuard<READERS_NUM>) -> storage::Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 511 |     pub fn end_write_tx(&mut self, guard: WriteGuard) -> storage::Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 528 |     fn read_raw(&self, frame_number: FrameNumber, buffer: &mut [u8]) -> storage::Result<usize> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 538 |     pub fn read_frame(
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 578 |     pub fn append_frame(&mut self, page: ExclusivePageGuard, db_size: u32) -> storage::Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 582 |     pub fn append_vectored(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 643 |     fn should_checkpoint(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 651 |     pub fn checkpoint(&mut self) -> storage::Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WalIndex` is never constructed
[INFO] [stdout]    --> src/storage/wal/mod.rs:710:12
[INFO] [stdout]     |
[INFO] [stdout] 710 | pub struct WalIndex {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/storage/wal/mod.rs:715:12
[INFO] [stdout]     |
[INFO] [stdout] 714 | impl WalIndex {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] 715 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 727 |     fn insert_latest(&self, page_number: PageNumber, frame_number: FrameNumber) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 734 |     pub fn insert(&self, page_number: PageNumber, frame_number: FrameNumber) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 742 |     pub fn latest_frames_sorted(&self, max_frame: FrameNumber) -> Vec<(PageNumber, FrameNumber)> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 763 |     pub fn contains(&self, page_number: &PageNumber) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 767 |     pub fn get(&self, page_number: &PageNumber, max_frame: FrameNumber) -> Option<FrameNumber> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 773 |     pub fn clear(&self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `validate_frame` is never used
[INFO] [stdout]    --> src/storage/wal/mod.rs:787:4
[INFO] [stdout]     |
[INFO] [stdout] 787 | fn validate_frame(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `checksum_bytes` is never used
[INFO] [stdout]    --> src/storage/wal/mod.rs:813:8
[INFO] [stdout]     |
[INFO] [stdout] 813 | pub fn checksum_bytes(data: &[u8], seed: Option<Checksum>) -> Checksum {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Semaphore` is never constructed
[INFO] [stdout]   --> src/storage/wal/locks.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct Semaphore {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `acquire`, and `release` are never used
[INFO] [stdout]   --> src/storage/wal/locks.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl Semaphore {
[INFO] [stdout]    | -------------- associated items in this implementation
[INFO] [stdout] 21 |     pub fn new(initial: usize) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 29 |     pub fn acquire(&self) {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |     pub fn release(&self) {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ReadersPool` is never constructed
[INFO] [stdout]   --> src/storage/wal/locks.rs:48:12
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub struct ReadersPool<const READERS_NUM: usize> {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `FREE_SLOT`, `new`, `min_active_frame`, `get_min_frame`, `acquire`, and `release` are never used
[INFO] [stdout]    --> src/storage/wal/locks.rs:56:11
[INFO] [stdout]     |
[INFO] [stdout]  55 | impl<const READERS_NUM: usize> ReadersPool<READERS_NUM> {
[INFO] [stdout]     | ------------------------------------------------------- associated items in this implementation
[INFO] [stdout]  56 |     const FREE_SLOT: FrameNumber = 0;
[INFO] [stdout]     |           ^^^^^^^^^
[INFO] [stdout]  57 |
[INFO] [stdout]  58 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  67 |     pub fn min_active_frame(&self) -> FrameNumber {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  81 |     pub fn get_min_frame(&self, slot_id: usize) -> FrameNumber {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  88 |     pub fn acquire<'a, F>(
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 125 |     pub fn release(&self, slot_id: usize) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ReadGuard` is never constructed
[INFO] [stdout]    --> src/storage/wal/locks.rs:131:12
[INFO] [stdout]     |
[INFO] [stdout] 131 | pub struct ReadGuard<'a, const READERS_NUM: usize> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `min_frame` is never used
[INFO] [stdout]    --> src/storage/wal/locks.rs:138:12
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<'a, const READERS_NUM: usize> ReadGuard<'a, READERS_NUM> {
[INFO] [stdout]     | ------------------------------------------------------------- method in this implementation
[INFO] [stdout] 138 |     pub fn min_frame(&self) -> FrameNumber {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WriteGuard` is never constructed
[INFO] [stdout]    --> src/storage/wal/locks.rs:150:12
[INFO] [stdout]     |
[INFO] [stdout] 150 | pub struct WriteGuard<'a> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/storage/wal/locks.rs:156:12
[INFO] [stdout]     |
[INFO] [stdout] 155 | impl<'a> WriteGuard<'a> {
[INFO] [stdout]     | ----------------------- associated function in this implementation
[INFO] [stdout] 156 |     pub fn new(checkpoint_guard: RwLockReadGuard<'a, ()>, mutex_guard: MutexGuard<'a, ()>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `PackedU64` is never used
[INFO] [stdout]    --> src/storage/wal/locks.rs:166:11
[INFO] [stdout]     |
[INFO] [stdout] 166 | pub trait PackedU64 {
[INFO] [stdout]     |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Result` is never used
[INFO] [stdout]   --> src/utils/mod.rs:10:10
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub type Result<T> = std::result::Result<T, Error>;
[INFO] [stdout]    |          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]   --> src/utils/mod.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub enum Error {
[INFO] [stdout]    |          ----- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 17 |     InvalidAligment,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 18 |     #[error("size mismatch")]
[INFO] [stdout] 19 |     SizeMismatch,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 20 |     #[error("invalid bytes")]
[INFO] [stdout] 21 |     InvalidBytes,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 22 |     #[error("varint is invalid, either overflowed or incompleted")]
[INFO] [stdout] 23 |     InvalidVarInt,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 24 |     #[error("attempted to access outside buffer. buffer overflow")]
[INFO] [stdout] 25 |     OutOfSpace,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 29 |     InvalidAllocation(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |     Unknown,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Error` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `BufferData` is never used
[INFO] [stdout]   --> src/utils/buffer.rs:10:10
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub type BufferData = NonNull<u8>;
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `DropFn` is never used
[INFO] [stdout]   --> src/utils/buffer.rs:11:10
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub type DropFn = Rc<dyn Fn(BufferData)>;
[INFO] [stdout]    |          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BUFFER_ALIGNMENT` is never used
[INFO] [stdout]   --> src/utils/buffer.rs:13:11
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub const BUFFER_ALIGNMENT: usize = align_of::<u8>();
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Buffer` is never constructed
[INFO] [stdout]   --> src/utils/buffer.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct Buffer {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> src/utils/buffer.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | impl Buffer {
[INFO] [stdout]    | ----------- associated items in this implementation
[INFO] [stdout] 22 |     pub fn alloc(size: usize, drop: Option<DropFn>) -> Self {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub fn alloc_page(size: usize, drop: Option<DropFn>) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub fn from_ptr(ptr: NonNull<u8>, size: usize, drop: Option<DropFn>) -> Self {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 42 |     pub fn size(&self) -> usize {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 50 |     pub fn as_ptr(&self) -> *const u8 {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 54 |     pub fn as_mut_ptr(&self) -> *mut u8 {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 58 |     pub fn as_non_null(&self) -> NonNull<u8> {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 62 |     pub fn as_slice(&self) -> &[u8] {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 66 |     pub fn as_mut_slice(&self) -> &mut [u8] {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 70 |     pub fn reset(&mut self) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `alloc_heap` is never used
[INFO] [stdout]    --> src/utils/buffer.rs:125:15
[INFO] [stdout]     |
[INFO] [stdout] 125 | pub unsafe fn alloc_heap(size: usize, align: usize) -> NonNull<u8> {
[INFO] [stdout]     |               ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dealloc_heap` is never used
[INFO] [stdout]    --> src/utils/buffer.rs:130:15
[INFO] [stdout]     |
[INFO] [stdout] 130 | pub unsafe fn dealloc_heap(ptr: NonNull<u8>, size: usize, align: usize) {
[INFO] [stdout]     |               ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `VarInt` is never used
[INFO] [stdout]  --> src/utils/bytes.rs:5:10
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub type VarInt = u64;
[INFO] [stdout]   |          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PAYLOAD_MASK` is never used
[INFO] [stdout]   --> src/utils/bytes.rs:37:7
[INFO] [stdout]    |
[INFO] [stdout] 37 | const PAYLOAD_MASK: u8 = 0x7F;
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MOST_SIGNIFICANT_BIT_MASK` is never used
[INFO] [stdout]   --> src/utils/bytes.rs:39:7
[INFO] [stdout]    |
[INFO] [stdout] 39 | const MOST_SIGNIFICANT_BIT_MASK: u8 = 0x80;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_varint` is never used
[INFO] [stdout]   --> src/utils/bytes.rs:43:8
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub fn read_varint(buf: &[u8]) -> Result<(VarInt, usize)> {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `encode_to_varint` is never used
[INFO] [stdout]   --> src/utils/bytes.rs:65:8
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub fn encode_to_varint(mut value: VarInt) -> Vec<u8> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_varint` is never used
[INFO] [stdout]   --> src/utils/bytes.rs:89:4
[INFO] [stdout]    |
[INFO] [stdout] 89 | fn write_varint(buf: &mut [u8], mut value: VarInt) -> Result<usize> {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BytesCursor` is never constructed
[INFO] [stdout]    --> src/utils/bytes.rs:115:12
[INFO] [stdout]     |
[INFO] [stdout] 115 | pub struct BytesCursor<T> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `into_inner`, `advance`, `position`, `set_position`, and `reset` are never used
[INFO] [stdout]    --> src/utils/bytes.rs:122:12
[INFO] [stdout]     |
[INFO] [stdout] 121 | impl<T> BytesCursor<T> {
[INFO] [stdout]     | ---------------------- associated items in this implementation
[INFO] [stdout] 122 |     pub fn new(buffer: T) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 130 |     pub fn into_inner(self) -> T {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 135 |     pub fn advance(&mut self, by: usize) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 140 |     pub fn position(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 145 |     pub fn set_position(&mut self, pos: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 150 |     pub fn reset(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/utils/bytes.rs:157:8
[INFO] [stdout]     |
[INFO] [stdout] 155 | impl<T: AsRef<[u8]>> BytesCursor<T> {
[INFO] [stdout]     | ----------------------------------- methods in this implementation
[INFO] [stdout] 156 |     /// Returns length of buffer.
[INFO] [stdout] 157 |     fn len(&self) -> usize {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 162 |     fn remaining(&self) -> usize {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 167 |     fn chunk(&self) -> &[u8] {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 176 |     pub fn read_u8(&mut self) -> u8 {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 182 |     pub fn try_read_u8(&mut self) -> Result<u8> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 198 |     pub fn read_u16_le(&mut self) -> u16 {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 204 |     pub fn try_read_u16_le(&mut self) -> Result<u16> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 215 |     pub fn read_u32_le(&mut self) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 221 |     pub fn try_read_u32_le(&mut self) -> Result<u32> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 232 |     pub fn read_u64_le(&mut self) -> u64 {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 238 |     pub fn try_read_u64_le(&mut self) -> Result<u64> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 249 |     pub fn read_varint(&mut self) -> (VarInt, usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 256 |     pub fn try_read_varint(&mut self) -> Result<(VarInt, usize)> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/utils/bytes.rs:265:8
[INFO] [stdout]     |
[INFO] [stdout] 263 | impl<T: AsRef<[u8]> + AsMut<[u8]>> BytesCursor<T> {
[INFO] [stdout]     | ------------------------------------------------- methods in this implementation
[INFO] [stdout] 264 |     /// Returns mutable slice of internal buffer from current `position` to end.
[INFO] [stdout] 265 |     fn chunk_mut(&mut self) -> &mut [u8] {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 275 |     pub fn write_u8(&mut self, value: u8) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 281 |     pub fn try_write_u8(&mut self, value: u8) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 297 |     pub fn write_u16_le(&mut self, value: u16) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 303 |     pub fn try_write_u16_le(&mut self, value: u16) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 314 |     pub fn write_u32_le(&mut self, value: u32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 320 |     pub fn try_write_u32_le(&mut self, value: u32) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 331 |     pub fn write_u64_le(&mut self, value: u64) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 337 |     pub fn try_write_u64_le(&mut self, value: u64) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 348 |     pub fn write_varint(&mut self, value: VarInt) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 355 |     pub fn try_write_varint(&mut self, value: VarInt) -> Result<usize> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 368 |     pub fn write_bytes(&mut self, bytes: &[u8]) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 374 |     pub fn try_write_bytes(&mut self, bytes: &[u8]) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `put_u8`, `put_u16_le`, `put_u32_le`, `put_u64_le`, `put_varint`, and `put_bytes` are never used
[INFO] [stdout]    --> src/utils/bytes.rs:388:12
[INFO] [stdout]     |
[INFO] [stdout] 385 | impl<T: AsRef<[u8]> + AsMut<[u8]> + Extend<u8>> BytesCursor<T> {
[INFO] [stdout]     | -------------------------------------------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 388 |     pub fn put_u8(&mut self, value: u8) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 396 |     pub fn put_u16_le(&mut self, value: u16) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 404 |     pub fn put_u32_le(&mut self, value: u32) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 412 |     pub fn put_u64_le(&mut self, value: u64) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 420 |     pub fn put_varint(&mut self, value: VarInt) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 430 |     pub fn put_bytes(&mut self, value: &[u8]) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `varint_size` is never used
[INFO] [stdout]    --> src/utils/bytes.rs:438:8
[INFO] [stdout]     |
[INFO] [stdout] 438 | pub fn varint_size(value: VarInt) -> usize {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `zigzag_encode` is never used
[INFO] [stdout]    --> src/utils/bytes.rs:442:8
[INFO] [stdout]     |
[INFO] [stdout] 442 | pub fn zigzag_encode(value: i64) -> u64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `zigzag_decode` is never used
[INFO] [stdout]    --> src/utils/bytes.rs:446:8
[INFO] [stdout]     |
[INFO] [stdout] 446 | pub fn zigzag_decode(value: u64) -> i64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `checksum_crc32` is never used
[INFO] [stdout]    --> src/utils/bytes.rs:451:8
[INFO] [stdout]     |
[INFO] [stdout] 451 | pub fn checksum_crc32(bytes: &[u8]) -> u32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `flip_n_bits` is never used
[INFO] [stdout]    --> src/utils/bytes.rs:472:8
[INFO] [stdout]     |
[INFO] [stdout] 472 | pub fn flip_n_bits(value: &mut u64, mut n: usize, positions: &mut Vec<usize>, offset: usize) {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `byte_swap_u32` is never used
[INFO] [stdout]    --> src/utils/bytes.rs:486:8
[INFO] [stdout]     |
[INFO] [stdout] 486 | pub fn byte_swap_u32(value: u32) -> u32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `pack_u64` is never used
[INFO] [stdout]    --> src/utils/bytes.rs:491:8
[INFO] [stdout]     |
[INFO] [stdout] 491 | pub fn pack_u64(a: u32, b: u32) -> u64 {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `unpack_u64` is never used
[INFO] [stdout]    --> src/utils/bytes.rs:496:8
[INFO] [stdout]     |
[INFO] [stdout] 496 | pub fn unpack_u64(packed: u64) -> (u32, u32) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_aligned_to` is never used
[INFO] [stdout]   --> src/utils/cast.rs:10:8
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn is_aligned_to(ptr: *const (), align: usize) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cast` is never used
[INFO] [stdout]   --> src/utils/cast.rs:20:8
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn cast<A: Copy, B: Copy>(a: A) -> B {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cast_slice` is never used
[INFO] [stdout]   --> src/utils/cast.rs:29:8
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub fn cast_slice<A, B>(a: &[A]) -> &[B] {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cast_slice_mut` is never used
[INFO] [stdout]   --> src/utils/cast.rs:38:8
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub fn cast_slice_mut<A, B>(a: &mut [A]) -> &mut [B] {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `from_bytes` is never used
[INFO] [stdout]   --> src/utils/cast.rs:48:8
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub fn from_bytes<T: Copy>(src: &[u8]) -> &T {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `from_bytes_mut` is never used
[INFO] [stdout]   --> src/utils/cast.rs:58:8
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub fn from_bytes_mut<T: Copy>(src: &mut [u8]) -> &mut T {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bytes_of` is never used
[INFO] [stdout]   --> src/utils/cast.rs:63:8
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub fn bytes_of<T>(src: &T) -> &[u8] {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bytes_of_mut` is never used
[INFO] [stdout]   --> src/utils/cast.rs:68:8
[INFO] [stdout]    |
[INFO] [stdout] 68 | pub fn bytes_of_mut<T>(src: &mut T) -> &mut [u8] {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `try_cast` is never used
[INFO] [stdout]   --> src/utils/cast.rs:77:15
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub unsafe fn try_cast<A: Copy, B: Copy>(a: A) -> Result<B> {
[INFO] [stdout]    |               ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `try_cast_slice` is never used
[INFO] [stdout]   --> src/utils/cast.rs:92:15
[INFO] [stdout]    |
[INFO] [stdout] 92 | pub unsafe fn try_cast_slice<A, B>(a: &[A]) -> Result<&[B]> {
[INFO] [stdout]    |               ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `try_cast_slice_mut` is never used
[INFO] [stdout]    --> src/utils/cast.rs:115:15
[INFO] [stdout]     |
[INFO] [stdout] 115 | pub unsafe fn try_cast_slice_mut<A, B>(a: &mut [A]) -> Result<&mut [B]> {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `try_from_bytes` is never used
[INFO] [stdout]    --> src/utils/cast.rs:143:15
[INFO] [stdout]     |
[INFO] [stdout] 143 | pub unsafe fn try_from_bytes<T: Copy>(src: &[u8]) -> Result<&T> {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `try_from_bytes_mut` is never used
[INFO] [stdout]    --> src/utils/cast.rs:159:15
[INFO] [stdout]     |
[INFO] [stdout] 159 | pub unsafe fn try_from_bytes_mut<T: Copy>(src: &mut [u8]) -> Result<&mut T> {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `try_bytes_of` is never used
[INFO] [stdout]    --> src/utils/cast.rs:170:15
[INFO] [stdout]     |
[INFO] [stdout] 170 | pub unsafe fn try_bytes_of<T>(src: &T) -> Result<&[u8]> {
[INFO] [stdout]     |               ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `try_bytes_of_mut` is never used
[INFO] [stdout]    --> src/utils/cast.rs:175:15
[INFO] [stdout]     |
[INFO] [stdout] 175 | pub unsafe fn try_bytes_of_mut<T>(src: &mut T) -> Result<&mut [u8]> {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cast_static` is never used
[INFO] [stdout]    --> src/utils/cast.rs:180:15
[INFO] [stdout]     |
[INFO] [stdout] 180 | pub unsafe fn cast_static<T>(src: &[T]) -> &'static [T] {
[INFO] [stdout]     |               ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `trim_if_to_long` is never used
[INFO] [stdout]  --> src/utils/debug_table.rs:6:4
[INFO] [stdout]   |
[INFO] [stdout] 6 | fn trim_if_to_long(value: String, len: usize) -> String {
[INFO] [stdout]   |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DebugTable` is never constructed
[INFO] [stdout]   --> src/utils/debug_table.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct DebugTable<'a> {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> src/utils/debug_table.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | impl<'a> DebugTable<'a> {
[INFO] [stdout]    | ----------------------- associated items in this implementation
[INFO] [stdout] 27 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |     pub fn len(&self) -> usize {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub fn add_column(&mut self, name: &'a dyn Debug) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 42 |     pub fn insert_row(&mut self, row: Vec<&'a dyn Debug>) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 51 |     fn column_len(&self, index: usize) -> usize {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 55 |     fn columns_width(&self) -> VecDeque<usize> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 61 |     fn separator(&self) -> String {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 75 |     fn print_header(&self) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 96 |     fn printable_row(&self, index: usize) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `FileOps` is never used
[INFO] [stdout]   --> src/utils/io.rs:16:11
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub trait FileOps {
[INFO] [stdout]    |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `IO` is never used
[INFO] [stdout]   --> src/utils/io.rs:89:11
[INFO] [stdout]    |
[INFO] [stdout] 89 | pub trait IO {
[INFO] [stdout]    |           ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BlockIO` is never constructed
[INFO] [stdout]    --> src/utils/io.rs:262:12
[INFO] [stdout]     |
[INFO] [stdout] 262 | pub struct BlockIO<I> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `get_io`, and `calculate_offset` are never used
[INFO] [stdout]    --> src/utils/io.rs:272:12
[INFO] [stdout]     |
[INFO] [stdout] 271 | impl<I> BlockIO<I> {
[INFO] [stdout]     | ------------------ associated items in this implementation
[INFO] [stdout] 272 |     pub fn new(io: I, block_size: usize, header_size: usize) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 280 |     fn get_io(&self) -> &mut I {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 285 |     pub fn calculate_offset(&self, block_number: BlockNumber) -> io::Result<usize> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/utils/io.rs:294:12
[INFO] [stdout]     |
[INFO] [stdout] 293 | impl<I: IO> BlockIO<I> {
[INFO] [stdout]     | ---------------------- methods in this implementation
[INFO] [stdout] 294 |     pub fn raw_read(&self, offset: usize, buffer: &mut [u8]) -> io::Result<usize> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 300 |     pub fn read_header(&self, buffer: &mut [u8]) -> io::Result<usize> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 308 |     pub fn read(
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 319 |     pub fn raw_write(&self, offset: usize, buffer: &[u8]) -> io::Result<usize> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 325 |     pub fn write_header(&self, buffer: &[u8]) -> io::Result<usize> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 333 |     pub fn write(
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 347 |     pub fn write_vectored(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 363 |     pub fn truncate(&self, to_block_len: BlockNumber) -> io::Result<()> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 380 |     pub fn truncate_beginning(&self, up_to_block_number: BlockNumber) -> io::Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `flush` is never used
[INFO] [stdout]    --> src/utils/io.rs:398:12
[INFO] [stdout]     |
[INFO] [stdout] 393 | impl<I: Write> BlockIO<I> {
[INFO] [stdout]     | ------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 398 |     pub fn flush(&self) -> io::Result<()> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `sync` is never used
[INFO] [stdout]    --> src/utils/io.rs:405:12
[INFO] [stdout]     |
[INFO] [stdout] 403 | impl<I: FileOps> BlockIO<I> {
[INFO] [stdout]     | --------------------------- method in this implementation
[INFO] [stdout] 404 |     /// Makes syscall to kernel to write **flushed** buffers to disk.
[INFO] [stdout] 405 |     pub fn sync(&self) -> io::Result<()> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `persist` is never used
[INFO] [stdout]    --> src/utils/io.rs:412:12
[INFO] [stdout]     |
[INFO] [stdout] 410 | impl<I: Write + FileOps> BlockIO<I> {
[INFO] [stdout]     | ----------------------------------- method in this implementation
[INFO] [stdout] 411 |     /// Flushes and fsync all writes to make sure that they are persisted.
[INFO] [stdout] 412 |     pub fn persist(&self) -> io::Result<()> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/database/mod.rs:107:9
[INFO] [stdout]     |
[INFO] [stdout] 107 | /         self.freelist_pages
[INFO] [stdout] 108 | |             .fetch_update(Ordering::Acquire, Ordering::Acquire, |val| {
[INFO] [stdout] 109 | |                 Some(val.saturating_sub(sub))
[INFO] [stdout] 110 | |             });
[INFO] [stdout]     | |______________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 107 |         let _ = self.freelist_pages
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/storage/page.rs:291:24
[INFO] [stdout]     |
[INFO] [stdout] 291 |     pub fn as_io_slice(&self) -> IoSlice {
[INFO] [stdout]     |                        ^^^^^     ^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 291 |     pub fn as_io_slice(&self) -> IoSlice<'_> {
[INFO] [stdout]     |                                         ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/storage/page.rs:344:23
[INFO] [stdout]     |
[INFO] [stdout] 344 |     pub fn slot_array(&self) -> SlotArray {
[INFO] [stdout]     |                       ^^^^^     ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 344 |     pub fn slot_array(&self) -> SlotArray<'_> {
[INFO] [stdout]     |                                          ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/storage/page.rs:348:27
[INFO] [stdout]     |
[INFO] [stdout] 348 |     pub fn freeblock_list(&self) -> FreeblockList {
[INFO] [stdout]     |                           ^^^^^     ^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 348 |     pub fn freeblock_list(&self) -> FreeblockList<'_> {
[INFO] [stdout]     |                                                  ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/storage/page.rs:419:27
[INFO] [stdout]     |
[INFO] [stdout] 419 |     fn get_cell_at_offset(&self, offset: u16) -> storage::Result<BTreeCellRef> {
[INFO] [stdout]     |                           ^^^^^ the lifetime is elided here      ^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 419 |     fn get_cell_at_offset(&self, offset: u16) -> storage::Result<BTreeCellRef<'_>> {
[INFO] [stdout]     |                                                                              ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/storage/wal/mod.rs:472:26
[INFO] [stdout]     |
[INFO] [stdout] 472 |     pub fn begin_read_tx(&mut self) -> storage::Result<ReadGuard<READERS_NUM>> {
[INFO] [stdout]     |                          ^^^^^^^^^                     ^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                          |
[INFO] [stdout]     |                          the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 472 |     pub fn begin_read_tx(&mut self) -> storage::Result<ReadGuard<'_, READERS_NUM>> {
[INFO] [stdout]     |                                                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/storage/wal/mod.rs:488:27
[INFO] [stdout]     |
[INFO] [stdout] 488 |     pub fn begin_write_tx(&mut self) -> storage::Result<WriteGuard> {
[INFO] [stdout]     |                           ^^^^^^^^^                     ^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 488 |     pub fn begin_write_tx(&mut self) -> storage::Result<WriteGuard<'_>> {
[INFO] [stdout]     |                                                                   ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 14.94s
[INFO] running `Command { std: "docker" "inspect" "202b44a5d37721be459efef0d9085309566c1f78e2fab45072b698fd53f9e318", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "202b44a5d37721be459efef0d9085309566c1f78e2fab45072b698fd53f9e318", kill_on_drop: false }`
[INFO] [stdout] 202b44a5d37721be459efef0d9085309566c1f78e2fab45072b698fd53f9e318
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+2fd6efc32704647e64d3d646d21c4c68eae100e4" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 0398a523ff27e8bd9dd47a2f55e59474ce611551752e606ae9e1758da2636268
[INFO] running `Command { std: "docker" "start" "-a" "0398a523ff27e8bd9dd47a2f55e59474ce611551752e606ae9e1758da2636268", kill_on_drop: false }`
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling zerocopy v0.8.33
[INFO] [stderr]    Compiling zmij v1.0.14
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling autocfg v1.5.0
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling rayon-core v1.13.0
[INFO] [stderr]    Compiling plotters-backend v0.3.7
[INFO] [stderr]    Compiling regex-syntax v0.8.8
[INFO] [stderr]    Compiling clap_lex v0.7.7
[INFO] [stderr]    Compiling zerocopy-derive v0.8.33
[INFO] [stderr]    Compiling crossbeam-deque v0.8.6
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling anstyle v1.0.13
[INFO] [stderr]    Compiling ciborium-io v0.2.2
[INFO] [stderr]    Compiling memchr v2.7.6
[INFO] [stderr]    Compiling same-file v1.0.6
[INFO] [stderr]    Compiling cast v0.3.0
[INFO] [stderr]    Compiling clap_builder v4.5.54
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling plotters-svg v0.3.7
[INFO] [stderr]    Compiling itertools v0.10.5
[INFO] [stderr]    Compiling walkdir v2.5.0
[INFO] [stderr]    Compiling crossbeam v0.8.4
[INFO] [stderr]    Compiling is-terminal v0.4.17
[INFO] [stderr]    Compiling oorandom v11.1.5
[INFO] [stderr]    Compiling anes v0.1.6
[INFO] [stderr]    Compiling carcinusdb v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `borrow::Cow`
[INFO] [stdout]  --> src/storage/page.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 |     borrow::Cow,
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::error::DatabaseResult`
[INFO] [stdout]  --> src/tcp/server/connection.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::error::DatabaseResult;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AtomicU32` and `Ordering`
[INFO] [stdout]  --> src/utils/io.rs:7:20
[INFO] [stdout]   |
[INFO] [stdout] 7 |     sync::atomic::{AtomicU32, Ordering},
[INFO] [stdout]   |                    ^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling rayon v1.11.0
[INFO] [stderr]    Compiling regex-automata v0.4.13
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]   --> src/database/mod.rs:43:5
[INFO] [stdout]    |
[INFO] [stdout] 38 | /     loop {
[INFO] [stdout] 39 | |         let conn = tcp_server.accept_connection().await?;
[INFO] [stdout] 40 | |         tokio::spawn(async move { handle_connection(conn) });
[INFO] [stdout] 41 | |     }
[INFO] [stdout]    | |_____- any code following this expression is unreachable
[INFO] [stdout] 42 |
[INFO] [stdout] 43 |       Ok(())
[INFO] [stdout]    |       ^^^^^^ unreachable expression
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling plotters v0.3.7
[INFO] [stderr]    Compiling clap v4.5.54
[INFO] [stderr]    Compiling criterion-plot v0.5.0
[INFO] [stdout] warning: field `input` is never read
[INFO] [stdout]   --> src/sql/parser.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub struct Parser<'a> {
[INFO] [stdout]    |            ------ field in this struct
[INFO] [stdout] 27 |     input: &'a str,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `previous`, `current`, `expect_one_of`, and `parse_constrains` are never used
[INFO] [stdout]    --> src/sql/parser.rs:62:8
[INFO] [stdout]     |
[INFO] [stdout]  37 | impl<'a> Parser<'a> {
[INFO] [stdout]     | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  62 |     fn previous(&self) -> Option<&Token> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  66 |     fn current(&self) -> Option<&Token> {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 173 |     fn expect_one_of<'k, K>(&mut self, keywords: &'k K) -> sql::Result<Keyword>
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 371 |     fn parse_constrains(&mut self) -> sql::Result<Constrains> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `kind` is never read
[INFO] [stdout]   --> src/sql/types/text.rs:72:5
[INFO] [stdout]    |
[INFO] [stdout] 70 | pub struct TextRef<'a> {
[INFO] [stdout]    |            ------- field in this struct
[INFO] [stdout] 71 |     value: &'a str,
[INFO] [stdout] 72 |     kind: TextKind,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TextRef` 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: method `put` is never used
[INFO] [stdout]   --> src/storage/buffer_pool.rs:96:8
[INFO] [stdout]    |
[INFO] [stdout] 66 | impl LocalBufferPool {
[INFO] [stdout]    | -------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 96 |     fn put(&mut self, mem: NonNull<u8>) {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Semaphore` is never constructed
[INFO] [stdout]   --> src/storage/wal/locks.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct Semaphore {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `acquire`, and `release` are never used
[INFO] [stdout]   --> src/storage/wal/locks.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl Semaphore {
[INFO] [stdout]    | -------------- associated items in this implementation
[INFO] [stdout] 21 |     pub fn new(initial: usize) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 29 |     pub fn acquire(&self) {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |     pub fn release(&self) {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `min_active_frame` is never used
[INFO] [stdout]   --> src/storage/wal/locks.rs:67:12
[INFO] [stdout]    |
[INFO] [stdout] 55 | impl<const READERS_NUM: usize> ReadersPool<READERS_NUM> {
[INFO] [stdout]    | ------------------------------------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 67 |     pub fn min_active_frame(&self) -> FrameNumber {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/database/mod.rs:107:9
[INFO] [stdout]     |
[INFO] [stdout] 107 | /         self.freelist_pages
[INFO] [stdout] 108 | |             .fetch_update(Ordering::Acquire, Ordering::Acquire, |val| {
[INFO] [stdout] 109 | |                 Some(val.saturating_sub(sub))
[INFO] [stdout] 110 | |             });
[INFO] [stdout]     | |______________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 107 |         let _ = self.freelist_pages
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/storage/page.rs:291:24
[INFO] [stdout]     |
[INFO] [stdout] 291 |     pub fn as_io_slice(&self) -> IoSlice {
[INFO] [stdout]     |                        ^^^^^     ^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 291 |     pub fn as_io_slice(&self) -> IoSlice<'_> {
[INFO] [stdout]     |                                         ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/storage/page.rs:344:23
[INFO] [stdout]     |
[INFO] [stdout] 344 |     pub fn slot_array(&self) -> SlotArray {
[INFO] [stdout]     |                       ^^^^^     ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 344 |     pub fn slot_array(&self) -> SlotArray<'_> {
[INFO] [stdout]     |                                          ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/storage/page.rs:348:27
[INFO] [stdout]     |
[INFO] [stdout] 348 |     pub fn freeblock_list(&self) -> FreeblockList {
[INFO] [stdout]     |                           ^^^^^     ^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 348 |     pub fn freeblock_list(&self) -> FreeblockList<'_> {
[INFO] [stdout]     |                                                  ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/storage/page.rs:419:27
[INFO] [stdout]     |
[INFO] [stdout] 419 |     fn get_cell_at_offset(&self, offset: u16) -> storage::Result<BTreeCellRef> {
[INFO] [stdout]     |                           ^^^^^ the lifetime is elided here      ^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 419 |     fn get_cell_at_offset(&self, offset: u16) -> storage::Result<BTreeCellRef<'_>> {
[INFO] [stdout]     |                                                                              ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/storage/wal/mod.rs:472:26
[INFO] [stdout]     |
[INFO] [stdout] 472 |     pub fn begin_read_tx(&mut self) -> storage::Result<ReadGuard<READERS_NUM>> {
[INFO] [stdout]     |                          ^^^^^^^^^                     ^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                          |
[INFO] [stdout]     |                          the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 472 |     pub fn begin_read_tx(&mut self) -> storage::Result<ReadGuard<'_, READERS_NUM>> {
[INFO] [stdout]     |                                                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/storage/wal/mod.rs:488:27
[INFO] [stdout]     |
[INFO] [stdout] 488 |     pub fn begin_write_tx(&mut self) -> storage::Result<WriteGuard> {
[INFO] [stdout]     |                           ^^^^^^^^^                     ^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 488 |     pub fn begin_write_tx(&mut self) -> storage::Result<WriteGuard<'_>> {
[INFO] [stdout]     |                                                                   ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling regex v1.12.2
[INFO] [stderr]    Compiling half v2.7.1
[INFO] [stderr]    Compiling ciborium-ll v0.2.2
[INFO] [stderr]    Compiling ciborium v0.2.2
[INFO] [stderr]    Compiling tinytemplate v1.2.1
[INFO] [stderr]    Compiling criterion v0.5.1
[INFO] [stdout] warning: unused import: `borrow::Cow`
[INFO] [stdout]  --> src/storage/page.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 |     borrow::Cow,
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::*`
[INFO] [stdout]    --> src/storage/pager.rs:617:9
[INFO] [stdout]     |
[INFO] [stdout] 617 |     use super::*;
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::*`
[INFO] [stdout]    --> src/storage/wal/mod.rs:846:9
[INFO] [stdout]     |
[INFO] [stdout] 846 |     use super::*;
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::error::DatabaseResult`
[INFO] [stdout]  --> src/tcp/server/connection.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::error::DatabaseResult;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AtomicU32` and `Ordering`
[INFO] [stdout]  --> src/utils/io.rs:7:20
[INFO] [stdout]   |
[INFO] [stdout] 7 |     sync::atomic::{AtomicU32, Ordering},
[INFO] [stdout]   |                    ^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `borrow::Cow`
[INFO] [stdout]  --> src/storage/page.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 |     borrow::Cow,
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::*`
[INFO] [stdout]    --> src/storage/pager.rs:617:9
[INFO] [stdout]     |
[INFO] [stdout] 617 |     use super::*;
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::*`
[INFO] [stdout]    --> src/storage/wal/mod.rs:846:9
[INFO] [stdout]     |
[INFO] [stdout] 846 |     use super::*;
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::error::DatabaseResult`
[INFO] [stdout]  --> src/tcp/server/connection.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::error::DatabaseResult;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AtomicU32` and `Ordering`
[INFO] [stdout]  --> src/utils/io.rs:7:20
[INFO] [stdout]   |
[INFO] [stdout] 7 |     sync::atomic::{AtomicU32, Ordering},
[INFO] [stdout]   |                    ^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]   --> src/database/mod.rs:43:5
[INFO] [stdout]    |
[INFO] [stdout] 38 | /     loop {
[INFO] [stdout] 39 | |         let conn = tcp_server.accept_connection().await?;
[INFO] [stdout] 40 | |         tokio::spawn(async move { handle_connection(conn) });
[INFO] [stdout] 41 | |     }
[INFO] [stdout]    | |_____- any code following this expression is unreachable
[INFO] [stdout] 42 |
[INFO] [stdout] 43 |       Ok(())
[INFO] [stdout]    |       ^^^^^^ unreachable expression
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]   --> src/database/mod.rs:43:5
[INFO] [stdout]    |
[INFO] [stdout] 38 | /     loop {
[INFO] [stdout] 39 | |         let conn = tcp_server.accept_connection().await?;
[INFO] [stdout] 40 | |         tokio::spawn(async move { handle_connection(conn) });
[INFO] [stdout] 41 | |     }
[INFO] [stdout]    | |_____- any code following this expression is unreachable
[INFO] [stdout] 42 |
[INFO] [stdout] 43 |       Ok(())
[INFO] [stdout]    |       ^^^^^^ unreachable expression
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]    --> src/utils/bytes.rs:531:13
[INFO] [stdout]     |
[INFO] [stdout] 531 |         let n: u32 = 0;
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/utils/bytes.rs:560:13
[INFO] [stdout]     |
[INFO] [stdout] 560 |         let mut n = 100;
[INFO] [stdout]     |             ----^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]    --> src/utils/bytes.rs:531:13
[INFO] [stdout]     |
[INFO] [stdout] 531 |         let n: u32 = 0;
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/utils/bytes.rs:560:13
[INFO] [stdout]     |
[INFO] [stdout] 560 |         let mut n = 100;
[INFO] [stdout]     |             ----^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `input` is never read
[INFO] [stdout]   --> src/sql/parser.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub struct Parser<'a> {
[INFO] [stdout]    |            ------ field in this struct
[INFO] [stdout] 27 |     input: &'a str,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `previous`, `current`, `expect_one_of`, and `parse_constrains` are never used
[INFO] [stdout]    --> src/sql/parser.rs:62:8
[INFO] [stdout]     |
[INFO] [stdout]  37 | impl<'a> Parser<'a> {
[INFO] [stdout]     | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  62 |     fn previous(&self) -> Option<&Token> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  66 |     fn current(&self) -> Option<&Token> {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 173 |     fn expect_one_of<'k, K>(&mut self, keywords: &'k K) -> sql::Result<Keyword>
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 371 |     fn parse_constrains(&mut self) -> sql::Result<Constrains> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `kind` is never read
[INFO] [stdout]   --> src/sql/types/text.rs:72:5
[INFO] [stdout]    |
[INFO] [stdout] 70 | pub struct TextRef<'a> {
[INFO] [stdout]    |            ------- field in this struct
[INFO] [stdout] 71 |     value: &'a str,
[INFO] [stdout] 72 |     kind: TextKind,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TextRef` 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: method `put` is never used
[INFO] [stdout]   --> src/storage/buffer_pool.rs:96:8
[INFO] [stdout]    |
[INFO] [stdout] 66 | impl LocalBufferPool {
[INFO] [stdout]    | -------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 96 |     fn put(&mut self, mem: NonNull<u8>) {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Semaphore` is never constructed
[INFO] [stdout]   --> src/storage/wal/locks.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct Semaphore {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `acquire`, and `release` are never used
[INFO] [stdout]   --> src/storage/wal/locks.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl Semaphore {
[INFO] [stdout]    | -------------- associated items in this implementation
[INFO] [stdout] 21 |     pub fn new(initial: usize) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 29 |     pub fn acquire(&self) {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |     pub fn release(&self) {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `min_active_frame` is never used
[INFO] [stdout]   --> src/storage/wal/locks.rs:67:12
[INFO] [stdout]    |
[INFO] [stdout] 55 | impl<const READERS_NUM: usize> ReadersPool<READERS_NUM> {
[INFO] [stdout]    | ------------------------------------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 67 |     pub fn min_active_frame(&self) -> FrameNumber {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/database/mod.rs:107:9
[INFO] [stdout]     |
[INFO] [stdout] 107 | /         self.freelist_pages
[INFO] [stdout] 108 | |             .fetch_update(Ordering::Acquire, Ordering::Acquire, |val| {
[INFO] [stdout] 109 | |                 Some(val.saturating_sub(sub))
[INFO] [stdout] 110 | |             });
[INFO] [stdout]     | |______________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 107 |         let _ = self.freelist_pages
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `increment_change_counter` is never used
[INFO] [stdout]   --> src/database/mod.rs:93:12
[INFO] [stdout]    |
[INFO] [stdout] 63 | impl MemDatabaseHeader {
[INFO] [stdout]    | ---------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 93 |     pub fn increment_change_counter(&self) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `InvalidBytes`, `InvalidHostname`, `InvalidFilePath`, `InvalidPort`, and `Unknown` are never constructed
[INFO] [stdout]   --> src/error.rs:8:5
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub enum DatabaseError {
[INFO] [stdout]    |          ------------- variants in this enum
[INFO] [stdout]  7 |     #[error("invalid bytes")]
[INFO] [stdout]  8 |     InvalidBytes,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 12 |     InvalidHostname { msg: String, hostname: String },
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 13 |     #[error("provided path is not file: {0}")]
[INFO] [stdout] 14 |     InvalidFilePath(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 15 |     #[error("invalid port number: {0}")]
[INFO] [stdout] 16 |     InvalidPort(String),
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 35 |     Unknown,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DatabaseError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `DISK_BLOCK_SIZE` is never used
[INFO] [stdout]   --> src/os.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub static DISK_BLOCK_SIZE: LazyLock<usize> = LazyLock::new(|| {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `FileSystemBlockSize` is never used
[INFO] [stdout]   --> src/os.rs:15:11
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub trait FileSystemBlockSize {
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Fs` is never constructed
[INFO] [stdout]   --> src/os.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct Fs;
[INFO] [stdout]    |            ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `bypass_cache`, `sync_on_write`, `lock`, and `truncate` are never used
[INFO] [stdout]   --> src/os.rs:45:12
[INFO] [stdout]    |
[INFO] [stdout] 43 | impl OpenOptions {
[INFO] [stdout]    | ---------------- methods in this implementation
[INFO] [stdout] 44 |     /// disable OS
[INFO] [stdout] 45 |     pub fn bypass_cache(mut self, bypass_cache: bool) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 51 |     pub fn sync_on_write(mut self, sync_on_write: bool) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 77 |     pub fn lock(mut self, lock: bool) -> Self {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 83 |     pub fn truncate(mut self, truncate: bool) -> Self {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `parse_explain`, `parse_begin`, and `parse_commit` are never used
[INFO] [stdout]   --> src/sql/parser.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub trait StatementParser {
[INFO] [stdout]    |           --------------- methods in this trait
[INFO] [stdout] 14 |     fn parse_explain(&mut self) -> sql::Result<Statement>;
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 21 |     fn parse_begin(&mut self) -> sql::Result<Statement>;
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 22 |     fn parse_commit(&mut self) -> sql::Result<Statement>;
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `input` is never read
[INFO] [stdout]   --> src/sql/parser.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub struct Parser<'a> {
[INFO] [stdout]    |            ------ field in this struct
[INFO] [stdout] 27 |     input: &'a str,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `previous`, `current`, `expect_one_of`, and `parse_constrains` are never used
[INFO] [stdout]    --> src/sql/parser.rs:62:8
[INFO] [stdout]     |
[INFO] [stdout]  37 | impl<'a> Parser<'a> {
[INFO] [stdout]     | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  62 |     fn previous(&self) -> Option<&Token> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  66 |     fn current(&self) -> Option<&Token> {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 173 |     fn expect_one_of<'k, K>(&mut self, keywords: &'k K) -> sql::Result<Keyword>
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 371 |     fn parse_constrains(&mut self) -> sql::Result<Constrains> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `count` and `to_owned` are never used
[INFO] [stdout]   --> src/sql/record.rs:45:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | impl<'a> Record<'a> {
[INFO] [stdout]    | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 45 |     pub fn count(&self) -> usize {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 53 |     pub fn to_owned(&self) -> Record<'static> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `with_capacity` is never used
[INFO] [stdout]    --> src/sql/record.rs:105:12
[INFO] [stdout]     |
[INFO] [stdout]  95 | impl RecordCursor {
[INFO] [stdout]     | ----------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 105 |     pub fn with_capacity(capacity: usize) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `records_equal` is never used
[INFO] [stdout]    --> src/sql/record.rs:284:8
[INFO] [stdout]     |
[INFO] [stdout] 284 | pub fn records_equal(r1: &Record, r2: &Record) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compare_records` is never used
[INFO] [stdout]    --> src/sql/record.rs:303:8
[INFO] [stdout]     |
[INFO] [stdout] 303 | pub fn compare_records(r1: &Record, r2: &Record) -> std::cmp::Ordering {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/sql/statement.rs:268:12
[INFO] [stdout]     |
[INFO] [stdout] 267 | impl Column {
[INFO] [stdout]     | ----------- associated function in this implementation
[INFO] [stdout] 268 |     pub fn new(name: &str, data_type: DataType) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Commit` is never constructed
[INFO] [stdout]    --> src/sql/token.rs:101:5
[INFO] [stdout]     |
[INFO] [stdout]  68 | pub enum Keyword {
[INFO] [stdout]     |          ------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 101 |     Commit,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Keyword` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `input` is never read
[INFO] [stdout]  --> src/sql/tokenizer.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct Stream<'a> {
[INFO] [stdout]   |            ------ field in this struct
[INFO] [stdout] 9 |     input: &'a str,
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `raw` is never used
[INFO] [stdout]   --> src/sql/tokenizer.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl<'a> Stream<'a> {
[INFO] [stdout]    | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub fn raw(&self) -> &'a str {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ValueType` is never used
[INFO] [stdout]   --> src/sql/types/mod.rs:16:10
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub enum ValueType {
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Blob` is never constructed
[INFO] [stdout]   --> src/sql/types/mod.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub enum Value {
[INFO] [stdout]    |          ----- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 30 |     Blob(Vec<u8>),
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Value` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `value_type` is never used
[INFO] [stdout]   --> src/sql/types/mod.rs:54:12
[INFO] [stdout]    |
[INFO] [stdout] 43 | impl Value {
[INFO] [stdout]    | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 54 |     pub fn value_type(&self) -> ValueType {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/storage/page.rs:291:24
[INFO] [stdout]     |
[INFO] [stdout] 291 |     pub fn as_io_slice(&self) -> IoSlice {
[INFO] [stdout]     |                        ^^^^^     ^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 291 |     pub fn as_io_slice(&self) -> IoSlice<'_> {
[INFO] [stdout]     |                                         ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/storage/page.rs:344:23
[INFO] [stdout]     |
[INFO] [stdout] 344 |     pub fn slot_array(&self) -> SlotArray {
[INFO] [stdout]     |                       ^^^^^     ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 344 |     pub fn slot_array(&self) -> SlotArray<'_> {
[INFO] [stdout]     |                                          ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `to_owned` and `to_value_type` are never used
[INFO] [stdout]    --> src/sql/types/mod.rs:184:12
[INFO] [stdout]     |
[INFO] [stdout] 183 | impl<'a> ValueRef<'a> {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] 184 |     pub fn to_owned(&self) -> Value {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 194 |     pub fn to_value_type(&self) -> ValueType {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `AnyBlob` is never used
[INFO] [stdout]  --> src/sql/types/blob.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub trait AnyBlob {
[INFO] [stdout]   |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/storage/page.rs:348:27
[INFO] [stdout]     |
[INFO] [stdout] 348 |     pub fn freeblock_list(&self) -> FreeblockList {
[INFO] [stdout]     |                           ^^^^^     ^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 348 |     pub fn freeblock_list(&self) -> FreeblockList<'_> {
[INFO] [stdout]     |                                                  ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `kind` is never read
[INFO] [stdout]   --> src/sql/types/text.rs:72:5
[INFO] [stdout]    |
[INFO] [stdout] 70 | pub struct TextRef<'a> {
[INFO] [stdout]    |            ------- field in this struct
[INFO] [stdout] 71 |     value: &'a str,
[INFO] [stdout] 72 |     kind: TextKind,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TextRef` 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 `PAGE_NUMBER_SIZE` is never used
[INFO] [stdout]   --> src/storage/mod.rs:20:11
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub const PAGE_NUMBER_SIZE: usize = std::mem::size_of::<PageNumber>();
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/storage/page.rs:419:27
[INFO] [stdout]     |
[INFO] [stdout] 419 |     fn get_cell_at_offset(&self, offset: u16) -> storage::Result<BTreeCellRef> {
[INFO] [stdout]     |                           ^^^^^ the lifetime is elided here      ^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 419 |     fn get_cell_at_offset(&self, offset: u16) -> storage::Result<BTreeCellRef<'_>> {
[INFO] [stdout]     |                                                                              ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `PageNumberOutOfRange`, `Corruped`, and `PartialRead` are never constructed
[INFO] [stdout]   --> src/storage/mod.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub enum Error {
[INFO] [stdout]    |          ----- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 33 |     PageNumberOutOfRange,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 34 |     #[error("page is corrupted. Exptected state doesn't match")]
[INFO] [stdout] 35 |     Corruped,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 57 |     PartialRead { expected: usize, read: usize },
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Error` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `try_alloc` is never used
[INFO] [stdout]    --> src/storage/allocator.rs:121:12
[INFO] [stdout]     |
[INFO] [stdout]  72 | impl GlobalPageAllocator {
[INFO] [stdout]     | ------------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 121 |     pub fn try_alloc(&self) -> Option<NonNull<u8>> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `default` and `len` are never used
[INFO] [stdout]    --> src/storage/allocator.rs:210:12
[INFO] [stdout]     |
[INFO] [stdout] 195 | impl LocalPageAllocator {
[INFO] [stdout]     | ----------------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 210 |     pub fn default(global_allocator: Arc<GlobalPageAllocator>) -> Self {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 214 |     pub fn len(&self) -> usize {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `BTreeKey` is never used
[INFO] [stdout]   --> src/storage/btree.rs:13:10
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub enum BTreeKey<'a> {
[INFO] [stdout]    |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new_table_row_id`, `new_index_key`, `get_record`, and `to_owned` are never used
[INFO] [stdout]   --> src/storage/btree.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl<'a> BTreeKey<'a> {
[INFO] [stdout]    | --------------------- associated items in this implementation
[INFO] [stdout] 19 |     pub fn new_table_row_id(row_id: i64, record: Option<Record<'a>>) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 23 |     pub fn new_index_key(record: Record<'a>) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 27 |     pub fn get_record(&self) -> Option<Record<'a>> {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |     pub fn to_owned(&self) -> BTreeKey<'static> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `SearchResult` is never used
[INFO] [stdout]   --> src/storage/btree.rs:79:10
[INFO] [stdout]    |
[INFO] [stdout] 79 | pub enum SearchResult {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_found` is never used
[INFO] [stdout]   --> src/storage/btree.rs:85:12
[INFO] [stdout]    |
[INFO] [stdout] 84 | impl SearchResult {
[INFO] [stdout]    | ----------------- method in this implementation
[INFO] [stdout] 85 |     pub fn is_found(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BTree` is never constructed
[INFO] [stdout]   --> src/storage/btree.rs:96:12
[INFO] [stdout]    |
[INFO] [stdout] 96 | pub struct BTree {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `key_in_range`, `extract_high_key`, and `extracty_key` are never used
[INFO] [stdout]    --> src/storage/btree.rs:102:12
[INFO] [stdout]     |
[INFO] [stdout] 101 | impl BTree {
[INFO] [stdout]     | ---------- associated items in this implementation
[INFO] [stdout] 102 |     pub fn new(pager: Pager, root: PageNumber) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 108 |     pub fn key_in_range(&mut self, page: &Page, key: &BTreeKey) -> storage::Result<bool> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 117 |     fn extract_high_key<'a>(&mut self, page: &'a Page) -> storage::Result<Option<BTreeKey<'a>>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 127 |     fn extracty_key<'a>(
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `DatabaseCursor` is never used
[INFO] [stdout]    --> src/storage/btree.rs:157:11
[INFO] [stdout]     |
[INFO] [stdout] 157 | pub trait DatabaseCursor {
[INFO] [stdout]     |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BTreeCursor` is never constructed
[INFO] [stdout]    --> src/storage/btree.rs:186:12
[INFO] [stdout]     |
[INFO] [stdout] 186 | pub struct BTreeCursor<'a> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `binary_search` are never used
[INFO] [stdout]    --> src/storage/btree.rs:196:12
[INFO] [stdout]     |
[INFO] [stdout] 195 | impl<'a> BTreeCursor<'a> {
[INFO] [stdout]     | ------------------------ associated items in this implementation
[INFO] [stdout] 196 |     pub fn new(btree: &'a mut BTree) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 210 |     fn binary_search(
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `reassemble_payload` is never used
[INFO] [stdout]    --> src/storage/btree.rs:378:8
[INFO] [stdout]     |
[INFO] [stdout] 378 | pub fn reassemble_payload<'a>(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `len` are never used
[INFO] [stdout]   --> src/storage/buffer_pool.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl GlobalBufferPool {
[INFO] [stdout]    | --------------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub fn new(
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 56 |     pub fn len(&self) -> usize {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `len` and `put` are never used
[INFO] [stdout]   --> src/storage/buffer_pool.rs:76:12
[INFO] [stdout]    |
[INFO] [stdout] 66 | impl LocalBufferPool {
[INFO] [stdout]    | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 76 |     pub fn len(&self) -> usize {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 96 |     fn put(&mut self, mem: NonNull<u8>) {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `delete` is never used
[INFO] [stdout]   --> src/storage/cache.rs:97:12
[INFO] [stdout]    |
[INFO] [stdout] 77 | impl<S: BuildHasher> ShardedLruCache<S> {
[INFO] [stdout]    | --------------------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 97 |     pub fn delete(&self, key: PageCacheKey) -> Result<()> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MIN_PAGE_SIZE` is never used
[INFO] [stdout]   --> src/storage/page.rs:24:11
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub const MIN_PAGE_SIZE: usize = 512;
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `usable_space` is never used
[INFO] [stdout]   --> src/storage/page.rs:28:8
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub fn usable_space(page_size: usize, reserved: usize) -> usize {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `to_bytes` is never used
[INFO] [stdout]   --> src/storage/page.rs:92:12
[INFO] [stdout]    |
[INFO] [stdout] 61 | impl DatabaseHeader {
[INFO] [stdout]    | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 92 |     pub fn to_bytes(&self) -> Vec<u8> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_leaf` and `is_internal` are never used
[INFO] [stdout]    --> src/storage/page.rs:135:12
[INFO] [stdout]     |
[INFO] [stdout] 134 | impl PageType {
[INFO] [stdout]     | ------------- methods in this implementation
[INFO] [stdout] 135 |     pub fn is_leaf(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 142 |     pub fn is_internal(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/storage/page.rs:231:11
[INFO] [stdout]     |
[INFO] [stdout] 218 | impl Page {
[INFO] [stdout]     | --------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 231 |     const NEXT_OVERFLOW_OFFSET: usize = 0;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 232 |     const PAYLOAD_SIZE_OFFSET: usize = Self::NEXT_OVERFLOW_OFFSET + size_of::<PageNumber>();
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 233 |     const PAYLOAD_OFFSET: usize = Self::PAYLOAD_SIZE_OFFSET + size_of::<SlotNumber>();
[INFO] [stdout]     |           ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 294 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 298 |     pub fn is_leaf(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 322 |     pub fn storage_space(&self) -> u16 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 327 |     pub fn storage_size(&self, cell_size: u16) -> u16 {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 515 |     pub fn try_replace(
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 566 |     pub fn child(&self, index: SlotNumber) -> PageNumber {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `write_u8` and `write_u32` are never used
[INFO] [stdout]    --> src/storage/page.rs:606:8
[INFO] [stdout]     |
[INFO] [stdout] 591 | impl Page {
[INFO] [stdout]     | --------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 606 |     fn write_u8(&self, pos: usize, value: u8) {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 616 |     fn write_u32(&self, pos: usize, value: u32) {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_free_fragments`, `add_free_fragment`, and `set_len` are never used
[INFO] [stdout]    --> src/storage/page.rs:651:12
[INFO] [stdout]     |
[INFO] [stdout] 622 | impl Page {
[INFO] [stdout]     | --------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 651 |     pub fn set_free_fragments(&self, value: u8) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 655 |     pub fn add_free_fragment(&self, value: u8) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 689 |     pub fn set_len(&self, value: u16) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `next_overflow`, `overflow_payload_size`, and `overflow_payload` are never used
[INFO] [stdout]    --> src/storage/page.rs:702:12
[INFO] [stdout]     |
[INFO] [stdout] 700 | impl Page {
[INFO] [stdout]     | --------- methods in this implementation
[INFO] [stdout] 701 |     /// Use only when page type is overflow.
[INFO] [stdout] 702 |     pub fn next_overflow(&self) -> Option<PageNumber> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 709 |     pub fn overflow_payload_size(&self) -> u16 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 714 |     pub fn overflow_payload(&self) -> &[u8] {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `db_header` is never used
[INFO] [stdout]    --> src/storage/page.rs:724:12
[INFO] [stdout]     |
[INFO] [stdout] 722 | impl Page {
[INFO] [stdout]     | --------- method in this implementation
[INFO] [stdout] 723 |     /// Returns database header. Only use with page that have non-zero offset.
[INFO] [stdout] 724 |     pub fn db_header(&self) -> DatabaseHeader {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `freelist_set` is never used
[INFO] [stdout]    --> src/storage/page.rs:740:12
[INFO] [stdout]     |
[INFO] [stdout] 734 | impl Page {
[INFO] [stdout]     | --------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 740 |     pub fn freelist_set(&self, value: PageNumber) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CellIterator` is never constructed
[INFO] [stdout]     --> src/storage/page.rs:1036:12
[INFO] [stdout]      |
[INFO] [stdout] 1036 | pub struct CellIterator<'a> {
[INFO] [stdout]      |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_overflowing`, `first_overflow`, and `payload_ref` are never used
[INFO] [stdout]     --> src/storage/page.rs:1061:8
[INFO] [stdout]      |
[INFO] [stdout] 1051 | pub trait CellOps {
[INFO] [stdout]      |           ------- methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 1061 |     fn is_overflowing(&self) -> bool;
[INFO] [stdout]      |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1065 |     fn first_overflow(&self) -> Option<PageNumber>;
[INFO] [stdout]      |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1068 |     fn payload_ref(&self) -> PayloadRef;
[INFO] [stdout]      |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `left_child` and `first_overflow` are never read
[INFO] [stdout]     --> src/storage/page.rs:1171:9
[INFO] [stdout]      |
[INFO] [stdout] 1167 | pub struct IndexInternalCell {
[INFO] [stdout]      |            ----------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 1171 |     pub left_child: PageNumber,
[INFO] [stdout]      |         ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1178 |     first_overflow: Option<PageNumber>,
[INFO] [stdout]      |     ^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `IndexInternalCell` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `first_overflow` is never read
[INFO] [stdout]     --> src/storage/page.rs:1268:5
[INFO] [stdout]      |
[INFO] [stdout] 1259 | pub struct IndexLeafCell {
[INFO] [stdout]      |            ------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 1268 |     first_overflow: Option<PageNumber>,
[INFO] [stdout]      |     ^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `IndexLeafCell` 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 function `new` is never used
[INFO] [stdout]     --> src/storage/page.rs:1274:12
[INFO] [stdout]      |
[INFO] [stdout] 1271 | impl IndexLeafCell {
[INFO] [stdout]      | ------------------ associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 1274 |     pub fn new(payload_size: VarInt, payload: &[u8], first_overflow: Option<PageNumber>) -> Self {
[INFO] [stdout]      |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `row_id` and `left_child` are never read
[INFO] [stdout]     --> src/storage/page.rs:1342:9
[INFO] [stdout]      |
[INFO] [stdout] 1338 | pub struct TableInternalCell {
[INFO] [stdout]      |            ----------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 1342 |     pub row_id: i64,
[INFO] [stdout]      |         ^^^^^^
[INFO] [stdout] 1343 |     /// Left child of BTree Page.
[INFO] [stdout] 1344 |     pub left_child: PageNumber,
[INFO] [stdout]      |         ^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `TableInternalCell` 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 function `new` is never used
[INFO] [stdout]     --> src/storage/page.rs:1350:12
[INFO] [stdout]      |
[INFO] [stdout] 1347 | impl TableInternalCell {
[INFO] [stdout]      | ---------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 1350 |     pub fn new(row_id: i64, left_child: PageNumber) -> Self {
[INFO] [stdout]      |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `row_id` and `first_overflow` are never read
[INFO] [stdout]     --> src/storage/page.rs:1409:9
[INFO] [stdout]      |
[INFO] [stdout] 1405 | pub struct TableLeafCell {
[INFO] [stdout]      |            ------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 1409 |     pub row_id: i64,
[INFO] [stdout]      |         ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1416 |     first_overflow: Option<PageNumber>,
[INFO] [stdout]      |     ^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `TableLeafCell` 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 function `new` is never used
[INFO] [stdout]     --> src/storage/page.rs:1422:12
[INFO] [stdout]      |
[INFO] [stdout] 1419 | impl TableLeafCell {
[INFO] [stdout]      | ------------------ associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 1422 |     pub fn new(
[INFO] [stdout]      |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_error`, `is_loaded`, `set_dirty`, and `clear_error` are never used
[INFO] [stdout]   --> src/storage/pager.rs:66:12
[INFO] [stdout]    |
[INFO] [stdout] 58 | impl MemPage {
[INFO] [stdout]    | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 66 |     pub fn is_error(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 74 |     pub fn is_loaded(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 82 |     pub fn set_dirty(&self) {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 90 |     pub fn clear_error(&self) {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_locked` is never used
[INFO] [stdout]    --> src/storage/pager.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 104 | impl MemPage {
[INFO] [stdout]     | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 112 |     pub fn is_locked(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/storage/pager.rs:230:12
[INFO] [stdout]     |
[INFO] [stdout] 221 | impl SharedPageGuard {
[INFO] [stdout]     | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 230 |     pub fn into_pin<T>(self, inner: T) -> PagePin<Self, T> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 234 |     pub fn id(&self) -> PageNumber {
[INFO] [stdout]     |            ^^
[INFO] [stdout] ...
[INFO] [stdout] 238 |     pub fn is_error(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 242 |     pub fn is_dirty(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 246 |     pub fn is_loaded(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 250 |     pub fn set_error(&self) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 254 |     pub fn set_dirty(&self) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 258 |     pub fn set_loaded(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 262 |     pub fn clear_error(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 266 |     pub fn clear_dirty(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 270 |     pub fn clear_loaded(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/storage/wal/mod.rs:472:26
[INFO] [stdout]     |
[INFO] [stdout] 472 |     pub fn begin_read_tx(&mut self) -> storage::Result<ReadGuard<READERS_NUM>> {
[INFO] [stdout]     |                          ^^^^^^^^^                     ^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                          |
[INFO] [stdout]     |                          the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 472 |     pub fn begin_read_tx(&mut self) -> storage::Result<ReadGuard<'_, READERS_NUM>> {
[INFO] [stdout]     |                                                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `into_pin`, `is_error`, `is_dirty`, `is_loaded`, `set_dirty`, and `clear_error` are never used
[INFO] [stdout]    --> src/storage/pager.rs:318:12
[INFO] [stdout]     |
[INFO] [stdout] 293 | impl ExclusivePageGuard {
[INFO] [stdout]     | ----------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 318 |     pub fn into_pin<T>(self, inner: T) -> PagePin<Self, T> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 326 |     pub fn is_error(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 330 |     pub fn is_dirty(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 334 |     pub fn is_loaded(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 342 |     pub fn set_dirty(&self) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 350 |     pub fn clear_error(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PagePin` is never constructed
[INFO] [stdout]    --> src/storage/pager.rs:384:12
[INFO] [stdout]     |
[INFO] [stdout] 384 | pub struct PagePin<G, T> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/storage/pager.rs:390:12
[INFO] [stdout]     |
[INFO] [stdout] 389 | impl<G, T> PagePin<G, T> {
[INFO] [stdout]     | ------------------------ associated function in this implementation
[INFO] [stdout] 390 |     pub fn new(guard: G, inner: T) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/storage/wal/mod.rs:488:27
[INFO] [stdout]     |
[INFO] [stdout] 488 |     pub fn begin_write_tx(&mut self) -> storage::Result<WriteGuard> {
[INFO] [stdout]     |                           ^^^^^^^^^                     ^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 488 |     pub fn begin_write_tx(&mut self) -> storage::Result<WriteGuard<'_>> {
[INFO] [stdout]     |                                                                   ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `write_page`, `flush`, and `sync` are never used
[INFO] [stdout]    --> src/storage/pager.rs:512:12
[INFO] [stdout]     |
[INFO] [stdout] 426 | impl Pager {
[INFO] [stdout]     | ---------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 512 |     pub fn write_page(&mut self, page: MemPageRef) -> storage::Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 550 |     pub fn flush(&mut self) -> storage::Result<()> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 554 |     pub fn sync(&self) -> storage::Result<()> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `to_bytes` is never used
[INFO] [stdout]    --> src/storage/wal/mod.rs:105:12
[INFO] [stdout]     |
[INFO] [stdout]  62 | impl WalHeader {
[INFO] [stdout]     | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 105 |     pub fn to_bytes(&self) -> Vec<u8> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `page_size`, `checkpoint_seq_num`, `last_checkpointed`, `db_size`, `backfilled_number`, and `checksum` are never read
[INFO] [stdout]    --> src/storage/wal/mod.rs:129:9
[INFO] [stdout]     |
[INFO] [stdout] 128 | pub struct MemWalHeader {
[INFO] [stdout]     |            ------------ fields in this struct
[INFO] [stdout] 129 |     pub page_size: u32,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] 130 |     checkpoint_seq_num: AtomicU32,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 131 |     last_checkpointed: AtomicU32,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 132 |     db_size: AtomicU32,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 133 |     backfilled_number: AtomicU32,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 134 |     checksum: AtomicU64,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/storage/wal/mod.rs:138:12
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl MemWalHeader {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] 138 |     pub fn into_raw_header(&self) -> WalHeader {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 150 |     pub fn update_checksum(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 155 |     pub fn get_checkpoint_seq_num(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 159 |     pub fn get_last_checkpointed(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 163 |     pub fn get_db_size(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 167 |     pub fn get_backfilled_number(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 171 |     pub fn get_checksum(&self) -> Checksum {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 175 |     pub fn increment_checkpoint_seq_num(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 179 |     pub fn set_last_checkpointed(&self, value: PageNumber) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 183 |     pub fn set_db_size(&self, value: u32) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 187 |     pub fn set_backfilled_number(&self, value: u32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 191 |     pub fn set_checksum(&self, (val_1, val_2): Checksum) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]    --> src/storage/wal/mod.rs:301:5
[INFO] [stdout]     |
[INFO] [stdout] 299 | pub struct GlobalWal {
[INFO] [stdout]     |            --------- fields in this struct
[INFO] [stdout] 300 |     wal_file: Arc<BlockIO<File>>,
[INFO] [stdout] 301 |     db_file: Arc<BlockIO<File>>,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 302 |
[INFO] [stdout] 303 |     frame_size: usize,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 306 |     checkpoint_size: u32,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 307 |     /// WAL header loaded to memory.
[INFO] [stdout] 308 |     header: Arc<MemWalHeader>,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 312 |     page_cache: Arc<ShardedLruCache>,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 316 |     max_frame: AtomicU32,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 317 |     /// Checksum of last frame in WAL. It is cumulative checksum of all pages. Stored as two u32 packed in single atomic.
[INFO] [stdout] 318 |     last_checksum: AtomicU64,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 325 |     readers: Arc<ReadersPool<READERS_NUM>>,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 326 |     /// Lock for single writer.
[INFO] [stdout] 327 |     writer: Mutex<()>,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 331 |     checkpoint_lock: RwLock<()>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/storage/wal/mod.rs:390:12
[INFO] [stdout]     |
[INFO] [stdout] 334 | impl GlobalWal {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 390 |     pub fn write_header(&self) -> storage::Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 398 |     pub fn get_min_frame(&self) -> FrameNumber {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 402 |     pub fn get_max_frame(&self) -> FrameNumber {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 406 |     pub fn get_last_checksum(&self) -> Checksum {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 410 |     pub fn get_backfilled_number(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 414 |     pub fn get_checkpoint_seq_num(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 418 |     pub fn set_min_frame(&self, value: FrameNumber) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 422 |     pub fn set_max_frame(&self, value: FrameNumber) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 426 |     pub fn set_last_checksum(&self, value: Checksum) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 431 |     pub fn set_backfilled_number(&self, value: u32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 435 |     pub fn increment_checkpoint_seq_num(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `min_frame` is never read
[INFO] [stdout]    --> src/storage/wal/mod.rs:444:5
[INFO] [stdout]     |
[INFO] [stdout] 440 | pub struct LocalWal {
[INFO] [stdout]     |            -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 444 |     min_frame: u32,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/storage/wal/mod.rs:461:8
[INFO] [stdout]     |
[INFO] [stdout] 451 | impl LocalWal {
[INFO] [stdout]     | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 461 |     fn calculate_frame_offset(&self, frame_number: FrameNumber) -> storage::Result<usize> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 472 |     pub fn begin_read_tx(&mut self) -> storage::Result<ReadGuard<READERS_NUM>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 488 |     pub fn begin_write_tx(&mut self) -> storage::Result<WriteGuard> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 501 |     pub fn end_read_tx(&mut self, guard: ReadGuard<READERS_NUM>) -> storage::Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 511 |     pub fn end_write_tx(&mut self, guard: WriteGuard) -> storage::Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 528 |     fn read_raw(&self, frame_number: FrameNumber, buffer: &mut [u8]) -> storage::Result<usize> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 643 |     fn should_checkpoint(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 651 |     pub fn checkpoint(&mut self) -> storage::Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `latest_frames_sorted` and `clear` are never used
[INFO] [stdout]    --> src/storage/wal/mod.rs:742:12
[INFO] [stdout]     |
[INFO] [stdout] 714 | impl WalIndex {
[INFO] [stdout]     | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 742 |     pub fn latest_frames_sorted(&self, max_frame: FrameNumber) -> Vec<(PageNumber, FrameNumber)> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 773 |     pub fn clear(&self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Semaphore` is never constructed
[INFO] [stdout]   --> src/storage/wal/locks.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct Semaphore {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `acquire`, and `release` are never used
[INFO] [stdout]   --> src/storage/wal/locks.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl Semaphore {
[INFO] [stdout]    | -------------- associated items in this implementation
[INFO] [stdout] 21 |     pub fn new(initial: usize) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 29 |     pub fn acquire(&self) {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |     pub fn release(&self) {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `slots` and `backoff` are never read
[INFO] [stdout]   --> src/storage/wal/locks.rs:50:5
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub struct ReadersPool<const READERS_NUM: usize> {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout] 49 |     /// Array of atomic u32 that keeps track of `min_frame` for each reader.
[INFO] [stdout] 50 |     slots: [AtomicU32; READERS_NUM],
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 51 |     /// [`Backoff`] to don't spam other atomic when trying to acquire read lock.
[INFO] [stdout] 52 |     backoff: Backoff,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `min_active_frame`, `get_min_frame`, `acquire`, and `release` are never used
[INFO] [stdout]    --> src/storage/wal/locks.rs:67:12
[INFO] [stdout]     |
[INFO] [stdout]  55 | impl<const READERS_NUM: usize> ReadersPool<READERS_NUM> {
[INFO] [stdout]     | ------------------------------------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  67 |     pub fn min_active_frame(&self) -> FrameNumber {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  81 |     pub fn get_min_frame(&self, slot_id: usize) -> FrameNumber {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  88 |     pub fn acquire<'a, F>(
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 125 |     pub fn release(&self, slot_id: usize) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ReadGuard` is never constructed
[INFO] [stdout]    --> src/storage/wal/locks.rs:131:12
[INFO] [stdout]     |
[INFO] [stdout] 131 | pub struct ReadGuard<'a, const READERS_NUM: usize> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `min_frame` is never used
[INFO] [stdout]    --> src/storage/wal/locks.rs:138:12
[INFO] [stdout]     |
[INFO] [stdout] 137 | impl<'a, const READERS_NUM: usize> ReadGuard<'a, READERS_NUM> {
[INFO] [stdout]     | ------------------------------------------------------------- method in this implementation
[INFO] [stdout] 138 |     pub fn min_frame(&self) -> FrameNumber {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WriteGuard` is never constructed
[INFO] [stdout]    --> src/storage/wal/locks.rs:150:12
[INFO] [stdout]     |
[INFO] [stdout] 150 | pub struct WriteGuard<'a> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/storage/wal/locks.rs:156:12
[INFO] [stdout]     |
[INFO] [stdout] 155 | impl<'a> WriteGuard<'a> {
[INFO] [stdout]     | ----------------------- associated function in this implementation
[INFO] [stdout] 156 |     pub fn new(checkpoint_guard: RwLockReadGuard<'a, ()>, mutex_guard: MutexGuard<'a, ()>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `PackedU64` is never used
[INFO] [stdout]    --> src/storage/wal/locks.rs:166:11
[INFO] [stdout]     |
[INFO] [stdout] 166 | pub trait PackedU64 {
[INFO] [stdout]     |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `InvalidBytes` and `InvalidAllocation` are never constructed
[INFO] [stdout]   --> src/utils/mod.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub enum Error {
[INFO] [stdout]    |          ----- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 21 |     InvalidBytes,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 29 |     InvalidAllocation(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Error` 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 `alloc_page` and `as_non_null` are never used
[INFO] [stdout]   --> src/utils/buffer.rs:28:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | impl Buffer {
[INFO] [stdout]    | ----------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub fn alloc_page(size: usize, drop: Option<DropFn>) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 58 |     pub fn as_non_null(&self) -> NonNull<u8> {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/utils/bytes.rs:176:12
[INFO] [stdout]     |
[INFO] [stdout] 155 | impl<T: AsRef<[u8]>> BytesCursor<T> {
[INFO] [stdout]     | ----------------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 176 |     pub fn read_u8(&mut self) -> u8 {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 182 |     pub fn try_read_u8(&mut self) -> Result<u8> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 198 |     pub fn read_u16_le(&mut self) -> u16 {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 204 |     pub fn try_read_u16_le(&mut self) -> Result<u16> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 215 |     pub fn read_u32_le(&mut self) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 232 |     pub fn read_u64_le(&mut self) -> u64 {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 238 |     pub fn try_read_u64_le(&mut self) -> Result<u64> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `write_u16_le`, `try_write_u16_le`, `write_u32_le`, `try_write_u32_le`, `write_u64_le`, and `try_write_u64_le` are never used
[INFO] [stdout]    --> src/utils/bytes.rs:297:12
[INFO] [stdout]     |
[INFO] [stdout] 263 | impl<T: AsRef<[u8]> + AsMut<[u8]>> BytesCursor<T> {
[INFO] [stdout]     | ------------------------------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 297 |     pub fn write_u16_le(&mut self, value: u16) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 303 |     pub fn try_write_u16_le(&mut self, value: u16) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 314 |     pub fn write_u32_le(&mut self, value: u32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 320 |     pub fn try_write_u32_le(&mut self, value: u32) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 331 |     pub fn write_u64_le(&mut self, value: u64) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 337 |     pub fn try_write_u64_le(&mut self, value: u64) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `put_u64_le` is never used
[INFO] [stdout]    --> src/utils/bytes.rs:412:12
[INFO] [stdout]     |
[INFO] [stdout] 385 | impl<T: AsRef<[u8]> + AsMut<[u8]> + Extend<u8>> BytesCursor<T> {
[INFO] [stdout]     | -------------------------------------------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 412 |     pub fn put_u64_le(&mut self, value: u64) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `flip_n_bits` is never used
[INFO] [stdout]    --> src/utils/bytes.rs:472:8
[INFO] [stdout]     |
[INFO] [stdout] 472 | pub fn flip_n_bits(value: &mut u64, mut n: usize, positions: &mut Vec<usize>, offset: usize) {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `unpack_u64` is never used
[INFO] [stdout]    --> src/utils/bytes.rs:496:8
[INFO] [stdout]     |
[INFO] [stdout] 496 | pub fn unpack_u64(packed: u64) -> (u32, u32) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cast` is never used
[INFO] [stdout]   --> src/utils/cast.rs:20:8
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn cast<A: Copy, B: Copy>(a: A) -> B {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `from_bytes_mut` is never used
[INFO] [stdout]   --> src/utils/cast.rs:58:8
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub fn from_bytes_mut<T: Copy>(src: &mut [u8]) -> &mut T {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bytes_of_mut` is never used
[INFO] [stdout]   --> src/utils/cast.rs:68:8
[INFO] [stdout]    |
[INFO] [stdout] 68 | pub fn bytes_of_mut<T>(src: &mut T) -> &mut [u8] {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `try_cast` is never used
[INFO] [stdout]   --> src/utils/cast.rs:77:15
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub unsafe fn try_cast<A: Copy, B: Copy>(a: A) -> Result<B> {
[INFO] [stdout]    |               ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `try_from_bytes_mut` is never used
[INFO] [stdout]    --> src/utils/cast.rs:159:15
[INFO] [stdout]     |
[INFO] [stdout] 159 | pub unsafe fn try_from_bytes_mut<T: Copy>(src: &mut [u8]) -> Result<&mut T> {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `try_bytes_of_mut` is never used
[INFO] [stdout]    --> src/utils/cast.rs:175:15
[INFO] [stdout]     |
[INFO] [stdout] 175 | pub unsafe fn try_bytes_of_mut<T>(src: &mut T) -> Result<&mut [u8]> {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cast_static` is never used
[INFO] [stdout]    --> src/utils/cast.rs:180:15
[INFO] [stdout]     |
[INFO] [stdout] 180 | pub unsafe fn cast_static<T>(src: &[T]) -> &'static [T] {
[INFO] [stdout]     |               ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `FileOps` is never used
[INFO] [stdout]   --> src/utils/io.rs:16:11
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub trait FileOps {
[INFO] [stdout]    |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `truncate` and `truncate_beginning` are never used
[INFO] [stdout]    --> src/utils/io.rs:93:8
[INFO] [stdout]     |
[INFO] [stdout]  89 | pub trait IO {
[INFO] [stdout]     |           -- methods in this trait
[INFO] [stdout] ...
[INFO] [stdout]  93 |     fn truncate(&self, length: usize) -> io::Result<()>;
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 113 |     fn truncate_beginning(&mut self, bytes_to_remove: u64, header_size: usize) -> io::Result<()>;
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `read_header`, `write_header`, `write`, `truncate`, and `truncate_beginning` are never used
[INFO] [stdout]    --> src/utils/io.rs:300:12
[INFO] [stdout]     |
[INFO] [stdout] 293 | impl<I: IO> BlockIO<I> {
[INFO] [stdout]     | ---------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 300 |     pub fn read_header(&self, buffer: &mut [u8]) -> io::Result<usize> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 325 |     pub fn write_header(&self, buffer: &[u8]) -> io::Result<usize> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 333 |     pub fn write(
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 363 |     pub fn truncate(&self, to_block_len: BlockNumber) -> io::Result<()> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 380 |     pub fn truncate_beginning(&self, up_to_block_number: BlockNumber) -> io::Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `flush` is never used
[INFO] [stdout]    --> src/utils/io.rs:398:12
[INFO] [stdout]     |
[INFO] [stdout] 393 | impl<I: Write> BlockIO<I> {
[INFO] [stdout]     | ------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 398 |     pub fn flush(&self) -> io::Result<()> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `sync` is never used
[INFO] [stdout]    --> src/utils/io.rs:405:12
[INFO] [stdout]     |
[INFO] [stdout] 403 | impl<I: FileOps> BlockIO<I> {
[INFO] [stdout]     | --------------------------- method in this implementation
[INFO] [stdout] 404 |     /// Makes syscall to kernel to write **flushed** buffers to disk.
[INFO] [stdout] 405 |     pub fn sync(&self) -> io::Result<()> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `persist` is never used
[INFO] [stdout]    --> src/utils/io.rs:412:12
[INFO] [stdout]     |
[INFO] [stdout] 410 | impl<I: Write + FileOps> BlockIO<I> {
[INFO] [stdout]     | ----------------------------------- method in this implementation
[INFO] [stdout] 411 |     /// Flushes and fsync all writes to make sure that they are persisted.
[INFO] [stdout] 412 |     pub fn persist(&self) -> io::Result<()> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/database/mod.rs:107:9
[INFO] [stdout]     |
[INFO] [stdout] 107 | /         self.freelist_pages
[INFO] [stdout] 108 | |             .fetch_update(Ordering::Acquire, Ordering::Acquire, |val| {
[INFO] [stdout] 109 | |                 Some(val.saturating_sub(sub))
[INFO] [stdout] 110 | |             });
[INFO] [stdout]     | |______________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 107 |         let _ = self.freelist_pages
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/storage/page.rs:291:24
[INFO] [stdout]     |
[INFO] [stdout] 291 |     pub fn as_io_slice(&self) -> IoSlice {
[INFO] [stdout]     |                        ^^^^^     ^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 291 |     pub fn as_io_slice(&self) -> IoSlice<'_> {
[INFO] [stdout]     |                                         ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/storage/page.rs:344:23
[INFO] [stdout]     |
[INFO] [stdout] 344 |     pub fn slot_array(&self) -> SlotArray {
[INFO] [stdout]     |                       ^^^^^     ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 344 |     pub fn slot_array(&self) -> SlotArray<'_> {
[INFO] [stdout]     |                                          ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/storage/page.rs:348:27
[INFO] [stdout]     |
[INFO] [stdout] 348 |     pub fn freeblock_list(&self) -> FreeblockList {
[INFO] [stdout]     |                           ^^^^^     ^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 348 |     pub fn freeblock_list(&self) -> FreeblockList<'_> {
[INFO] [stdout]     |                                                  ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/storage/page.rs:419:27
[INFO] [stdout]     |
[INFO] [stdout] 419 |     fn get_cell_at_offset(&self, offset: u16) -> storage::Result<BTreeCellRef> {
[INFO] [stdout]     |                           ^^^^^ the lifetime is elided here      ^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 419 |     fn get_cell_at_offset(&self, offset: u16) -> storage::Result<BTreeCellRef<'_>> {
[INFO] [stdout]     |                                                                              ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/storage/wal/mod.rs:472:26
[INFO] [stdout]     |
[INFO] [stdout] 472 |     pub fn begin_read_tx(&mut self) -> storage::Result<ReadGuard<READERS_NUM>> {
[INFO] [stdout]     |                          ^^^^^^^^^                     ^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                          |
[INFO] [stdout]     |                          the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 472 |     pub fn begin_read_tx(&mut self) -> storage::Result<ReadGuard<'_, READERS_NUM>> {
[INFO] [stdout]     |                                                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/storage/wal/mod.rs:488:27
[INFO] [stdout]     |
[INFO] [stdout] 488 |     pub fn begin_write_tx(&mut self) -> storage::Result<WriteGuard> {
[INFO] [stdout]     |                           ^^^^^^^^^                     ^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                           |
[INFO] [stdout]     |                           the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 488 |     pub fn begin_write_tx(&mut self) -> storage::Result<WriteGuard<'_>> {
[INFO] [stdout]     |                                                                   ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 13.61s
[INFO] running `Command { std: "docker" "inspect" "0398a523ff27e8bd9dd47a2f55e59474ce611551752e606ae9e1758da2636268", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "0398a523ff27e8bd9dd47a2f55e59474ce611551752e606ae9e1758da2636268", kill_on_drop: false }`
[INFO] [stdout] 0398a523ff27e8bd9dd47a2f55e59474ce611551752e606ae9e1758da2636268
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+2fd6efc32704647e64d3d646d21c4c68eae100e4" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] d9eda1914aef9b70d4eb40104c198cacb3dcd4b141879b784cc3c3a2242a073e
[INFO] running `Command { std: "docker" "start" "-a" "d9eda1914aef9b70d4eb40104c198cacb3dcd4b141879b784cc3c3a2242a073e", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `borrow::Cow`
[INFO] [stderr]  --> src/storage/page.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 |     borrow::Cow,
[INFO] [stderr]   |     ^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::error::DatabaseResult`
[INFO] [stderr]  --> src/tcp/server/connection.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | use crate::error::DatabaseResult;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `AtomicU32` and `Ordering`
[INFO] [stderr]  --> src/utils/io.rs:7:20
[INFO] [stderr]   |
[INFO] [stderr] 7 |     sync::atomic::{AtomicU32, Ordering},
[INFO] [stderr]   |                    ^^^^^^^^^  ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable expression
[INFO] [stderr]   --> src/database/mod.rs:43:5
[INFO] [stderr]    |
[INFO] [stderr] 38 | /     loop {
[INFO] [stderr] 39 | |         let conn = tcp_server.accept_connection().await?;
[INFO] [stderr] 40 | |         tokio::spawn(async move { handle_connection(conn) });
[INFO] [stderr] 41 | |     }
[INFO] [stderr]    | |_____- any code following this expression is unreachable
[INFO] [stderr] 42 |
[INFO] [stderr] 43 |       Ok(())
[INFO] [stderr]    |       ^^^^^^ unreachable expression
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: field `input` is never read
[INFO] [stderr]   --> src/sql/parser.rs:27:5
[INFO] [stderr]    |
[INFO] [stderr] 26 | pub struct Parser<'a> {
[INFO] [stderr]    |            ------ field in this struct
[INFO] [stderr] 27 |     input: &'a str,
[INFO] [stderr]    |     ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: methods `previous`, `current`, `expect_one_of`, and `parse_constrains` are never used
[INFO] [stderr]    --> src/sql/parser.rs:62:8
[INFO] [stderr]     |
[INFO] [stderr]  37 | impl<'a> Parser<'a> {
[INFO] [stderr]     | ------------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr]  62 |     fn previous(&self) -> Option<&Token> {
[INFO] [stderr]     |        ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  66 |     fn current(&self) -> Option<&Token> {
[INFO] [stderr]     |        ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 173 |     fn expect_one_of<'k, K>(&mut self, keywords: &'k K) -> sql::Result<Keyword>
[INFO] [stderr]     |        ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 371 |     fn parse_constrains(&mut self) -> sql::Result<Constrains> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `kind` is never read
[INFO] [stderr]   --> src/sql/types/text.rs:72:5
[INFO] [stderr]    |
[INFO] [stderr] 70 | pub struct TextRef<'a> {
[INFO] [stderr]    |            ------- field in this struct
[INFO] [stderr] 71 |     value: &'a str,
[INFO] [stderr] 72 |     kind: TextKind,
[INFO] [stderr]    |     ^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `TextRef` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: method `put` is never used
[INFO] [stderr]   --> src/storage/buffer_pool.rs:96:8
[INFO] [stderr]    |
[INFO] [stderr] 66 | impl LocalBufferPool {
[INFO] [stderr]    | -------------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 96 |     fn put(&mut self, mem: NonNull<u8>) {
[INFO] [stderr]    |        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Semaphore` is never constructed
[INFO] [stderr]   --> src/storage/wal/locks.rs:15:12
[INFO] [stderr]    |
[INFO] [stderr] 15 | pub struct Semaphore {
[INFO] [stderr]    |            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new`, `acquire`, and `release` are never used
[INFO] [stderr]   --> src/storage/wal/locks.rs:21:12
[INFO] [stderr]    |
[INFO] [stderr] 20 | impl Semaphore {
[INFO] [stderr]    | -------------- associated items in this implementation
[INFO] [stderr] 21 |     pub fn new(initial: usize) -> Self {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 29 |     pub fn acquire(&self) {
[INFO] [stderr]    |            ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 40 |     pub fn release(&self) {
[INFO] [stderr]    |            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `min_active_frame` is never used
[INFO] [stderr]   --> src/storage/wal/locks.rs:67:12
[INFO] [stderr]    |
[INFO] [stderr] 55 | impl<const READERS_NUM: usize> ReadersPool<READERS_NUM> {
[INFO] [stderr]    | ------------------------------------------------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 67 |     pub fn min_active_frame(&self) -> FrameNumber {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]    --> src/database/mod.rs:107:9
[INFO] [stderr]     |
[INFO] [stderr] 107 | /         self.freelist_pages
[INFO] [stderr] 108 | |             .fetch_update(Ordering::Acquire, Ordering::Acquire, |val| {
[INFO] [stderr] 109 | |                 Some(val.saturating_sub(sub))
[INFO] [stderr] 110 | |             });
[INFO] [stderr]     | |______________^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 107 |         let _ = self.freelist_pages
[INFO] [stderr]     |         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/storage/page.rs:291:24
[INFO] [stderr]     |
[INFO] [stderr] 291 |     pub fn as_io_slice(&self) -> IoSlice {
[INFO] [stderr]     |                        ^^^^^     ^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]     |                        |
[INFO] [stderr]     |                        the lifetime is elided here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 291 |     pub fn as_io_slice(&self) -> IoSlice<'_> {
[INFO] [stderr]     |                                         ++++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/storage/page.rs:344:23
[INFO] [stderr]     |
[INFO] [stderr] 344 |     pub fn slot_array(&self) -> SlotArray {
[INFO] [stderr]     |                       ^^^^^     ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]     |                       |
[INFO] [stderr]     |                       the lifetime is elided here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 344 |     pub fn slot_array(&self) -> SlotArray<'_> {
[INFO] [stderr]     |                                          ++++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/storage/page.rs:348:27
[INFO] [stderr]     |
[INFO] [stderr] 348 |     pub fn freeblock_list(&self) -> FreeblockList {
[INFO] [stderr]     |                           ^^^^^     ^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]     |                           |
[INFO] [stderr]     |                           the lifetime is elided here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 348 |     pub fn freeblock_list(&self) -> FreeblockList<'_> {
[INFO] [stderr]     |                                                  ++++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/storage/page.rs:419:27
[INFO] [stderr]     |
[INFO] [stderr] 419 |     fn get_cell_at_offset(&self, offset: u16) -> storage::Result<BTreeCellRef> {
[INFO] [stderr]     |                           ^^^^^ the lifetime is elided here      ^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 419 |     fn get_cell_at_offset(&self, offset: u16) -> storage::Result<BTreeCellRef<'_>> {
[INFO] [stderr]     |                                                                              ++++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/storage/wal/mod.rs:472:26
[INFO] [stderr]     |
[INFO] [stderr] 472 |     pub fn begin_read_tx(&mut self) -> storage::Result<ReadGuard<READERS_NUM>> {
[INFO] [stderr]     |                          ^^^^^^^^^                     ^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]     |                          |
[INFO] [stderr]     |                          the lifetime is elided here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 472 |     pub fn begin_read_tx(&mut self) -> storage::Result<ReadGuard<'_, READERS_NUM>> {
[INFO] [stderr]     |                                                                  +++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/storage/wal/mod.rs:488:27
[INFO] [stderr]     |
[INFO] [stderr] 488 |     pub fn begin_write_tx(&mut self) -> storage::Result<WriteGuard> {
[INFO] [stderr]     |                           ^^^^^^^^^                     ^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]     |                           |
[INFO] [stderr]     |                           the lifetime is elided here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 488 |     pub fn begin_write_tx(&mut self) -> storage::Result<WriteGuard<'_>> {
[INFO] [stderr]     |                                                                   ++++
[INFO] [stderr] 
[INFO] [stderr] warning: `carcinusdb` (lib) generated 18 warnings (run `cargo fix --lib -p carcinusdb` to apply 9 suggestions)
[INFO] [stderr] warning: unused import: `super::*`
[INFO] [stderr]    --> src/storage/pager.rs:617:9
[INFO] [stderr]     |
[INFO] [stderr] 617 |     use super::*;
[INFO] [stderr]     |         ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `super::*`
[INFO] [stderr]    --> src/storage/wal/mod.rs:846:9
[INFO] [stderr]     |
[INFO] [stderr] 846 |     use super::*;
[INFO] [stderr]     |         ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `n`
[INFO] [stderr]    --> src/utils/bytes.rs:531:13
[INFO] [stderr]     |
[INFO] [stderr] 531 |         let n: u32 = 0;
[INFO] [stderr]     |             ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/utils/bytes.rs:560:13
[INFO] [stderr]     |
[INFO] [stderr] 560 |         let mut n = 100;
[INFO] [stderr]     |             ----^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: method `increment_change_counter` is never used
[INFO] [stderr]   --> src/database/mod.rs:93:12
[INFO] [stderr]    |
[INFO] [stderr] 63 | impl MemDatabaseHeader {
[INFO] [stderr]    | ---------------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 93 |     pub fn increment_change_counter(&self) {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variants `InvalidBytes`, `InvalidHostname`, `InvalidFilePath`, `InvalidPort`, and `Unknown` are never constructed
[INFO] [stderr]   --> src/error.rs:8:5
[INFO] [stderr]    |
[INFO] [stderr]  6 | pub enum DatabaseError {
[INFO] [stderr]    |          ------------- variants in this enum
[INFO] [stderr]  7 |     #[error("invalid bytes")]
[INFO] [stderr]  8 |     InvalidBytes,
[INFO] [stderr]    |     ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 12 |     InvalidHostname { msg: String, hostname: String },
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^
[INFO] [stderr] 13 |     #[error("provided path is not file: {0}")]
[INFO] [stderr] 14 |     InvalidFilePath(String),
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^
[INFO] [stderr] 15 |     #[error("invalid port number: {0}")]
[INFO] [stderr] 16 |     InvalidPort(String),
[INFO] [stderr]    |     ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 35 |     Unknown,
[INFO] [stderr]    |     ^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `DatabaseError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: static `DISK_BLOCK_SIZE` is never used
[INFO] [stderr]   --> src/os.rs:11:12
[INFO] [stderr]    |
[INFO] [stderr] 11 | pub static DISK_BLOCK_SIZE: LazyLock<usize> = LazyLock::new(|| {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait `FileSystemBlockSize` is never used
[INFO] [stderr]   --> src/os.rs:15:11
[INFO] [stderr]    |
[INFO] [stderr] 15 | pub trait FileSystemBlockSize {
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Fs` is never constructed
[INFO] [stderr]   --> src/os.rs:23:12
[INFO] [stderr]    |
[INFO] [stderr] 23 | pub struct Fs;
[INFO] [stderr]    |            ^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `bypass_cache`, `sync_on_write`, `lock`, and `truncate` are never used
[INFO] [stderr]   --> src/os.rs:45:12
[INFO] [stderr]    |
[INFO] [stderr] 43 | impl OpenOptions {
[INFO] [stderr]    | ---------------- methods in this implementation
[INFO] [stderr] 44 |     /// disable OS
[INFO] [stderr] 45 |     pub fn bypass_cache(mut self, bypass_cache: bool) -> Self {
[INFO] [stderr]    |            ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 51 |     pub fn sync_on_write(mut self, sync_on_write: bool) -> Self {
[INFO] [stderr]    |            ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 77 |     pub fn lock(mut self, lock: bool) -> Self {
[INFO] [stderr]    |            ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 83 |     pub fn truncate(mut self, truncate: bool) -> Self {
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `parse_explain`, `parse_begin`, and `parse_commit` are never used
[INFO] [stderr]   --> src/sql/parser.rs:14:8
[INFO] [stderr]    |
[INFO] [stderr] 13 | pub trait StatementParser {
[INFO] [stderr]    |           --------------- methods in this trait
[INFO] [stderr] 14 |     fn parse_explain(&mut self) -> sql::Result<Statement>;
[INFO] [stderr]    |        ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 21 |     fn parse_begin(&mut self) -> sql::Result<Statement>;
[INFO] [stderr]    |        ^^^^^^^^^^^
[INFO] [stderr] 22 |     fn parse_commit(&mut self) -> sql::Result<Statement>;
[INFO] [stderr]    |        ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `input` is never read
[INFO] [stderr]   --> src/sql/parser.rs:27:5
[INFO] [stderr]    |
[INFO] [stderr] 26 | pub struct Parser<'a> {
[INFO] [stderr]    |            ------ field in this struct
[INFO] [stderr] 27 |     input: &'a str,
[INFO] [stderr]    |     ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `count` and `to_owned` are never used
[INFO] [stderr]   --> src/sql/record.rs:45:12
[INFO] [stderr]    |
[INFO] [stderr] 23 | impl<'a> Record<'a> {
[INFO] [stderr]    | ------------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 45 |     pub fn count(&self) -> usize {
[INFO] [stderr]    |            ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 53 |     pub fn to_owned(&self) -> Record<'static> {
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `with_capacity` is never used
[INFO] [stderr]    --> src/sql/record.rs:105:12
[INFO] [stderr]     |
[INFO] [stderr]  95 | impl RecordCursor {
[INFO] [stderr]     | ----------------- associated function in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 105 |     pub fn with_capacity(capacity: usize) -> Self {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `records_equal` is never used
[INFO] [stderr]    --> src/sql/record.rs:284:8
[INFO] [stderr]     |
[INFO] [stderr] 284 | pub fn records_equal(r1: &Record, r2: &Record) -> bool {
[INFO] [stderr]     |        ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `compare_records` is never used
[INFO] [stderr]    --> src/sql/record.rs:303:8
[INFO] [stderr]     |
[INFO] [stderr] 303 | pub fn compare_records(r1: &Record, r2: &Record) -> std::cmp::Ordering {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]    --> src/sql/statement.rs:268:12
[INFO] [stderr]     |
[INFO] [stderr] 267 | impl Column {
[INFO] [stderr]     | ----------- associated function in this implementation
[INFO] [stderr] 268 |     pub fn new(name: &str, data_type: DataType) -> Self {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variant `Commit` is never constructed
[INFO] [stderr]    --> src/sql/token.rs:101:5
[INFO] [stderr]     |
[INFO] [stderr]  68 | pub enum Keyword {
[INFO] [stderr]     |          ------- variant in this enum
[INFO] [stderr] ...
[INFO] [stderr] 101 |     Commit,
[INFO] [stderr]     |     ^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `Keyword` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `input` is never read
[INFO] [stderr]  --> src/sql/tokenizer.rs:9:5
[INFO] [stderr]   |
[INFO] [stderr] 8 | pub struct Stream<'a> {
[INFO] [stderr]   |            ------ field in this struct
[INFO] [stderr] 9 |     input: &'a str,
[INFO] [stderr]   |     ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `raw` is never used
[INFO] [stderr]   --> src/sql/tokenizer.rs:24:12
[INFO] [stderr]    |
[INFO] [stderr] 14 | impl<'a> Stream<'a> {
[INFO] [stderr]    | ------------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 24 |     pub fn raw(&self) -> &'a str {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `ValueType` is never used
[INFO] [stderr]   --> src/sql/types/mod.rs:16:10
[INFO] [stderr]    |
[INFO] [stderr] 16 | pub enum ValueType {
[INFO] [stderr]    |          ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variant `Blob` is never constructed
[INFO] [stderr]   --> src/sql/types/mod.rs:30:5
[INFO] [stderr]    |
[INFO] [stderr] 26 | pub enum Value {
[INFO] [stderr]    |          ----- variant in this enum
[INFO] [stderr] ...
[INFO] [stderr] 30 |     Blob(Vec<u8>),
[INFO] [stderr]    |     ^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Value` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: method `value_type` is never used
[INFO] [stderr]   --> src/sql/types/mod.rs:54:12
[INFO] [stderr]    |
[INFO] [stderr] 43 | impl Value {
[INFO] [stderr]    | ---------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 54 |     pub fn value_type(&self) -> ValueType {
[INFO] [stderr]    |            ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `to_owned` and `to_value_type` are never used
[INFO] [stderr]    --> src/sql/types/mod.rs:184:12
[INFO] [stderr]     |
[INFO] [stderr] 183 | impl<'a> ValueRef<'a> {
[INFO] [stderr]     | --------------------- methods in this implementation
[INFO] [stderr] 184 |     pub fn to_owned(&self) -> Value {
[INFO] [stderr]     |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 194 |     pub fn to_value_type(&self) -> ValueType {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait `AnyBlob` is never used
[INFO] [stderr]  --> src/sql/types/blob.rs:1:11
[INFO] [stderr]   |
[INFO] [stderr] 1 | pub trait AnyBlob {
[INFO] [stderr]   |           ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `PAGE_NUMBER_SIZE` is never used
[INFO] [stderr]   --> src/storage/mod.rs:20:11
[INFO] [stderr]    |
[INFO] [stderr] 20 | pub const PAGE_NUMBER_SIZE: usize = std::mem::size_of::<PageNumber>();
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variants `PageNumberOutOfRange`, `Corruped`, and `PartialRead` are never constructed
[INFO] [stderr]   --> src/storage/mod.rs:33:5
[INFO] [stderr]    |
[INFO] [stderr] 26 | pub enum Error {
[INFO] [stderr]    |          ----- variants in this enum
[INFO] [stderr] ...
[INFO] [stderr] 33 |     PageNumberOutOfRange,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 34 |     #[error("page is corrupted. Exptected state doesn't match")]
[INFO] [stderr] 35 |     Corruped,
[INFO] [stderr]    |     ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 57 |     PartialRead { expected: usize, read: usize },
[INFO] [stderr]    |     ^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Error` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: method `try_alloc` is never used
[INFO] [stderr]    --> src/storage/allocator.rs:121:12
[INFO] [stderr]     |
[INFO] [stderr]  72 | impl GlobalPageAllocator {
[INFO] [stderr]     | ------------------------ method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 121 |     pub fn try_alloc(&self) -> Option<NonNull<u8>> {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `default` and `len` are never used
[INFO] [stderr]    --> src/storage/allocator.rs:210:12
[INFO] [stderr]     |
[INFO] [stderr] 195 | impl LocalPageAllocator {
[INFO] [stderr]     | ----------------------- associated items in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 210 |     pub fn default(global_allocator: Arc<GlobalPageAllocator>) -> Self {
[INFO] [stderr]     |            ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 214 |     pub fn len(&self) -> usize {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `BTreeKey` is never used
[INFO] [stderr]   --> src/storage/btree.rs:13:10
[INFO] [stderr]    |
[INFO] [stderr] 13 | pub enum BTreeKey<'a> {
[INFO] [stderr]    |          ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new_table_row_id`, `new_index_key`, `get_record`, and `to_owned` are never used
[INFO] [stderr]   --> src/storage/btree.rs:19:12
[INFO] [stderr]    |
[INFO] [stderr] 18 | impl<'a> BTreeKey<'a> {
[INFO] [stderr]    | --------------------- associated items in this implementation
[INFO] [stderr] 19 |     pub fn new_table_row_id(row_id: i64, record: Option<Record<'a>>) -> Self {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 23 |     pub fn new_index_key(record: Record<'a>) -> Self {
[INFO] [stderr]    |            ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 27 |     pub fn get_record(&self) -> Option<Record<'a>> {
[INFO] [stderr]    |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 34 |     pub fn to_owned(&self) -> BTreeKey<'static> {
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `SearchResult` is never used
[INFO] [stderr]   --> src/storage/btree.rs:79:10
[INFO] [stderr]    |
[INFO] [stderr] 79 | pub enum SearchResult {
[INFO] [stderr]    |          ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `is_found` is never used
[INFO] [stderr]   --> src/storage/btree.rs:85:12
[INFO] [stderr]    |
[INFO] [stderr] 84 | impl SearchResult {
[INFO] [stderr]    | ----------------- method in this implementation
[INFO] [stderr] 85 |     pub fn is_found(&self) -> bool {
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `BTree` is never constructed
[INFO] [stderr]   --> src/storage/btree.rs:96:12
[INFO] [stderr]    |
[INFO] [stderr] 96 | pub struct BTree {
[INFO] [stderr]    |            ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new`, `key_in_range`, `extract_high_key`, and `extracty_key` are never used
[INFO] [stderr]    --> src/storage/btree.rs:102:12
[INFO] [stderr]     |
[INFO] [stderr] 101 | impl BTree {
[INFO] [stderr]     | ---------- associated items in this implementation
[INFO] [stderr] 102 |     pub fn new(pager: Pager, root: PageNumber) -> Self {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 108 |     pub fn key_in_range(&mut self, page: &Page, key: &BTreeKey) -> storage::Result<bool> {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 117 |     fn extract_high_key<'a>(&mut self, page: &'a Page) -> storage::Result<Option<BTreeKey<'a>>> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 127 |     fn extracty_key<'a>(
[INFO] [stderr]     |        ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait `DatabaseCursor` is never used
[INFO] [stderr]    --> src/storage/btree.rs:157:11
[INFO] [stderr]     |
[INFO] [stderr] 157 | pub trait DatabaseCursor {
[INFO] [stderr]     |           ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `BTreeCursor` is never constructed
[INFO] [stderr]    --> src/storage/btree.rs:186:12
[INFO] [stderr]     |
[INFO] [stderr] 186 | pub struct BTreeCursor<'a> {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new` and `binary_search` are never used
[INFO] [stderr]    --> src/storage/btree.rs:196:12
[INFO] [stderr]     |
[INFO] [stderr] 195 | impl<'a> BTreeCursor<'a> {
[INFO] [stderr]     | ------------------------ associated items in this implementation
[INFO] [stderr] 196 |     pub fn new(btree: &'a mut BTree) -> Self {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 210 |     fn binary_search(
[INFO] [stderr]     |        ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `reassemble_payload` is never used
[INFO] [stderr]    --> src/storage/btree.rs:378:8
[INFO] [stderr]     |
[INFO] [stderr] 378 | pub fn reassemble_payload<'a>(
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new` and `len` are never used
[INFO] [stderr]   --> src/storage/buffer_pool.rs:25:12
[INFO] [stderr]    |
[INFO] [stderr] 16 | impl GlobalBufferPool {
[INFO] [stderr]    | --------------------- associated items in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 25 |     pub fn new(
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 56 |     pub fn len(&self) -> usize {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `len` and `put` are never used
[INFO] [stderr]   --> src/storage/buffer_pool.rs:76:12
[INFO] [stderr]    |
[INFO] [stderr] 66 | impl LocalBufferPool {
[INFO] [stderr]    | -------------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 76 |     pub fn len(&self) -> usize {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 96 |     fn put(&mut self, mem: NonNull<u8>) {
[INFO] [stderr]    |        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `delete` is never used
[INFO] [stderr]   --> src/storage/cache.rs:97:12
[INFO] [stderr]    |
[INFO] [stderr] 77 | impl<S: BuildHasher> ShardedLruCache<S> {
[INFO] [stderr]    | --------------------------------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 97 |     pub fn delete(&self, key: PageCacheKey) -> Result<()> {
[INFO] [stderr]    |            ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `MIN_PAGE_SIZE` is never used
[INFO] [stderr]   --> src/storage/page.rs:24:11
[INFO] [stderr]    |
[INFO] [stderr] 24 | pub const MIN_PAGE_SIZE: usize = 512;
[INFO] [stderr]    |           ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `usable_space` is never used
[INFO] [stderr]   --> src/storage/page.rs:28:8
[INFO] [stderr]    |
[INFO] [stderr] 28 | pub fn usable_space(page_size: usize, reserved: usize) -> usize {
[INFO] [stderr]    |        ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `to_bytes` is never used
[INFO] [stderr]   --> src/storage/page.rs:92:12
[INFO] [stderr]    |
[INFO] [stderr] 61 | impl DatabaseHeader {
[INFO] [stderr]    | ------------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 92 |     pub fn to_bytes(&self) -> Vec<u8> {
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `is_leaf` and `is_internal` are never used
[INFO] [stderr]    --> src/storage/page.rs:135:12
[INFO] [stderr]     |
[INFO] [stderr] 134 | impl PageType {
[INFO] [stderr]     | ------------- methods in this implementation
[INFO] [stderr] 135 |     pub fn is_leaf(&self) -> bool {
[INFO] [stderr]     |            ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 142 |     pub fn is_internal(&self) -> bool {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple associated items are never used
[INFO] [stderr]    --> src/storage/page.rs:231:11
[INFO] [stderr]     |
[INFO] [stderr] 218 | impl Page {
[INFO] [stderr]     | --------- associated items in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 231 |     const NEXT_OVERFLOW_OFFSET: usize = 0;
[INFO] [stderr]     |           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 232 |     const PAYLOAD_SIZE_OFFSET: usize = Self::NEXT_OVERFLOW_OFFSET + size_of::<PageNumber>();
[INFO] [stderr]     |           ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 233 |     const PAYLOAD_OFFSET: usize = Self::PAYLOAD_SIZE_OFFSET + size_of::<SlotNumber>();
[INFO] [stderr]     |           ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 294 |     pub fn is_empty(&self) -> bool {
[INFO] [stderr]     |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 298 |     pub fn is_leaf(&self) -> bool {
[INFO] [stderr]     |            ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 322 |     pub fn storage_space(&self) -> u16 {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 327 |     pub fn storage_size(&self, cell_size: u16) -> u16 {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 515 |     pub fn try_replace(
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 566 |     pub fn child(&self, index: SlotNumber) -> PageNumber {
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `write_u8` and `write_u32` are never used
[INFO] [stderr]    --> src/storage/page.rs:606:8
[INFO] [stderr]     |
[INFO] [stderr] 591 | impl Page {
[INFO] [stderr]     | --------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 606 |     fn write_u8(&self, pos: usize, value: u8) {
[INFO] [stderr]     |        ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 616 |     fn write_u32(&self, pos: usize, value: u32) {
[INFO] [stderr]     |        ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `set_free_fragments`, `add_free_fragment`, and `set_len` are never used
[INFO] [stderr]    --> src/storage/page.rs:651:12
[INFO] [stderr]     |
[INFO] [stderr] 622 | impl Page {
[INFO] [stderr]     | --------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 651 |     pub fn set_free_fragments(&self, value: u8) {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 655 |     pub fn add_free_fragment(&self, value: u8) {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 689 |     pub fn set_len(&self, value: u16) {
[INFO] [stderr]     |            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `next_overflow`, `overflow_payload_size`, and `overflow_payload` are never used
[INFO] [stderr]    --> src/storage/page.rs:702:12
[INFO] [stderr]     |
[INFO] [stderr] 700 | impl Page {
[INFO] [stderr]     | --------- methods in this implementation
[INFO] [stderr] 701 |     /// Use only when page type is overflow.
[INFO] [stderr] 702 |     pub fn next_overflow(&self) -> Option<PageNumber> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 709 |     pub fn overflow_payload_size(&self) -> u16 {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 714 |     pub fn overflow_payload(&self) -> &[u8] {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `db_header` is never used
[INFO] [stderr]    --> src/storage/page.rs:724:12
[INFO] [stderr]     |
[INFO] [stderr] 722 | impl Page {
[INFO] [stderr]     | --------- method in this implementation
[INFO] [stderr] 723 |     /// Returns database header. Only use with page that have non-zero offset.
[INFO] [stderr] 724 |     pub fn db_header(&self) -> DatabaseHeader {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `freelist_set` is never used
[INFO] [stderr]    --> src/storage/page.rs:740:12
[INFO] [stderr]     |
[INFO] [stderr] 734 | impl Page {
[INFO] [stderr]     | --------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 740 |     pub fn freelist_set(&self, value: PageNumber) {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `CellIterator` is never constructed
[INFO] [stderr]     --> src/storage/page.rs:1036:12
[INFO] [stderr]      |
[INFO] [stderr] 1036 | pub struct CellIterator<'a> {
[INFO] [stderr]      |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `is_overflowing`, `first_overflow`, and `payload_ref` are never used
[INFO] [stderr]     --> src/storage/page.rs:1061:8
[INFO] [stderr]      |
[INFO] [stderr] 1051 | pub trait CellOps {
[INFO] [stderr]      |           ------- methods in this trait
[INFO] [stderr] ...
[INFO] [stderr] 1061 |     fn is_overflowing(&self) -> bool;
[INFO] [stderr]      |        ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1065 |     fn first_overflow(&self) -> Option<PageNumber>;
[INFO] [stderr]      |        ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1068 |     fn payload_ref(&self) -> PayloadRef;
[INFO] [stderr]      |        ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `left_child` and `first_overflow` are never read
[INFO] [stderr]     --> src/storage/page.rs:1171:9
[INFO] [stderr]      |
[INFO] [stderr] 1167 | pub struct IndexInternalCell {
[INFO] [stderr]      |            ----------------- fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 1171 |     pub left_child: PageNumber,
[INFO] [stderr]      |         ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1178 |     first_overflow: Option<PageNumber>,
[INFO] [stderr]      |     ^^^^^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = note: `IndexInternalCell` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `first_overflow` is never read
[INFO] [stderr]     --> src/storage/page.rs:1268:5
[INFO] [stderr]      |
[INFO] [stderr] 1259 | pub struct IndexLeafCell {
[INFO] [stderr]      |            ------------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 1268 |     first_overflow: Option<PageNumber>,
[INFO] [stderr]      |     ^^^^^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = note: `IndexLeafCell` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]     --> src/storage/page.rs:1274:12
[INFO] [stderr]      |
[INFO] [stderr] 1271 | impl IndexLeafCell {
[INFO] [stderr]      | ------------------ associated function in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 1274 |     pub fn new(payload_size: VarInt, payload: &[u8], first_overflow: Option<PageNumber>) -> Self {
[INFO] [stderr]      |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `row_id` and `left_child` are never read
[INFO] [stderr]     --> src/storage/page.rs:1342:9
[INFO] [stderr]      |
[INFO] [stderr] 1338 | pub struct TableInternalCell {
[INFO] [stderr]      |            ----------------- fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 1342 |     pub row_id: i64,
[INFO] [stderr]      |         ^^^^^^
[INFO] [stderr] 1343 |     /// Left child of BTree Page.
[INFO] [stderr] 1344 |     pub left_child: PageNumber,
[INFO] [stderr]      |         ^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = note: `TableInternalCell` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]     --> src/storage/page.rs:1350:12
[INFO] [stderr]      |
[INFO] [stderr] 1347 | impl TableInternalCell {
[INFO] [stderr]      | ---------------------- associated function in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 1350 |     pub fn new(row_id: i64, left_child: PageNumber) -> Self {
[INFO] [stderr]      |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `row_id` and `first_overflow` are never read
[INFO] [stderr]     --> src/storage/page.rs:1409:9
[INFO] [stderr]      |
[INFO] [stderr] 1405 | pub struct TableLeafCell {
[INFO] [stderr]      |            ------------- fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 1409 |     pub row_id: i64,
[INFO] [stderr]      |         ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 1416 |     first_overflow: Option<PageNumber>,
[INFO] [stderr]      |     ^^^^^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = note: `TableLeafCell` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]     --> src/storage/page.rs:1422:12
[INFO] [stderr]      |
[INFO] [stderr] 1419 | impl TableLeafCell {
[INFO] [stderr]      | ------------------ associated function in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 1422 |     pub fn new(
[INFO] [stderr]      |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `is_error`, `is_loaded`, `set_dirty`, and `clear_error` are never used
[INFO] [stderr]   --> src/storage/pager.rs:66:12
[INFO] [stderr]    |
[INFO] [stderr] 58 | impl MemPage {
[INFO] [stderr]    | ------------ methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 66 |     pub fn is_error(&self) -> bool {
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 74 |     pub fn is_loaded(&self) -> bool {
[INFO] [stderr]    |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 82 |     pub fn set_dirty(&self) {
[INFO] [stderr]    |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 90 |     pub fn clear_error(&self) {
[INFO] [stderr]    |            ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `is_locked` is never used
[INFO] [stderr]    --> src/storage/pager.rs:112:12
[INFO] [stderr]     |
[INFO] [stderr] 104 | impl MemPage {
[INFO] [stderr]     | ------------ method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 112 |     pub fn is_locked(&self) -> bool {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple methods are never used
[INFO] [stderr]    --> src/storage/pager.rs:230:12
[INFO] [stderr]     |
[INFO] [stderr] 221 | impl SharedPageGuard {
[INFO] [stderr]     | -------------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 230 |     pub fn into_pin<T>(self, inner: T) -> PagePin<Self, T> {
[INFO] [stderr]     |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 234 |     pub fn id(&self) -> PageNumber {
[INFO] [stderr]     |            ^^
[INFO] [stderr] ...
[INFO] [stderr] 238 |     pub fn is_error(&self) -> bool {
[INFO] [stderr]     |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 242 |     pub fn is_dirty(&self) -> bool {
[INFO] [stderr]     |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 246 |     pub fn is_loaded(&self) -> bool {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 250 |     pub fn set_error(&self) {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 254 |     pub fn set_dirty(&self) {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 258 |     pub fn set_loaded(&self) {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 262 |     pub fn clear_error(&self) {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 266 |     pub fn clear_dirty(&self) {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 270 |     pub fn clear_loaded(&self) {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `into_pin`, `is_error`, `is_dirty`, `is_loaded`, `set_dirty`, and `clear_error` are never used
[INFO] [stderr]    --> src/storage/pager.rs:318:12
[INFO] [stderr]     |
[INFO] [stderr] 293 | impl ExclusivePageGuard {
[INFO] [stderr]     | ----------------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 318 |     pub fn into_pin<T>(self, inner: T) -> PagePin<Self, T> {
[INFO] [stderr]     |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 326 |     pub fn is_error(&self) -> bool {
[INFO] [stderr]     |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 330 |     pub fn is_dirty(&self) -> bool {
[INFO] [stderr]     |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 334 |     pub fn is_loaded(&self) -> bool {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 342 |     pub fn set_dirty(&self) {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 350 |     pub fn clear_error(&self) {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `PagePin` is never constructed
[INFO] [stderr]    --> src/storage/pager.rs:384:12
[INFO] [stderr]     |
[INFO] [stderr] 384 | pub struct PagePin<G, T> {
[INFO] [stderr]     |            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]    --> src/storage/pager.rs:390:12
[INFO] [stderr]     |
[INFO] [stderr] 389 | impl<G, T> PagePin<G, T> {
[INFO] [stderr]     | ------------------------ associated function in this implementation
[INFO] [stderr] 390 |     pub fn new(guard: G, inner: T) -> Self {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `write_page`, `flush`, and `sync` are never used
[INFO] [stderr]    --> src/storage/pager.rs:512:12
[INFO] [stderr]     |
[INFO] [stderr] 426 | impl Pager {
[INFO] [stderr]     | ---------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 512 |     pub fn write_page(&mut self, page: MemPageRef) -> storage::Result<()> {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 550 |     pub fn flush(&mut self) -> storage::Result<()> {
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 554 |     pub fn sync(&self) -> storage::Result<()> {
[INFO] [stderr]     |            ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `to_bytes` is never used
[INFO] [stderr]    --> src/storage/wal/mod.rs:105:12
[INFO] [stderr]     |
[INFO] [stderr]  62 | impl WalHeader {
[INFO] [stderr]     | -------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 105 |     pub fn to_bytes(&self) -> Vec<u8> {
[INFO] [stderr]     |            ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `page_size`, `checkpoint_seq_num`, `last_checkpointed`, `db_size`, `backfilled_number`, and `checksum` are never read
[INFO] [stderr]    --> src/storage/wal/mod.rs:129:9
[INFO] [stderr]     |
[INFO] [stderr] 128 | pub struct MemWalHeader {
[INFO] [stderr]     |            ------------ fields in this struct
[INFO] [stderr] 129 |     pub page_size: u32,
[INFO] [stderr]     |         ^^^^^^^^^
[INFO] [stderr] 130 |     checkpoint_seq_num: AtomicU32,
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 131 |     last_checkpointed: AtomicU32,
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 132 |     db_size: AtomicU32,
[INFO] [stderr]     |     ^^^^^^^
[INFO] [stderr] 133 |     backfilled_number: AtomicU32,
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 134 |     checksum: AtomicU64,
[INFO] [stderr]     |     ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple methods are never used
[INFO] [stderr]    --> src/storage/wal/mod.rs:138:12
[INFO] [stderr]     |
[INFO] [stderr] 137 | impl MemWalHeader {
[INFO] [stderr]     | ----------------- methods in this implementation
[INFO] [stderr] 138 |     pub fn into_raw_header(&self) -> WalHeader {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 150 |     pub fn update_checksum(&self) {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 155 |     pub fn get_checkpoint_seq_num(&self) -> u32 {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 159 |     pub fn get_last_checkpointed(&self) -> u32 {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 163 |     pub fn get_db_size(&self) -> u32 {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 167 |     pub fn get_backfilled_number(&self) -> u32 {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 171 |     pub fn get_checksum(&self) -> Checksum {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 175 |     pub fn increment_checkpoint_seq_num(&self) {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 179 |     pub fn set_last_checkpointed(&self, value: PageNumber) {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 183 |     pub fn set_db_size(&self, value: u32) {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 187 |     pub fn set_backfilled_number(&self, value: u32) {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 191 |     pub fn set_checksum(&self, (val_1, val_2): Checksum) {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple fields are never read
[INFO] [stderr]    --> src/storage/wal/mod.rs:301:5
[INFO] [stderr]     |
[INFO] [stderr] 299 | pub struct GlobalWal {
[INFO] [stderr]     |            --------- fields in this struct
[INFO] [stderr] 300 |     wal_file: Arc<BlockIO<File>>,
[INFO] [stderr] 301 |     db_file: Arc<BlockIO<File>>,
[INFO] [stderr]     |     ^^^^^^^
[INFO] [stderr] 302 |
[INFO] [stderr] 303 |     frame_size: usize,
[INFO] [stderr]     |     ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 306 |     checkpoint_size: u32,
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^
[INFO] [stderr] 307 |     /// WAL header loaded to memory.
[INFO] [stderr] 308 |     header: Arc<MemWalHeader>,
[INFO] [stderr]     |     ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 312 |     page_cache: Arc<ShardedLruCache>,
[INFO] [stderr]     |     ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 316 |     max_frame: AtomicU32,
[INFO] [stderr]     |     ^^^^^^^^^
[INFO] [stderr] 317 |     /// Checksum of last frame in WAL. It is cumulative checksum of all pages. Stored as two u32 packed in single atomic.
[INFO] [stderr] 318 |     last_checksum: AtomicU64,
[INFO] [stderr]     |     ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 325 |     readers: Arc<ReadersPool<READERS_NUM>>,
[INFO] [stderr]     |     ^^^^^^^
[INFO] [stderr] 326 |     /// Lock for single writer.
[INFO] [stderr] 327 |     writer: Mutex<()>,
[INFO] [stderr]     |     ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 331 |     checkpoint_lock: RwLock<()>,
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple methods are never used
[INFO] [stderr]    --> src/storage/wal/mod.rs:390:12
[INFO] [stderr]     |
[INFO] [stderr] 334 | impl GlobalWal {
[INFO] [stderr]     | -------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 390 |     pub fn write_header(&self) -> storage::Result<()> {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 398 |     pub fn get_min_frame(&self) -> FrameNumber {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 402 |     pub fn get_max_frame(&self) -> FrameNumber {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 406 |     pub fn get_last_checksum(&self) -> Checksum {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 410 |     pub fn get_backfilled_number(&self) -> u32 {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 414 |     pub fn get_checkpoint_seq_num(&self) -> u32 {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 418 |     pub fn set_min_frame(&self, value: FrameNumber) {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 422 |     pub fn set_max_frame(&self, value: FrameNumber) {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 426 |     pub fn set_last_checksum(&self, value: Checksum) {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 431 |     pub fn set_backfilled_number(&self, value: u32) {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 435 |     pub fn increment_checkpoint_seq_num(&self) {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `min_frame` is never read
[INFO] [stderr]    --> src/storage/wal/mod.rs:444:5
[INFO] [stderr]     |
[INFO] [stderr] 440 | pub struct LocalWal {
[INFO] [stderr]     |            -------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 444 |     min_frame: u32,
[INFO] [stderr]     |     ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple methods are never used
[INFO] [stderr]    --> src/storage/wal/mod.rs:461:8
[INFO] [stderr]     |
[INFO] [stderr] 451 | impl LocalWal {
[INFO] [stderr]     | ------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 461 |     fn calculate_frame_offset(&self, frame_number: FrameNumber) -> storage::Result<usize> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 472 |     pub fn begin_read_tx(&mut self) -> storage::Result<ReadGuard<READERS_NUM>> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 488 |     pub fn begin_write_tx(&mut self) -> storage::Result<WriteGuard> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 501 |     pub fn end_read_tx(&mut self, guard: ReadGuard<READERS_NUM>) -> storage::Result<()> {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 511 |     pub fn end_write_tx(&mut self, guard: WriteGuard) -> storage::Result<()> {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 528 |     fn read_raw(&self, frame_number: FrameNumber, buffer: &mut [u8]) -> storage::Result<usize> {
[INFO] [stderr]     |        ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 643 |     fn should_checkpoint(&self) -> bool {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 651 |     pub fn checkpoint(&mut self) -> storage::Result<()> {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `latest_frames_sorted` and `clear` are never used
[INFO] [stderr]    --> src/storage/wal/mod.rs:742:12
[INFO] [stderr]     |
[INFO] [stderr] 714 | impl WalIndex {
[INFO] [stderr]     | ------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 742 |     pub fn latest_frames_sorted(&self, max_frame: FrameNumber) -> Vec<(PageNumber, FrameNumber)> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 773 |     pub fn clear(&self) {
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `slots` and `backoff` are never read
[INFO] [stderr]   --> src/storage/wal/locks.rs:50:5
[INFO] [stderr]    |
[INFO] [stderr] 48 | pub struct ReadersPool<const READERS_NUM: usize> {
[INFO] [stderr]    |            ----------- fields in this struct
[INFO] [stderr] 49 |     /// Array of atomic u32 that keeps track of `min_frame` for each reader.
[INFO] [stderr] 50 |     slots: [AtomicU32; READERS_NUM],
[INFO] [stderr]    |     ^^^^^
[INFO] [stderr] 51 |     /// [`Backoff`] to don't spam other atomic when trying to acquire read lock.
[INFO] [stderr] 52 |     backoff: Backoff,
[INFO] [stderr]    |     ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `min_active_frame`, `get_min_frame`, `acquire`, and `release` are never used
[INFO] [stderr]    --> src/storage/wal/locks.rs:67:12
[INFO] [stderr]     |
[INFO] [stderr]  55 | impl<const READERS_NUM: usize> ReadersPool<READERS_NUM> {
[INFO] [stderr]     | ------------------------------------------------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr]  67 |     pub fn min_active_frame(&self) -> FrameNumber {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  81 |     pub fn get_min_frame(&self, slot_id: usize) -> FrameNumber {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  88 |     pub fn acquire<'a, F>(
[INFO] [stderr]     |            ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 125 |     pub fn release(&self, slot_id: usize) {
[INFO] [stderr]     |            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `ReadGuard` is never constructed
[INFO] [stderr]    --> src/storage/wal/locks.rs:131:12
[INFO] [stderr]     |
[INFO] [stderr] 131 | pub struct ReadGuard<'a, const READERS_NUM: usize> {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `min_frame` is never used
[INFO] [stderr]    --> src/storage/wal/locks.rs:138:12
[INFO] [stderr]     |
[INFO] [stderr] 137 | impl<'a, const READERS_NUM: usize> ReadGuard<'a, READERS_NUM> {
[INFO] [stderr]     | ------------------------------------------------------------- method in this implementation
[INFO] [stderr] 138 |     pub fn min_frame(&self) -> FrameNumber {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `WriteGuard` is never constructed
[INFO] [stderr]    --> src/storage/wal/locks.rs:150:12
[INFO] [stderr]     |
[INFO] [stderr] 150 | pub struct WriteGuard<'a> {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]    --> src/storage/wal/locks.rs:156:12
[INFO] [stderr]     |
[INFO] [stderr] 155 | impl<'a> WriteGuard<'a> {
[INFO] [stderr]     | ----------------------- associated function in this implementation
[INFO] [stderr] 156 |     pub fn new(checkpoint_guard: RwLockReadGuard<'a, ()>, mutex_guard: MutexGuard<'a, ()>) -> Self {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait `PackedU64` is never used
[INFO] [stderr]    --> src/storage/wal/locks.rs:166:11
[INFO] [stderr]     |
[INFO] [stderr] 166 | pub trait PackedU64 {
[INFO] [stderr]     |           ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variants `InvalidBytes` and `InvalidAllocation` are never constructed
[INFO] [stderr]   --> src/utils/mod.rs:21:5
[INFO] [stderr]    |
[INFO] [stderr] 14 | pub enum Error {
[INFO] [stderr]    |          ----- variants in this enum
[INFO] [stderr] ...
[INFO] [stderr] 21 |     InvalidBytes,
[INFO] [stderr]    |     ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 29 |     InvalidAllocation(String),
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Error` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `alloc_page` and `as_non_null` are never used
[INFO] [stderr]   --> src/utils/buffer.rs:28:12
[INFO] [stderr]    |
[INFO] [stderr] 21 | impl Buffer {
[INFO] [stderr]    | ----------- associated items in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 28 |     pub fn alloc_page(size: usize, drop: Option<DropFn>) -> Self {
[INFO] [stderr]    |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 58 |     pub fn as_non_null(&self) -> NonNull<u8> {
[INFO] [stderr]    |            ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple methods are never used
[INFO] [stderr]    --> src/utils/bytes.rs:176:12
[INFO] [stderr]     |
[INFO] [stderr] 155 | impl<T: AsRef<[u8]>> BytesCursor<T> {
[INFO] [stderr]     | ----------------------------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 176 |     pub fn read_u8(&mut self) -> u8 {
[INFO] [stderr]     |            ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 182 |     pub fn try_read_u8(&mut self) -> Result<u8> {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 198 |     pub fn read_u16_le(&mut self) -> u16 {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 204 |     pub fn try_read_u16_le(&mut self) -> Result<u16> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 215 |     pub fn read_u32_le(&mut self) -> u32 {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 232 |     pub fn read_u64_le(&mut self) -> u64 {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 238 |     pub fn try_read_u64_le(&mut self) -> Result<u64> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `write_u16_le`, `try_write_u16_le`, `write_u32_le`, `try_write_u32_le`, `write_u64_le`, and `try_write_u64_le` are never used
[INFO] [stderr]    --> src/utils/bytes.rs:297:12
[INFO] [stderr]     |
[INFO] [stderr] 263 | impl<T: AsRef<[u8]> + AsMut<[u8]>> BytesCursor<T> {
[INFO] [stderr]     | ------------------------------------------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 297 |     pub fn write_u16_le(&mut self, value: u16) {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 303 |     pub fn try_write_u16_le(&mut self, value: u16) -> Result<()> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 314 |     pub fn write_u32_le(&mut self, value: u32) {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 320 |     pub fn try_write_u32_le(&mut self, value: u32) -> Result<()> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 331 |     pub fn write_u64_le(&mut self, value: u64) {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 337 |     pub fn try_write_u64_le(&mut self, value: u64) -> Result<()> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `put_u64_le` is never used
[INFO] [stderr]    --> src/utils/bytes.rs:412:12
[INFO] [stderr]     |
[INFO] [stderr] 385 | impl<T: AsRef<[u8]> + AsMut<[u8]> + Extend<u8>> BytesCursor<T> {
[INFO] [stderr]     | -------------------------------------------------------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 412 |     pub fn put_u64_le(&mut self, value: u64) {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `flip_n_bits` is never used
[INFO] [stderr]    --> src/utils/bytes.rs:472:8
[INFO] [stderr]     |
[INFO] [stderr] 472 | pub fn flip_n_bits(value: &mut u64, mut n: usize, positions: &mut Vec<usize>, offset: usize) {
[INFO] [stderr]     |        ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `unpack_u64` is never used
[INFO] [stderr]    --> src/utils/bytes.rs:496:8
[INFO] [stderr]     |
[INFO] [stderr] 496 | pub fn unpack_u64(packed: u64) -> (u32, u32) {
[INFO] [stderr]     |        ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `cast` is never used
[INFO] [stderr]   --> src/utils/cast.rs:20:8
[INFO] [stderr]    |
[INFO] [stderr] 20 | pub fn cast<A: Copy, B: Copy>(a: A) -> B {
[INFO] [stderr]    |        ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `from_bytes_mut` is never used
[INFO] [stderr]   --> src/utils/cast.rs:58:8
[INFO] [stderr]    |
[INFO] [stderr] 58 | pub fn from_bytes_mut<T: Copy>(src: &mut [u8]) -> &mut T {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `bytes_of_mut` is never used
[INFO] [stderr]   --> src/utils/cast.rs:68:8
[INFO] [stderr]    |
[INFO] [stderr] 68 | pub fn bytes_of_mut<T>(src: &mut T) -> &mut [u8] {
[INFO] [stderr]    |        ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `try_cast` is never used
[INFO] [stderr]   --> src/utils/cast.rs:77:15
[INFO] [stderr]    |
[INFO] [stderr] 77 | pub unsafe fn try_cast<A: Copy, B: Copy>(a: A) -> Result<B> {
[INFO] [stderr]    |               ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `try_from_bytes_mut` is never used
[INFO] [stderr]    --> src/utils/cast.rs:159:15
[INFO] [stderr]     |
[INFO] [stderr] 159 | pub unsafe fn try_from_bytes_mut<T: Copy>(src: &mut [u8]) -> Result<&mut T> {
[INFO] [stderr]     |               ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `try_bytes_of_mut` is never used
[INFO] [stderr]    --> src/utils/cast.rs:175:15
[INFO] [stderr]     |
[INFO] [stderr] 175 | pub unsafe fn try_bytes_of_mut<T>(src: &mut T) -> Result<&mut [u8]> {
[INFO] [stderr]     |               ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `cast_static` is never used
[INFO] [stderr]    --> src/utils/cast.rs:180:15
[INFO] [stderr]     |
[INFO] [stderr] 180 | pub unsafe fn cast_static<T>(src: &[T]) -> &'static [T] {
[INFO] [stderr]     |               ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait `FileOps` is never used
[INFO] [stderr]   --> src/utils/io.rs:16:11
[INFO] [stderr]    |
[INFO] [stderr] 16 | pub trait FileOps {
[INFO] [stderr]    |           ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `truncate` and `truncate_beginning` are never used
[INFO] [stderr]    --> src/utils/io.rs:93:8
[INFO] [stderr]     |
[INFO] [stderr]  89 | pub trait IO {
[INFO] [stderr]     |           -- methods in this trait
[INFO] [stderr] ...
[INFO] [stderr]  93 |     fn truncate(&self, length: usize) -> io::Result<()>;
[INFO] [stderr]     |        ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 113 |     fn truncate_beginning(&mut self, bytes_to_remove: u64, header_size: usize) -> io::Result<()>;
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `read_header`, `write_header`, `write`, `truncate`, and `truncate_beginning` are never used
[INFO] [stderr]    --> src/utils/io.rs:300:12
[INFO] [stderr]     |
[INFO] [stderr] 293 | impl<I: IO> BlockIO<I> {
[INFO] [stderr]     | ---------------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 300 |     pub fn read_header(&self, buffer: &mut [u8]) -> io::Result<usize> {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 325 |     pub fn write_header(&self, buffer: &[u8]) -> io::Result<usize> {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 333 |     pub fn write(
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 363 |     pub fn truncate(&self, to_block_len: BlockNumber) -> io::Result<()> {
[INFO] [stderr]     |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 380 |     pub fn truncate_beginning(&self, up_to_block_number: BlockNumber) -> io::Result<()> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `flush` is never used
[INFO] [stderr]    --> src/utils/io.rs:398:12
[INFO] [stderr]     |
[INFO] [stderr] 393 | impl<I: Write> BlockIO<I> {
[INFO] [stderr]     | ------------------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 398 |     pub fn flush(&self) -> io::Result<()> {
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `sync` is never used
[INFO] [stderr]    --> src/utils/io.rs:405:12
[INFO] [stderr]     |
[INFO] [stderr] 403 | impl<I: FileOps> BlockIO<I> {
[INFO] [stderr]     | --------------------------- method in this implementation
[INFO] [stderr] 404 |     /// Makes syscall to kernel to write **flushed** buffers to disk.
[INFO] [stderr] 405 |     pub fn sync(&self) -> io::Result<()> {
[INFO] [stderr]     |            ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `persist` is never used
[INFO] [stderr]    --> src/utils/io.rs:412:12
[INFO] [stderr]     |
[INFO] [stderr] 410 | impl<I: Write + FileOps> BlockIO<I> {
[INFO] [stderr]     | ----------------------------------- method in this implementation
[INFO] [stderr] 411 |     /// Flushes and fsync all writes to make sure that they are persisted.
[INFO] [stderr] 412 |     pub fn persist(&self) -> io::Result<()> {
[INFO] [stderr]     |            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `carcinusdb` (bin "carcinusdb" test) generated 118 warnings (15 duplicates) (run `cargo fix --bin "carcinusdb" -p carcinusdb --tests` to apply 4 suggestions)
[INFO] [stderr] warning: `carcinusdb` (lib test) generated 22 warnings (22 duplicates)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.10s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/carcinusdb-317279c27f5966ed)
[INFO] [stdout] 
[INFO] [stdout] running 23 tests
[INFO] [stdout] test sql::record::tests::test_record ... ok
[INFO] [stdout] test sql::record::tests::test_record_builder ... ok
[INFO] [stdout] test sql::parser::tests::main_test ... ok
[INFO] [stdout] test sql::tokenizer::tests::test_tokenize ... ok
[INFO] [stdout] test sql::types::tests::test_value_comparison ... ok
[INFO] [stdout] test storage::cache::tests::main_test ... ok
[INFO] [stdout] test storage::page::tests::test_min_max ... ok
[INFO] [stdout] test storage::page::tests::test_page ... ok
[INFO] [stdout] test storage::allocator::tests::test_main ... ok
[INFO] [stdout] test storage::cache::tests::test_sharded ... ok
[INFO] [stdout] test storage::buffer_pool::tests::test_main ... ok
[INFO] [stdout] test utils::buffer::tests::test_drop_fn ... ok
[INFO] [stdout] test utils::buffer::tests::test_reset ... ok
[INFO] [stdout] test utils::bytes::tests::test_bytes_cursor ... ok
[INFO] [stdout] test utils::bytes::tests::test_flip_bits ... ok
[INFO] [stdout] test utils::bytes::tests::test_crc ... ok
[INFO] [stdout] test utils::bytes::tests::test_varint ... ok
[INFO] [stdout] test utils::bytes::tests::test_zigzag ... ok
[INFO] [stdout] test utils::cast::tests::test_from_bytes ... ok
[INFO] [stdout] test utils::cast::tests::test_cast_slice ... ok
[INFO] [stdout] test utils::debug_table::tests::test_debug_table ... ok
[INFO] [stdout] test utils::cast::tests::test_bytes_of ... ok
[INFO] [stdout] test storage::pager::tests::test_pager ... FAILED
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- storage::pager::tests::test_pager stdout ----
[INFO] [stdout] Error: Read-only file system (os error 30)
[INFO] [stdout] 
[INFO] [stdout] Stack backtrace:
[INFO] [stdout]    0: <anyhow::Error as core::convert::From<carcinusdb::error::DatabaseError>>::from
[INFO] [stdout]              at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.100/src/backtrace.rs:27:14
[INFO] [stdout]    1: <core::result::Result<(), anyhow::Error> as core::ops::try_trait::FromResidual<core::result::Result<core::convert::Infallible, carcinusdb::error::DatabaseError>>>::from_residual
[INFO] [stdout]              at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/core/src/result.rs:2189:27
[INFO] [stdout]    2: carcinusdb::storage::pager::tests::test_pager
[INFO] [stdout]              at ./src/storage/pager.rs:621:18
[INFO] [stdout]    3: carcinusdb::storage::pager::tests::test_pager::{closure#0}
[INFO] [stdout]              at ./src/storage/pager.rs:620:24
[INFO] [stdout]    4: <carcinusdb::storage::pager::tests::test_pager::{closure#0} as core::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]              at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/core/src/ops/function.rs:250:5
[INFO] [stdout]    5: <fn() -> core::result::Result<(), alloc::string::String> as core::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]              at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/core/src/ops/function.rs:250:5
[INFO] [stdout]    6: test::__rust_begin_short_backtrace::<core::result::Result<(), alloc::string::String>, fn() -> core::result::Result<(), alloc::string::String>>
[INFO] [stdout]              at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/test/src/lib.rs:663:18
[INFO] [stdout]    7: test::run_test_in_process::{closure#0}
[INFO] [stdout]              at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/test/src/lib.rs:686:74
[INFO] [stdout]    8: <core::panic::unwind_safe::AssertUnwindSafe<test::run_test_in_process::{closure#0}> as core::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]              at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]    9: std::panicking::catch_unwind::do_call::<core::panic::unwind_safe::AssertUnwindSafe<test::run_test_in_process::{closure#0}>, core::result::Result<(), alloc::string::String>>
[INFO] [stdout]              at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/std/src/panicking.rs:581:40
[INFO] [stdout]   10: std::panicking::catch_unwind::<core::result::Result<(), alloc::string::String>, core::panic::unwind_safe::AssertUnwindSafe<test::run_test_in_process::{closure#0}>>
[INFO] [stdout]              at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/std/src/panicking.rs:544:19
[INFO] [stdout]   11: std::panic::catch_unwind::<core::panic::unwind_safe::AssertUnwindSafe<test::run_test_in_process::{closure#0}>, core::result::Result<(), alloc::string::String>>
[INFO] [stdout]              at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/std/src/panic.rs:359:14
[INFO] [stdout]   12: test::run_test_in_process
[INFO] [stdout]              at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/test/src/lib.rs:686:27
[INFO] [stdout]   13: test::run_test::{closure#0}
[INFO] [stdout]              at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/test/src/lib.rs:607:43
[INFO] [stdout]   14: test::run_test::{closure#1}
[INFO] [stdout]              at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/test/src/lib.rs:637:41
[INFO] [stdout]   15: std::sys::backtrace::__rust_begin_short_backtrace::<test::run_test::{closure#1}, ()>
[INFO] [stdout]              at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   16: std::thread::lifecycle::spawn_unchecked::<test::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]              at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/std/src/thread/lifecycle.rs:91:13
[INFO] [stdout]   17: <core::panic::unwind_safe::AssertUnwindSafe<std::thread::lifecycle::spawn_unchecked<test::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]              at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   18: std::panicking::catch_unwind::do_call::<core::panic::unwind_safe::AssertUnwindSafe<std::thread::lifecycle::spawn_unchecked<test::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]              at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/std/src/panicking.rs:581:40
[INFO] [stdout]   19: std::panicking::catch_unwind::<(), core::panic::unwind_safe::AssertUnwindSafe<std::thread::lifecycle::spawn_unchecked<test::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]              at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/std/src/panicking.rs:544:19
[INFO] [stdout]   20: std::panic::catch_unwind::<core::panic::unwind_safe::AssertUnwindSafe<std::thread::lifecycle::spawn_unchecked<test::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]              at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/std/src/panic.rs:359:14
[INFO] [stdout]   21: std::thread::lifecycle::spawn_unchecked::<test::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]              at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/std/src/thread/lifecycle.rs:89:26
[INFO] [stdout]   22: <std::thread::lifecycle::spawn_unchecked<test::run_test::{closure#1}, ()>::{closure#1} as core::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]              at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23: <alloc::boxed::Box<dyn core::ops::function::FnOnce<(), Output = ()> + core::marker::Send> as core::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]              at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/alloc/src/boxed.rs:2206:9
[INFO] [stdout]   24: <std::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]              at /rustc/2fd6efc32704647e64d3d646d21c4c68eae100e4/library/std/src/sys/thread/unix.rs:119:17
[INFO] [stdout]   25: <unknown>
[INFO] [stdout]   26: clone
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     storage::pager::tests::test_pager
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 22 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `--lib`
[INFO] running `Command { std: "docker" "inspect" "d9eda1914aef9b70d4eb40104c198cacb3dcd4b141879b784cc3c3a2242a073e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d9eda1914aef9b70d4eb40104c198cacb3dcd4b141879b784cc3c3a2242a073e", kill_on_drop: false }`
[INFO] [stdout] d9eda1914aef9b70d4eb40104c198cacb3dcd4b141879b784cc3c3a2242a073e
