[INFO] cloning repository https://github.com/xiaoyan-xue/SDMS_LAB1
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/xiaoyan-xue/SDMS_LAB1" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fxiaoyan-xue%2FSDMS_LAB1", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fxiaoyan-xue%2FSDMS_LAB1'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 70c2c61f1bae16f97f2d02c503a7dcaabb7bc32e
[INFO] checking xiaoyan-xue/SDMS_LAB1 against e3d12f3322cb00126b2208c6b9df3ac4467951f5 for pr-159706
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fxiaoyan-xue%2FSDMS_LAB1" "/workspace/builds/worker-3-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc2/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-3-tc2/source/rust-toolchain.toml
[INFO] started tweaking git repo https://github.com/xiaoyan-xue/SDMS_LAB1
[INFO] finished tweaking git repo https://github.com/xiaoyan-xue/SDMS_LAB1
[INFO] tweaked toml for git repo https://github.com/xiaoyan-xue/SDMS_LAB1 written to /workspace/builds/worker-3-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/xiaoyan-xue/SDMS_LAB1 on toolchain e3d12f3322cb00126b2208c6b9df3ac4467951f5
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+e3d12f3322cb00126b2208c6b9df3ac4467951f5" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/xiaoyan-xue/SDMS_LAB1 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+e3d12f3322cb00126b2208c6b9df3ac4467951f5" "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 proc-macro2 v1.0.89
[INFO] [stderr]   Downloaded rand_pcg v0.9.0
[INFO] [stderr]   Downloaded wasm-bindgen-macro v0.2.104
[INFO] [stderr]   Downloaded wasm-bindgen-shared v0.2.104
[INFO] [stderr]   Downloaded criterion v0.7.0
[INFO] [stderr]   Downloaded wasm-bindgen-backend v0.2.104
[INFO] [stderr]   Downloaded wasm-bindgen-macro-support v0.2.104
[INFO] [stderr]   Downloaded criterion-plot v0.6.0
[INFO] [stderr]   Downloaded clap v4.5.50
[INFO] [stderr]   Downloaded wasm-bindgen v0.2.104
[INFO] [stderr]   Downloaded js-sys v0.3.81
[INFO] [stderr]   Downloaded clap_builder v4.5.50
[INFO] [stderr]   Downloaded syn v2.0.87
[INFO] [stderr]   Downloaded web-sys v0.3.81
[INFO] [stderr]   Downloaded libc v0.2.162
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:00c5645b54fe3ce5dae1417175e3c7fb6a6646c021d554ecd63a097b8b9f3602" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] a05f05bd715859ffffcf4333ca07b9e7a4bf6388ca17d7b23755eb60d368aa8d
[INFO] running `Command { std: "docker" "start" "a05f05bd715859ffffcf4333ca07b9e7a4bf6388ca17d7b23755eb60d368aa8d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "a05f05bd715859ffffcf4333ca07b9e7a4bf6388ca17d7b23755eb60d368aa8d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "a05f05bd715859ffffcf4333ca07b9e7a4bf6388ca17d7b23755eb60d368aa8d" "/opt/rustwide/cargo-home/bin/cargo" "+e3d12f3322cb00126b2208c6b9df3ac4467951f5" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "a05f05bd715859ffffcf4333ca07b9e7a4bf6388ca17d7b23755eb60d368aa8d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-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" "-w" "/opt/rustwide/workdir" "--user" "0:0" "a05f05bd715859ffffcf4333ca07b9e7a4bf6388ca17d7b23755eb60d368aa8d" "/opt/rustwide/cargo-home/bin/cargo" "+e3d12f3322cb00126b2208c6b9df3ac4467951f5" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.89
[INFO] [stderr]    Compiling unicode-ident v1.0.13
[INFO] [stderr]    Compiling libc v0.2.162
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling zerocopy v0.8.27
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]     Checking memchr v2.7.6
[INFO] [stderr]     Checking plotters-backend v0.3.7
[INFO] [stderr]     Checking ciborium-io v0.2.2
[INFO] [stderr]     Checking regex-automata v0.4.13
[INFO] [stderr]     Checking clap_builder v4.5.50
[INFO] [stderr]     Checking cast v0.3.0
[INFO] [stderr]    Compiling thiserror v2.0.17
[INFO] [stderr]     Checking rayon v1.11.0
[INFO] [stderr]     Checking anes v0.1.6
[INFO] [stderr]     Checking criterion-plot v0.6.0
[INFO] [stderr]     Checking oorandom v11.1.5
[INFO] [stderr]     Checking plotters-svg v0.3.7
[INFO] [stderr]    Compiling quote v1.0.37
[INFO] [stderr]     Checking plotters v0.3.7
[INFO] [stderr]    Compiling syn v2.0.87
[INFO] [stderr]     Checking regex v1.12.2
[INFO] [stderr]     Checking rand_core v0.9.3
[INFO] [stderr]     Checking clap v4.5.50
[INFO] [stderr]     Checking rand_pcg v0.9.0
[INFO] [stderr]     Checking serde_json v1.0.145
[INFO] [stderr]    Compiling zerocopy-derive v0.8.27
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling zerocopy-derive v0.7.35
[INFO] [stderr]    Compiling thiserror-impl v2.0.17
[INFO] [stderr]     Checking zerocopy v0.7.35
[INFO] [stderr]     Checking ppv-lite86 v0.2.20
[INFO] [stderr]     Checking rand_chacha v0.9.0
[INFO] [stderr]     Checking rand v0.9.2
[INFO] [stderr]     Checking tinytemplate v1.2.1
[INFO] [stderr]     Checking half v2.7.1
[INFO] [stderr]     Checking ciborium-ll v0.2.2
[INFO] [stderr]     Checking ciborium v0.2.2
[INFO] [stderr]     Checking criterion v0.7.0
[INFO] [stderr]     Checking sdms_lab_1 v0.2.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `PageID` and `SlotID`
[INFO] [stdout]  --> src/kwaymerge/kwmerge.rs:2:13
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::{PageID, RecordID, SlotID};
[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::iter::zip`
[INFO] [stdout]  --> src/kwaymerge/kwmerge.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::iter::zip;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::Value`
[INFO] [stdout]  --> src/operator/join/join_impl.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::Value;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `PageID` and `SlotID`
[INFO] [stdout]  --> src/kwaymerge/kwmerge.rs:2:13
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::{PageID, RecordID, SlotID};
[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::iter::zip`
[INFO] [stdout]  --> src/kwaymerge/kwmerge.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::iter::zip;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `KwayPage` and `kwmerge`
[INFO] [stdout]  --> src/kwaymerge/advanced_tests_kwmerge.rs:5:28
[INFO] [stdout]   |
[INFO] [stdout] 5 |     use crate::kwaymerge::{KwayPage, kwmerge};
[INFO] [stdout]   |                            ^^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::kwaymerge::basic_tests_kwmerge::*`
[INFO] [stdout]  --> src/kwaymerge/advanced_tests_kwmerge.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 |     use crate::kwaymerge::basic_tests_kwmerge::*;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `PageID`, `RecordID`, and `SlotID`
[INFO] [stdout]  --> src/kwaymerge/advanced_tests_kwmerge.rs:8:17
[INFO] [stdout]   |
[INFO] [stdout] 8 |     use crate::{PageID, RecordID, SlotID};
[INFO] [stdout]   |                 ^^^^^^  ^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::Value`
[INFO] [stdout]  --> src/operator/join/join_impl.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::Value;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::operator::join::join_impl::*`
[INFO] [stdout]  --> src/operator/join/advanced_tests_join.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 |     use crate::operator::join::join_impl::*;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::operator::sort::sort_impl::*`
[INFO] [stdout]  --> src/operator/sort/advanced_tests_sort.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 |     use crate::operator::sort::sort_impl::*;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::operator::table_scan::table_scan_impl::*`
[INFO] [stdout]  --> src/operator/table_scan/advanced_tests_table_scan.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 |     use crate::operator::table_scan::table_scan_impl::*;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `cell::RefCell` and `rc::Rc`
[INFO] [stdout]  --> src/operator/table_scan/advanced_tests_table_scan.rs:6:15
[INFO] [stdout]   |
[INFO] [stdout] 6 |     use std::{cell::RefCell, rc::Rc};
[INFO] [stdout]   |               ^^^^^^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `buffer`
[INFO] [stdout]   --> src/index/btree.rs:41:26
[INFO] [stdout]    |
[INFO] [stdout] 41 |     pub fn lookup(&self, buffer: &Vec<Page>, key: i32) -> Option<RecordID> {
[INFO] [stdout]    |                          ^^^^^^ help: if this is intentional, prefix it with an underscore: `_buffer`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]   --> src/index/btree.rs:41:46
[INFO] [stdout]    |
[INFO] [stdout] 41 |     pub fn lookup(&self, buffer: &Vec<Page>, key: i32) -> Option<RecordID> {
[INFO] [stdout]    |                                              ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `buffer`
[INFO] [stdout]   --> src/index/btree.rs:64:32
[INFO] [stdout]    |
[INFO] [stdout] 64 |     pub fn range_lookup(&self, buffer: &Vec<Page>, range: (i32, i32)) -> Vec<RecordID> {
[INFO] [stdout]    |                                ^^^^^^ help: if this is intentional, prefix it with an underscore: `_buffer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `range`
[INFO] [stdout]   --> src/index/btree.rs:64:52
[INFO] [stdout]    |
[INFO] [stdout] 64 |     pub fn range_lookup(&self, buffer: &Vec<Page>, range: (i32, i32)) -> Vec<RecordID> {
[INFO] [stdout]    |                                                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_range`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `buffer`
[INFO] [stdout]   --> src/index/btree.rs:87:30
[INFO] [stdout]    |
[INFO] [stdout] 87 |     pub fn insert(&mut self, buffer: &mut Vec<Page>, key: i32, rid: RecordID) {
[INFO] [stdout]    |                              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_buffer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]   --> src/index/btree.rs:87:54
[INFO] [stdout]    |
[INFO] [stdout] 87 |     pub fn insert(&mut self, buffer: &mut Vec<Page>, key: i32, rid: RecordID) {
[INFO] [stdout]    |                                                      ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rid`
[INFO] [stdout]   --> src/index/btree.rs:87:64
[INFO] [stdout]    |
[INFO] [stdout] 87 |     pub fn insert(&mut self, buffer: &mut Vec<Page>, key: i32, rid: RecordID) {
[INFO] [stdout]    |                                                                ^^^ help: if this is intentional, prefix it with an underscore: `_rid`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/kwaymerge/kwmerge.rs:65:9
[INFO] [stdout]    |
[INFO] [stdout] 65 |     let mut pages_to_merge: Vec<Option<usize>> = vec![];
[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: `output_pages`
[INFO] [stdout]   --> src/kwaymerge/kwmerge.rs:23:49
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub fn sort(k: usize, input_pages: &[KwayPage], output_pages: &mut [KwayPage]) {
[INFO] [stdout]    |                                                 ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_output_pages`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stepsize`
[INFO] [stdout]   --> src/kwaymerge/kwmerge.rs:54:9
[INFO] [stdout]    |
[INFO] [stdout] 54 |     let stepsize = input_pages.len() / k;
[INFO] [stdout]    |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_stepsize`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pages_to_merge`
[INFO] [stdout]   --> src/kwaymerge/kwmerge.rs:65:9
[INFO] [stdout]    |
[INFO] [stdout] 65 |     let mut pages_to_merge: Vec<Option<usize>> = vec![];
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pages_to_merge`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/kwaymerge/kwmerge.rs:139:5
[INFO] [stdout]     |
[INFO] [stdout] 139 |     mut stepsize: usize,
[INFO] [stdout]     |     ----^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/kwaymerge/kwmerge.rs:144:9
[INFO] [stdout]     |
[INFO] [stdout] 144 |     let mut states_at_finalizing: Vec<RecordID> = vec![];
[INFO] [stdout]     |         ----^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/kwaymerge/kwmerge.rs:153:9
[INFO] [stdout]     |
[INFO] [stdout] 153 |     let mut curr_slots = vec![0; k];
[INFO] [stdout]     |         ----^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/kwaymerge/kwmerge.rs:156:9
[INFO] [stdout]     |
[INFO] [stdout] 156 |     let mut outpage_idx: usize = 0;
[INFO] [stdout]     |         ----^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stepsize`
[INFO] [stdout]    --> src/kwaymerge/kwmerge.rs:139:5
[INFO] [stdout]     |
[INFO] [stdout] 139 |     mut stepsize: usize,
[INFO] [stdout]     |     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_stepsize`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input_pages`
[INFO] [stdout]    --> src/kwaymerge/kwmerge.rs:140:5
[INFO] [stdout]     |
[INFO] [stdout] 140 |     input_pages: &[KwayPage],
[INFO] [stdout]     |     ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_input_pages`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output_pages`
[INFO] [stdout]    --> src/kwaymerge/kwmerge.rs:141:5
[INFO] [stdout]     |
[INFO] [stdout] 141 |     output_pages: &mut [KwayPage],
[INFO] [stdout]     |     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_output_pages`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `states_at_finalizing`
[INFO] [stdout]    --> src/kwaymerge/kwmerge.rs:144:9
[INFO] [stdout]     |
[INFO] [stdout] 144 |     let mut states_at_finalizing: Vec<RecordID> = vec![];
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_states_at_finalizing`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `curr_slots`
[INFO] [stdout]    --> src/kwaymerge/kwmerge.rs:153:9
[INFO] [stdout]     |
[INFO] [stdout] 153 |     let mut curr_slots = vec![0; k];
[INFO] [stdout]     |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_curr_slots`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `outpage_idx`
[INFO] [stdout]    --> src/kwaymerge/kwmerge.rs:156:9
[INFO] [stdout]     |
[INFO] [stdout] 156 |     let mut outpage_idx: usize = 0;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_outpage_idx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `left_child`
[INFO] [stdout]   --> src/operator/join/join_impl.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 19 |         left_child: Box<dyn Operator>,
[INFO] [stdout]    |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_left_child`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `right_child`
[INFO] [stdout]   --> src/operator/join/join_impl.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 20 |         right_child: Box<dyn Operator>,
[INFO] [stdout]    |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_right_child`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `left_join_key`
[INFO] [stdout]   --> src/operator/join/join_impl.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 21 |         left_join_key: usize,
[INFO] [stdout]    |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_left_join_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `right_join_key`
[INFO] [stdout]   --> src/operator/join/join_impl.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 22 |         right_join_key: usize,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_right_join_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `child`
[INFO] [stdout]   --> src/operator/sort/sort_impl.rs:12:16
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub fn new(child: Box<dyn Operator>, cmp: fn(&Record, &Record) -> Ordering) -> Self {
[INFO] [stdout]    |                ^^^^^ help: if this is intentional, prefix it with an underscore: `_child`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cmp`
[INFO] [stdout]   --> src/operator/sort/sort_impl.rs:12:42
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub fn new(child: Box<dyn Operator>, cmp: fn(&Record, &Record) -> Ordering) -> Self {
[INFO] [stdout]    |                                          ^^^ help: if this is intentional, prefix it with an underscore: `_cmp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `table`
[INFO] [stdout]   --> src/operator/table_scan/table_scan_impl.rs:13:16
[INFO] [stdout]    |
[INFO] [stdout] 13 |     pub fn new(table: Rc<dyn Table>, buffer: Rc<RefCell<dyn BufferPool>>) -> Self {
[INFO] [stdout]    |                ^^^^^ help: if this is intentional, prefix it with an underscore: `_table`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `buffer`
[INFO] [stdout]   --> src/operator/table_scan/table_scan_impl.rs:13:38
[INFO] [stdout]    |
[INFO] [stdout] 13 |     pub fn new(table: Rc<dyn Table>, buffer: Rc<RefCell<dyn BufferPool>>) -> Self {
[INFO] [stdout]    |                                      ^^^^^^ help: if this is intentional, prefix it with an underscore: `_buffer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `key` and `value` are never read
[INFO] [stdout]   --> src/index/mod.rs:9:5
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub struct BTreeRecord<ValueType> {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout]  9 |     key: i32,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 10 |     value: ValueType,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `BTreeRecord` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `left` and `right` are never read
[INFO] [stdout]   --> src/index/mod.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct BTreeHeader {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout] 17 |     left: Option<PageID>,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 18 |     right: Option<PageID>,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `BTreeHeader` 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 `root_page` is never read
[INFO] [stdout]   --> src/index/mod.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub struct UniqueBPlusTree {
[INFO] [stdout]    |            --------------- field in this struct
[INFO] [stdout] 25 |     root_page: PageID,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `insert` is never used
[INFO] [stdout]   --> src/index/mod.rs:54:8
[INFO] [stdout]    |
[INFO] [stdout] 50 | impl<ValueType: Copy, HeaderType, const CAP: usize> GenericBTreePage<ValueType, HeaderType, CAP> {
[INFO] [stdout]    | ------------------------------------------------------------------------------------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 54 |     fn insert(&mut self, record: BTreeRecord<ValueType>, slot: usize) -> Result<(), DatabaseError> {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `left_child`, `left_join_key`, `right_child`, and `right_join_key` are never read
[INFO] [stdout]   --> src/operator/join/join_impl.rs:8:5
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub struct EquiHashJoin {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout]  8 |     left_child: Box<dyn Operator>,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]  9 |     /// The column index of the join key in the left child output.
[INFO] [stdout] 10 |     left_join_key: usize,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 11 |     right_child: Box<dyn Operator>,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 12 |     /// The column index of the join key in the right child output.
[INFO] [stdout] 13 |     right_join_key: usize,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `child` and `cmp` are never read
[INFO] [stdout]  --> src/operator/sort/sort_impl.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct Sort {
[INFO] [stdout]   |            ---- fields in this struct
[INFO] [stdout] 7 |     child: Box<dyn Operator>,
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 8 |     cmp: fn(&Record, &Record) -> Ordering,
[INFO] [stdout]   |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `table` and `buffer` are never read
[INFO] [stdout]  --> src/operator/table_scan/table_scan_impl.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct TableScan {
[INFO] [stdout]   |            --------- fields in this struct
[INFO] [stdout] 8 |     table: Rc<dyn Table>,
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 9 |     buffer: Rc<RefCell<dyn BufferPool>>,
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `buffer`
[INFO] [stdout]   --> src/index/btree.rs:41:26
[INFO] [stdout]    |
[INFO] [stdout] 41 |     pub fn lookup(&self, buffer: &Vec<Page>, key: i32) -> Option<RecordID> {
[INFO] [stdout]    |                          ^^^^^^ help: if this is intentional, prefix it with an underscore: `_buffer`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]   --> src/index/btree.rs:41:46
[INFO] [stdout]    |
[INFO] [stdout] 41 |     pub fn lookup(&self, buffer: &Vec<Page>, key: i32) -> Option<RecordID> {
[INFO] [stdout]    |                                              ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `buffer`
[INFO] [stdout]   --> src/index/btree.rs:64:32
[INFO] [stdout]    |
[INFO] [stdout] 64 |     pub fn range_lookup(&self, buffer: &Vec<Page>, range: (i32, i32)) -> Vec<RecordID> {
[INFO] [stdout]    |                                ^^^^^^ help: if this is intentional, prefix it with an underscore: `_buffer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `range`
[INFO] [stdout]   --> src/index/btree.rs:64:52
[INFO] [stdout]    |
[INFO] [stdout] 64 |     pub fn range_lookup(&self, buffer: &Vec<Page>, range: (i32, i32)) -> Vec<RecordID> {
[INFO] [stdout]    |                                                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_range`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `buffer`
[INFO] [stdout]   --> src/index/btree.rs:87:30
[INFO] [stdout]    |
[INFO] [stdout] 87 |     pub fn insert(&mut self, buffer: &mut Vec<Page>, key: i32, rid: RecordID) {
[INFO] [stdout]    |                              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_buffer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]   --> src/index/btree.rs:87:54
[INFO] [stdout]    |
[INFO] [stdout] 87 |     pub fn insert(&mut self, buffer: &mut Vec<Page>, key: i32, rid: RecordID) {
[INFO] [stdout]    |                                                      ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rid`
[INFO] [stdout]   --> src/index/btree.rs:87:64
[INFO] [stdout]    |
[INFO] [stdout] 87 |     pub fn insert(&mut self, buffer: &mut Vec<Page>, key: i32, rid: RecordID) {
[INFO] [stdout]    |                                                                ^^^ help: if this is intentional, prefix it with an underscore: `_rid`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/kwaymerge/kwmerge.rs:65:9
[INFO] [stdout]    |
[INFO] [stdout] 65 |     let mut pages_to_merge: Vec<Option<usize>> = vec![];
[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: `output_pages`
[INFO] [stdout]   --> src/kwaymerge/kwmerge.rs:23:49
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub fn sort(k: usize, input_pages: &[KwayPage], output_pages: &mut [KwayPage]) {
[INFO] [stdout]    |                                                 ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_output_pages`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stepsize`
[INFO] [stdout]   --> src/kwaymerge/kwmerge.rs:54:9
[INFO] [stdout]    |
[INFO] [stdout] 54 |     let stepsize = input_pages.len() / k;
[INFO] [stdout]    |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_stepsize`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pages_to_merge`
[INFO] [stdout]   --> src/kwaymerge/kwmerge.rs:65:9
[INFO] [stdout]    |
[INFO] [stdout] 65 |     let mut pages_to_merge: Vec<Option<usize>> = vec![];
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pages_to_merge`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/kwaymerge/kwmerge.rs:139:5
[INFO] [stdout]     |
[INFO] [stdout] 139 |     mut stepsize: usize,
[INFO] [stdout]     |     ----^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/kwaymerge/kwmerge.rs:144:9
[INFO] [stdout]     |
[INFO] [stdout] 144 |     let mut states_at_finalizing: Vec<RecordID> = vec![];
[INFO] [stdout]     |         ----^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/kwaymerge/kwmerge.rs:153:9
[INFO] [stdout]     |
[INFO] [stdout] 153 |     let mut curr_slots = vec![0; k];
[INFO] [stdout]     |         ----^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/kwaymerge/kwmerge.rs:156:9
[INFO] [stdout]     |
[INFO] [stdout] 156 |     let mut outpage_idx: usize = 0;
[INFO] [stdout]     |         ----^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stepsize`
[INFO] [stdout]    --> src/kwaymerge/kwmerge.rs:139:5
[INFO] [stdout]     |
[INFO] [stdout] 139 |     mut stepsize: usize,
[INFO] [stdout]     |     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_stepsize`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input_pages`
[INFO] [stdout]    --> src/kwaymerge/kwmerge.rs:140:5
[INFO] [stdout]     |
[INFO] [stdout] 140 |     input_pages: &[KwayPage],
[INFO] [stdout]     |     ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_input_pages`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output_pages`
[INFO] [stdout]    --> src/kwaymerge/kwmerge.rs:141:5
[INFO] [stdout]     |
[INFO] [stdout] 141 |     output_pages: &mut [KwayPage],
[INFO] [stdout]     |     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_output_pages`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `states_at_finalizing`
[INFO] [stdout]    --> src/kwaymerge/kwmerge.rs:144:9
[INFO] [stdout]     |
[INFO] [stdout] 144 |     let mut states_at_finalizing: Vec<RecordID> = vec![];
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_states_at_finalizing`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `curr_slots`
[INFO] [stdout]    --> src/kwaymerge/kwmerge.rs:153:9
[INFO] [stdout]     |
[INFO] [stdout] 153 |     let mut curr_slots = vec![0; k];
[INFO] [stdout]     |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_curr_slots`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `outpage_idx`
[INFO] [stdout]    --> src/kwaymerge/kwmerge.rs:156:9
[INFO] [stdout]     |
[INFO] [stdout] 156 |     let mut outpage_idx: usize = 0;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_outpage_idx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `left_child`
[INFO] [stdout]   --> src/operator/join/join_impl.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 19 |         left_child: Box<dyn Operator>,
[INFO] [stdout]    |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_left_child`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `right_child`
[INFO] [stdout]   --> src/operator/join/join_impl.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 20 |         right_child: Box<dyn Operator>,
[INFO] [stdout]    |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_right_child`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `left_join_key`
[INFO] [stdout]   --> src/operator/join/join_impl.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 21 |         left_join_key: usize,
[INFO] [stdout]    |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_left_join_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `right_join_key`
[INFO] [stdout]   --> src/operator/join/join_impl.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 22 |         right_join_key: usize,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_right_join_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `child`
[INFO] [stdout]   --> src/operator/sort/sort_impl.rs:12:16
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub fn new(child: Box<dyn Operator>, cmp: fn(&Record, &Record) -> Ordering) -> Self {
[INFO] [stdout]    |                ^^^^^ help: if this is intentional, prefix it with an underscore: `_child`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cmp`
[INFO] [stdout]   --> src/operator/sort/sort_impl.rs:12:42
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub fn new(child: Box<dyn Operator>, cmp: fn(&Record, &Record) -> Ordering) -> Self {
[INFO] [stdout]    |                                          ^^^ help: if this is intentional, prefix it with an underscore: `_cmp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `table`
[INFO] [stdout]   --> src/operator/table_scan/table_scan_impl.rs:13:16
[INFO] [stdout]    |
[INFO] [stdout] 13 |     pub fn new(table: Rc<dyn Table>, buffer: Rc<RefCell<dyn BufferPool>>) -> Self {
[INFO] [stdout]    |                ^^^^^ help: if this is intentional, prefix it with an underscore: `_table`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `buffer`
[INFO] [stdout]   --> src/operator/table_scan/table_scan_impl.rs:13:38
[INFO] [stdout]    |
[INFO] [stdout] 13 |     pub fn new(table: Rc<dyn Table>, buffer: Rc<RefCell<dyn BufferPool>>) -> Self {
[INFO] [stdout]    |                                      ^^^^^^ help: if this is intentional, prefix it with an underscore: `_buffer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `key` and `value` are never read
[INFO] [stdout]   --> src/index/mod.rs:9:5
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub struct BTreeRecord<ValueType> {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout]  9 |     key: i32,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 10 |     value: ValueType,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `BTreeRecord` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `left` and `right` are never read
[INFO] [stdout]   --> src/index/mod.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct BTreeHeader {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout] 17 |     left: Option<PageID>,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 18 |     right: Option<PageID>,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `BTreeHeader` 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 `root_page` is never read
[INFO] [stdout]   --> src/index/mod.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub struct UniqueBPlusTree {
[INFO] [stdout]    |            --------------- field in this struct
[INFO] [stdout] 25 |     root_page: PageID,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `insert` is never used
[INFO] [stdout]   --> src/index/mod.rs:54:8
[INFO] [stdout]    |
[INFO] [stdout] 50 | impl<ValueType: Copy, HeaderType, const CAP: usize> GenericBTreePage<ValueType, HeaderType, CAP> {
[INFO] [stdout]    | ------------------------------------------------------------------------------------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 54 |     fn insert(&mut self, record: BTreeRecord<ValueType>, slot: usize) -> Result<(), DatabaseError> {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `left_child`, `left_join_key`, `right_child`, and `right_join_key` are never read
[INFO] [stdout]   --> src/operator/join/join_impl.rs:8:5
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub struct EquiHashJoin {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout]  8 |     left_child: Box<dyn Operator>,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]  9 |     /// The column index of the join key in the left child output.
[INFO] [stdout] 10 |     left_join_key: usize,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 11 |     right_child: Box<dyn Operator>,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 12 |     /// The column index of the join key in the right child output.
[INFO] [stdout] 13 |     right_join_key: usize,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `child` and `cmp` are never read
[INFO] [stdout]  --> src/operator/sort/sort_impl.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct Sort {
[INFO] [stdout]   |            ---- fields in this struct
[INFO] [stdout] 7 |     child: Box<dyn Operator>,
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 8 |     cmp: fn(&Record, &Record) -> Ordering,
[INFO] [stdout]   |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `table` and `buffer` are never read
[INFO] [stdout]  --> src/operator/table_scan/table_scan_impl.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct TableScan {
[INFO] [stdout]   |            --------- fields in this struct
[INFO] [stdout] 8 |     table: Rc<dyn Table>,
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 9 |     buffer: Rc<RefCell<dyn BufferPool>>,
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 8.47s
[INFO] running `Command { std: "docker" "inspect" "a05f05bd715859ffffcf4333ca07b9e7a4bf6388ca17d7b23755eb60d368aa8d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a05f05bd715859ffffcf4333ca07b9e7a4bf6388ca17d7b23755eb60d368aa8d", kill_on_drop: false }`
[INFO] [stdout] a05f05bd715859ffffcf4333ca07b9e7a4bf6388ca17d7b23755eb60d368aa8d
