[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] 1a4f5a731528ce4306d41ce4b3b79bb36709bc3a
[INFO] building Myster987/carcinusdb against try#58b1b3c5342a414c161338871f8004258ccef2a7 for pr-149937
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FMyster987%2Fcarcinusdb" "/workspace/builds/worker-1-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc2/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-1-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Myster987/carcinusdb on toolchain 58b1b3c5342a414c161338871f8004258ccef2a7
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+58b1b3c5342a414c161338871f8004258ccef2a7" "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" "+58b1b3c5342a414c161338871f8004258ccef2a7" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]      Locking 116 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" "+58b1b3c5342a414c161338871f8004258ccef2a7" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded criterion-plot v0.5.0
[INFO] [stderr]   Downloaded itoa v1.0.16
[INFO] [stderr]   Downloaded serde_json v1.0.147
[INFO] [stderr]   Downloaded zmij v0.1.8
[INFO] [stderr]   Downloaded criterion v0.5.1
[INFO] [stderr]   Downloaded simple_logger v5.1.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+58b1b3c5342a414c161338871f8004258ccef2a7" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 647287ebf7d4248cd06fdad697d51399a5c680c6242353d2194bce9308db5251
[INFO] running `Command { std: "docker" "start" "-a" "647287ebf7d4248cd06fdad697d51399a5c680c6242353d2194bce9308db5251", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "647287ebf7d4248cd06fdad697d51399a5c680c6242353d2194bce9308db5251", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "647287ebf7d4248cd06fdad697d51399a5c680c6242353d2194bce9308db5251", kill_on_drop: false }`
[INFO] [stdout] 647287ebf7d4248cd06fdad697d51399a5c680c6242353d2194bce9308db5251
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+58b1b3c5342a414c161338871f8004258ccef2a7" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 33064e2222b8ada3477ce652804e85a4615a6a812dc93f3aa3d5f4ac65207810
[INFO] running `Command { std: "docker" "start" "-a" "33064e2222b8ada3477ce652804e85a4615a6a812dc93f3aa3d5f4ac65207810", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.178
[INFO] [stderr]    Compiling proc-macro2 v1.0.103
[INFO] [stderr]    Compiling quote v1.0.42
[INFO] [stderr]    Compiling unicode-ident v1.0.22
[INFO] [stderr]    Compiling cfg-if v1.0.4
[INFO] [stderr]    Compiling time-core v0.1.6
[INFO] [stderr]    Compiling thiserror v2.0.17
[INFO] [stderr]    Compiling itoa v1.0.16
[INFO] [stderr]    Compiling anyhow v1.0.100
[INFO] [stderr]    Compiling num_threads v0.1.7
[INFO] [stderr]    Compiling deranged v0.5.5
[INFO] [stderr]    Compiling log v0.4.29
[INFO] [stderr]    Compiling bytes v1.11.0
[INFO] [stderr]    Compiling crossbeam-channel v0.5.15
[INFO] [stderr]    Compiling crossbeam-queue v0.3.12
[INFO] [stderr]    Compiling crossbeam-deque v0.8.6
[INFO] [stderr]    Compiling dotenvy v0.15.7
[INFO] [stderr]    Compiling crossbeam v0.8.4
[INFO] [stderr]    Compiling time-macros v0.2.24
[INFO] [stderr]    Compiling syn v2.0.111
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling signal-hook-registry v1.4.7
[INFO] [stderr]    Compiling socket2 v0.6.1
[INFO] [stderr]    Compiling mio v1.1.1
[INFO] [stderr]    Compiling time v0.3.44
[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 thiserror-impl v2.0.17
[INFO] [stderr]    Compiling tokio-macros v2.6.0
[INFO] [stderr]    Compiling tokio v1.48.0
[INFO] [stderr]    Compiling carcinusdb v0.1.0 (/opt/rustwide/workdir)
[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]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::borrow::BorrowMut`
[INFO] [stdout]  --> src/utils/bytes.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::borrow::BorrowMut;
[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: variable does not need to be mutable
[INFO] [stdout]    --> src/storage/page.rs:235:13
[INFO] [stdout]     |
[INFO] [stdout] 235 |         let mut total = self.free_space() + self.free_fragments() as u16;
[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) -> Result<Keyword, SqlError>
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 371 |     fn parse_constrains(&mut self) -> Result<Constrains, SqlError> {
[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: fields `root` and `pager` are never read
[INFO] [stdout]   --> src/storage/btree.rs:63:5
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub struct BTree {
[INFO] [stdout]    |            ----- fields in this struct
[INFO] [stdout] 63 |     root: PageNumber,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 64 |
[INFO] [stdout] 65 |     pager: Pager,
[INFO] [stdout]    |     ^^^^^
[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: methods `write_u32_no_offset` and `write_u32` are never used
[INFO] [stdout]    --> src/storage/page.rs:282:8
[INFO] [stdout]     |
[INFO] [stdout] 194 | impl Page {
[INFO] [stdout]     | --------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 282 |     fn write_u32_no_offset(&self, pos: usize, value: u32) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 287 |     fn write_u32(&self, pos: usize, value: u32) {
[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: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/storage/page.rs:242:24
[INFO] [stdout]     |
[INFO] [stdout] 242 |     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] 242 |     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:379:23
[INFO] [stdout]     |
[INFO] [stdout] 379 |     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] 379 |     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:383:27
[INFO] [stdout]     |
[INFO] [stdout] 383 |     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] 383 |     pub fn freeblock_list(&self) -> FreeblockList<'_> {
[INFO] [stdout]     |                                                  ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/storage/page.rs:564:13
[INFO] [stdout]     |
[INFO] [stdout] 564 |             write_btree_cell(self.as_ptr(), offset, &new_cell);
[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] 564 |             let _ = write_btree_cell(self.as_ptr(), offset, &new_cell);
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/storage/page.rs:571:9
[INFO] [stdout]     |
[INFO] [stdout] 571 |         self.try_insert_cell(index, new_cell);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 571 |         let _ = self.try_insert_cell(index, new_cell);
[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:463:26
[INFO] [stdout]     |
[INFO] [stdout] 463 |     pub fn begin_read_tx(&mut self) -> StorageResult<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] 463 |     pub fn begin_read_tx(&mut self) -> StorageResult<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:479:27
[INFO] [stdout]     |
[INFO] [stdout] 479 |     pub fn begin_write_tx(&mut self) -> StorageResult<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] 479 |     pub fn begin_write_tx(&mut self) -> StorageResult<WriteGuard<'_>> {
[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]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::borrow::BorrowMut`
[INFO] [stdout]  --> src/utils/bytes.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::borrow::BorrowMut;
[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: variable does not need to be mutable
[INFO] [stdout]    --> src/storage/page.rs:235:13
[INFO] [stdout]     |
[INFO] [stdout] 235 |         let mut total = self.free_space() + self.free_fragments() as u16;
[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: 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_freelist_trunk_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_freelist_trunk_page(&self, page_number: PageNumber) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 106 |     pub fn set_freelist_pages(&self, value: PageNumber) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Database` is never constructed
[INFO] [stdout]    --> src/database/mod.rs:126:12
[INFO] [stdout]     |
[INFO] [stdout] 126 | 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:136:12
[INFO] [stdout]     |
[INFO] [stdout] 135 | impl Database {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] 136 |     pub fn new(db_file_path: PathBuf) -> DatabaseResult<Self> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 197 |     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: enum `SqlError` is never used
[INFO] [stdout]   --> src/sql/mod.rs:13:10
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub enum SqlError {
[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) -> Result<Self, SqlError> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  54 |     fn validate(token_stream: Vec<Result<Token, SqlError>>) -> Result<Vec<Token>, SqlError> {
[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) -> Result<&Token, SqlError> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 104 |     fn next_token(&mut self) -> Result<Token, SqlError> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 115 |     fn next_keyword(&mut self) -> Result<Keyword, SqlError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 123 |     fn expect_token(&mut self, expected: Token) -> Result<Token, SqlError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 140 |     fn expect_keyword(&mut self, expected: Keyword) -> Result<Keyword, SqlError> {
[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) -> Result<Keyword, SqlError>
[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) -> Result<Expression, SqlError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 208 |     fn parse_expr(&mut self, precedence: u8) -> Result<Expression, SqlError> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 221 |     fn parse_prefix(&mut self) -> Result<Expression, SqlError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 256 |     fn parse_infix(&mut self, left: Expression, precedence: u8) -> Result<Expression, SqlError> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 281 |     fn parse_identifier(&mut self) -> Result<String, SqlError> {
[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) -> Result<Vec<Expression>, SqlError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 318 |     fn parse_identifier_list(&mut self) -> Result<Vec<String>, SqlError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 322 |     fn parse_optional_identifier_list(&mut self) -> Result<Option<Vec<String>>, SqlError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 333 |     fn parse_assignment(&mut self) -> Result<Assignment, SqlError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 341 |     fn parse_data_type(&mut self) -> Result<DataType, SqlError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 371 |     fn parse_constrains(&mut self) -> Result<Constrains, SqlError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 388 |     fn parse_column(&mut self) -> Result<Column, SqlError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 415 |     fn parse_where(&mut self) -> Result<Option<Expression>, SqlError> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 423 |     fn parse_order_by(&mut self) -> Result<Option<Vec<Expression>>, SqlError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 432 |     pub fn parse_statement(&mut self) -> Result<Statement, SqlError> {
[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:17:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct Record<'a> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `get_value`, `try_get_value`, `count`, and `len` are never used
[INFO] [stdout]   --> src/sql/record.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | impl<'a> Record<'a> {
[INFO] [stdout]    | ------------------- associated items in this implementation
[INFO] [stdout] 22 |     pub fn new(payload: &'a [u8]) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 27 |     pub fn get_value(&self, index: usize) -> ValueRef<'a> {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 31 |     pub fn try_get_value(&self, index: usize) -> Result<ValueRef<'a>, SqlError> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 35 |     pub fn count(&self) -> usize {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 39 |     pub fn len(&self) -> usize {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RecordCursor` is never constructed
[INFO] [stdout]   --> src/sql/record.rs:67:12
[INFO] [stdout]    |
[INFO] [stdout] 67 | pub struct RecordCursor<'a> {
[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:79:12
[INFO] [stdout]     |
[INFO] [stdout]  78 | impl<'a> RecordCursor<'a> {
[INFO] [stdout]     | ------------------------- associated items in this implementation
[INFO] [stdout]  79 |     pub fn new(payload: &'a [u8]) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  89 |     pub fn with_capacity(payload: &'a [u8], capacity: usize) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  99 |     fn parse_up_to(&mut self, index: usize) -> Result<(), SqlError> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 131 |     pub fn full_parse(&mut self) -> Result<(), SqlError> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 135 |     pub fn get_value(&mut self, index: usize) -> Result<ValueRef<'a>, SqlError> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 151 |     pub fn len(&mut self) -> usize {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RecordBuilder` is never constructed
[INFO] [stdout]    --> src/sql/record.rs:157:12
[INFO] [stdout]     |
[INFO] [stdout] 157 | pub struct RecordBuilder {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `add`, `calculate_header_size`, and `serialize` are never used
[INFO] [stdout]    --> src/sql/record.rs:162:12
[INFO] [stdout]     |
[INFO] [stdout] 161 | impl RecordBuilder {
[INFO] [stdout]     | ------------------ associated items in this implementation
[INFO] [stdout] 162 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 166 |     pub fn add(&mut self, value: Value) {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 170 |     fn calculate_header_size(size_of_serial_types: usize) -> usize {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 178 |     pub fn serialize(&self) -> Vec<u8> {
[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) -> Result<Token, SqlError> {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  65 |     fn consume_number(&mut self) -> Result<Token, SqlError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  80 |     fn consume_string(&mut self) -> Result<Token, SqlError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     fn consume_keyword_or_identifier(&mut self) -> Result<Token, SqlError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 157 |     pub fn next_token(&mut self) -> Result<Token, SqlError> {
[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: multiple methods 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]  64 |     pub fn as_blob(&self) -> &[u8] {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  69 |     pub fn as_mut_blob(&mut self) -> &mut [u8] {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  74 |     pub fn try_as_blob(&self) -> Option<&[u8]> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  81 |     pub fn try_as_blob_mut(&mut self) -> Option<&mut [u8]> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  88 |     pub fn as_text(&self) -> &str {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  92 |     pub fn try_as_text(&self) -> Option<&str> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  99 |     pub fn try_as_bool(&self) -> Option<bool> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 106 |     pub fn try_as_int(&self) -> Option<i64> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `AsValueRef` is never used
[INFO] [stdout]    --> src/sql/types/mod.rs:126:11
[INFO] [stdout]     |
[INFO] [stdout] 126 | 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:160:8
[INFO] [stdout]     |
[INFO] [stdout] 160 | pub fn parse_value<'a>(
[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:17:10
[INFO] [stdout]    |
[INFO] [stdout] 17 | 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:19:10
[INFO] [stdout]    |
[INFO] [stdout] 19 | 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:21:11
[INFO] [stdout]    |
[INFO] [stdout] 21 | 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:22:11
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub const SLOT_SIZE: usize = std::mem::size_of::<SlotNumber>();
[INFO] [stdout]    |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `StorageResult` is never used
[INFO] [stdout]   --> src/storage/mod.rs:24:10
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub type StorageResult<T> = std::result::Result<T, Error>;
[INFO] [stdout]    |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `PageNotFound`, `InvalidPageType`, `PageNumberOutOfRange`, `InvalidChecksum`, `PageNotFoundInWal`, and `PartialRead` are never constructed
[INFO] [stdout]   --> src/storage/mod.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub enum Error {
[INFO] [stdout]    |          ----- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 30 |     PageNotFound(PageNumber),
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 31 |     #[error("invalid page type")]
[INFO] [stdout] 32 |     InvalidPageType,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 33 |     #[error("page number must be grater than 0")]
[INFO] [stdout] 34 |     PageNumberOutOfRange,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 38 |     InvalidChecksum,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 39 |     #[error("page {0} not found in WAL")]
[INFO] [stdout] 40 |     PageNotFoundInWal(PageNumber),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 54 |     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:11:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct Node<T> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LocalStack` is never constructed
[INFO] [stdout]   --> src/storage/allocator.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | 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:22:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | impl<T> LocalStack<T> {
[INFO] [stdout]    | --------------------- associated items in this implementation
[INFO] [stdout] 22 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 26 |     pub fn len(&self) -> usize {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub fn push(&mut self, value: T) {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 39 |     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:57:7
[INFO] [stdout]    |
[INFO] [stdout] 57 | 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:58:7
[INFO] [stdout]    |
[INFO] [stdout] 58 | 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:59:7
[INFO] [stdout]    |
[INFO] [stdout] 59 | 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:60:7
[INFO] [stdout]    |
[INFO] [stdout] 60 | 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:62:12
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub struct GlobalPageAllocator {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/storage/allocator.rs:77:12
[INFO] [stdout]     |
[INFO] [stdout]  76 | impl GlobalPageAllocator {
[INFO] [stdout]     | ------------------------ associated items in this implementation
[INFO] [stdout]  77 |     pub fn new(
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn default(page_size: usize, page_count: usize) -> Self {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 113 |     fn max_size(&self) -> usize {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 121 |     pub fn len(&self) -> usize {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 125 |     pub fn try_alloc(&self) -> Option<NonNull<u8>> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 129 |     pub fn alloc_batch(&self, to_alloc: usize) -> Vec<NonNull<u8>> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 154 |     pub fn dealloc_batch(&self, mut mem: Vec<NonNull<u8>>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 169 |     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:193:12
[INFO] [stdout]     |
[INFO] [stdout] 193 | 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:200:12
[INFO] [stdout]     |
[INFO] [stdout] 199 | impl LocalPageAllocator {
[INFO] [stdout]     | ----------------------- associated items in this implementation
[INFO] [stdout] 200 |     pub fn new(global_allocator: Arc<GlobalPageAllocator>, page_count: usize) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 214 |     pub fn default(global_allocator: Arc<GlobalPageAllocator>) -> Self {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 218 |     pub fn len(&self) -> usize {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 222 |     pub fn alloc(&mut self) -> NonNull<u8> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 241 |     pub fn dealloc(&mut self, mem: NonNull<u8>) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 249 |     pub fn drain(&mut self) -> Vec<NonNull<u8>> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `BytesCmp` is never used
[INFO] [stdout]  --> src/storage/btree.rs:8:11
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub trait BytesCmp {
[INFO] [stdout]   |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Payload` is never used
[INFO] [stdout]   --> src/storage/btree.rs:14:10
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub enum Payload<'a> {
[INFO] [stdout]    |          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FixedSizeMemCmp` is never constructed
[INFO] [stdout]   --> src/storage/btree.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub struct FixedSizeMemCmp {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `for_type` is never used
[INFO] [stdout]   --> src/storage/btree.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 35 | impl FixedSizeMemCmp {
[INFO] [stdout]    | -------------------- associated function in this implementation
[INFO] [stdout] 36 |     pub fn for_type<T>() -> Self {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BTree` is never constructed
[INFO] [stdout]   --> src/storage/btree.rs:62:12
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub struct BTree {
[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 `CacheResult` is never used
[INFO] [stdout]   --> src/storage/cache.rs:13:10
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub type CacheResult<T> = Result<T, CacheError>;
[INFO] [stdout]    |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `KeyExists`, `PageLocked`, `Dirty`, `Full`, and `Internal` are never constructed
[INFO] [stdout]   --> src/storage/cache.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub enum CacheError {
[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 locked.")]
[INFO] [stdout] 20 |     PageLocked,
[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: `CacheError` 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) -> CacheResult<()> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  97 |     pub fn delete(&self, key: PageCacheKey) -> CacheResult<()> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 101 |     pub fn clear(&self) -> CacheResult<()> {
[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) -> CacheResult<()> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 189 |     fn try_insert(&mut self, key: PageCacheKey, page: MemPageRef) -> CacheResult<()> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 206 |     pub fn delete(&mut self, key: PageCacheKey) -> CacheResult<()> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 210 |     fn try_delete(&mut self, key: PageCacheKey, clean_page: bool) -> CacheResult<()> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 229 |     fn detach(&mut self, mut entry: NonNull<PageCacheEntry>, clean_page: bool) -> CacheResult<()> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 253 |     fn unlink(&mut self, mut entry: NonNull<PageCacheEntry>) {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 286 |     fn touch(&mut self, mut entry: NonNull<PageCacheEntry>) {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 300 |     fn make_room_for(&mut self, entries_num: usize) -> CacheResult<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 338 |     pub fn clear(&mut self) -> CacheResult<()> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DATABASE_HEADER_SIZE` is never used
[INFO] [stdout]   --> src/storage/page.rs:19:11
[INFO] [stdout]    |
[INFO] [stdout] 19 | 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:21:11
[INFO] [stdout]    |
[INFO] [stdout] 21 | 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:23:7
[INFO] [stdout]    |
[INFO] [stdout] 23 | 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:25:11
[INFO] [stdout]    |
[INFO] [stdout] 25 | 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:26:11
[INFO] [stdout]    |
[INFO] [stdout] 26 | 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:29:8
[INFO] [stdout]    |
[INFO] [stdout] 29 | 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:33:8
[INFO] [stdout]    |
[INFO] [stdout] 33 | 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:37:8
[INFO] [stdout]    |
[INFO] [stdout] 37 | 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:43:12
[INFO] [stdout]    |
[INFO] [stdout] 43 | 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:63:12
[INFO] [stdout]    |
[INFO] [stdout] 62 | impl DatabaseHeader {
[INFO] [stdout]    | ------------------- associated items in this implementation
[INFO] [stdout] 63 |     pub fn get_page_size(&self) -> usize {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 71 |     pub fn from_bytes(buffer: &[u8]) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 93 |     pub fn to_bytes(&self) -> Vec<u8> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 99 |     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:128:10
[INFO] [stdout]     |
[INFO] [stdout] 128 | pub enum PageType {
[INFO] [stdout]     |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Page` is never constructed
[INFO] [stdout]    --> src/storage/page.rs:186:12
[INFO] [stdout]     |
[INFO] [stdout] 186 | pub struct Page {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/storage/page.rs:195:12
[INFO] [stdout]     |
[INFO] [stdout] 194 | impl Page {
[INFO] [stdout]     | --------- associated items in this implementation
[INFO] [stdout] 195 |     pub fn new(buffer: Arc<Buffer>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 209 |     pub fn alloc(size: usize, drop: Option<DropFn>) -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 216 |     pub fn as_ptr(&self) -> &mut [u8] {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 220 |     fn usable_space(&self) -> usize {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 225 |     fn min_cell_size(&self) -> usize {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 230 |     fn max_cell_size(&self) -> usize {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 234 |     fn total_free_space(&self) -> u16 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 242 |     pub fn as_io_slice(&self) -> IoSlice {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 246 |     fn read_u8(&self, pos: usize) -> u8 {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 250 |     fn read_u16_no_offset(&self, pos: usize) -> u16 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 255 |     fn read_u16(&self, pos: usize) -> u16 {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 259 |     fn read_u32_no_offset(&self, pos: usize) -> u32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 264 |     fn read_u32(&self, pos: usize) -> u32 {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 268 |     fn write_u8(&self, pos: usize, value: u8) {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 273 |     fn write_u16_no_offset(&self, pos: usize, value: u16) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 278 |     fn write_u16(&self, pos: usize, value: u16) {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 282 |     fn write_u32_no_offset(&self, pos: usize, value: u32) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 287 |     fn write_u32(&self, pos: usize, value: u32) {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 291 |     pub fn try_page_type(&self) -> Option<PageType> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 295 |     pub fn page_type(&self) -> PageType {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 299 |     pub fn first_freeblock(&self) -> u16 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 303 |     pub fn set_first_freeblock(&self, value: u16) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 307 |     pub fn last_used_offset(&self) -> u16 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 311 |     pub fn set_last_used_offset(&self, value: u16) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 315 |     pub fn free_fragments(&self) -> u8 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 319 |     pub fn set_free_fragments(&self, value: u8) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 323 |     pub fn add_free_fragment(&self, value: u8) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 328 |     pub fn try_rigth_child(&self) -> Option<PageNumber> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 336 |     pub fn len(&self) -> u16 {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 340 |     pub fn set_len(&self, value: u16) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 344 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 348 |     fn overflow_map(&self) -> &mut HashMap<SlotNumber, BTreeCell> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 352 |     pub fn is_overflow(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 357 |     pub fn header_size(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 365 |     pub fn storage_space(&self) -> u16 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 370 |     pub fn storage_size(&self, cell_size: u16) -> u16 {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 375 |     pub fn free_space(&self) -> u16 {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 379 |     pub fn slot_array(&self) -> SlotArray {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 383 |     pub fn freeblock_list(&self) -> FreeblockList {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 413 |     fn defragment(&self) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 443 |     fn get_cell_size(&self, offset: u16) -> u16 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 457 |     pub fn get_cell(&self, index: SlotNumber) -> StorageResult<BTreeCell> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 476 |     pub fn insert_cell(&self, index: SlotNumber, cell: BTreeCell) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 489 |     fn try_insert_cell(&self, index: SlotNumber, cell: BTreeCell) -> Result<SlotNumber, BTreeCell> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 537 |     pub fn try_replace(
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 578 |     pub fn remove(&self, index: SlotNumber) -> BTreeCell {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 588 |     pub fn child(&self, index: SlotNumber) -> PageNumber {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SlotArray` is never constructed
[INFO] [stdout]    --> src/storage/page.rs:632:12
[INFO] [stdout]     |
[INFO] [stdout] 632 | 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:642:12
[INFO] [stdout]     |
[INFO] [stdout] 641 | impl<'a> SlotArray<'a> {
[INFO] [stdout]     | ---------------------- associated items in this implementation
[INFO] [stdout] 642 |     pub fn new(mem: &'a mut [u8], num_slots_offset: usize, slot_array_offset: usize) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 650 |     fn read_u16(&self, pos: usize) -> u16 {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 654 |     fn write_u16(&mut self, pos: usize, value: u16) {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 658 |     pub fn len(&self) -> u16 {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 662 |     pub fn set_len(&mut self, value: u16) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 666 |     pub fn increment_len(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 671 |     pub fn decrement_len(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 677 |     fn slot_array(&self) -> &[u16] {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 686 |     fn slot_array_mut(&mut self) -> &mut [u16] {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 695 |     pub fn get(&self, index: SlotNumber) -> u16 {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 703 |     pub fn set(&mut self, index: SlotNumber, value: u16) {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 715 |     pub fn insert(&mut self, index: SlotNumber, value: u16) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 729 |     pub fn push(&mut self, value: u16) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 733 |     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:759:12
[INFO] [stdout]     |
[INFO] [stdout] 759 | 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:765:12
[INFO] [stdout]     |
[INFO] [stdout] 764 | impl<'a> FreeblockList<'a> {
[INFO] [stdout]     | -------------------------- associated items in this implementation
[INFO] [stdout] 765 |     pub fn new(mem: &'a mut [u8]) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 769 |     fn read_u8(&self, pos: usize) -> u8 {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 773 |     fn read_u16(&self, pos: usize) -> u16 {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 777 |     fn write_u8(&mut self, pos: usize, value: u8) {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 781 |     fn write_u16(&mut self, pos: usize, value: u16) {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 785 |     pub fn first_freeblock(&self) -> u16 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 789 |     pub fn set_first_freeblock(&mut self, value: u16) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 793 |     pub fn free_fragments(&self) -> u8 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 797 |     pub fn set_free_fragments(&mut self, value: u8) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 801 |     pub fn add_free_fragment(&mut self, value: u8) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 806 |     fn get_freeblock(&self, offset: u16) -> (u16, u16) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 812 |     fn set_freeblock(&mut self, offset: u16, next: u16, size: u16) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 820 |     fn take_freeblock(&mut self, cell_size: u16) -> Option<u16> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 854 |     fn push_freeblock(&mut self, offset: u16, size: u16) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 871 |     fn iter(&self) -> FreeblockIterator<'_> {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FreeblockIterator` is never constructed
[INFO] [stdout]    --> src/storage/page.rs:879:8
[INFO] [stdout]     |
[INFO] [stdout] 879 | struct FreeblockIterator<'a> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `BTreeCell` is never used
[INFO] [stdout]    --> src/storage/page.rs:902:10
[INFO] [stdout]     |
[INFO] [stdout] 902 | pub enum BTreeCell {
[INFO] [stdout]     |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `local_cell_size` and `as_ref` are never used
[INFO] [stdout]    --> src/storage/page.rs:911:12
[INFO] [stdout]     |
[INFO] [stdout] 909 | impl BTreeCell {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] 910 |     /// Returns local size of cell. **No overflow pages included**.
[INFO] [stdout] 911 |     pub fn local_cell_size(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 920 |     pub fn as_ref(&self) -> &[u8] {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `CellOps` is never used
[INFO] [stdout]    --> src/storage/page.rs:984:11
[INFO] [stdout]     |
[INFO] [stdout] 984 | pub trait CellOps {
[INFO] [stdout]     |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PayloadRef` is never constructed
[INFO] [stdout]    --> src/storage/page.rs:996:12
[INFO] [stdout]     |
[INFO] [stdout] 996 | pub struct PayloadRef {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `as_slice` is never used
[INFO] [stdout]     --> src/storage/page.rs:1002:12
[INFO] [stdout]      |
[INFO] [stdout] 1001 | impl PayloadRef {
[INFO] [stdout]      | --------------- method in this implementation
[INFO] [stdout] 1002 |     pub fn as_slice<'a>(&self, raw: &'a [u8]) -> &'a [u8] {
[INFO] [stdout]      |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `IndexInternalCell` is never constructed
[INFO] [stdout]     --> src/storage/page.rs:1008:12
[INFO] [stdout]      |
[INFO] [stdout] 1008 | pub struct IndexInternalCell {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `payload` is never used
[INFO] [stdout]     --> src/storage/page.rs:1023:12
[INFO] [stdout]      |
[INFO] [stdout] 1022 | impl IndexInternalCell {
[INFO] [stdout]      | ---------------------- method in this implementation
[INFO] [stdout] 1023 |     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:1044:12
[INFO] [stdout]      |
[INFO] [stdout] 1044 | pub struct IndexLeafCell {
[INFO] [stdout]      |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `payload` is never used
[INFO] [stdout]     --> src/storage/page.rs:1057:12
[INFO] [stdout]      |
[INFO] [stdout] 1056 | impl IndexLeafCell {
[INFO] [stdout]      | ------------------ method in this implementation
[INFO] [stdout] 1057 |     pub fn payload(&self) -> &[u8] {
[INFO] [stdout]      |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TableInternalCell` is never constructed
[INFO] [stdout]     --> src/storage/page.rs:1078:12
[INFO] [stdout]      |
[INFO] [stdout] 1078 | pub struct TableInternalCell {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TableLeafCell` is never constructed
[INFO] [stdout]     --> src/storage/page.rs:1103:12
[INFO] [stdout]      |
[INFO] [stdout] 1103 | pub struct TableLeafCell {
[INFO] [stdout]      |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `payload` is never used
[INFO] [stdout]     --> src/storage/page.rs:1118:12
[INFO] [stdout]      |
[INFO] [stdout] 1117 | impl TableLeafCell {
[INFO] [stdout]      | ------------------ method in this implementation
[INFO] [stdout] 1118 |     pub fn payload(&self) -> &[u8] {
[INFO] [stdout]      |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `local_btree_cell_size` is never used
[INFO] [stdout]     --> src/storage/page.rs:1138:8
[INFO] [stdout]      |
[INFO] [stdout] 1138 | pub fn local_btree_cell_size(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_btree_cell` is never used
[INFO] [stdout]     --> src/storage/page.rs:1215:8
[INFO] [stdout]      |
[INFO] [stdout] 1215 | pub fn read_btree_cell(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_btree_cell` is never used
[INFO] [stdout]     --> src/storage/page.rs:1337:8
[INFO] [stdout]      |
[INFO] [stdout] 1337 | pub fn write_btree_cell(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_local_payload` is never used
[INFO] [stdout]     --> src/storage/page.rs:1356:8
[INFO] [stdout]      |
[INFO] [stdout] 1356 | 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:1379:8
[INFO] [stdout]      |
[INFO] [stdout] 1379 | pub fn cell_overflows(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MemPageInner` is never constructed
[INFO] [stdout]   --> src/storage/pager.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct MemPageInner {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MemPage` is never constructed
[INFO] [stdout]   --> src/storage/pager.rs:26:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub struct MemPage {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `MemPageRef` is never used
[INFO] [stdout]   --> src/storage/pager.rs:31:10
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub type MemPageRef = Arc<MemPage>;
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PAGE_UPTODATE` is never used
[INFO] [stdout]   --> src/storage/pager.rs:34:7
[INFO] [stdout]    |
[INFO] [stdout] 34 | const PAGE_UPTODATE: usize = 0b00001;
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PAGE_LOCKED` is never used
[INFO] [stdout]   --> src/storage/pager.rs:36:7
[INFO] [stdout]    |
[INFO] [stdout] 36 | const PAGE_LOCKED: usize = 0b00010;
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PAGE_ERROR` is never used
[INFO] [stdout]   --> src/storage/pager.rs:38:7
[INFO] [stdout]    |
[INFO] [stdout] 38 | const PAGE_ERROR: usize = 0b00100;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PAGE_DIRTY` is never used
[INFO] [stdout]   --> src/storage/pager.rs:40:7
[INFO] [stdout]    |
[INFO] [stdout] 40 | const PAGE_DIRTY: usize = 0b01000;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PAGE_LOADED` is never used
[INFO] [stdout]   --> src/storage/pager.rs:42:7
[INFO] [stdout]    |
[INFO] [stdout] 42 | const PAGE_LOADED: usize = 0b10000;
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/storage/pager.rs:45:12
[INFO] [stdout]     |
[INFO] [stdout]  44 | impl MemPage {
[INFO] [stdout]     | ------------ associated items in this implementation
[INFO] [stdout]  45 |     pub fn new(id: PageNumber) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  56 |     pub fn get(&self) -> &mut MemPageInner {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  61 |     pub fn get_content(&self) -> &mut Page {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  65 |     pub fn is_uptodate(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  69 |     pub fn set_uptodate(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  73 |     pub fn clear_uptodate(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  79 |     pub fn is_locked(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  83 |     pub fn set_locked(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  87 |     pub fn clear_locked(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  91 |     pub fn is_error(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  95 |     pub fn set_error(&self) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  99 |     pub fn clear_error(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 103 |     pub fn is_dirty(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 107 |     pub fn set_dirty(&self) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |     pub fn clear_dirty(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 115 |     pub fn is_loaded(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 119 |     pub fn set_loaded(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 123 |     pub fn clear_loaded(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 127 |     pub fn is_index(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Pager` is never constructed
[INFO] [stdout]    --> src/storage/pager.rs:136:12
[INFO] [stdout]     |
[INFO] [stdout] 136 | pub struct Pager {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/storage/pager.rs:150:12
[INFO] [stdout]     |
[INFO] [stdout] 149 | impl Pager {
[INFO] [stdout]     | ---------- associated items in this implementation
[INFO] [stdout] 150 |     pub fn new(
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 166 |     pub fn write_header(&mut self) -> StorageResult<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 174 |     pub fn read_page(&mut self, page_number: PageNumber) -> StorageResult<MemPageRef> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 198 |     fn read_page_from_disk(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 217 |     pub fn write_page(&mut self, page: MemPageRef) -> StorageResult<MemPageRef> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 224 |     pub fn flush(&mut self) -> StorageResult<()> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 228 |     pub fn sync(&self) -> StorageResult<()> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `begin_read_page` is never used
[INFO] [stdout]    --> src/storage/pager.rs:234:8
[INFO] [stdout]     |
[INFO] [stdout] 234 | pub fn begin_read_page(page: &MemPageRef) -> StorageResult<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `begin_write_page` is never used
[INFO] [stdout]    --> src/storage/pager.rs:239:8
[INFO] [stdout]     |
[INFO] [stdout] 239 | pub fn begin_write_page(page: &MemPageRef) -> StorageResult<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `complete_read_page` is never used
[INFO] [stdout]    --> src/storage/pager.rs:248:8
[INFO] [stdout]     |
[INFO] [stdout] 248 | pub fn complete_read_page(read_result: IoResult<usize>, (page, buffer): ReadJobCallbackArgs) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `complete_write_page` is never used
[INFO] [stdout]    --> src/storage/pager.rs:270:8
[INFO] [stdout]     |
[INFO] [stdout] 270 | pub fn complete_write_page(write_result: IoResult<usize>, page: WriteJobCallbackArgs) {
[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:62:12
[INFO] [stdout]     |
[INFO] [stdout]  60 | impl WalHeader {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout]  61 |     /// Recalculates checksum of all fields except `checksum`.
[INFO] [stdout]  62 |     pub fn update_checksum(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  66 |     pub fn default(page_size: u32, db_size: u32) -> Self {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  79 |     pub fn from_bytes(buffer: &[u8]) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     pub fn to_bytes(&self) -> Vec<u8> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 106 |     pub fn write_to_buffer(&self, buffer: &mut [u8]) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 116 |     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:122:12
[INFO] [stdout]     |
[INFO] [stdout] 122 | pub struct MemWalHeader {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/storage/wal/mod.rs:132:12
[INFO] [stdout]     |
[INFO] [stdout] 131 | impl MemWalHeader {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] 132 |     pub fn into_raw_header(&self) -> WalHeader {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 143 |     pub fn update_checksum(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 148 |     pub fn get_checkpoint_seq_num(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 |     pub fn get_last_checkpointed(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 156 |     pub fn get_db_size(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 160 |     pub fn get_backfilled_number(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 164 |     pub fn get_checksum(&self) -> Checksum {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 168 |     pub fn increment_checkpoint_seq_num(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 172 |     pub fn set_last_checkpointed(&self, value: PageNumber) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 176 |     pub fn set_db_size(&self, value: u32) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 180 |     pub fn set_backfilled_number(&self, value: u32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 184 |     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:204:12
[INFO] [stdout]     |
[INFO] [stdout] 204 | 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:215:12
[INFO] [stdout]     |
[INFO] [stdout] 214 | impl FrameHeader {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout] 215 |     pub fn from_bytes(buffer: &[u8]) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 230 |     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:238:12
[INFO] [stdout]     |
[INFO] [stdout] 238 | 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:243:12
[INFO] [stdout]     |
[INFO] [stdout] 242 | impl WalManager {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout] 243 |     pub fn new(
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 288 |     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:293:12
[INFO] [stdout]     |
[INFO] [stdout] 293 | 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:329:12
[INFO] [stdout]     |
[INFO] [stdout] 328 | impl GlobalWal {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout] 329 |     pub fn new(
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 384 |     pub fn write_header(&self) -> StorageResult<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 392 |     pub fn get_min_frame(&self) -> FrameNumber {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 396 |     pub fn get_max_frame(&self) -> FrameNumber {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 400 |     pub fn get_last_checksum(&self) -> Checksum {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 404 |     pub fn get_backfilled_number(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 408 |     pub fn get_checkpoint_seq_num(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 412 |     pub fn set_min_frame(&self, value: FrameNumber) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 416 |     pub fn set_max_frame(&self, value: FrameNumber) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 420 |     pub fn set_last_checksum(&self, value: Checksum) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 425 |     pub fn set_backfilled_number(&self, value: u32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 429 |     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:434:12
[INFO] [stdout]     |
[INFO] [stdout] 434 | 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:446:12
[INFO] [stdout]     |
[INFO] [stdout] 445 | impl LocalWal {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] 446 |     pub fn new(global_wal: Arc<GlobalWal>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 455 |     fn calculate_frame_offset(&self, frame_number: FrameNumber) -> StorageResult<usize> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 459 |     pub fn is_in_wal(&self, page_number: &PageNumber) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 463 |     pub fn begin_read_tx(&mut self) -> StorageResult<ReadGuard<READERS_NUM>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 479 |     pub fn begin_write_tx(&mut self) -> StorageResult<WriteGuard> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 492 |     pub fn end_read_tx(&mut self, guard: ReadGuard<READERS_NUM>) -> StorageResult<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 502 |     pub fn end_write_tx(&mut self, guard: WriteGuard) -> StorageResult<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 519 |     fn read_raw(&self, frame_number: FrameNumber, buffer: &mut [u8]) -> StorageResult<usize> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 529 |     pub fn read_frame(
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 563 |     pub fn append_frame(&mut self, page: MemPageRef, db_size: u32) -> StorageResult<MemPageRef> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 568 |     pub fn append_vectored(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 628 |     fn should_checkpoint(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 636 |     pub fn checkpoint(&mut self) -> StorageResult<()> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WalIndex` is never constructed
[INFO] [stdout]    --> src/storage/wal/mod.rs:696:12
[INFO] [stdout]     |
[INFO] [stdout] 696 | 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:701:12
[INFO] [stdout]     |
[INFO] [stdout] 700 | impl WalIndex {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] 701 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 713 |     fn insert_latest(&self, page_number: PageNumber, frame_number: FrameNumber) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 720 |     pub fn insert(&self, page_number: PageNumber, frame_number: FrameNumber) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 728 |     pub fn latest_frames_sorted(&self, max_frame: FrameNumber) -> Vec<(PageNumber, FrameNumber)> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 749 |     pub fn contains(&self, page_number: &PageNumber) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 753 |     pub fn get(&self, page_number: &PageNumber, max_frame: FrameNumber) -> Option<FrameNumber> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 759 |     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:773:4
[INFO] [stdout]     |
[INFO] [stdout] 773 | 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:799:8
[INFO] [stdout]     |
[INFO] [stdout] 799 | 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: function `varint_size` is never used
[INFO] [stdout]    --> src/utils/bytes.rs:386:8
[INFO] [stdout]     |
[INFO] [stdout] 386 | 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:390:8
[INFO] [stdout]     |
[INFO] [stdout] 390 | 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:394:8
[INFO] [stdout]     |
[INFO] [stdout] 394 | 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:399:8
[INFO] [stdout]     |
[INFO] [stdout] 399 | 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:420:8
[INFO] [stdout]     |
[INFO] [stdout] 420 | 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:434:8
[INFO] [stdout]     |
[INFO] [stdout] 434 | 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:439:8
[INFO] [stdout]     |
[INFO] [stdout] 439 | 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:444:8
[INFO] [stdout]     |
[INFO] [stdout] 444 | 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:22:11
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub trait FileOps {
[INFO] [stdout]    |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `IO` is never used
[INFO] [stdout]   --> src/utils/io.rs:95:11
[INFO] [stdout]    |
[INFO] [stdout] 95 | pub trait IO {
[INFO] [stdout]    |           ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BlockIO` is never constructed
[INFO] [stdout]    --> src/utils/io.rs:268:12
[INFO] [stdout]     |
[INFO] [stdout] 268 | pub struct BlockIO<I> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `get_io`, `increment_block_count`, `decrement_block_count`, `get_block_count`, and `calculate_offset` are never used
[INFO] [stdout]    --> src/utils/io.rs:280:12
[INFO] [stdout]     |
[INFO] [stdout] 279 | impl<I> BlockIO<I> {
[INFO] [stdout]     | ------------------ associated items in this implementation
[INFO] [stdout] 280 |     pub fn new(io: I, block_size: usize, block_count: usize, header_size: usize) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 289 |     fn get_io(&self) -> &mut I {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 293 |     fn increment_block_count(&self, add: BlockNumber) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 297 |     fn decrement_block_count(&self, sub: BlockNumber) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 301 |     pub fn get_block_count(&self) -> BlockNumber {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 306 |     pub fn calculate_offset(&self, block_number: BlockNumber) -> StorageResult<usize> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/utils/io.rs:315:12
[INFO] [stdout]     |
[INFO] [stdout] 314 | impl<I: IO> BlockIO<I> {
[INFO] [stdout]     | ---------------------- methods in this implementation
[INFO] [stdout] 315 |     pub fn raw_read(&self, offset: usize, buffer: &mut [u8]) -> io::Result<usize> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 321 |     pub fn read_header(&self, buffer: &mut [u8]) -> io::Result<usize> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 329 |     pub fn read(
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 347 |     pub fn raw_write(&self, offset: usize, buffer: &[u8]) -> io::Result<usize> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 353 |     pub fn write_header(&self, buffer: &[u8]) -> io::Result<usize> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 361 |     pub fn write(
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 383 |     pub fn write_vectored(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 408 |     pub fn truncate(&self, to_block_len: BlockNumber) -> io::Result<()> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 425 |     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:444:12
[INFO] [stdout]     |
[INFO] [stdout] 439 | impl<I: Write> BlockIO<I> {
[INFO] [stdout]     | ------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 444 |     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:451:12
[INFO] [stdout]     |
[INFO] [stdout] 449 | impl<I: FileOps> BlockIO<I> {
[INFO] [stdout]     | --------------------------- method in this implementation
[INFO] [stdout] 450 |     /// Makes syscall to kernel to write **flushed** buffers to disk.
[INFO] [stdout] 451 |     pub fn sync(&self) -> io::Result<()> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `size` and `persist` are never used
[INFO] [stdout]    --> src/utils/io.rs:458:12
[INFO] [stdout]     |
[INFO] [stdout] 456 | impl BlockIO<File> {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] 457 |     /// Returns size of file inside wrapper in **bytes**.
[INFO] [stdout] 458 |     pub fn size(&self) -> io::Result<usize> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 464 |     pub fn persist(&self) -> io::Result<()> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `IoResult` is never used
[INFO] [stdout]    --> src/utils/io.rs:470:10
[INFO] [stdout]     |
[INFO] [stdout] 470 | pub type IoResult<T> = std::result::Result<T, Arc<Error>>;
[INFO] [stdout]     |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ReadJobCallbackArgs` is never used
[INFO] [stdout]    --> src/utils/io.rs:472:10
[INFO] [stdout]     |
[INFO] [stdout] 472 | pub type ReadJobCallbackArgs = (MemPageRef, Arc<Buffer>);
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ReadJobComplete` is never used
[INFO] [stdout]    --> src/utils/io.rs:473:10
[INFO] [stdout]     |
[INFO] [stdout] 473 | pub type ReadJobComplete = dyn Fn(IoResult<usize>, ReadJobCallbackArgs);
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `WriteJobCallbackArgs` is never used
[INFO] [stdout]    --> src/utils/io.rs:475:10
[INFO] [stdout]     |
[INFO] [stdout] 475 | pub type WriteJobCallbackArgs = MemPageRef;
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `WriteJobComplete` is never used
[INFO] [stdout]    --> src/utils/io.rs:476:10
[INFO] [stdout]     |
[INFO] [stdout] 476 | pub type WriteJobComplete = dyn Fn(IoResult<usize>, WriteJobCallbackArgs);
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `GroupJobCallbackArgs` is never used
[INFO] [stdout]    --> src/utils/io.rs:478:10
[INFO] [stdout]     |
[INFO] [stdout] 478 | pub type GroupJobCallbackArgs = MemPageRef;
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `GroupJobComplete` is never used
[INFO] [stdout]    --> src/utils/io.rs:479:10
[INFO] [stdout]     |
[INFO] [stdout] 479 | pub type GroupJobComplete = dyn Fn(IoResult<usize>, GroupJobCallbackArgs);
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Job` is never constructed
[INFO] [stdout]    --> src/utils/io.rs:482:12
[INFO] [stdout]     |
[INFO] [stdout] 482 | pub struct Job<J: JobOperations> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `ok`, `error`, `complete`, `finish`, and `into_inner` are never used
[INFO] [stdout]    --> src/utils/io.rs:487:12
[INFO] [stdout]     |
[INFO] [stdout] 486 | impl<J: JobOperations> Job<J> {
[INFO] [stdout]     | ----------------------------- associated items in this implementation
[INFO] [stdout] 487 |     pub fn new(inner: J) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 491 |     pub fn ok(&self, bytes_read: usize) {
[INFO] [stdout]     |            ^^
[INFO] [stdout] ...
[INFO] [stdout] 496 |     pub fn error(&self, err: Error) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 502 |     pub fn complete(&self, result: IoResult<usize>) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 506 |     pub fn finish(self) -> J::Output {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 510 |     pub fn into_inner(self) -> J {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new_read` is never used
[INFO] [stdout]    --> src/utils/io.rs:522:12
[INFO] [stdout]     |
[INFO] [stdout] 521 | impl Job<ReadJob> {
[INFO] [stdout]     | ----------------- associated function in this implementation
[INFO] [stdout] 522 |     pub fn new_read(
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new_write` is never used
[INFO] [stdout]    --> src/utils/io.rs:533:12
[INFO] [stdout]     |
[INFO] [stdout] 532 | impl Job<WriteJob> {
[INFO] [stdout]     | ------------------ associated function in this implementation
[INFO] [stdout] 533 |     pub fn new_write(mem_page: MemPageRef, complete: Box<WriteJobComplete>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new_group_read` and `add` are never used
[INFO] [stdout]    --> src/utils/io.rs:540:12
[INFO] [stdout]     |
[INFO] [stdout] 539 | impl Job<GroupJob<ReadJob>> {
[INFO] [stdout]     | --------------------------- associated items in this implementation
[INFO] [stdout] 540 |     pub fn new_group_read() -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 545 |     pub fn add(&mut self, job: ReadJob) {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new_group_write` and `add` are never used
[INFO] [stdout]    --> src/utils/io.rs:550:12
[INFO] [stdout]     |
[INFO] [stdout] 549 | impl Job<GroupJob<WriteJob>> {
[INFO] [stdout]     | ---------------------------- associated items in this implementation
[INFO] [stdout] 550 |     pub fn new_group_write() -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 555 |     pub fn add(&mut self, job: WriteJob) {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ReadJob` is never constructed
[INFO] [stdout]    --> src/utils/io.rs:560:12
[INFO] [stdout]     |
[INFO] [stdout] 560 | pub struct ReadJob {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/utils/io.rs:568:12
[INFO] [stdout]     |
[INFO] [stdout] 567 | impl ReadJob {
[INFO] [stdout]     | ------------ associated function in this implementation
[INFO] [stdout] 568 |     pub fn new(mem_page: MemPageRef, buffer: Arc<Buffer>, complete: Box<ReadJobComplete>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WriteJob` is never constructed
[INFO] [stdout]    --> src/utils/io.rs:588:12
[INFO] [stdout]     |
[INFO] [stdout] 588 | pub struct WriteJob {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/utils/io.rs:594:12
[INFO] [stdout]     |
[INFO] [stdout] 593 | impl WriteJob {
[INFO] [stdout]     | ------------- associated function in this implementation
[INFO] [stdout] 594 |     pub fn new(mem_page: MemPageRef, complete: Box<WriteJobComplete>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GroupJob` is never constructed
[INFO] [stdout]    --> src/utils/io.rs:612:12
[INFO] [stdout]     |
[INFO] [stdout] 612 | pub struct GroupJob<J: JobOperations> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `add` are never used
[INFO] [stdout]    --> src/utils/io.rs:618:12
[INFO] [stdout]     |
[INFO] [stdout] 616 | impl<J: JobOperations> GroupJob<J> {
[INFO] [stdout]     | ---------------------------------- associated items in this implementation
[INFO] [stdout] 617 |     /// Creates empty group job
[INFO] [stdout] 618 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 622 |     pub fn add(&mut self, job: J) {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `JobOperations` is never used
[INFO] [stdout]    --> src/utils/io.rs:641:11
[INFO] [stdout]     |
[INFO] [stdout] 641 | pub trait JobOperations {
[INFO] [stdout]     |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/storage/page.rs:242:24
[INFO] [stdout]     |
[INFO] [stdout] 242 |     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] 242 |     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:379:23
[INFO] [stdout]     |
[INFO] [stdout] 379 |     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] 379 |     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:383:27
[INFO] [stdout]     |
[INFO] [stdout] 383 |     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] 383 |     pub fn freeblock_list(&self) -> FreeblockList<'_> {
[INFO] [stdout]     |                                                  ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/storage/page.rs:564:13
[INFO] [stdout]     |
[INFO] [stdout] 564 |             write_btree_cell(self.as_ptr(), offset, &new_cell);
[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] 564 |             let _ = write_btree_cell(self.as_ptr(), offset, &new_cell);
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/storage/page.rs:571:9
[INFO] [stdout]     |
[INFO] [stdout] 571 |         self.try_insert_cell(index, new_cell);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 571 |         let _ = self.try_insert_cell(index, new_cell);
[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:463:26
[INFO] [stdout]     |
[INFO] [stdout] 463 |     pub fn begin_read_tx(&mut self) -> StorageResult<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] 463 |     pub fn begin_read_tx(&mut self) -> StorageResult<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:479:27
[INFO] [stdout]     |
[INFO] [stdout] 479 |     pub fn begin_write_tx(&mut self) -> StorageResult<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] 479 |     pub fn begin_write_tx(&mut self) -> StorageResult<WriteGuard<'_>> {
[INFO] [stdout]     |                                                                 ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 14.09s
[INFO] running `Command { std: "docker" "inspect" "33064e2222b8ada3477ce652804e85a4615a6a812dc93f3aa3d5f4ac65207810", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "33064e2222b8ada3477ce652804e85a4615a6a812dc93f3aa3d5f4ac65207810", kill_on_drop: false }`
[INFO] [stdout] 33064e2222b8ada3477ce652804e85a4615a6a812dc93f3aa3d5f4ac65207810
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+58b1b3c5342a414c161338871f8004258ccef2a7" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 5f1e09b6ed9e09dc6b879cda2aa515f1bb38aa16bc9664ddbc5be99661d4db57
[INFO] running `Command { std: "docker" "start" "-a" "5f1e09b6ed9e09dc6b879cda2aa515f1bb38aa16bc9664ddbc5be99661d4db57", kill_on_drop: false }`
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling zerocopy v0.8.31
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling serde_json v1.0.147
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling rayon-core v1.13.0
[INFO] [stderr]    Compiling plotters-backend v0.3.7
[INFO] [stderr]    Compiling zmij v0.1.8
[INFO] [stderr]    Compiling ciborium-io v0.2.2
[INFO] [stderr]    Compiling zerocopy-derive v0.8.31
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling clap_builder v4.5.53
[INFO] [stderr]    Compiling regex-automata v0.4.13
[INFO] [stderr]    Compiling itertools v0.10.5
[INFO] [stderr]    Compiling cast v0.3.0
[INFO] [stderr]    Compiling crossbeam v0.8.4
[INFO] [stderr]    Compiling is-terminal v0.4.17
[INFO] [stderr]    Compiling anes v0.1.6
[INFO] [stderr]    Compiling oorandom v11.1.5
[INFO] [stderr]    Compiling carcinusdb v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling plotters-svg v0.3.7
[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]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::borrow::BorrowMut`
[INFO] [stdout]  --> src/utils/bytes.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::borrow::BorrowMut;
[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] [stderr]    Compiling rayon v1.11.0
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/storage/page.rs:235:13
[INFO] [stdout]     |
[INFO] [stdout] 235 |         let mut total = self.free_space() + self.free_fragments() as u16;
[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] [stderr]    Compiling plotters v0.3.7
[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) -> Result<Keyword, SqlError>
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 371 |     fn parse_constrains(&mut self) -> Result<Constrains, SqlError> {
[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: fields `root` and `pager` are never read
[INFO] [stdout]   --> src/storage/btree.rs:63:5
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub struct BTree {
[INFO] [stdout]    |            ----- fields in this struct
[INFO] [stdout] 63 |     root: PageNumber,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 64 |
[INFO] [stdout] 65 |     pager: Pager,
[INFO] [stdout]    |     ^^^^^
[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: methods `write_u32_no_offset` and `write_u32` are never used
[INFO] [stdout]    --> src/storage/page.rs:282:8
[INFO] [stdout]     |
[INFO] [stdout] 194 | impl Page {
[INFO] [stdout]     | --------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 282 |     fn write_u32_no_offset(&self, pos: usize, value: u32) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 287 |     fn write_u32(&self, pos: usize, value: u32) {
[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: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/storage/page.rs:242:24
[INFO] [stdout]     |
[INFO] [stdout] 242 |     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] 242 |     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:379:23
[INFO] [stdout]     |
[INFO] [stdout] 379 |     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] 379 |     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:383:27
[INFO] [stdout]     |
[INFO] [stdout] 383 |     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] 383 |     pub fn freeblock_list(&self) -> FreeblockList<'_> {
[INFO] [stdout]     |                                                  ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/storage/page.rs:564:13
[INFO] [stdout]     |
[INFO] [stdout] 564 |             write_btree_cell(self.as_ptr(), offset, &new_cell);
[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] 564 |             let _ = write_btree_cell(self.as_ptr(), offset, &new_cell);
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/storage/page.rs:571:9
[INFO] [stdout]     |
[INFO] [stdout] 571 |         self.try_insert_cell(index, new_cell);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 571 |         let _ = self.try_insert_cell(index, new_cell);
[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:463:26
[INFO] [stdout]     |
[INFO] [stdout] 463 |     pub fn begin_read_tx(&mut self) -> StorageResult<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] 463 |     pub fn begin_read_tx(&mut self) -> StorageResult<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:479:27
[INFO] [stdout]     |
[INFO] [stdout] 479 |     pub fn begin_write_tx(&mut self) -> StorageResult<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] 479 |     pub fn begin_write_tx(&mut self) -> StorageResult<WriteGuard<'_>> {
[INFO] [stdout]     |                                                                 ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling criterion-plot v0.5.0
[INFO] [stderr]    Compiling regex v1.12.2
[INFO] [stderr]    Compiling clap v4.5.53
[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: `super::*`
[INFO] [stdout]    --> src/storage/wal/mod.rs:832:9
[INFO] [stdout]     |
[INFO] [stdout] 832 |     use super::*;
[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 import: `std::borrow::BorrowMut`
[INFO] [stdout]  --> src/utils/bytes.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::borrow::BorrowMut;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::*`
[INFO] [stdout]    --> src/storage/wal/mod.rs:832:9
[INFO] [stdout]     |
[INFO] [stdout] 832 |     use super::*;
[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 import: `std::borrow::BorrowMut`
[INFO] [stdout]  --> src/utils/bytes.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::borrow::BorrowMut;
[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: variable does not need to be mutable
[INFO] [stdout]    --> src/storage/page.rs:235:13
[INFO] [stdout]     |
[INFO] [stdout] 235 |         let mut total = self.free_space() + self.free_fragments() as u16;
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/storage/page.rs:235:13
[INFO] [stdout]     |
[INFO] [stdout] 235 |         let mut total = self.free_space() + self.free_fragments() as u16;
[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:479:13
[INFO] [stdout]     |
[INFO] [stdout] 479 |         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:508:13
[INFO] [stdout]     |
[INFO] [stdout] 508 |         let mut n = 100;
[INFO] [stdout]     |             ----^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]    --> src/utils/bytes.rs:479:13
[INFO] [stdout]     |
[INFO] [stdout] 479 |         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:508:13
[INFO] [stdout]     |
[INFO] [stdout] 508 |         let mut n = 100;
[INFO] [stdout]     |             ----^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[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) -> Result<Keyword, SqlError>
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 371 |     fn parse_constrains(&mut self) -> Result<Constrains, SqlError> {
[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: fields `root` and `pager` are never read
[INFO] [stdout]   --> src/storage/btree.rs:63:5
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub struct BTree {
[INFO] [stdout]    |            ----- fields in this struct
[INFO] [stdout] 63 |     root: PageNumber,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 64 |
[INFO] [stdout] 65 |     pager: Pager,
[INFO] [stdout]    |     ^^^^^
[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: methods `write_u32_no_offset` and `write_u32` are never used
[INFO] [stdout]    --> src/storage/page.rs:282:8
[INFO] [stdout]     |
[INFO] [stdout] 194 | impl Page {
[INFO] [stdout]     | --------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 282 |     fn write_u32_no_offset(&self, pos: usize, value: u32) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 287 |     fn write_u32(&self, pos: usize, value: u32) {
[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: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/storage/page.rs:242:24
[INFO] [stdout]     |
[INFO] [stdout] 242 |     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] 242 |     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:379:23
[INFO] [stdout]     |
[INFO] [stdout] 379 |     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] 379 |     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:383:27
[INFO] [stdout]     |
[INFO] [stdout] 383 |     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] 383 |     pub fn freeblock_list(&self) -> FreeblockList<'_> {
[INFO] [stdout]     |                                                  ++++
[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_freelist_trunk_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_freelist_trunk_page(&self, page_number: PageNumber) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 106 |     pub fn set_freelist_pages(&self, value: PageNumber) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Database` is never constructed
[INFO] [stdout]    --> src/database/mod.rs:126:12
[INFO] [stdout]     |
[INFO] [stdout] 126 | 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:136:12
[INFO] [stdout]     |
[INFO] [stdout] 135 | impl Database {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] 136 |     pub fn new(db_file_path: PathBuf) -> DatabaseResult<Self> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 197 |     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: 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) -> Result<Statement, SqlError>;
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 21 |     fn parse_begin(&mut self) -> Result<Statement, SqlError>;
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 22 |     fn parse_commit(&mut self) -> Result<Statement, SqlError>;
[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) -> Result<Keyword, SqlError>
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 371 |     fn parse_constrains(&mut self) -> Result<Constrains, SqlError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `count` is never used
[INFO] [stdout]   --> src/sql/record.rs:35:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | impl<'a> Record<'a> {
[INFO] [stdout]    | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 35 |     pub fn count(&self) -> usize {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `with_capacity` is never used
[INFO] [stdout]   --> src/sql/record.rs:89:12
[INFO] [stdout]    |
[INFO] [stdout] 78 | impl<'a> RecordCursor<'a> {
[INFO] [stdout]    | ------------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 89 |     pub fn with_capacity(payload: &'a [u8], capacity: usize) -> Self {
[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: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/storage/page.rs:564:13
[INFO] [stdout]     |
[INFO] [stdout] 564 |             write_btree_cell(self.as_ptr(), offset, &new_cell);
[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] 564 |             let _ = write_btree_cell(self.as_ptr(), offset, &new_cell);
[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: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/storage/page.rs:571:9
[INFO] [stdout]     |
[INFO] [stdout] 571 |         self.try_insert_cell(index, new_cell);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 571 |         let _ = self.try_insert_cell(index, new_cell);
[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: multiple methods are never used
[INFO] [stdout]    --> src/sql/types/mod.rs:54:12
[INFO] [stdout]     |
[INFO] [stdout]  43 | impl Value {
[INFO] [stdout]     | ---------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  54 |     pub fn value_type(&self) -> ValueType {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  64 |     pub fn as_blob(&self) -> &[u8] {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  69 |     pub fn as_mut_blob(&mut self) -> &mut [u8] {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  74 |     pub fn try_as_blob(&self) -> Option<&[u8]> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  81 |     pub fn try_as_blob_mut(&mut self) -> Option<&mut [u8]> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  88 |     pub fn as_text(&self) -> &str {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  92 |     pub fn try_as_text(&self) -> Option<&str> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  99 |     pub fn try_as_bool(&self) -> Option<bool> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 106 |     pub fn try_as_int(&self) -> Option<i64> {
[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: 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: type alias `FrameNumber` is never used
[INFO] [stdout]   --> src/storage/mod.rs:19:10
[INFO] [stdout]    |
[INFO] [stdout] 19 | 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:21:11
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub const PAGE_NUMBER_SIZE: usize = std::mem::size_of::<PageNumber>();
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `PageNotFound`, `PageNumberOutOfRange`, `InvalidChecksum`, `PageNotFoundInWal`, and `PartialRead` are never constructed
[INFO] [stdout]   --> src/storage/mod.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub enum Error {
[INFO] [stdout]    |          ----- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 30 |     PageNotFound(PageNumber),
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |     PageNumberOutOfRange,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 38 |     InvalidChecksum,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 39 |     #[error("page {0} not found in WAL")]
[INFO] [stdout] 40 |     PageNotFoundInWal(PageNumber),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 54 |     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:125:12
[INFO] [stdout]     |
[INFO] [stdout]  76 | impl GlobalPageAllocator {
[INFO] [stdout]     | ------------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 125 |     pub fn try_alloc(&self) -> Option<NonNull<u8>> {
[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:463:26
[INFO] [stdout]     |
[INFO] [stdout] 463 |     pub fn begin_read_tx(&mut self) -> StorageResult<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] 463 |     pub fn begin_read_tx(&mut self) -> StorageResult<ReadGuard<'_, READERS_NUM>> {
[INFO] [stdout]     |                                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `default` is never used
[INFO] [stdout]    --> src/storage/allocator.rs:214:12
[INFO] [stdout]     |
[INFO] [stdout] 199 | impl LocalPageAllocator {
[INFO] [stdout]     | ----------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 214 |     pub fn default(global_allocator: Arc<GlobalPageAllocator>) -> Self {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `BytesCmp` is never used
[INFO] [stdout]  --> src/storage/btree.rs:8:11
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub trait BytesCmp {
[INFO] [stdout]   |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Payload` is never used
[INFO] [stdout]   --> src/storage/btree.rs:14:10
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub enum Payload<'a> {
[INFO] [stdout]    |          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FixedSizeMemCmp` is never constructed
[INFO] [stdout]   --> src/storage/btree.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub struct FixedSizeMemCmp {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `for_type` is never used
[INFO] [stdout]   --> src/storage/btree.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 35 | impl FixedSizeMemCmp {
[INFO] [stdout]    | -------------------- associated function in this implementation
[INFO] [stdout] 36 |     pub fn for_type<T>() -> Self {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BTree` is never constructed
[INFO] [stdout]   --> src/storage/btree.rs:62:12
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub struct BTree {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/storage/buffer_pool.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl GlobalBufferPool {
[INFO] [stdout]    | --------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub fn new(
[INFO] [stdout]    |            ^^^
[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: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/storage/wal/mod.rs:479:27
[INFO] [stdout]     |
[INFO] [stdout] 479 |     pub fn begin_write_tx(&mut self) -> StorageResult<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] 479 |     pub fn begin_write_tx(&mut self) -> StorageResult<WriteGuard<'_>> {
[INFO] [stdout]     |                                                                 ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get` and `delete` are never used
[INFO] [stdout]   --> src/storage/cache.rs:89:12
[INFO] [stdout]    |
[INFO] [stdout] 77 | impl<S: BuildHasher> ShardedLruCache<S> {
[INFO] [stdout]    | --------------------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 89 |     pub fn get(&self, key: &PageCacheKey) -> Option<MemPageRef> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 97 |     pub fn delete(&self, key: PageCacheKey) -> CacheResult<()> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DATABASE_HEADER_SIZE` is never used
[INFO] [stdout]   --> src/storage/page.rs:19:11
[INFO] [stdout]    |
[INFO] [stdout] 19 | 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:21:11
[INFO] [stdout]    |
[INFO] [stdout] 21 | 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:23:7
[INFO] [stdout]    |
[INFO] [stdout] 23 | 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:25:11
[INFO] [stdout]    |
[INFO] [stdout] 25 | 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:26:11
[INFO] [stdout]    |
[INFO] [stdout] 26 | 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:29:8
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub fn usable_space(page_size: usize, reserved: usize) -> usize {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DatabaseHeader` is never constructed
[INFO] [stdout]   --> src/storage/page.rs:43:12
[INFO] [stdout]    |
[INFO] [stdout] 43 | 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:63:12
[INFO] [stdout]    |
[INFO] [stdout] 62 | impl DatabaseHeader {
[INFO] [stdout]    | ------------------- associated items in this implementation
[INFO] [stdout] 63 |     pub fn get_page_size(&self) -> usize {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 71 |     pub fn from_bytes(buffer: &[u8]) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 93 |     pub fn to_bytes(&self) -> Vec<u8> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 99 |     pub fn write_to_buffer(&self, buffer: &mut [u8]) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/storage/page.rs:242:12
[INFO] [stdout]     |
[INFO] [stdout] 194 | impl Page {
[INFO] [stdout]     | --------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 242 |     pub fn as_io_slice(&self) -> IoSlice {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 268 |     fn write_u8(&self, pos: usize, value: u8) {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 282 |     fn write_u32_no_offset(&self, pos: usize, value: u32) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 287 |     fn write_u32(&self, pos: usize, value: u32) {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 319 |     pub fn set_free_fragments(&self, value: u8) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 323 |     pub fn add_free_fragment(&self, value: u8) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 340 |     pub fn set_len(&self, value: u16) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 344 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 365 |     pub fn storage_space(&self) -> u16 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 370 |     pub fn storage_size(&self, cell_size: u16) -> u16 {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 537 |     pub fn try_replace(
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 588 |     pub fn child(&self, index: SlotNumber) -> PageNumber {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `offset` is never read
[INFO] [stdout]    --> src/storage/page.rs:997:5
[INFO] [stdout]     |
[INFO] [stdout] 996 | pub struct PayloadRef {
[INFO] [stdout]     |            ---------- field in this struct
[INFO] [stdout] 997 |     offset: usize,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PayloadRef` 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 `as_slice` is never used
[INFO] [stdout]     --> src/storage/page.rs:1002:12
[INFO] [stdout]      |
[INFO] [stdout] 1001 | impl PayloadRef {
[INFO] [stdout]      | --------------- method in this implementation
[INFO] [stdout] 1002 |     pub fn as_slice<'a>(&self, raw: &'a [u8]) -> &'a [u8] {
[INFO] [stdout]      |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `payload` is never used
[INFO] [stdout]     --> src/storage/page.rs:1023:12
[INFO] [stdout]      |
[INFO] [stdout] 1022 | impl IndexInternalCell {
[INFO] [stdout]      | ---------------------- method in this implementation
[INFO] [stdout] 1023 |     pub fn payload(&self) -> &[u8] {
[INFO] [stdout]      |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `payload` is never used
[INFO] [stdout]     --> src/storage/page.rs:1057:12
[INFO] [stdout]      |
[INFO] [stdout] 1056 | impl IndexLeafCell {
[INFO] [stdout]      | ------------------ method in this implementation
[INFO] [stdout] 1057 |     pub fn payload(&self) -> &[u8] {
[INFO] [stdout]      |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `payload` is never used
[INFO] [stdout]     --> src/storage/page.rs:1118:12
[INFO] [stdout]      |
[INFO] [stdout] 1117 | impl TableLeafCell {
[INFO] [stdout]      | ------------------ method in this implementation
[INFO] [stdout] 1118 |     pub fn payload(&self) -> &[u8] {
[INFO] [stdout]      |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PAGE_UPTODATE` is never used
[INFO] [stdout]   --> src/storage/pager.rs:34:7
[INFO] [stdout]    |
[INFO] [stdout] 34 | const PAGE_UPTODATE: usize = 0b00001;
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PAGE_ERROR` is never used
[INFO] [stdout]   --> src/storage/pager.rs:38:7
[INFO] [stdout]    |
[INFO] [stdout] 38 | const PAGE_ERROR: usize = 0b00100;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/storage/pager.rs:61:12
[INFO] [stdout]     |
[INFO] [stdout]  44 | impl MemPage {
[INFO] [stdout]     | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  61 |     pub fn get_content(&self) -> &mut Page {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  65 |     pub fn is_uptodate(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  69 |     pub fn set_uptodate(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  73 |     pub fn clear_uptodate(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  83 |     pub fn set_locked(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  87 |     pub fn clear_locked(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  91 |     pub fn is_error(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  95 |     pub fn set_error(&self) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  99 |     pub fn clear_error(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 107 |     pub fn set_dirty(&self) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |     pub fn clear_dirty(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 115 |     pub fn is_loaded(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 119 |     pub fn set_loaded(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 127 |     pub fn is_index(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Pager` is never constructed
[INFO] [stdout]    --> src/storage/pager.rs:136:12
[INFO] [stdout]     |
[INFO] [stdout] 136 | pub struct Pager {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/storage/pager.rs:150:12
[INFO] [stdout]     |
[INFO] [stdout] 149 | impl Pager {
[INFO] [stdout]     | ---------- associated items in this implementation
[INFO] [stdout] 150 |     pub fn new(
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 166 |     pub fn write_header(&mut self) -> StorageResult<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 174 |     pub fn read_page(&mut self, page_number: PageNumber) -> StorageResult<MemPageRef> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 198 |     fn read_page_from_disk(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 217 |     pub fn write_page(&mut self, page: MemPageRef) -> StorageResult<MemPageRef> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 224 |     pub fn flush(&mut self) -> StorageResult<()> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 228 |     pub fn sync(&self) -> StorageResult<()> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `begin_read_page` is never used
[INFO] [stdout]    --> src/storage/pager.rs:234:8
[INFO] [stdout]     |
[INFO] [stdout] 234 | pub fn begin_read_page(page: &MemPageRef) -> StorageResult<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `begin_write_page` is never used
[INFO] [stdout]    --> src/storage/pager.rs:239:8
[INFO] [stdout]     |
[INFO] [stdout] 239 | pub fn begin_write_page(page: &MemPageRef) -> StorageResult<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `complete_read_page` is never used
[INFO] [stdout]    --> src/storage/pager.rs:248:8
[INFO] [stdout]     |
[INFO] [stdout] 248 | pub fn complete_read_page(read_result: IoResult<usize>, (page, buffer): ReadJobCallbackArgs) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `complete_write_page` is never used
[INFO] [stdout]    --> src/storage/pager.rs:270:8
[INFO] [stdout]     |
[INFO] [stdout] 270 | pub fn complete_write_page(write_result: IoResult<usize>, page: WriteJobCallbackArgs) {
[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:62:12
[INFO] [stdout]     |
[INFO] [stdout]  60 | impl WalHeader {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout]  61 |     /// Recalculates checksum of all fields except `checksum`.
[INFO] [stdout]  62 |     pub fn update_checksum(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  66 |     pub fn default(page_size: u32, db_size: u32) -> Self {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  79 |     pub fn from_bytes(buffer: &[u8]) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     pub fn to_bytes(&self) -> Vec<u8> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 106 |     pub fn write_to_buffer(&self, buffer: &mut [u8]) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 116 |     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:122:12
[INFO] [stdout]     |
[INFO] [stdout] 122 | pub struct MemWalHeader {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/storage/wal/mod.rs:132:12
[INFO] [stdout]     |
[INFO] [stdout] 131 | impl MemWalHeader {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] 132 |     pub fn into_raw_header(&self) -> WalHeader {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 143 |     pub fn update_checksum(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 148 |     pub fn get_checkpoint_seq_num(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 |     pub fn get_last_checkpointed(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 156 |     pub fn get_db_size(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 160 |     pub fn get_backfilled_number(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 164 |     pub fn get_checksum(&self) -> Checksum {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 168 |     pub fn increment_checkpoint_seq_num(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 172 |     pub fn set_last_checkpointed(&self, value: PageNumber) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 176 |     pub fn set_db_size(&self, value: u32) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 180 |     pub fn set_backfilled_number(&self, value: u32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 184 |     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:204:12
[INFO] [stdout]     |
[INFO] [stdout] 204 | 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:215:12
[INFO] [stdout]     |
[INFO] [stdout] 214 | impl FrameHeader {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout] 215 |     pub fn from_bytes(buffer: &[u8]) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 230 |     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:238:12
[INFO] [stdout]     |
[INFO] [stdout] 238 | 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:243:12
[INFO] [stdout]     |
[INFO] [stdout] 242 | impl WalManager {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout] 243 |     pub fn new(
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 288 |     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:293:12
[INFO] [stdout]     |
[INFO] [stdout] 293 | 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:329:12
[INFO] [stdout]     |
[INFO] [stdout] 328 | impl GlobalWal {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout] 329 |     pub fn new(
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 384 |     pub fn write_header(&self) -> StorageResult<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 392 |     pub fn get_min_frame(&self) -> FrameNumber {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 396 |     pub fn get_max_frame(&self) -> FrameNumber {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 400 |     pub fn get_last_checksum(&self) -> Checksum {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 404 |     pub fn get_backfilled_number(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 408 |     pub fn get_checkpoint_seq_num(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 412 |     pub fn set_min_frame(&self, value: FrameNumber) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 416 |     pub fn set_max_frame(&self, value: FrameNumber) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 420 |     pub fn set_last_checksum(&self, value: Checksum) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 425 |     pub fn set_backfilled_number(&self, value: u32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 429 |     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:434:12
[INFO] [stdout]     |
[INFO] [stdout] 434 | 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:446:12
[INFO] [stdout]     |
[INFO] [stdout] 445 | impl LocalWal {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] 446 |     pub fn new(global_wal: Arc<GlobalWal>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 455 |     fn calculate_frame_offset(&self, frame_number: FrameNumber) -> StorageResult<usize> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 459 |     pub fn is_in_wal(&self, page_number: &PageNumber) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 463 |     pub fn begin_read_tx(&mut self) -> StorageResult<ReadGuard<READERS_NUM>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 479 |     pub fn begin_write_tx(&mut self) -> StorageResult<WriteGuard> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 492 |     pub fn end_read_tx(&mut self, guard: ReadGuard<READERS_NUM>) -> StorageResult<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 502 |     pub fn end_write_tx(&mut self, guard: WriteGuard) -> StorageResult<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 519 |     fn read_raw(&self, frame_number: FrameNumber, buffer: &mut [u8]) -> StorageResult<usize> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 529 |     pub fn read_frame(
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 563 |     pub fn append_frame(&mut self, page: MemPageRef, db_size: u32) -> StorageResult<MemPageRef> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 568 |     pub fn append_vectored(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 628 |     fn should_checkpoint(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 636 |     pub fn checkpoint(&mut self) -> StorageResult<()> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WalIndex` is never constructed
[INFO] [stdout]    --> src/storage/wal/mod.rs:696:12
[INFO] [stdout]     |
[INFO] [stdout] 696 | 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:701:12
[INFO] [stdout]     |
[INFO] [stdout] 700 | impl WalIndex {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] 701 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 713 |     fn insert_latest(&self, page_number: PageNumber, frame_number: FrameNumber) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 720 |     pub fn insert(&self, page_number: PageNumber, frame_number: FrameNumber) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 728 |     pub fn latest_frames_sorted(&self, max_frame: FrameNumber) -> Vec<(PageNumber, FrameNumber)> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 749 |     pub fn contains(&self, page_number: &PageNumber) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 753 |     pub fn get(&self, page_number: &PageNumber, max_frame: FrameNumber) -> Option<FrameNumber> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 759 |     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:773:4
[INFO] [stdout]     |
[INFO] [stdout] 773 | 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:799:8
[INFO] [stdout]     |
[INFO] [stdout] 799 | 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: 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: methods `read_u8`, `try_read_u8`, `read_u16_le`, `try_read_u16_le`, `read_u64_le`, and `try_read_u64_le` 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] 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: function `flip_n_bits` is never used
[INFO] [stdout]    --> src/utils/bytes.rs:420:8
[INFO] [stdout]     |
[INFO] [stdout] 420 | 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:434:8
[INFO] [stdout]     |
[INFO] [stdout] 434 | 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:439:8
[INFO] [stdout]     |
[INFO] [stdout] 439 | 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:444:8
[INFO] [stdout]     |
[INFO] [stdout] 444 | 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: trait `FileOps` is never used
[INFO] [stdout]   --> src/utils/io.rs:22:11
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub trait FileOps {
[INFO] [stdout]    |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `IO` is never used
[INFO] [stdout]   --> src/utils/io.rs:95:11
[INFO] [stdout]    |
[INFO] [stdout] 95 | pub trait IO {
[INFO] [stdout]    |           ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BlockIO` is never constructed
[INFO] [stdout]    --> src/utils/io.rs:268:12
[INFO] [stdout]     |
[INFO] [stdout] 268 | pub struct BlockIO<I> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `get_io`, `increment_block_count`, `decrement_block_count`, `get_block_count`, and `calculate_offset` are never used
[INFO] [stdout]    --> src/utils/io.rs:280:12
[INFO] [stdout]     |
[INFO] [stdout] 279 | impl<I> BlockIO<I> {
[INFO] [stdout]     | ------------------ associated items in this implementation
[INFO] [stdout] 280 |     pub fn new(io: I, block_size: usize, block_count: usize, header_size: usize) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 289 |     fn get_io(&self) -> &mut I {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 293 |     fn increment_block_count(&self, add: BlockNumber) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 297 |     fn decrement_block_count(&self, sub: BlockNumber) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 301 |     pub fn get_block_count(&self) -> BlockNumber {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 306 |     pub fn calculate_offset(&self, block_number: BlockNumber) -> StorageResult<usize> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/utils/io.rs:315:12
[INFO] [stdout]     |
[INFO] [stdout] 314 | impl<I: IO> BlockIO<I> {
[INFO] [stdout]     | ---------------------- methods in this implementation
[INFO] [stdout] 315 |     pub fn raw_read(&self, offset: usize, buffer: &mut [u8]) -> io::Result<usize> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 321 |     pub fn read_header(&self, buffer: &mut [u8]) -> io::Result<usize> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 329 |     pub fn read(
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 347 |     pub fn raw_write(&self, offset: usize, buffer: &[u8]) -> io::Result<usize> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 353 |     pub fn write_header(&self, buffer: &[u8]) -> io::Result<usize> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 361 |     pub fn write(
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 383 |     pub fn write_vectored(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 408 |     pub fn truncate(&self, to_block_len: BlockNumber) -> io::Result<()> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 425 |     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:444:12
[INFO] [stdout]     |
[INFO] [stdout] 439 | impl<I: Write> BlockIO<I> {
[INFO] [stdout]     | ------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 444 |     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:451:12
[INFO] [stdout]     |
[INFO] [stdout] 449 | impl<I: FileOps> BlockIO<I> {
[INFO] [stdout]     | --------------------------- method in this implementation
[INFO] [stdout] 450 |     /// Makes syscall to kernel to write **flushed** buffers to disk.
[INFO] [stdout] 451 |     pub fn sync(&self) -> io::Result<()> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `size` and `persist` are never used
[INFO] [stdout]    --> src/utils/io.rs:458:12
[INFO] [stdout]     |
[INFO] [stdout] 456 | impl BlockIO<File> {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] 457 |     /// Returns size of file inside wrapper in **bytes**.
[INFO] [stdout] 458 |     pub fn size(&self) -> io::Result<usize> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 464 |     pub fn persist(&self) -> io::Result<()> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `IoResult` is never used
[INFO] [stdout]    --> src/utils/io.rs:470:10
[INFO] [stdout]     |
[INFO] [stdout] 470 | pub type IoResult<T> = std::result::Result<T, Arc<Error>>;
[INFO] [stdout]     |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ReadJobCallbackArgs` is never used
[INFO] [stdout]    --> src/utils/io.rs:472:10
[INFO] [stdout]     |
[INFO] [stdout] 472 | pub type ReadJobCallbackArgs = (MemPageRef, Arc<Buffer>);
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ReadJobComplete` is never used
[INFO] [stdout]    --> src/utils/io.rs:473:10
[INFO] [stdout]     |
[INFO] [stdout] 473 | pub type ReadJobComplete = dyn Fn(IoResult<usize>, ReadJobCallbackArgs);
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `WriteJobCallbackArgs` is never used
[INFO] [stdout]    --> src/utils/io.rs:475:10
[INFO] [stdout]     |
[INFO] [stdout] 475 | pub type WriteJobCallbackArgs = MemPageRef;
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `WriteJobComplete` is never used
[INFO] [stdout]    --> src/utils/io.rs:476:10
[INFO] [stdout]     |
[INFO] [stdout] 476 | pub type WriteJobComplete = dyn Fn(IoResult<usize>, WriteJobCallbackArgs);
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `GroupJobCallbackArgs` is never used
[INFO] [stdout]    --> src/utils/io.rs:478:10
[INFO] [stdout]     |
[INFO] [stdout] 478 | pub type GroupJobCallbackArgs = MemPageRef;
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `GroupJobComplete` is never used
[INFO] [stdout]    --> src/utils/io.rs:479:10
[INFO] [stdout]     |
[INFO] [stdout] 479 | pub type GroupJobComplete = dyn Fn(IoResult<usize>, GroupJobCallbackArgs);
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Job` is never constructed
[INFO] [stdout]    --> src/utils/io.rs:482:12
[INFO] [stdout]     |
[INFO] [stdout] 482 | pub struct Job<J: JobOperations> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `ok`, `error`, `complete`, `finish`, and `into_inner` are never used
[INFO] [stdout]    --> src/utils/io.rs:487:12
[INFO] [stdout]     |
[INFO] [stdout] 486 | impl<J: JobOperations> Job<J> {
[INFO] [stdout]     | ----------------------------- associated items in this implementation
[INFO] [stdout] 487 |     pub fn new(inner: J) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 491 |     pub fn ok(&self, bytes_read: usize) {
[INFO] [stdout]     |            ^^
[INFO] [stdout] ...
[INFO] [stdout] 496 |     pub fn error(&self, err: Error) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 502 |     pub fn complete(&self, result: IoResult<usize>) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 506 |     pub fn finish(self) -> J::Output {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 510 |     pub fn into_inner(self) -> J {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new_read` is never used
[INFO] [stdout]    --> src/utils/io.rs:522:12
[INFO] [stdout]     |
[INFO] [stdout] 521 | impl Job<ReadJob> {
[INFO] [stdout]     | ----------------- associated function in this implementation
[INFO] [stdout] 522 |     pub fn new_read(
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new_write` is never used
[INFO] [stdout]    --> src/utils/io.rs:533:12
[INFO] [stdout]     |
[INFO] [stdout] 532 | impl Job<WriteJob> {
[INFO] [stdout]     | ------------------ associated function in this implementation
[INFO] [stdout] 533 |     pub fn new_write(mem_page: MemPageRef, complete: Box<WriteJobComplete>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new_group_read` and `add` are never used
[INFO] [stdout]    --> src/utils/io.rs:540:12
[INFO] [stdout]     |
[INFO] [stdout] 539 | impl Job<GroupJob<ReadJob>> {
[INFO] [stdout]     | --------------------------- associated items in this implementation
[INFO] [stdout] 540 |     pub fn new_group_read() -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 545 |     pub fn add(&mut self, job: ReadJob) {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new_group_write` and `add` are never used
[INFO] [stdout]    --> src/utils/io.rs:550:12
[INFO] [stdout]     |
[INFO] [stdout] 549 | impl Job<GroupJob<WriteJob>> {
[INFO] [stdout]     | ---------------------------- associated items in this implementation
[INFO] [stdout] 550 |     pub fn new_group_write() -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 555 |     pub fn add(&mut self, job: WriteJob) {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ReadJob` is never constructed
[INFO] [stdout]    --> src/utils/io.rs:560:12
[INFO] [stdout]     |
[INFO] [stdout] 560 | pub struct ReadJob {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/utils/io.rs:568:12
[INFO] [stdout]     |
[INFO] [stdout] 567 | impl ReadJob {
[INFO] [stdout]     | ------------ associated function in this implementation
[INFO] [stdout] 568 |     pub fn new(mem_page: MemPageRef, buffer: Arc<Buffer>, complete: Box<ReadJobComplete>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WriteJob` is never constructed
[INFO] [stdout]    --> src/utils/io.rs:588:12
[INFO] [stdout]     |
[INFO] [stdout] 588 | pub struct WriteJob {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/utils/io.rs:594:12
[INFO] [stdout]     |
[INFO] [stdout] 593 | impl WriteJob {
[INFO] [stdout]     | ------------- associated function in this implementation
[INFO] [stdout] 594 |     pub fn new(mem_page: MemPageRef, complete: Box<WriteJobComplete>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GroupJob` is never constructed
[INFO] [stdout]    --> src/utils/io.rs:612:12
[INFO] [stdout]     |
[INFO] [stdout] 612 | pub struct GroupJob<J: JobOperations> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `add` are never used
[INFO] [stdout]    --> src/utils/io.rs:618:12
[INFO] [stdout]     |
[INFO] [stdout] 616 | impl<J: JobOperations> GroupJob<J> {
[INFO] [stdout]     | ---------------------------------- associated items in this implementation
[INFO] [stdout] 617 |     /// Creates empty group job
[INFO] [stdout] 618 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 622 |     pub fn add(&mut self, job: J) {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `JobOperations` is never used
[INFO] [stdout]    --> src/utils/io.rs:641:11
[INFO] [stdout]     |
[INFO] [stdout] 641 | pub trait JobOperations {
[INFO] [stdout]     |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/storage/page.rs:242:24
[INFO] [stdout]     |
[INFO] [stdout] 242 |     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] 242 |     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:379:23
[INFO] [stdout]     |
[INFO] [stdout] 379 |     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] 379 |     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:383:27
[INFO] [stdout]     |
[INFO] [stdout] 383 |     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] 383 |     pub fn freeblock_list(&self) -> FreeblockList<'_> {
[INFO] [stdout]     |                                                  ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/storage/page.rs:564:13
[INFO] [stdout]     |
[INFO] [stdout] 564 |             write_btree_cell(self.as_ptr(), offset, &new_cell);
[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] 564 |             let _ = write_btree_cell(self.as_ptr(), offset, &new_cell);
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/storage/page.rs:571:9
[INFO] [stdout]     |
[INFO] [stdout] 571 |         self.try_insert_cell(index, new_cell);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 571 |         let _ = self.try_insert_cell(index, new_cell);
[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:463:26
[INFO] [stdout]     |
[INFO] [stdout] 463 |     pub fn begin_read_tx(&mut self) -> StorageResult<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] 463 |     pub fn begin_read_tx(&mut self) -> StorageResult<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:479:27
[INFO] [stdout]     |
[INFO] [stdout] 479 |     pub fn begin_write_tx(&mut self) -> StorageResult<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] 479 |     pub fn begin_write_tx(&mut self) -> StorageResult<WriteGuard<'_>> {
[INFO] [stdout]     |                                                                 ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 11.60s
[INFO] running `Command { std: "docker" "inspect" "5f1e09b6ed9e09dc6b879cda2aa515f1bb38aa16bc9664ddbc5be99661d4db57", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5f1e09b6ed9e09dc6b879cda2aa515f1bb38aa16bc9664ddbc5be99661d4db57", kill_on_drop: false }`
[INFO] [stdout] 5f1e09b6ed9e09dc6b879cda2aa515f1bb38aa16bc9664ddbc5be99661d4db57
