[INFO] cloning repository https://github.com/krishnarg04/OxideDB
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/krishnarg04/OxideDB" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkrishnarg04%2FOxideDB", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkrishnarg04%2FOxideDB'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 375e444aa70f0f1f946dfdec86cff01eb388be00
[INFO] testing krishnarg04/OxideDB against master#733b47ea4b1b86216f14ef56e49440c33933f230+rustflags=-Copt-level=3 for pr-138759-retry
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkrishnarg04%2FOxideDB" "/workspace/builds/worker-4-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/krishnarg04/OxideDB
[INFO] finished tweaking git repo https://github.com/krishnarg04/OxideDB
[INFO] tweaked toml for git repo https://github.com/krishnarg04/OxideDB written to /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/krishnarg04/OxideDB on toolchain 733b47ea4b1b86216f14ef56e49440c33933f230
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+733b47ea4b1b86216f14ef56e49440c33933f230" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/krishnarg04/OxideDB 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" "+733b47ea4b1b86216f14ef56e49440c33933f230" "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] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+733b47ea4b1b86216f14ef56e49440c33933f230" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] f5542020873da1ee2a5073d6a905a2daa9fa67c35d4f27e2d4bdd23b97149d30
[INFO] running `Command { std: "docker" "start" "-a" "f5542020873da1ee2a5073d6a905a2daa9fa67c35d4f27e2d4bdd23b97149d30", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "f5542020873da1ee2a5073d6a905a2daa9fa67c35d4f27e2d4bdd23b97149d30", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f5542020873da1ee2a5073d6a905a2daa9fa67c35d4f27e2d4bdd23b97149d30", kill_on_drop: false }`
[INFO] [stdout] f5542020873da1ee2a5073d6a905a2daa9fa67c35d4f27e2d4bdd23b97149d30
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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 -Copt-level=3" "-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+733b47ea4b1b86216f14ef56e49440c33933f230" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] c9951f548bba4e159b983985c79d354510076af074d93db32bdb00fe489f745b
[INFO] running `Command { std: "docker" "start" "-a" "c9951f548bba4e159b983985c79d354510076af074d93db32bdb00fe489f745b", kill_on_drop: false }`
[INFO] [stderr]    Compiling OxideDB v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: type `data` should have an upper camel case name
[INFO] [stdout]  --> src/BTree.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct data {
[INFO] [stdout]   |            ^^^^ help: convert the identifier to upper camel case: `Data`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(non_camel_case_types)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `row_array` should have an upper camel case name
[INFO] [stdout]   --> src/MetaEnum.rs:35:12
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub struct row_array {
[INFO] [stdout]    |            ^^^^^^^^^ help: convert the identifier to upper camel case: `RowArray`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `MetaEnum`
[INFO] [stdout]  --> src/FileWriter.rs:2:13
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::{MetaEnum, RowData::RawData, TableMetaHandler};
[INFO] [stdout]   |             ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `File_Handler` should have an upper camel case name
[INFO] [stdout]  --> src/FileWriter.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct File_Handler{
[INFO] [stdout]   |            ^^^^^^^^^^^^ help: convert the identifier to upper camel case: `FileHandler`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `SeekFrom` and `Seek`
[INFO] [stdout]  --> src/TableMetaHandler.rs:3:50
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::io::{BufReader, BufWriter, Read, Write, Seek, SeekFrom};
[INFO] [stdout]   |                                                  ^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/TableCreationHandler.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `TableMetaHandler`
[INFO] [stdout]  --> src/TableCreationHandler.rs:3:44
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::TableMetaHandler::{meta_config, TableMetaHandler};
[INFO] [stdout]   |                                            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `TableMetaHandler`
[INFO] [stdout]  --> src/TableQueryHandler.rs:6:44
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::TableMetaHandler::{meta_config, TableMetaHandler};
[INFO] [stdout]   |                                            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `save_btree_manually`
[INFO] [stdout]  --> src/TableQueryHandler.rs:7:49
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::BTreePersistence::{BTreePersistence, save_btree_manually};
[INFO] [stdout]   |                                                 ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `data` should have an upper camel case name
[INFO] [stdout]  --> src/BPlusTree.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct data {
[INFO] [stdout]   |            ^^^^ help: convert the identifier to upper camel case: `Data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `data` should have an upper camel case name
[INFO] [stdout]  --> src/UniversalKey.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct data {
[INFO] [stdout]   |            ^^^^ help: convert the identifier to upper camel case: `Data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Key`
[INFO] [stdout]  --> src/TableBTreeManager.rs:4:27
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::UniversalKey::{Key, data, IntKey, StringKey, BigIntKey, DoubleKey};
[INFO] [stdout]   |                           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/BTree.rs:54:30
[INFO] [stdout]    |
[INFO] [stdout] 54 |     pub fn insert(&mut self, mut node: Option<Box<Key>>) {
[INFO] [stdout]    |                              ----^^^^
[INFO] [stdout]    |                              |
[INFO] [stdout]    |                              help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/BTree.rs:89:32
[INFO] [stdout]    |
[INFO] [stdout] 89 |     fn _insert_rec( &mut self, mut current: &mut Box<Node>, mut value : Box<Key>) {
[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/BTree.rs:89:61
[INFO] [stdout]    |
[INFO] [stdout] 89 |     fn _insert_rec( &mut self, mut current: &mut Box<Node>, mut value : Box<Key>) {
[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/BTree.rs:122:21
[INFO] [stdout]     |
[INFO] [stdout] 122 |                 let mut value = self.node_stack.pop().unwrap().unwrap();
[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/BTree.rs:131:31
[INFO] [stdout]     |
[INFO] [stdout] 131 |     fn add_element(&mut self, mut current: &mut Box<Node>, mut value: Box<Key>) {
[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/BTree.rs:131:60
[INFO] [stdout]     |
[INFO] [stdout] 131 |     fn add_element(&mut self, mut current: &mut Box<Node>, mut value: Box<Key>) {
[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/BTree.rs:139:30
[INFO] [stdout]     |
[INFO] [stdout] 139 |     fn split_node(&mut self, mut current: &mut Box<Node>, mut value: Box<Key>) {
[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/BTree.rs:139:59
[INFO] [stdout]     |
[INFO] [stdout] 139 |     fn split_node(&mut self, mut current: &mut Box<Node>, mut value: Box<Key>) {
[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/BTree.rs:146:13
[INFO] [stdout]     |
[INFO] [stdout] 146 |         let mut left_node = Box::new(Node {
[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/BTree.rs:154:13
[INFO] [stdout]     |
[INFO] [stdout] 154 |         let mut right_node = Box::new(Node {
[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/BTree.rs:160:13
[INFO] [stdout]     |
[INFO] [stdout] 160 |         let mut new_value = new_Vec.get(mid_pos).unwrap().clone();
[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/BTree.rs:167:31
[INFO] [stdout]     |
[INFO] [stdout] 167 |     fn copy_values(&mut self, mut current: &mut Box<Node>, new_values : Vec<Box<Key>>) {
[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/BTree.rs:176:35
[INFO] [stdout]     |
[INFO] [stdout] 176 |     fn add_new_element(&mut self, mut current: &mut Box<Node>, mut value: Box<Key>){
[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/BTree.rs:176:64
[INFO] [stdout]     |
[INFO] [stdout] 176 |     fn add_new_element(&mut self, mut current: &mut Box<Node>, mut value: Box<Key>){
[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/BTree.rs:182:27
[INFO] [stdout]     |
[INFO] [stdout] 182 |     pub fn _binary_search(mut current: & Box<Node>, target: i32) -> 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/BTree.rs:198:30
[INFO] [stdout]     |
[INFO] [stdout] 198 |     fn copy_point(&mut self, mut current: &mut Box<Node>,  right: Box<Node>, left: Box<Node>) {
[INFO] [stdout]     |                              ----^^^^^^^
[INFO] [stdout]     |                              |
[INFO] [stdout]     |                              help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]    --> src/RowData.rs:129:30
[INFO] [stdout]     |
[INFO] [stdout] 129 |             MetaEnum::STRING(s) => {
[INFO] [stdout]     |                              ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/TableMetaHandler.rs:108:17
[INFO] [stdout]     |
[INFO] [stdout] 108 |             let mut file = OpenOptions::new().read(true).open(file_path)?;
[INFO] [stdout]     |                 ----^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data_length`
[INFO] [stdout]    --> src/TableMetaHandler.rs:171:17
[INFO] [stdout]     |
[INFO] [stdout] 171 |             let data_length = i32::from_le_bytes(length_bytes);
[INFO] [stdout]     |                 ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_data_length`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/TableMetaHandler.rs:154:13
[INFO] [stdout]     |
[INFO] [stdout] 154 |         let mut file = OpenOptions::new()
[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/TableMetaHandler.rs:233:13
[INFO] [stdout]     |
[INFO] [stdout] 233 |         let mut file = OpenOptions::new()
[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/TableMetaHandler.rs:310:13
[INFO] [stdout]     |
[INFO] [stdout] 310 |         let mut file = OpenOptions::new()
[INFO] [stdout]     |             ----^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `table_id`
[INFO] [stdout]    --> src/TableCreationHandler.rs:196:37
[INFO] [stdout]     |
[INFO] [stdout] 196 |     pub fn get_table_columns(&self, table_id: i32) -> Result<Vec<TableColumn>, String> {
[INFO] [stdout]     |                                     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_table_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/BPlusTree.rs:244:13
[INFO] [stdout]     |
[INFO] [stdout] 244 |         let mut node = current.borrow_mut();
[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/UniversalBPlusTree.rs:220:13
[INFO] [stdout]     |
[INFO] [stdout] 220 |         let mut node = current.write().unwrap();
[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/BTreePersistence.rs:55:13
[INFO] [stdout]    |
[INFO] [stdout] 55 |         let mut file = OpenOptions::new()
[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/BTreePersistence.rs:92:13
[INFO] [stdout]    |
[INFO] [stdout] 92 |         let mut file = File::open(&filename)
[INFO] [stdout]    |             ----^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `BTree::Node` is more private than the item `BTree::BTree::_binary_search`
[INFO] [stdout]    --> src/BTree.rs:182:5
[INFO] [stdout]     |
[INFO] [stdout] 182 |     pub fn _binary_search(mut current: & Box<Node>, target: i32) -> usize{
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ associated function `BTree::BTree::_binary_search` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `BTree::Node` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/BTree.rs:30:1
[INFO] [stdout]     |
[INFO] [stdout] 30  | struct Node {
[INFO] [stdout]     | ^^^^^^^^^^^
[INFO] [stdout]     = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `BPlusTree::Node` is more private than the item `BPlusTree::BPlusTree::_binary_search`
[INFO] [stdout]    --> src/BPlusTree.rs:321:5
[INFO] [stdout]     |
[INFO] [stdout] 321 |     pub fn _binary_search(current: &Rc<RefCell<Box<Node>>>, target: i32) -> usize {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ associated function `BPlusTree::BPlusTree::_binary_search` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `BPlusTree::Node` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/BPlusTree.rs:32:1
[INFO] [stdout]     |
[INFO] [stdout] 32  | struct Node {
[INFO] [stdout]     | ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `UniversalBPlusTree::Node<T>` is more private than the item `UniversalBPlusTree::BPlusTree::<T>::_binary_search`
[INFO] [stdout]    --> src/UniversalBPlusTree.rs:283:5
[INFO] [stdout]     |
[INFO] [stdout] 283 |     pub fn _binary_search(current: &Arc<RwLock<Box<Node<T>>>>, target: &T) -> usize {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ associated function `UniversalBPlusTree::BPlusTree::<T>::_binary_search` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `UniversalBPlusTree::Node<T>` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/UniversalBPlusTree.rs:6:1
[INFO] [stdout]     |
[INFO] [stdout] 6   | struct Node<T: Comparable> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PAGE_SIZE` is never used
[INFO] [stdout]   --> src/main.rs:22:7
[INFO] [stdout]    |
[INFO] [stdout] 22 | const PAGE_SIZE: usize = 4096;
[INFO] [stdout]    |       ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_SIZE` is never used
[INFO] [stdout]   --> src/main.rs:23:7
[INFO] [stdout]    |
[INFO] [stdout] 23 | const HEADER_SIZE: usize = 64;
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `data` is never constructed
[INFO] [stdout]  --> src/BTree.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct data {
[INFO] [stdout]   |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]  --> src/BTree.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | impl data {
[INFO] [stdout]   | --------- associated function in this implementation
[INFO] [stdout] 9 |     pub fn new(page_id: i64, offset: i32) -> data {
[INFO] [stdout]   |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Key` is never constructed
[INFO] [stdout]   --> src/BTree.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct Key {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `get_key` are never used
[INFO] [stdout]   --> src/BTree.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl Key {
[INFO] [stdout]    | -------- associated items in this implementation
[INFO] [stdout] 21 |     pub fn new(key: i32, data: Option<Box<data>>) -> Key {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |     fn get_key(&self) -> i32 {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Node` is never constructed
[INFO] [stdout]   --> src/BTree.rs:30:8
[INFO] [stdout]    |
[INFO] [stdout] 30 | struct Node {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_KEYS` is never used
[INFO] [stdout]   --> src/BTree.rs:37:7
[INFO] [stdout]    |
[INFO] [stdout] 37 | const MAX_KEYS: usize = 3;
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BTree` is never constructed
[INFO] [stdout]   --> src/BTree.rs:39:12
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub struct BTree {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/BTree.rs:46:12
[INFO] [stdout]     |
[INFO] [stdout] 45  | impl BTree {
[INFO] [stdout]     | ---------- associated items in this implementation
[INFO] [stdout] 46  |     pub fn new() -> BTree {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 54  |     pub fn insert(&mut self, mut node: Option<Box<Key>>) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 131 |     fn add_element(&mut self, mut current: &mut Box<Node>, mut value: Box<Key>) {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 139 |     fn split_node(&mut self, mut current: &mut Box<Node>, mut value: Box<Key>) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 167 |     fn copy_values(&mut self, mut current: &mut Box<Node>, new_values : Vec<Box<Key>>) {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 176 |     fn add_new_element(&mut self, mut current: &mut Box<Node>, mut value: Box<Key>){
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 198 |     fn copy_point(&mut self, mut current: &mut Box<Node>,  right: Box<Node>, left: Box<Node>) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 208 |     pub fn search_elemnt<'a>(&'a self, key : i32) -> Option<&'a Box<data>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 217 |     fn search_rec<'a>(&'a self, current: &'a Box<Node>, key:i32) -> Option<&'a Box<data>> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `FLOAT` and `BIGINT` are never constructed
[INFO] [stdout]   --> src/MetaEnum.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub enum DataArray {
[INFO] [stdout]    |          --------- variants in this enum
[INFO] [stdout] 28 |     INTEGER(i32),
[INFO] [stdout] 29 |     FLOAT(f32),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 30 |     DOUBLE(f64),
[INFO] [stdout] 31 |     BIGINT(i64),
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `add_meta`, `add_data`, `get_data`, and `get_data_as_string` are never used
[INFO] [stdout]   --> src/MetaEnum.rs:44:12
[INFO] [stdout]    |
[INFO] [stdout] 40 | impl row_array {
[INFO] [stdout]    | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub fn add_meta(&mut self, meta: MetaEnum) {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 51 |     pub fn add_data(&mut self, data: DataArray) {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 59 |     pub fn get_data(&self) -> &Vec<DataArray> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 63 |     pub fn get_data_as_string(&self) -> String {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LRUDict` is never constructed
[INFO] [stdout]  --> src/LruDict.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct LRUDict {
[INFO] [stdout]   |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DoublyLinkedList` is never constructed
[INFO] [stdout]   --> src/LruDict.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | struct DoublyLinkedList {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DoublyLinkedListNode` is never constructed
[INFO] [stdout]   --> src/LruDict.rs:17:8
[INFO] [stdout]    |
[INFO] [stdout] 17 | struct DoublyLinkedListNode {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `push_to_tail`, `unlink_node`, and `move_to_tail` are never used
[INFO] [stdout]   --> src/LruDict.rs:25:8
[INFO] [stdout]    |
[INFO] [stdout] 24 | impl DoublyLinkedList {
[INFO] [stdout]    | --------------------- associated items in this implementation
[INFO] [stdout] 25 |     fn new() -> Self {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 29 |     fn push_to_tail(&mut self, key: i64, value: Box<RawData>) -> Rc<RefCell<DoublyLinkedListNode>> {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 50 |     fn unlink_node(&mut self, node: &Rc<RefCell<DoublyLinkedListNode>>) {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 75 |     fn move_to_tail(&mut self, node: &Rc<RefCell<DoublyLinkedListNode>>) {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `add_element`, `get`, and `remove_lru` are never used
[INFO] [stdout]    --> src/LruDict.rs:93:12
[INFO] [stdout]     |
[INFO] [stdout] 92  | impl LRUDict {
[INFO] [stdout]     | ------------ associated items in this implementation
[INFO] [stdout] 93  |     pub fn new(capacity: usize) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 101 |     pub fn add_element(&mut self, key: i64, value: Box<RawData>) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 115 |     pub fn get(&mut self, key: i64) -> Option<Box<RawData>> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 125 |     fn remove_lru(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `schema_name` is never read
[INFO] [stdout]  --> src/RowData.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct RawData {
[INFO] [stdout]   |            ------- field in this struct
[INFO] [stdout] 9 |     pub schema_name: String,
[INFO] [stdout]   |         ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `RawData` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_row_size` is never used
[INFO] [stdout]    --> src/RowData.rs:144:8
[INFO] [stdout]     |
[INFO] [stdout] 17  | impl RawData {
[INFO] [stdout]     | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 144 |     fn get_row_size(&self) -> usize {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `table_name` and `columns` are never read
[INFO] [stdout]   --> src/TableMetaHandler.rs:60:5
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub struct TableMetadata {
[INFO] [stdout]    |            ------------- fields in this struct
[INFO] [stdout] 59 |     pub(crate) table_id: i32,
[INFO] [stdout] 60 |     table_name: String,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 61 |     columns: Vec<MetaEnum>,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `load_table_schema_meta`, `write_meta_file`, `create_raw_data_for_table`, and `get_table_meta` are never used
[INFO] [stdout]    --> src/TableMetaHandler.rs:73:12
[INFO] [stdout]     |
[INFO] [stdout] 64  | impl TableMetaHandler {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 73  |     pub fn load_table_schema_meta(&mut self) -> Result<(), std::io::Error> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 232 |     pub fn write_meta_file(&self, tables: &[TableMetadata]) -> Result<(), std::io::Error> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 287 |     pub fn create_raw_data_for_table(&self, table_name: &str, page_size: usize, header_size: usize, page_id: u64) -> Option<RawData> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 373 |     pub fn get_table_meta(&self, table_id: i64) -> Option<&Vec<MetaEnum>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_table_columns` is never used
[INFO] [stdout]    --> src/TableCreationHandler.rs:196:12
[INFO] [stdout]     |
[INFO] [stdout] 30  | impl TableCreationHandler {
[INFO] [stdout]     | ------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 196 |     pub fn get_table_columns(&self, table_id: i32) -> Result<Vec<TableColumn>, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_table_handler` is never used
[INFO] [stdout]    --> src/TableCreationHandler.rs:255:8
[INFO] [stdout]     |
[INFO] [stdout] 255 | pub fn create_table_handler() -> TableCreationHandler {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `example_create_table` is never used
[INFO] [stdout]    --> src/TableCreationHandler.rs:260:8
[INFO] [stdout]     |
[INFO] [stdout] 260 | pub fn example_create_table() -> Result<(), String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/TableQueryHandler.rs:211:8
[INFO] [stdout]     |
[INFO] [stdout] 15  | impl TableQueryHandler {
[INFO] [stdout]     | ---------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 211 |     fn get_row_count_after_insert(&self, raw_data: &RawData) -> Result<i32, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 229 |     pub fn batch_insert(
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 244 |     pub fn key_exists(&self, table_name: &str, primary_key: i32) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 252 |     pub fn load_existing_btrees(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 272 |     fn restore_page_info(&mut self, table_name: &str) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 319 |     fn discover_existing_tables(&self) -> Vec<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 351 |     fn is_system_file(&self, table_name: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `size` is never read
[INFO] [stdout]   --> src/BPlusTree.rs:35:5
[INFO] [stdout]    |
[INFO] [stdout] 32 | struct Node {
[INFO] [stdout]    |        ---- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 35 |     size: usize,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Node` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `print_tree` is never used
[INFO] [stdout]    --> src/BPlusTree.rs:371:8
[INFO] [stdout]     |
[INFO] [stdout] 47  | impl BPlusTree {
[INFO] [stdout]     | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 371 |     fn print_tree(&self) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_key`, `is_greater`, `is_greater_equal`, `is_less_equal`, and `compare` are never used
[INFO] [stdout]   --> src/Comparable.rs:6:8
[INFO] [stdout]    |
[INFO] [stdout] 4  | pub trait Comparable: Clone + std::fmt::Debug {
[INFO] [stdout]    |           ---------- methods in this trait
[INFO] [stdout] 5  |     
[INFO] [stdout] 6  |     fn get_key(&self) -> Self;
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 12 |     fn is_greater(&self, other: &Self) -> bool;
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 15 |     fn is_greater_equal(&self, other: &Self) -> bool;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 21 |     fn is_less_equal(&self, other: &Self) -> bool;
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |     fn compare(&self, other: &Self) -> Ordering {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/UniversalKey.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 9  | impl data {
[INFO] [stdout]    | --------- associated function in this implementation
[INFO] [stdout] 10 |     pub fn new(page_id: i64, offset: i32) -> data {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> src/UniversalKey.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | impl<T: Comparable> Key<T> {
[INFO] [stdout]    | -------------------------- associated items in this implementation
[INFO] [stdout] 22 |     pub fn new(key: T, data: Option<Box<data>>) -> Key<T> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 26 |     pub fn get_key(&self) -> &T {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub fn compare(&self, other: &Key<T>) -> std::cmp::Ordering {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |     pub fn equals(&self, other: &Key<T>) -> bool {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub fn is_greater(&self, other: &Key<T>) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 42 |     pub fn is_less(&self, other: &Key<T>) -> bool {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 46 |     pub fn is_greater_equal(&self, other: &Key<T>) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 50 |     pub fn is_less_equal(&self, other: &Key<T>) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `IntKey` is never used
[INFO] [stdout]   --> src/UniversalKey.rs:55:10
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub type IntKey = Key<i32>;
[INFO] [stdout]    |          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `StringKey` is never used
[INFO] [stdout]   --> src/UniversalKey.rs:56:10
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub type StringKey = Key<String>;
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `BigIntKey` is never used
[INFO] [stdout]   --> src/UniversalKey.rs:57:10
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub type BigIntKey = Key<i64>;
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `DoubleKey` is never used
[INFO] [stdout]   --> src/UniversalKey.rs:58:10
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub type DoubleKey = Key<f64>;
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `size` and `next` are never read
[INFO] [stdout]   --> src/UniversalBPlusTree.rs:9:5
[INFO] [stdout]    |
[INFO] [stdout] 6  | struct Node<T: Comparable> {
[INFO] [stdout]    |        ---- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 9  |     size: usize,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 10 |     pointers: Vec<Option<Arc<RwLock<Box<Node<T>>>>>>, 
[INFO] [stdout] 11 |     next: Option<Arc<RwLock<Box<Node<T>>>>>, 
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Node` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_KEYS` is never used
[INFO] [stdout]   --> src/UniversalBPlusTree.rs:15:7
[INFO] [stdout]    |
[INFO] [stdout] 15 | const MAX_KEYS: usize = 3; 
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/UniversalBPlusTree.rs:26:12
[INFO] [stdout]     |
[INFO] [stdout] 21  | impl<T: Comparable + Send + Sync + 'static> BPlusTree<T> {
[INFO] [stdout]     | -------------------------------------------------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 26  |     pub fn insert(&mut self, node: Option<Box<Key<T>>>) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 137 |     fn insert_into_internal(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 167 |     fn add_new_element(&mut self, current: &Arc<RwLock<Box<Node<T>>>>, value: Box<Key<T>>) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 174 |     fn split_leaf(
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 216 |     fn split_internal(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 332 |     pub fn print_tree(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 338 |     fn print_rec(current: &Arc<RwLock<Box<Node<T>>>>, level: i32) {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `insert` is never used
[INFO] [stdout]   --> src/TableBTreeManager.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl TableBTree {
[INFO] [stdout]    | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 27 |     pub fn insert(&mut self, key_value: TableKey, page_id: i64, offset: i32) -> Result<(), String> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `String`, `BigInt`, and `Double` are never constructed
[INFO] [stdout]   --> src/TableBTreeManager.rs:79:5
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub enum TableKey {
[INFO] [stdout]    |          -------- variants in this enum
[INFO] [stdout] 78 |     Int(i32),
[INFO] [stdout] 79 |     String(String),
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 80 |     BigInt(i64),
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 81 |     Double(f64),
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TableKey` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_meta_enum` is never used
[INFO] [stdout]   --> src/TableBTreeManager.rs:86:12
[INFO] [stdout]    |
[INFO] [stdout] 84 | impl TableKey {
[INFO] [stdout]    | ------------- associated function in this implementation
[INFO] [stdout] 85 |     
[INFO] [stdout] 86 |     pub fn from_meta_enum(meta_type: &MetaEnum, value: &[u8]) -> Result<Self, String> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `insert`, `table_exists`, `get_primary_key_type`, and `get_table_ids` are never used
[INFO] [stdout]    --> src/TableBTreeManager.rs:165:12
[INFO] [stdout]     |
[INFO] [stdout] 149 | impl TableBTreeManager {
[INFO] [stdout]     | ---------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 165 |     pub fn insert(&mut self, table_id: i32, key_value: TableKey, page_id: i64, offset: i32) -> Result<(), String> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 181 |     pub fn table_exists(&self, table_id: i32) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 186 |     pub fn get_primary_key_type(&self, table_id: i32) -> Option<&MetaEnum> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 191 |     pub fn get_table_ids(&self) -> Vec<i32> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `insert_into_table` is never used
[INFO] [stdout]    --> src/TableBTreeManager.rs:227:8
[INFO] [stdout]     |
[INFO] [stdout] 227 | pub fn insert_into_table(table_id: i32, key_value: TableKey, page_id: i64, offset: i32) -> Result<(), String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_bytes` is never used
[INFO] [stdout]   --> src/BTreePersistence.rs:23:8
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl SerializedBTreeEntry {
[INFO] [stdout]    | ------------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 23 |     fn from_bytes(bytes: &[u8]) -> Result<Self, String> {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `load_btree` and `load_all_btrees` are never used
[INFO] [stdout]    --> src/BTreePersistence.rs:84:12
[INFO] [stdout]     |
[INFO] [stdout] 46  | impl BTreePersistence {
[INFO] [stdout]     | --------------------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 84  |     pub fn load_btree(table_name: &str) -> Result<BPlusTree, String> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 173 |     pub fn load_all_btrees(table_names: &[String]) -> Result<HashMap<String, BPlusTree>, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `save_btree_manually` is never used
[INFO] [stdout]    --> src/BTreePersistence.rs:186:8
[INFO] [stdout]     |
[INFO] [stdout] 186 | pub fn save_btree_manually(table_name: &str, btree: &BPlusTree) -> Result<(), String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `BTree` should have a snake case name
[INFO] [stdout]  --> src/main.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | mod BTree;
[INFO] [stdout]   |     ^^^^^ help: convert the identifier to snake case: `btree`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `MetaEnum` should have a snake case name
[INFO] [stdout]  --> src/main.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | mod MetaEnum;
[INFO] [stdout]   |     ^^^^^^^^ help: convert the identifier to snake case: `meta_enum`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `LruDict` should have a snake case name
[INFO] [stdout]  --> src/main.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | mod LruDict;
[INFO] [stdout]   |     ^^^^^^^ help: convert the identifier to snake case: `lru_dict`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `RowData` should have a snake case name
[INFO] [stdout]  --> src/main.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | mod RowData;
[INFO] [stdout]   |     ^^^^^^^ help: convert the identifier to snake case: `row_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `FileWriter` should have a snake case name
[INFO] [stdout]  --> src/main.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | mod FileWriter;
[INFO] [stdout]   |     ^^^^^^^^^^ help: convert the identifier to snake case: `file_writer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `TableMetaHandler` should have a snake case name
[INFO] [stdout]  --> src/main.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | mod TableMetaHandler;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `table_meta_handler`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `TableCreationHandler` should have a snake case name
[INFO] [stdout]  --> src/main.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | mod TableCreationHandler;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `table_creation_handler`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `TableQueryHandler` should have a snake case name
[INFO] [stdout]  --> src/main.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | mod TableQueryHandler;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `table_query_handler`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `BPlusTree` should have a snake case name
[INFO] [stdout]  --> src/main.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | mod BPlusTree;
[INFO] [stdout]   |     ^^^^^^^^^ help: convert the identifier to snake case: `bplus_tree`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `Comparable` should have a snake case name
[INFO] [stdout]   --> src/main.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | mod Comparable;
[INFO] [stdout]    |     ^^^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `comparable`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `UniversalKey` should have a snake case name
[INFO] [stdout]   --> src/main.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | mod UniversalKey;
[INFO] [stdout]    |     ^^^^^^^^^^^^ help: convert the identifier to snake case: `universal_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `UniversalBPlusTree` should have a snake case name
[INFO] [stdout]   --> src/main.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | mod UniversalBPlusTree;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `universal_bplus_tree`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `TableBTreeManager` should have a snake case name
[INFO] [stdout]   --> src/main.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | mod TableBTreeManager;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `table_btree_manager`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `BTreePersistence` should have a snake case name
[INFO] [stdout]   --> src/main.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | mod BTreePersistence;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `btree_persistence`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `new_Vec` should have a snake case name
[INFO] [stdout]    --> src/BTree.rs:141:17
[INFO] [stdout]     |
[INFO] [stdout] 141 |         let mut new_Vec : Vec<Box<Key>> = current.keys.to_vec();
[INFO] [stdout]     |                 ^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `new_vec`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static variable `meta_config` should have an upper case name
[INFO] [stdout]   --> src/TableMetaHandler.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub static meta_config: Mutex<Option<TableMetaHandler>> = Mutex::new(None);
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_upper_case_globals)]` on by default
[INFO] [stdout] help: convert the identifier to upper case
[INFO] [stdout]    |
[INFO] [stdout] 14 - pub static meta_config: Mutex<Option<TableMetaHandler>> = Mutex::new(None);
[INFO] [stdout] 14 + pub static META_CONFIG: Mutex<Option<TableMetaHandler>> = Mutex::new(None);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 3.56s
[INFO] running `Command { std: "docker" "inspect" "c9951f548bba4e159b983985c79d354510076af074d93db32bdb00fe489f745b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c9951f548bba4e159b983985c79d354510076af074d93db32bdb00fe489f745b", kill_on_drop: false }`
[INFO] [stdout] c9951f548bba4e159b983985c79d354510076af074d93db32bdb00fe489f745b
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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 -Copt-level=3" "-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+733b47ea4b1b86216f14ef56e49440c33933f230" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 768846a15035d37d3ad2ef39d576a76a7419bfc81624c6869f1d964d0debafc0
[INFO] running `Command { std: "docker" "start" "-a" "768846a15035d37d3ad2ef39d576a76a7419bfc81624c6869f1d964d0debafc0", kill_on_drop: false }`
[INFO] [stderr]    Compiling OxideDB v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: type `data` should have an upper camel case name
[INFO] [stdout]  --> src/BTree.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct data {
[INFO] [stdout]   |            ^^^^ help: convert the identifier to upper camel case: `Data`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(non_camel_case_types)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `row_array` should have an upper camel case name
[INFO] [stdout]   --> src/MetaEnum.rs:35:12
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub struct row_array {
[INFO] [stdout]    |            ^^^^^^^^^ help: convert the identifier to upper camel case: `RowArray`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `MetaEnum`
[INFO] [stdout]  --> src/FileWriter.rs:2:13
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::{MetaEnum, RowData::RawData, TableMetaHandler};
[INFO] [stdout]   |             ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `File_Handler` should have an upper camel case name
[INFO] [stdout]  --> src/FileWriter.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct File_Handler{
[INFO] [stdout]   |            ^^^^^^^^^^^^ help: convert the identifier to upper camel case: `FileHandler`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `SeekFrom` and `Seek`
[INFO] [stdout]  --> src/TableMetaHandler.rs:3:50
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::io::{BufReader, BufWriter, Read, Write, Seek, SeekFrom};
[INFO] [stdout]   |                                                  ^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/TableCreationHandler.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `TableMetaHandler`
[INFO] [stdout]  --> src/TableCreationHandler.rs:3:44
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::TableMetaHandler::{meta_config, TableMetaHandler};
[INFO] [stdout]   |                                            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `TableMetaHandler`
[INFO] [stdout]  --> src/TableQueryHandler.rs:6:44
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::TableMetaHandler::{meta_config, TableMetaHandler};
[INFO] [stdout]   |                                            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `save_btree_manually`
[INFO] [stdout]  --> src/TableQueryHandler.rs:7:49
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::BTreePersistence::{BTreePersistence, save_btree_manually};
[INFO] [stdout]   |                                                 ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `data` should have an upper camel case name
[INFO] [stdout]  --> src/BPlusTree.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct data {
[INFO] [stdout]   |            ^^^^ help: convert the identifier to upper camel case: `Data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `data` should have an upper camel case name
[INFO] [stdout]  --> src/UniversalKey.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct data {
[INFO] [stdout]   |            ^^^^ help: convert the identifier to upper camel case: `Data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Key`
[INFO] [stdout]  --> src/TableBTreeManager.rs:4:27
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::UniversalKey::{Key, data, IntKey, StringKey, BigIntKey, DoubleKey};
[INFO] [stdout]   |                           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/BTree.rs:54:30
[INFO] [stdout]    |
[INFO] [stdout] 54 |     pub fn insert(&mut self, mut node: Option<Box<Key>>) {
[INFO] [stdout]    |                              ----^^^^
[INFO] [stdout]    |                              |
[INFO] [stdout]    |                              help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/BTree.rs:89:32
[INFO] [stdout]    |
[INFO] [stdout] 89 |     fn _insert_rec( &mut self, mut current: &mut Box<Node>, mut value : Box<Key>) {
[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/BTree.rs:89:61
[INFO] [stdout]    |
[INFO] [stdout] 89 |     fn _insert_rec( &mut self, mut current: &mut Box<Node>, mut value : Box<Key>) {
[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/BTree.rs:122:21
[INFO] [stdout]     |
[INFO] [stdout] 122 |                 let mut value = self.node_stack.pop().unwrap().unwrap();
[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/BTree.rs:131:31
[INFO] [stdout]     |
[INFO] [stdout] 131 |     fn add_element(&mut self, mut current: &mut Box<Node>, mut value: Box<Key>) {
[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/BTree.rs:131:60
[INFO] [stdout]     |
[INFO] [stdout] 131 |     fn add_element(&mut self, mut current: &mut Box<Node>, mut value: Box<Key>) {
[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/BTree.rs:139:30
[INFO] [stdout]     |
[INFO] [stdout] 139 |     fn split_node(&mut self, mut current: &mut Box<Node>, mut value: Box<Key>) {
[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/BTree.rs:139:59
[INFO] [stdout]     |
[INFO] [stdout] 139 |     fn split_node(&mut self, mut current: &mut Box<Node>, mut value: Box<Key>) {
[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/BTree.rs:146:13
[INFO] [stdout]     |
[INFO] [stdout] 146 |         let mut left_node = Box::new(Node {
[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/BTree.rs:154:13
[INFO] [stdout]     |
[INFO] [stdout] 154 |         let mut right_node = Box::new(Node {
[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/BTree.rs:160:13
[INFO] [stdout]     |
[INFO] [stdout] 160 |         let mut new_value = new_Vec.get(mid_pos).unwrap().clone();
[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/BTree.rs:167:31
[INFO] [stdout]     |
[INFO] [stdout] 167 |     fn copy_values(&mut self, mut current: &mut Box<Node>, new_values : Vec<Box<Key>>) {
[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/BTree.rs:176:35
[INFO] [stdout]     |
[INFO] [stdout] 176 |     fn add_new_element(&mut self, mut current: &mut Box<Node>, mut value: Box<Key>){
[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/BTree.rs:176:64
[INFO] [stdout]     |
[INFO] [stdout] 176 |     fn add_new_element(&mut self, mut current: &mut Box<Node>, mut value: Box<Key>){
[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/BTree.rs:182:27
[INFO] [stdout]     |
[INFO] [stdout] 182 |     pub fn _binary_search(mut current: & Box<Node>, target: i32) -> 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/BTree.rs:198:30
[INFO] [stdout]     |
[INFO] [stdout] 198 |     fn copy_point(&mut self, mut current: &mut Box<Node>,  right: Box<Node>, left: Box<Node>) {
[INFO] [stdout]     |                              ----^^^^^^^
[INFO] [stdout]     |                              |
[INFO] [stdout]     |                              help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]    --> src/RowData.rs:129:30
[INFO] [stdout]     |
[INFO] [stdout] 129 |             MetaEnum::STRING(s) => {
[INFO] [stdout]     |                              ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/TableMetaHandler.rs:108:17
[INFO] [stdout]     |
[INFO] [stdout] 108 |             let mut file = OpenOptions::new().read(true).open(file_path)?;
[INFO] [stdout]     |                 ----^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data_length`
[INFO] [stdout]    --> src/TableMetaHandler.rs:171:17
[INFO] [stdout]     |
[INFO] [stdout] 171 |             let data_length = i32::from_le_bytes(length_bytes);
[INFO] [stdout]     |                 ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_data_length`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/TableMetaHandler.rs:154:13
[INFO] [stdout]     |
[INFO] [stdout] 154 |         let mut file = OpenOptions::new()
[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/TableMetaHandler.rs:233:13
[INFO] [stdout]     |
[INFO] [stdout] 233 |         let mut file = OpenOptions::new()
[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/TableMetaHandler.rs:310:13
[INFO] [stdout]     |
[INFO] [stdout] 310 |         let mut file = OpenOptions::new()
[INFO] [stdout]     |             ----^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `table_id`
[INFO] [stdout]    --> src/TableCreationHandler.rs:196:37
[INFO] [stdout]     |
[INFO] [stdout] 196 |     pub fn get_table_columns(&self, table_id: i32) -> Result<Vec<TableColumn>, String> {
[INFO] [stdout]     |                                     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_table_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/BPlusTree.rs:244:13
[INFO] [stdout]     |
[INFO] [stdout] 244 |         let mut node = current.borrow_mut();
[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/UniversalBPlusTree.rs:220:13
[INFO] [stdout]     |
[INFO] [stdout] 220 |         let mut node = current.write().unwrap();
[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/BTreePersistence.rs:55:13
[INFO] [stdout]    |
[INFO] [stdout] 55 |         let mut file = OpenOptions::new()
[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/BTreePersistence.rs:92:13
[INFO] [stdout]    |
[INFO] [stdout] 92 |         let mut file = File::open(&filename)
[INFO] [stdout]    |             ----^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `BTree::Node` is more private than the item `BTree::BTree::_binary_search`
[INFO] [stdout]    --> src/BTree.rs:182:5
[INFO] [stdout]     |
[INFO] [stdout] 182 |     pub fn _binary_search(mut current: & Box<Node>, target: i32) -> usize{
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ associated function `BTree::BTree::_binary_search` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `BTree::Node` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/BTree.rs:30:1
[INFO] [stdout]     |
[INFO] [stdout] 30  | struct Node {
[INFO] [stdout]     | ^^^^^^^^^^^
[INFO] [stdout]     = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `BPlusTree::Node` is more private than the item `BPlusTree::BPlusTree::_binary_search`
[INFO] [stdout]    --> src/BPlusTree.rs:321:5
[INFO] [stdout]     |
[INFO] [stdout] 321 |     pub fn _binary_search(current: &Rc<RefCell<Box<Node>>>, target: i32) -> usize {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ associated function `BPlusTree::BPlusTree::_binary_search` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `BPlusTree::Node` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/BPlusTree.rs:32:1
[INFO] [stdout]     |
[INFO] [stdout] 32  | struct Node {
[INFO] [stdout]     | ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `UniversalBPlusTree::Node<T>` is more private than the item `UniversalBPlusTree::BPlusTree::<T>::_binary_search`
[INFO] [stdout]    --> src/UniversalBPlusTree.rs:283:5
[INFO] [stdout]     |
[INFO] [stdout] 283 |     pub fn _binary_search(current: &Arc<RwLock<Box<Node<T>>>>, target: &T) -> usize {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ associated function `UniversalBPlusTree::BPlusTree::<T>::_binary_search` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `UniversalBPlusTree::Node<T>` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/UniversalBPlusTree.rs:6:1
[INFO] [stdout]     |
[INFO] [stdout] 6   | struct Node<T: Comparable> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PAGE_SIZE` is never used
[INFO] [stdout]   --> src/main.rs:22:7
[INFO] [stdout]    |
[INFO] [stdout] 22 | const PAGE_SIZE: usize = 4096;
[INFO] [stdout]    |       ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEADER_SIZE` is never used
[INFO] [stdout]   --> src/main.rs:23:7
[INFO] [stdout]    |
[INFO] [stdout] 23 | const HEADER_SIZE: usize = 64;
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `data` is never constructed
[INFO] [stdout]  --> src/BTree.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct data {
[INFO] [stdout]   |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]  --> src/BTree.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | impl data {
[INFO] [stdout]   | --------- associated function in this implementation
[INFO] [stdout] 9 |     pub fn new(page_id: i64, offset: i32) -> data {
[INFO] [stdout]   |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Key` is never constructed
[INFO] [stdout]   --> src/BTree.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct Key {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `get_key` are never used
[INFO] [stdout]   --> src/BTree.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl Key {
[INFO] [stdout]    | -------- associated items in this implementation
[INFO] [stdout] 21 |     pub fn new(key: i32, data: Option<Box<data>>) -> Key {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |     fn get_key(&self) -> i32 {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Node` is never constructed
[INFO] [stdout]   --> src/BTree.rs:30:8
[INFO] [stdout]    |
[INFO] [stdout] 30 | struct Node {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_KEYS` is never used
[INFO] [stdout]   --> src/BTree.rs:37:7
[INFO] [stdout]    |
[INFO] [stdout] 37 | const MAX_KEYS: usize = 3;
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BTree` is never constructed
[INFO] [stdout]   --> src/BTree.rs:39:12
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub struct BTree {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/BTree.rs:46:12
[INFO] [stdout]     |
[INFO] [stdout] 45  | impl BTree {
[INFO] [stdout]     | ---------- associated items in this implementation
[INFO] [stdout] 46  |     pub fn new() -> BTree {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 54  |     pub fn insert(&mut self, mut node: Option<Box<Key>>) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 131 |     fn add_element(&mut self, mut current: &mut Box<Node>, mut value: Box<Key>) {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 139 |     fn split_node(&mut self, mut current: &mut Box<Node>, mut value: Box<Key>) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 167 |     fn copy_values(&mut self, mut current: &mut Box<Node>, new_values : Vec<Box<Key>>) {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 176 |     fn add_new_element(&mut self, mut current: &mut Box<Node>, mut value: Box<Key>){
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 198 |     fn copy_point(&mut self, mut current: &mut Box<Node>,  right: Box<Node>, left: Box<Node>) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 208 |     pub fn search_elemnt<'a>(&'a self, key : i32) -> Option<&'a Box<data>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 217 |     fn search_rec<'a>(&'a self, current: &'a Box<Node>, key:i32) -> Option<&'a Box<data>> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `FLOAT` and `BIGINT` are never constructed
[INFO] [stdout]   --> src/MetaEnum.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub enum DataArray {
[INFO] [stdout]    |          --------- variants in this enum
[INFO] [stdout] 28 |     INTEGER(i32),
[INFO] [stdout] 29 |     FLOAT(f32),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 30 |     DOUBLE(f64),
[INFO] [stdout] 31 |     BIGINT(i64),
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `add_meta`, `add_data`, `get_data`, and `get_data_as_string` are never used
[INFO] [stdout]   --> src/MetaEnum.rs:44:12
[INFO] [stdout]    |
[INFO] [stdout] 40 | impl row_array {
[INFO] [stdout]    | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub fn add_meta(&mut self, meta: MetaEnum) {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 51 |     pub fn add_data(&mut self, data: DataArray) {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 59 |     pub fn get_data(&self) -> &Vec<DataArray> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 63 |     pub fn get_data_as_string(&self) -> String {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LRUDict` is never constructed
[INFO] [stdout]  --> src/LruDict.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct LRUDict {
[INFO] [stdout]   |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DoublyLinkedList` is never constructed
[INFO] [stdout]   --> src/LruDict.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | struct DoublyLinkedList {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DoublyLinkedListNode` is never constructed
[INFO] [stdout]   --> src/LruDict.rs:17:8
[INFO] [stdout]    |
[INFO] [stdout] 17 | struct DoublyLinkedListNode {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `push_to_tail`, `unlink_node`, and `move_to_tail` are never used
[INFO] [stdout]   --> src/LruDict.rs:25:8
[INFO] [stdout]    |
[INFO] [stdout] 24 | impl DoublyLinkedList {
[INFO] [stdout]    | --------------------- associated items in this implementation
[INFO] [stdout] 25 |     fn new() -> Self {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 29 |     fn push_to_tail(&mut self, key: i64, value: Box<RawData>) -> Rc<RefCell<DoublyLinkedListNode>> {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 50 |     fn unlink_node(&mut self, node: &Rc<RefCell<DoublyLinkedListNode>>) {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 75 |     fn move_to_tail(&mut self, node: &Rc<RefCell<DoublyLinkedListNode>>) {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `add_element`, `get`, and `remove_lru` are never used
[INFO] [stdout]    --> src/LruDict.rs:93:12
[INFO] [stdout]     |
[INFO] [stdout] 92  | impl LRUDict {
[INFO] [stdout]     | ------------ associated items in this implementation
[INFO] [stdout] 93  |     pub fn new(capacity: usize) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 101 |     pub fn add_element(&mut self, key: i64, value: Box<RawData>) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 115 |     pub fn get(&mut self, key: i64) -> Option<Box<RawData>> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 125 |     fn remove_lru(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `schema_name` is never read
[INFO] [stdout]  --> src/RowData.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct RawData {
[INFO] [stdout]   |            ------- field in this struct
[INFO] [stdout] 9 |     pub schema_name: String,
[INFO] [stdout]   |         ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `RawData` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_row_size` is never used
[INFO] [stdout]    --> src/RowData.rs:144:8
[INFO] [stdout]     |
[INFO] [stdout] 17  | impl RawData {
[INFO] [stdout]     | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 144 |     fn get_row_size(&self) -> usize {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `table_name` and `columns` are never read
[INFO] [stdout]   --> src/TableMetaHandler.rs:60:5
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub struct TableMetadata {
[INFO] [stdout]    |            ------------- fields in this struct
[INFO] [stdout] 59 |     pub(crate) table_id: i32,
[INFO] [stdout] 60 |     table_name: String,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 61 |     columns: Vec<MetaEnum>,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `load_table_schema_meta`, `write_meta_file`, `create_raw_data_for_table`, and `get_table_meta` are never used
[INFO] [stdout]    --> src/TableMetaHandler.rs:73:12
[INFO] [stdout]     |
[INFO] [stdout] 64  | impl TableMetaHandler {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 73  |     pub fn load_table_schema_meta(&mut self) -> Result<(), std::io::Error> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 232 |     pub fn write_meta_file(&self, tables: &[TableMetadata]) -> Result<(), std::io::Error> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 287 |     pub fn create_raw_data_for_table(&self, table_name: &str, page_size: usize, header_size: usize, page_id: u64) -> Option<RawData> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 373 |     pub fn get_table_meta(&self, table_id: i64) -> Option<&Vec<MetaEnum>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_table_columns` is never used
[INFO] [stdout]    --> src/TableCreationHandler.rs:196:12
[INFO] [stdout]     |
[INFO] [stdout] 30  | impl TableCreationHandler {
[INFO] [stdout]     | ------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 196 |     pub fn get_table_columns(&self, table_id: i32) -> Result<Vec<TableColumn>, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_table_handler` is never used
[INFO] [stdout]    --> src/TableCreationHandler.rs:255:8
[INFO] [stdout]     |
[INFO] [stdout] 255 | pub fn create_table_handler() -> TableCreationHandler {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `example_create_table` is never used
[INFO] [stdout]    --> src/TableCreationHandler.rs:260:8
[INFO] [stdout]     |
[INFO] [stdout] 260 | pub fn example_create_table() -> Result<(), String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/TableQueryHandler.rs:211:8
[INFO] [stdout]     |
[INFO] [stdout] 15  | impl TableQueryHandler {
[INFO] [stdout]     | ---------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 211 |     fn get_row_count_after_insert(&self, raw_data: &RawData) -> Result<i32, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 229 |     pub fn batch_insert(
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 244 |     pub fn key_exists(&self, table_name: &str, primary_key: i32) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 252 |     pub fn load_existing_btrees(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 272 |     fn restore_page_info(&mut self, table_name: &str) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 319 |     fn discover_existing_tables(&self) -> Vec<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 351 |     fn is_system_file(&self, table_name: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `size` is never read
[INFO] [stdout]   --> src/BPlusTree.rs:35:5
[INFO] [stdout]    |
[INFO] [stdout] 32 | struct Node {
[INFO] [stdout]    |        ---- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 35 |     size: usize,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Node` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `print_tree` is never used
[INFO] [stdout]    --> src/BPlusTree.rs:371:8
[INFO] [stdout]     |
[INFO] [stdout] 47  | impl BPlusTree {
[INFO] [stdout]     | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 371 |     fn print_tree(&self) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_key`, `is_greater`, `is_greater_equal`, `is_less_equal`, and `compare` are never used
[INFO] [stdout]   --> src/Comparable.rs:6:8
[INFO] [stdout]    |
[INFO] [stdout] 4  | pub trait Comparable: Clone + std::fmt::Debug {
[INFO] [stdout]    |           ---------- methods in this trait
[INFO] [stdout] 5  |     
[INFO] [stdout] 6  |     fn get_key(&self) -> Self;
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 12 |     fn is_greater(&self, other: &Self) -> bool;
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 15 |     fn is_greater_equal(&self, other: &Self) -> bool;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 21 |     fn is_less_equal(&self, other: &Self) -> bool;
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |     fn compare(&self, other: &Self) -> Ordering {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/UniversalKey.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 9  | impl data {
[INFO] [stdout]    | --------- associated function in this implementation
[INFO] [stdout] 10 |     pub fn new(page_id: i64, offset: i32) -> data {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> src/UniversalKey.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | impl<T: Comparable> Key<T> {
[INFO] [stdout]    | -------------------------- associated items in this implementation
[INFO] [stdout] 22 |     pub fn new(key: T, data: Option<Box<data>>) -> Key<T> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 26 |     pub fn get_key(&self) -> &T {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub fn compare(&self, other: &Key<T>) -> std::cmp::Ordering {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |     pub fn equals(&self, other: &Key<T>) -> bool {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub fn is_greater(&self, other: &Key<T>) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 42 |     pub fn is_less(&self, other: &Key<T>) -> bool {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 46 |     pub fn is_greater_equal(&self, other: &Key<T>) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 50 |     pub fn is_less_equal(&self, other: &Key<T>) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `IntKey` is never used
[INFO] [stdout]   --> src/UniversalKey.rs:55:10
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub type IntKey = Key<i32>;
[INFO] [stdout]    |          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `StringKey` is never used
[INFO] [stdout]   --> src/UniversalKey.rs:56:10
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub type StringKey = Key<String>;
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `BigIntKey` is never used
[INFO] [stdout]   --> src/UniversalKey.rs:57:10
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub type BigIntKey = Key<i64>;
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `DoubleKey` is never used
[INFO] [stdout]   --> src/UniversalKey.rs:58:10
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub type DoubleKey = Key<f64>;
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `size` and `next` are never read
[INFO] [stdout]   --> src/UniversalBPlusTree.rs:9:5
[INFO] [stdout]    |
[INFO] [stdout] 6  | struct Node<T: Comparable> {
[INFO] [stdout]    |        ---- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 9  |     size: usize,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 10 |     pointers: Vec<Option<Arc<RwLock<Box<Node<T>>>>>>, 
[INFO] [stdout] 11 |     next: Option<Arc<RwLock<Box<Node<T>>>>>, 
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Node` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_KEYS` is never used
[INFO] [stdout]   --> src/UniversalBPlusTree.rs:15:7
[INFO] [stdout]    |
[INFO] [stdout] 15 | const MAX_KEYS: usize = 3; 
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/UniversalBPlusTree.rs:26:12
[INFO] [stdout]     |
[INFO] [stdout] 21  | impl<T: Comparable + Send + Sync + 'static> BPlusTree<T> {
[INFO] [stdout]     | -------------------------------------------------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 26  |     pub fn insert(&mut self, node: Option<Box<Key<T>>>) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 137 |     fn insert_into_internal(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 167 |     fn add_new_element(&mut self, current: &Arc<RwLock<Box<Node<T>>>>, value: Box<Key<T>>) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 174 |     fn split_leaf(
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 216 |     fn split_internal(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 332 |     pub fn print_tree(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 338 |     fn print_rec(current: &Arc<RwLock<Box<Node<T>>>>, level: i32) {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `insert` is never used
[INFO] [stdout]   --> src/TableBTreeManager.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl TableBTree {
[INFO] [stdout]    | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 27 |     pub fn insert(&mut self, key_value: TableKey, page_id: i64, offset: i32) -> Result<(), String> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `String`, `BigInt`, and `Double` are never constructed
[INFO] [stdout]   --> src/TableBTreeManager.rs:79:5
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub enum TableKey {
[INFO] [stdout]    |          -------- variants in this enum
[INFO] [stdout] 78 |     Int(i32),
[INFO] [stdout] 79 |     String(String),
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 80 |     BigInt(i64),
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 81 |     Double(f64),
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TableKey` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_meta_enum` is never used
[INFO] [stdout]   --> src/TableBTreeManager.rs:86:12
[INFO] [stdout]    |
[INFO] [stdout] 84 | impl TableKey {
[INFO] [stdout]    | ------------- associated function in this implementation
[INFO] [stdout] 85 |     
[INFO] [stdout] 86 |     pub fn from_meta_enum(meta_type: &MetaEnum, value: &[u8]) -> Result<Self, String> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `insert`, `table_exists`, `get_primary_key_type`, and `get_table_ids` are never used
[INFO] [stdout]    --> src/TableBTreeManager.rs:165:12
[INFO] [stdout]     |
[INFO] [stdout] 149 | impl TableBTreeManager {
[INFO] [stdout]     | ---------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 165 |     pub fn insert(&mut self, table_id: i32, key_value: TableKey, page_id: i64, offset: i32) -> Result<(), String> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 181 |     pub fn table_exists(&self, table_id: i32) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 186 |     pub fn get_primary_key_type(&self, table_id: i32) -> Option<&MetaEnum> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 191 |     pub fn get_table_ids(&self) -> Vec<i32> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `insert_into_table` is never used
[INFO] [stdout]    --> src/TableBTreeManager.rs:227:8
[INFO] [stdout]     |
[INFO] [stdout] 227 | pub fn insert_into_table(table_id: i32, key_value: TableKey, page_id: i64, offset: i32) -> Result<(), String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_bytes` is never used
[INFO] [stdout]   --> src/BTreePersistence.rs:23:8
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl SerializedBTreeEntry {
[INFO] [stdout]    | ------------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 23 |     fn from_bytes(bytes: &[u8]) -> Result<Self, String> {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `load_btree` and `load_all_btrees` are never used
[INFO] [stdout]    --> src/BTreePersistence.rs:84:12
[INFO] [stdout]     |
[INFO] [stdout] 46  | impl BTreePersistence {
[INFO] [stdout]     | --------------------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 84  |     pub fn load_btree(table_name: &str) -> Result<BPlusTree, String> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 173 |     pub fn load_all_btrees(table_names: &[String]) -> Result<HashMap<String, BPlusTree>, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `save_btree_manually` is never used
[INFO] [stdout]    --> src/BTreePersistence.rs:186:8
[INFO] [stdout]     |
[INFO] [stdout] 186 | pub fn save_btree_manually(table_name: &str, btree: &BPlusTree) -> Result<(), String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `BTree` should have a snake case name
[INFO] [stdout]  --> src/main.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | mod BTree;
[INFO] [stdout]   |     ^^^^^ help: convert the identifier to snake case: `btree`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `MetaEnum` should have a snake case name
[INFO] [stdout]  --> src/main.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | mod MetaEnum;
[INFO] [stdout]   |     ^^^^^^^^ help: convert the identifier to snake case: `meta_enum`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `LruDict` should have a snake case name
[INFO] [stdout]  --> src/main.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | mod LruDict;
[INFO] [stdout]   |     ^^^^^^^ help: convert the identifier to snake case: `lru_dict`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `RowData` should have a snake case name
[INFO] [stdout]  --> src/main.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | mod RowData;
[INFO] [stdout]   |     ^^^^^^^ help: convert the identifier to snake case: `row_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `FileWriter` should have a snake case name
[INFO] [stdout]  --> src/main.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | mod FileWriter;
[INFO] [stdout]   |     ^^^^^^^^^^ help: convert the identifier to snake case: `file_writer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `TableMetaHandler` should have a snake case name
[INFO] [stdout]  --> src/main.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | mod TableMetaHandler;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `table_meta_handler`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `TableCreationHandler` should have a snake case name
[INFO] [stdout]  --> src/main.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | mod TableCreationHandler;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `table_creation_handler`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `TableQueryHandler` should have a snake case name
[INFO] [stdout]  --> src/main.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | mod TableQueryHandler;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `table_query_handler`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `BPlusTree` should have a snake case name
[INFO] [stdout]  --> src/main.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | mod BPlusTree;
[INFO] [stdout]   |     ^^^^^^^^^ help: convert the identifier to snake case: `bplus_tree`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `Comparable` should have a snake case name
[INFO] [stdout]   --> src/main.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | mod Comparable;
[INFO] [stdout]    |     ^^^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `comparable`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `UniversalKey` should have a snake case name
[INFO] [stdout]   --> src/main.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | mod UniversalKey;
[INFO] [stdout]    |     ^^^^^^^^^^^^ help: convert the identifier to snake case: `universal_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `UniversalBPlusTree` should have a snake case name
[INFO] [stdout]   --> src/main.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | mod UniversalBPlusTree;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `universal_bplus_tree`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `TableBTreeManager` should have a snake case name
[INFO] [stdout]   --> src/main.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | mod TableBTreeManager;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `table_btree_manager`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `BTreePersistence` should have a snake case name
[INFO] [stdout]   --> src/main.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | mod BTreePersistence;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `btree_persistence`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `new_Vec` should have a snake case name
[INFO] [stdout]    --> src/BTree.rs:141:17
[INFO] [stdout]     |
[INFO] [stdout] 141 |         let mut new_Vec : Vec<Box<Key>> = current.keys.to_vec();
[INFO] [stdout]     |                 ^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `new_vec`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static variable `meta_config` should have an upper case name
[INFO] [stdout]   --> src/TableMetaHandler.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub static meta_config: Mutex<Option<TableMetaHandler>> = Mutex::new(None);
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_upper_case_globals)]` on by default
[INFO] [stdout] help: convert the identifier to upper case
[INFO] [stdout]    |
[INFO] [stdout] 14 - pub static meta_config: Mutex<Option<TableMetaHandler>> = Mutex::new(None);
[INFO] [stdout] 14 + pub static META_CONFIG: Mutex<Option<TableMetaHandler>> = Mutex::new(None);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.73s
[INFO] running `Command { std: "docker" "inspect" "768846a15035d37d3ad2ef39d576a76a7419bfc81624c6869f1d964d0debafc0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "768846a15035d37d3ad2ef39d576a76a7419bfc81624c6869f1d964d0debafc0", kill_on_drop: false }`
[INFO] [stdout] 768846a15035d37d3ad2ef39d576a76a7419bfc81624c6869f1d964d0debafc0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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 -Copt-level=3" "-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+733b47ea4b1b86216f14ef56e49440c33933f230" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] bf743dbaf46b52b9f6dfc4042158a96ac21493564eb3c445fc1dc03c2ac42385
[INFO] running `Command { std: "docker" "start" "-a" "bf743dbaf46b52b9f6dfc4042158a96ac21493564eb3c445fc1dc03c2ac42385", kill_on_drop: false }`
[INFO] [stderr] warning: type `data` should have an upper camel case name
[INFO] [stderr]  --> src/BTree.rs:3:12
[INFO] [stderr]   |
[INFO] [stderr] 3 | pub struct data {
[INFO] [stderr]   |            ^^^^ help: convert the identifier to upper camel case: `Data`
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(non_camel_case_types)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: type `row_array` should have an upper camel case name
[INFO] [stderr]   --> src/MetaEnum.rs:35:12
[INFO] [stderr]    |
[INFO] [stderr] 35 | pub struct row_array {
[INFO] [stderr]    |            ^^^^^^^^^ help: convert the identifier to upper camel case: `RowArray`
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `MetaEnum`
[INFO] [stderr]  --> src/FileWriter.rs:2:13
[INFO] [stderr]   |
[INFO] [stderr] 2 | use crate::{MetaEnum, RowData::RawData, TableMetaHandler};
[INFO] [stderr]   |             ^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: type `File_Handler` should have an upper camel case name
[INFO] [stderr]  --> src/FileWriter.rs:4:12
[INFO] [stderr]   |
[INFO] [stderr] 4 | pub struct File_Handler{
[INFO] [stderr]   |            ^^^^^^^^^^^^ help: convert the identifier to upper camel case: `FileHandler`
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `SeekFrom` and `Seek`
[INFO] [stderr]  --> src/TableMetaHandler.rs:3:50
[INFO] [stderr]   |
[INFO] [stderr] 3 | use std::io::{BufReader, BufWriter, Read, Write, Seek, SeekFrom};
[INFO] [stderr]   |                                                  ^^^^  ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::collections::HashMap`
[INFO] [stderr]  --> src/TableCreationHandler.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use std::collections::HashMap;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `TableMetaHandler`
[INFO] [stderr]  --> src/TableCreationHandler.rs:3:44
[INFO] [stderr]   |
[INFO] [stderr] 3 | use crate::TableMetaHandler::{meta_config, TableMetaHandler};
[INFO] [stderr]   |                                            ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `TableMetaHandler`
[INFO] [stderr]  --> src/TableQueryHandler.rs:6:44
[INFO] [stderr]   |
[INFO] [stderr] 6 | use crate::TableMetaHandler::{meta_config, TableMetaHandler};
[INFO] [stderr]   |                                            ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `save_btree_manually`
[INFO] [stderr]  --> src/TableQueryHandler.rs:7:49
[INFO] [stderr]   |
[INFO] [stderr] 7 | use crate::BTreePersistence::{BTreePersistence, save_btree_manually};
[INFO] [stderr]   |                                                 ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: type `data` should have an upper camel case name
[INFO] [stderr]  --> src/BPlusTree.rs:5:12
[INFO] [stderr]   |
[INFO] [stderr] 5 | pub struct data {
[INFO] [stderr]   |            ^^^^ help: convert the identifier to upper camel case: `Data`
[INFO] [stderr] 
[INFO] [stderr] warning: type `data` should have an upper camel case name
[INFO] [stderr]  --> src/UniversalKey.rs:4:12
[INFO] [stderr]   |
[INFO] [stderr] 4 | pub struct data {
[INFO] [stderr]   |            ^^^^ help: convert the identifier to upper camel case: `Data`
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Key`
[INFO] [stderr]  --> src/TableBTreeManager.rs:4:27
[INFO] [stderr]   |
[INFO] [stderr] 4 | use crate::UniversalKey::{Key, data, IntKey, StringKey, BigIntKey, DoubleKey};
[INFO] [stderr]   |                           ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/BTree.rs:54:30
[INFO] [stderr]    |
[INFO] [stderr] 54 |     pub fn insert(&mut self, mut node: Option<Box<Key>>) {
[INFO] [stderr]    |                              ----^^^^
[INFO] [stderr]    |                              |
[INFO] [stderr]    |                              help: remove this `mut`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/BTree.rs:89:32
[INFO] [stderr]    |
[INFO] [stderr] 89 |     fn _insert_rec( &mut self, mut current: &mut Box<Node>, mut value : Box<Key>) {
[INFO] [stderr]    |                                ----^^^^^^^
[INFO] [stderr]    |                                |
[INFO] [stderr]    |                                help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/BTree.rs:89:61
[INFO] [stderr]    |
[INFO] [stderr] 89 |     fn _insert_rec( &mut self, mut current: &mut Box<Node>, mut value : Box<Key>) {
[INFO] [stderr]    |                                                             ----^^^^^
[INFO] [stderr]    |                                                             |
[INFO] [stderr]    |                                                             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/BTree.rs:122:21
[INFO] [stderr]     |
[INFO] [stderr] 122 |                 let mut value = self.node_stack.pop().unwrap().unwrap();
[INFO] [stderr]     |                     ----^^^^^
[INFO] [stderr]     |                     |
[INFO] [stderr]     |                     help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/BTree.rs:131:31
[INFO] [stderr]     |
[INFO] [stderr] 131 |     fn add_element(&mut self, mut current: &mut Box<Node>, mut value: Box<Key>) {
[INFO] [stderr]     |                               ----^^^^^^^
[INFO] [stderr]     |                               |
[INFO] [stderr]     |                               help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/BTree.rs:131:60
[INFO] [stderr]     |
[INFO] [stderr] 131 |     fn add_element(&mut self, mut current: &mut Box<Node>, mut value: Box<Key>) {
[INFO] [stderr]     |                                                            ----^^^^^
[INFO] [stderr]     |                                                            |
[INFO] [stderr]     |                                                            help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/BTree.rs:139:30
[INFO] [stderr]     |
[INFO] [stderr] 139 |     fn split_node(&mut self, mut current: &mut Box<Node>, mut value: Box<Key>) {
[INFO] [stderr]     |                              ----^^^^^^^
[INFO] [stderr]     |                              |
[INFO] [stderr]     |                              help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/BTree.rs:139:59
[INFO] [stderr]     |
[INFO] [stderr] 139 |     fn split_node(&mut self, mut current: &mut Box<Node>, mut value: Box<Key>) {
[INFO] [stderr]     |                                                           ----^^^^^
[INFO] [stderr]     |                                                           |
[INFO] [stderr]     |                                                           help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/BTree.rs:146:13
[INFO] [stderr]     |
[INFO] [stderr] 146 |         let mut left_node = Box::new(Node {
[INFO] [stderr]     |             ----^^^^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/BTree.rs:154:13
[INFO] [stderr]     |
[INFO] [stderr] 154 |         let mut right_node = Box::new(Node {
[INFO] [stderr]     |             ----^^^^^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/BTree.rs:160:13
[INFO] [stderr]     |
[INFO] [stderr] 160 |         let mut new_value = new_Vec.get(mid_pos).unwrap().clone();
[INFO] [stderr]     |             ----^^^^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/BTree.rs:167:31
[INFO] [stderr]     |
[INFO] [stderr] 167 |     fn copy_values(&mut self, mut current: &mut Box<Node>, new_values : Vec<Box<Key>>) {
[INFO] [stderr]     |                               ----^^^^^^^
[INFO] [stderr]     |                               |
[INFO] [stderr]     |                               help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/BTree.rs:176:35
[INFO] [stderr]     |
[INFO] [stderr] 176 |     fn add_new_element(&mut self, mut current: &mut Box<Node>, mut value: Box<Key>){
[INFO] [stderr]     |                                   ----^^^^^^^
[INFO] [stderr]     |                                   |
[INFO] [stderr]     |                                   help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/BTree.rs:176:64
[INFO] [stderr]     |
[INFO] [stderr] 176 |     fn add_new_element(&mut self, mut current: &mut Box<Node>, mut value: Box<Key>){
[INFO] [stderr]     |                                                                ----^^^^^
[INFO] [stderr]     |                                                                |
[INFO] [stderr]     |                                                                help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/BTree.rs:182:27
[INFO] [stderr]     |
[INFO] [stderr] 182 |     pub fn _binary_search(mut current: & Box<Node>, target: i32) -> usize{
[INFO] [stderr]     |                           ----^^^^^^^
[INFO] [stderr]     |                           |
[INFO] [stderr]     |                           help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/BTree.rs:198:30
[INFO] [stderr]     |
[INFO] [stderr] 198 |     fn copy_point(&mut self, mut current: &mut Box<Node>,  right: Box<Node>, left: Box<Node>) {
[INFO] [stderr]     |                              ----^^^^^^^
[INFO] [stderr]     |                              |
[INFO] [stderr]     |                              help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `s`
[INFO] [stderr]    --> src/RowData.rs:129:30
[INFO] [stderr]     |
[INFO] [stderr] 129 |             MetaEnum::STRING(s) => {
[INFO] [stderr]     |                              ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/TableMetaHandler.rs:108:17
[INFO] [stderr]     |
[INFO] [stderr] 108 |             let mut file = OpenOptions::new().read(true).open(file_path)?;
[INFO] [stderr]     |                 ----^^^^
[INFO] [stderr]     |                 |
[INFO] [stderr]     |                 help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `data_length`
[INFO] [stderr]    --> src/TableMetaHandler.rs:171:17
[INFO] [stderr]     |
[INFO] [stderr] 171 |             let data_length = i32::from_le_bytes(length_bytes);
[INFO] [stderr]     |                 ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_data_length`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/TableMetaHandler.rs:154:13
[INFO] [stderr]     |
[INFO] [stderr] 154 |         let mut file = OpenOptions::new()
[INFO] [stderr]     |             ----^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/TableMetaHandler.rs:233:13
[INFO] [stderr]     |
[INFO] [stderr] 233 |         let mut file = OpenOptions::new()
[INFO] [stderr]     |             ----^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/TableMetaHandler.rs:310:13
[INFO] [stderr]     |
[INFO] [stderr] 310 |         let mut file = OpenOptions::new()
[INFO] [stderr]     |             ----^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `table_id`
[INFO] [stderr]    --> src/TableCreationHandler.rs:196:37
[INFO] [stderr]     |
[INFO] [stderr] 196 |     pub fn get_table_columns(&self, table_id: i32) -> Result<Vec<TableColumn>, String> {
[INFO] [stderr]     |                                     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_table_id`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/BPlusTree.rs:244:13
[INFO] [stderr]     |
[INFO] [stderr] 244 |         let mut node = current.borrow_mut();
[INFO] [stderr]     |             ----^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/UniversalBPlusTree.rs:220:13
[INFO] [stderr]     |
[INFO] [stderr] 220 |         let mut node = current.write().unwrap();
[INFO] [stderr]     |             ----^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/BTreePersistence.rs:55:13
[INFO] [stderr]    |
[INFO] [stderr] 55 |         let mut file = OpenOptions::new()
[INFO] [stderr]    |             ----^^^^
[INFO] [stderr]    |             |
[INFO] [stderr]    |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/BTreePersistence.rs:92:13
[INFO] [stderr]    |
[INFO] [stderr] 92 |         let mut file = File::open(&filename)
[INFO] [stderr]    |             ----^^^^
[INFO] [stderr]    |             |
[INFO] [stderr]    |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: type `BTree::Node` is more private than the item `BTree::BTree::_binary_search`
[INFO] [stderr]    --> src/BTree.rs:182:5
[INFO] [stderr]     |
[INFO] [stderr] 182 |     pub fn _binary_search(mut current: & Box<Node>, target: i32) -> usize{
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ associated function `BTree::BTree::_binary_search` is reachable at visibility `pub(crate)`
[INFO] [stderr]     |
[INFO] [stderr] note: but type `BTree::Node` is only usable at visibility `pub(self)`
[INFO] [stderr]    --> src/BTree.rs:30:1
[INFO] [stderr]     |
[INFO] [stderr] 30  | struct Node {
[INFO] [stderr]     | ^^^^^^^^^^^
[INFO] [stderr]     = note: `#[warn(private_interfaces)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: type `BPlusTree::Node` is more private than the item `BPlusTree::BPlusTree::_binary_search`
[INFO] [stderr]    --> src/BPlusTree.rs:321:5
[INFO] [stderr]     |
[INFO] [stderr] 321 |     pub fn _binary_search(current: &Rc<RefCell<Box<Node>>>, target: i32) -> usize {
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ associated function `BPlusTree::BPlusTree::_binary_search` is reachable at visibility `pub(crate)`
[INFO] [stderr]     |
[INFO] [stderr] note: but type `BPlusTree::Node` is only usable at visibility `pub(self)`
[INFO] [stderr]    --> src/BPlusTree.rs:32:1
[INFO] [stderr]     |
[INFO] [stderr] 32  | struct Node {
[INFO] [stderr]     | ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: type `UniversalBPlusTree::Node<T>` is more private than the item `UniversalBPlusTree::BPlusTree::<T>::_binary_search`
[INFO] [stderr]    --> src/UniversalBPlusTree.rs:283:5
[INFO] [stderr]     |
[INFO] [stderr] 283 |     pub fn _binary_search(current: &Arc<RwLock<Box<Node<T>>>>, target: &T) -> usize {
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ associated function `UniversalBPlusTree::BPlusTree::<T>::_binary_search` is reachable at visibility `pub(crate)`
[INFO] [stderr]     |
[INFO] [stderr] note: but type `UniversalBPlusTree::Node<T>` is only usable at visibility `pub(self)`
[INFO] [stderr]    --> src/UniversalBPlusTree.rs:6:1
[INFO] [stderr]     |
[INFO] [stderr] 6   | struct Node<T: Comparable> {
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `PAGE_SIZE` is never used
[INFO] [stderr]   --> src/main.rs:22:7
[INFO] [stderr]    |
[INFO] [stderr] 22 | const PAGE_SIZE: usize = 4096;
[INFO] [stderr]    |       ^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: constant `HEADER_SIZE` is never used
[INFO] [stderr]   --> src/main.rs:23:7
[INFO] [stderr]    |
[INFO] [stderr] 23 | const HEADER_SIZE: usize = 64;
[INFO] [stderr]    |       ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `data` is never constructed
[INFO] [stderr]  --> src/BTree.rs:3:12
[INFO] [stderr]   |
[INFO] [stderr] 3 | pub struct data {
[INFO] [stderr]   |            ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]  --> src/BTree.rs:9:12
[INFO] [stderr]   |
[INFO] [stderr] 8 | impl data {
[INFO] [stderr]   | --------- associated function in this implementation
[INFO] [stderr] 9 |     pub fn new(page_id: i64, offset: i32) -> data {
[INFO] [stderr]   |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Key` is never constructed
[INFO] [stderr]   --> src/BTree.rs:15:12
[INFO] [stderr]    |
[INFO] [stderr] 15 | pub struct Key {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new` and `get_key` are never used
[INFO] [stderr]   --> src/BTree.rs:21:12
[INFO] [stderr]    |
[INFO] [stderr] 20 | impl Key {
[INFO] [stderr]    | -------- associated items in this implementation
[INFO] [stderr] 21 |     pub fn new(key: i32, data: Option<Box<data>>) -> Key {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 24 |     fn get_key(&self) -> i32 {
[INFO] [stderr]    |        ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Node` is never constructed
[INFO] [stderr]   --> src/BTree.rs:30:8
[INFO] [stderr]    |
[INFO] [stderr] 30 | struct Node {
[INFO] [stderr]    |        ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `MAX_KEYS` is never used
[INFO] [stderr]   --> src/BTree.rs:37:7
[INFO] [stderr]    |
[INFO] [stderr] 37 | const MAX_KEYS: usize = 3;
[INFO] [stderr]    |       ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `BTree` is never constructed
[INFO] [stderr]   --> src/BTree.rs:39:12
[INFO] [stderr]    |
[INFO] [stderr] 39 | pub struct BTree {
[INFO] [stderr]    |            ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple associated items are never used
[INFO] [stderr]    --> src/BTree.rs:46:12
[INFO] [stderr]     |
[INFO] [stderr] 45  | impl BTree {
[INFO] [stderr]     | ---------- associated items in this implementation
[INFO] [stderr] 46  |     pub fn new() -> BTree {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 54  |     pub fn insert(&mut self, mut node: Option<Box<Key>>) {
[INFO] [stderr]     |            ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 131 |     fn add_element(&mut self, mut current: &mut Box<Node>, mut value: Box<Key>) {
[INFO] [stderr]     |        ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 139 |     fn split_node(&mut self, mut current: &mut Box<Node>, mut value: Box<Key>) {
[INFO] [stderr]     |        ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 167 |     fn copy_values(&mut self, mut current: &mut Box<Node>, new_values : Vec<Box<Key>>) {
[INFO] [stderr]     |        ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 176 |     fn add_new_element(&mut self, mut current: &mut Box<Node>, mut value: Box<Key>){
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 198 |     fn copy_point(&mut self, mut current: &mut Box<Node>,  right: Box<Node>, left: Box<Node>) {
[INFO] [stderr]     |        ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 208 |     pub fn search_elemnt<'a>(&'a self, key : i32) -> Option<&'a Box<data>> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 217 |     fn search_rec<'a>(&'a self, current: &'a Box<Node>, key:i32) -> Option<&'a Box<data>> {
[INFO] [stderr]     |        ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variants `FLOAT` and `BIGINT` are never constructed
[INFO] [stderr]   --> src/MetaEnum.rs:29:5
[INFO] [stderr]    |
[INFO] [stderr] 27 | pub enum DataArray {
[INFO] [stderr]    |          --------- variants in this enum
[INFO] [stderr] 28 |     INTEGER(i32),
[INFO] [stderr] 29 |     FLOAT(f32),
[INFO] [stderr]    |     ^^^^^
[INFO] [stderr] 30 |     DOUBLE(f64),
[INFO] [stderr] 31 |     BIGINT(i64),
[INFO] [stderr]    |     ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `add_meta`, `add_data`, `get_data`, and `get_data_as_string` are never used
[INFO] [stderr]   --> src/MetaEnum.rs:44:12
[INFO] [stderr]    |
[INFO] [stderr] 40 | impl row_array {
[INFO] [stderr]    | -------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 44 |     pub fn add_meta(&mut self, meta: MetaEnum) {
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 51 |     pub fn add_data(&mut self, data: DataArray) {
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 59 |     pub fn get_data(&self) -> &Vec<DataArray> {
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 63 |     pub fn get_data_as_string(&self) -> String {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `LRUDict` is never constructed
[INFO] [stderr]  --> src/LruDict.rs:6:12
[INFO] [stderr]   |
[INFO] [stderr] 6 | pub struct LRUDict {
[INFO] [stderr]   |            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `DoublyLinkedList` is never constructed
[INFO] [stderr]   --> src/LruDict.rs:12:8
[INFO] [stderr]    |
[INFO] [stderr] 12 | struct DoublyLinkedList {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `DoublyLinkedListNode` is never constructed
[INFO] [stderr]   --> src/LruDict.rs:17:8
[INFO] [stderr]    |
[INFO] [stderr] 17 | struct DoublyLinkedListNode {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new`, `push_to_tail`, `unlink_node`, and `move_to_tail` are never used
[INFO] [stderr]   --> src/LruDict.rs:25:8
[INFO] [stderr]    |
[INFO] [stderr] 24 | impl DoublyLinkedList {
[INFO] [stderr]    | --------------------- associated items in this implementation
[INFO] [stderr] 25 |     fn new() -> Self {
[INFO] [stderr]    |        ^^^
[INFO] [stderr] ...
[INFO] [stderr] 29 |     fn push_to_tail(&mut self, key: i64, value: Box<RawData>) -> Rc<RefCell<DoublyLinkedListNode>> {
[INFO] [stderr]    |        ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 50 |     fn unlink_node(&mut self, node: &Rc<RefCell<DoublyLinkedListNode>>) {
[INFO] [stderr]    |        ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 75 |     fn move_to_tail(&mut self, node: &Rc<RefCell<DoublyLinkedListNode>>) {
[INFO] [stderr]    |        ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new`, `add_element`, `get`, and `remove_lru` are never used
[INFO] [stderr]    --> src/LruDict.rs:93:12
[INFO] [stderr]     |
[INFO] [stderr] 92  | impl LRUDict {
[INFO] [stderr]     | ------------ associated items in this implementation
[INFO] [stderr] 93  |     pub fn new(capacity: usize) -> Self {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 101 |     pub fn add_element(&mut self, key: i64, value: Box<RawData>) {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 115 |     pub fn get(&mut self, key: i64) -> Option<Box<RawData>> {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 125 |     fn remove_lru(&mut self) {
[INFO] [stderr]     |        ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `schema_name` is never read
[INFO] [stderr]  --> src/RowData.rs:9:9
[INFO] [stderr]   |
[INFO] [stderr] 8 | pub struct RawData {
[INFO] [stderr]   |            ------- field in this struct
[INFO] [stderr] 9 |     pub schema_name: String,
[INFO] [stderr]   |         ^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `RawData` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: method `get_row_size` is never used
[INFO] [stderr]    --> src/RowData.rs:144:8
[INFO] [stderr]     |
[INFO] [stderr] 17  | impl RawData {
[INFO] [stderr]     | ------------ method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 144 |     fn get_row_size(&self) -> usize {
[INFO] [stderr]     |        ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `table_name` and `columns` are never read
[INFO] [stderr]   --> src/TableMetaHandler.rs:60:5
[INFO] [stderr]    |
[INFO] [stderr] 58 | pub struct TableMetadata {
[INFO] [stderr]    |            ------------- fields in this struct
[INFO] [stderr] 59 |     pub(crate) table_id: i32,
[INFO] [stderr] 60 |     table_name: String,
[INFO] [stderr]    |     ^^^^^^^^^^
[INFO] [stderr] 61 |     columns: Vec<MetaEnum>,
[INFO] [stderr]    |     ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `load_table_schema_meta`, `write_meta_file`, `create_raw_data_for_table`, and `get_table_meta` are never used
[INFO] [stderr]    --> src/TableMetaHandler.rs:73:12
[INFO] [stderr]     |
[INFO] [stderr] 64  | impl TableMetaHandler {
[INFO] [stderr]     | --------------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 73  |     pub fn load_table_schema_meta(&mut self) -> Result<(), std::io::Error> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 232 |     pub fn write_meta_file(&self, tables: &[TableMetadata]) -> Result<(), std::io::Error> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 287 |     pub fn create_raw_data_for_table(&self, table_name: &str, page_size: usize, header_size: usize, page_id: u64) -> Option<RawData> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 373 |     pub fn get_table_meta(&self, table_id: i64) -> Option<&Vec<MetaEnum>> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `get_table_columns` is never used
[INFO] [stderr]    --> src/TableCreationHandler.rs:196:12
[INFO] [stderr]     |
[INFO] [stderr] 30  | impl TableCreationHandler {
[INFO] [stderr]     | ------------------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 196 |     pub fn get_table_columns(&self, table_id: i32) -> Result<Vec<TableColumn>, String> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `create_table_handler` is never used
[INFO] [stderr]    --> src/TableCreationHandler.rs:255:8
[INFO] [stderr]     |
[INFO] [stderr] 255 | pub fn create_table_handler() -> TableCreationHandler {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `example_create_table` is never used
[INFO] [stderr]    --> src/TableCreationHandler.rs:260:8
[INFO] [stderr]     |
[INFO] [stderr] 260 | pub fn example_create_table() -> Result<(), String> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple methods are never used
[INFO] [stderr]    --> src/TableQueryHandler.rs:211:8
[INFO] [stderr]     |
[INFO] [stderr] 15  | impl TableQueryHandler {
[INFO] [stderr]     | ---------------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 211 |     fn get_row_count_after_insert(&self, raw_data: &RawData) -> Result<i32, String> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 229 |     pub fn batch_insert(
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 244 |     pub fn key_exists(&self, table_name: &str, primary_key: i32) -> bool {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 252 |     pub fn load_existing_btrees(&mut self) {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 272 |     fn restore_page_info(&mut self, table_name: &str) {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 319 |     fn discover_existing_tables(&self) -> Vec<String> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 351 |     fn is_system_file(&self, table_name: &str) -> bool {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `size` is never read
[INFO] [stderr]   --> src/BPlusTree.rs:35:5
[INFO] [stderr]    |
[INFO] [stderr] 32 | struct Node {
[INFO] [stderr]    |        ---- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 35 |     size: usize,
[INFO] [stderr]    |     ^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Node` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: method `print_tree` is never used
[INFO] [stderr]    --> src/BPlusTree.rs:371:8
[INFO] [stderr]     |
[INFO] [stderr] 47  | impl BPlusTree {
[INFO] [stderr]     | -------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 371 |     fn print_tree(&self) {
[INFO] [stderr]     |        ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `get_key`, `is_greater`, `is_greater_equal`, `is_less_equal`, and `compare` are never used
[INFO] [stderr]   --> src/Comparable.rs:6:8
[INFO] [stderr]    |
[INFO] [stderr] 4  | pub trait Comparable: Clone + std::fmt::Debug {
[INFO] [stderr]    |           ---------- methods in this trait
[INFO] [stderr] 5  |     
[INFO] [stderr] 6  |     fn get_key(&self) -> Self;
[INFO] [stderr]    |        ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 12 |     fn is_greater(&self, other: &Self) -> bool;
[INFO] [stderr]    |        ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 15 |     fn is_greater_equal(&self, other: &Self) -> bool;
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 21 |     fn is_less_equal(&self, other: &Self) -> bool;
[INFO] [stderr]    |        ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 24 |     fn compare(&self, other: &Self) -> Ordering {
[INFO] [stderr]    |        ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]   --> src/UniversalKey.rs:10:12
[INFO] [stderr]    |
[INFO] [stderr] 9  | impl data {
[INFO] [stderr]    | --------- associated function in this implementation
[INFO] [stderr] 10 |     pub fn new(page_id: i64, offset: i32) -> data {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple associated items are never used
[INFO] [stderr]   --> src/UniversalKey.rs:22:12
[INFO] [stderr]    |
[INFO] [stderr] 21 | impl<T: Comparable> Key<T> {
[INFO] [stderr]    | -------------------------- associated items in this implementation
[INFO] [stderr] 22 |     pub fn new(key: T, data: Option<Box<data>>) -> Key<T> {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 26 |     pub fn get_key(&self) -> &T {
[INFO] [stderr]    |            ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 30 |     pub fn compare(&self, other: &Key<T>) -> std::cmp::Ordering {
[INFO] [stderr]    |            ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 34 |     pub fn equals(&self, other: &Key<T>) -> bool {
[INFO] [stderr]    |            ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 38 |     pub fn is_greater(&self, other: &Key<T>) -> bool {
[INFO] [stderr]    |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 42 |     pub fn is_less(&self, other: &Key<T>) -> bool {
[INFO] [stderr]    |            ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 46 |     pub fn is_greater_equal(&self, other: &Key<T>) -> bool {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 50 |     pub fn is_less_equal(&self, other: &Key<T>) -> bool {
[INFO] [stderr]    |            ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: type alias `IntKey` is never used
[INFO] [stderr]   --> src/UniversalKey.rs:55:10
[INFO] [stderr]    |
[INFO] [stderr] 55 | pub type IntKey = Key<i32>;
[INFO] [stderr]    |          ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: type alias `StringKey` is never used
[INFO] [stderr]   --> src/UniversalKey.rs:56:10
[INFO] [stderr]    |
[INFO] [stderr] 56 | pub type StringKey = Key<String>;
[INFO] [stderr]    |          ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: type alias `BigIntKey` is never used
[INFO] [stderr]   --> src/UniversalKey.rs:57:10
[INFO] [stderr]    |
[INFO] [stderr] 57 | pub type BigIntKey = Key<i64>;
[INFO] [stderr]    |          ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: type alias `DoubleKey` is never used
[INFO] [stderr]   --> src/UniversalKey.rs:58:10
[INFO] [stderr]    |
[INFO] [stderr] 58 | pub type DoubleKey = Key<f64>;
[INFO] [stderr]    |          ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `size` and `next` are never read
[INFO] [stderr]   --> src/UniversalBPlusTree.rs:9:5
[INFO] [stderr]    |
[INFO] [stderr] 6  | struct Node<T: Comparable> {
[INFO] [stderr]    |        ---- fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 9  |     size: usize,
[INFO] [stderr]    |     ^^^^
[INFO] [stderr] 10 |     pointers: Vec<Option<Arc<RwLock<Box<Node<T>>>>>>, 
[INFO] [stderr] 11 |     next: Option<Arc<RwLock<Box<Node<T>>>>>, 
[INFO] [stderr]    |     ^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Node` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: constant `MAX_KEYS` is never used
[INFO] [stderr]   --> src/UniversalBPlusTree.rs:15:7
[INFO] [stderr]    |
[INFO] [stderr] 15 | const MAX_KEYS: usize = 3; 
[INFO] [stderr]    |       ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple associated items are never used
[INFO] [stderr]    --> src/UniversalBPlusTree.rs:26:12
[INFO] [stderr]     |
[INFO] [stderr] 21  | impl<T: Comparable + Send + Sync + 'static> BPlusTree<T> {
[INFO] [stderr]     | -------------------------------------------------------- associated items in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 26  |     pub fn insert(&mut self, node: Option<Box<Key<T>>>) {
[INFO] [stderr]     |            ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 137 |     fn insert_into_internal(
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 167 |     fn add_new_element(&mut self, current: &Arc<RwLock<Box<Node<T>>>>, value: Box<Key<T>>) {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 174 |     fn split_leaf(
[INFO] [stderr]     |        ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 216 |     fn split_internal(
[INFO] [stderr]     |        ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 332 |     pub fn print_tree(&self) {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 338 |     fn print_rec(current: &Arc<RwLock<Box<Node<T>>>>, level: i32) {
[INFO] [stderr]     |        ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `insert` is never used
[INFO] [stderr]   --> src/TableBTreeManager.rs:27:12
[INFO] [stderr]    |
[INFO] [stderr] 15 | impl TableBTree {
[INFO] [stderr]    | --------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 27 |     pub fn insert(&mut self, key_value: TableKey, page_id: i64, offset: i32) -> Result<(), String> {
[INFO] [stderr]    |            ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variants `String`, `BigInt`, and `Double` are never constructed
[INFO] [stderr]   --> src/TableBTreeManager.rs:79:5
[INFO] [stderr]    |
[INFO] [stderr] 77 | pub enum TableKey {
[INFO] [stderr]    |          -------- variants in this enum
[INFO] [stderr] 78 |     Int(i32),
[INFO] [stderr] 79 |     String(String),
[INFO] [stderr]    |     ^^^^^^
[INFO] [stderr] 80 |     BigInt(i64),
[INFO] [stderr]    |     ^^^^^^
[INFO] [stderr] 81 |     Double(f64),
[INFO] [stderr]    |     ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `TableKey` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `from_meta_enum` is never used
[INFO] [stderr]   --> src/TableBTreeManager.rs:86:12
[INFO] [stderr]    |
[INFO] [stderr] 84 | impl TableKey {
[INFO] [stderr]    | ------------- associated function in this implementation
[INFO] [stderr] 85 |     
[INFO] [stderr] 86 |     pub fn from_meta_enum(meta_type: &MetaEnum, value: &[u8]) -> Result<Self, String> {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `insert`, `table_exists`, `get_primary_key_type`, and `get_table_ids` are never used
[INFO] [stderr]    --> src/TableBTreeManager.rs:165:12
[INFO] [stderr]     |
[INFO] [stderr] 149 | impl TableBTreeManager {
[INFO] [stderr]     | ---------------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 165 |     pub fn insert(&mut self, table_id: i32, key_value: TableKey, page_id: i64, offset: i32) -> Result<(), String> {
[INFO] [stderr]     |            ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 181 |     pub fn table_exists(&self, table_id: i32) -> bool {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 186 |     pub fn get_primary_key_type(&self, table_id: i32) -> Option<&MetaEnum> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 191 |     pub fn get_table_ids(&self) -> Vec<i32> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `insert_into_table` is never used
[INFO] [stderr]    --> src/TableBTreeManager.rs:227:8
[INFO] [stderr]     |
[INFO] [stderr] 227 | pub fn insert_into_table(table_id: i32, key_value: TableKey, page_id: i64, offset: i32) -> Result<(), String> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `from_bytes` is never used
[INFO] [stderr]   --> src/BTreePersistence.rs:23:8
[INFO] [stderr]    |
[INFO] [stderr] 14 | impl SerializedBTreeEntry {
[INFO] [stderr]    | ------------------------- associated function in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 23 |     fn from_bytes(bytes: &[u8]) -> Result<Self, String> {
[INFO] [stderr]    |        ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated functions `load_btree` and `load_all_btrees` are never used
[INFO] [stderr]    --> src/BTreePersistence.rs:84:12
[INFO] [stderr]     |
[INFO] [stderr] 46  | impl BTreePersistence {
[INFO] [stderr]     | --------------------- associated functions in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 84  |     pub fn load_btree(table_name: &str) -> Result<BPlusTree, String> {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 173 |     pub fn load_all_btrees(table_names: &[String]) -> Result<HashMap<String, BPlusTree>, String> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `save_btree_manually` is never used
[INFO] [stderr]    --> src/BTreePersistence.rs:186:8
[INFO] [stderr]     |
[INFO] [stderr] 186 | pub fn save_btree_manually(table_name: &str, btree: &BPlusTree) -> Result<(), String> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: module `BTree` should have a snake case name
[INFO] [stderr]  --> src/main.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | mod BTree;
[INFO] [stderr]   |     ^^^^^ help: convert the identifier to snake case: `btree`
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(non_snake_case)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: module `MetaEnum` should have a snake case name
[INFO] [stderr]  --> src/main.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | mod MetaEnum;
[INFO] [stderr]   |     ^^^^^^^^ help: convert the identifier to snake case: `meta_enum`
[INFO] [stderr] 
[INFO] [stderr] warning: module `LruDict` should have a snake case name
[INFO] [stderr]  --> src/main.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | mod LruDict;
[INFO] [stderr]   |     ^^^^^^^ help: convert the identifier to snake case: `lru_dict`
[INFO] [stderr] 
[INFO] [stderr] warning: module `RowData` should have a snake case name
[INFO] [stderr]  --> src/main.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 4 | mod RowData;
[INFO] [stderr]   |     ^^^^^^^ help: convert the identifier to snake case: `row_data`
[INFO] [stderr] 
[INFO] [stderr] warning: module `FileWriter` should have a snake case name
[INFO] [stderr]  --> src/main.rs:5:5
[INFO] [stderr]   |
[INFO] [stderr] 5 | mod FileWriter;
[INFO] [stderr]   |     ^^^^^^^^^^ help: convert the identifier to snake case: `file_writer`
[INFO] [stderr] 
[INFO] [stderr] warning: module `TableMetaHandler` should have a snake case name
[INFO] [stderr]  --> src/main.rs:6:5
[INFO] [stderr]   |
[INFO] [stderr] 6 | mod TableMetaHandler;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `table_meta_handler`
[INFO] [stderr] 
[INFO] [stderr] warning: module `TableCreationHandler` should have a snake case name
[INFO] [stderr]  --> src/main.rs:7:5
[INFO] [stderr]   |
[INFO] [stderr] 7 | mod TableCreationHandler;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `table_creation_handler`
[INFO] [stderr] 
[INFO] [stderr] warning: module `TableQueryHandler` should have a snake case name
[INFO] [stderr]  --> src/main.rs:8:5
[INFO] [stderr]   |
[INFO] [stderr] 8 | mod TableQueryHandler;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `table_query_handler`
[INFO] [stderr] 
[INFO] [stderr] warning: module `BPlusTree` should have a snake case name
[INFO] [stderr]  --> src/main.rs:9:5
[INFO] [stderr]   |
[INFO] [stderr] 9 | mod BPlusTree;
[INFO] [stderr]   |     ^^^^^^^^^ help: convert the identifier to snake case: `bplus_tree`
[INFO] [stderr] 
[INFO] [stderr] warning: module `Comparable` should have a snake case name
[INFO] [stderr]   --> src/main.rs:10:5
[INFO] [stderr]    |
[INFO] [stderr] 10 | mod Comparable;
[INFO] [stderr]    |     ^^^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `comparable`
[INFO] [stderr] 
[INFO] [stderr] warning: module `UniversalKey` should have a snake case name
[INFO] [stderr]   --> src/main.rs:11:5
[INFO] [stderr]    |
[INFO] [stderr] 11 | mod UniversalKey;
[INFO] [stderr]    |     ^^^^^^^^^^^^ help: convert the identifier to snake case: `universal_key`
[INFO] [stderr] 
[INFO] [stderr] warning: module `UniversalBPlusTree` should have a snake case name
[INFO] [stderr]   --> src/main.rs:12:5
[INFO] [stderr]    |
[INFO] [stderr] 12 | mod UniversalBPlusTree;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `universal_bplus_tree`
[INFO] [stderr] 
[INFO] [stderr] warning: module `TableBTreeManager` should have a snake case name
[INFO] [stderr]   --> src/main.rs:13:5
[INFO] [stderr]    |
[INFO] [stderr] 13 | mod TableBTreeManager;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `table_btree_manager`
[INFO] [stderr] 
[INFO] [stderr] warning: module `BTreePersistence` should have a snake case name
[INFO] [stderr]   --> src/main.rs:14:5
[INFO] [stderr]    |
[INFO] [stderr] 14 | mod BTreePersistence;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `btree_persistence`
[INFO] [stderr] 
[INFO] [stderr] warning: variable `new_Vec` should have a snake case name
[INFO] [stderr]    --> src/BTree.rs:141:17
[INFO] [stderr]     |
[INFO] [stderr] 141 |         let mut new_Vec : Vec<Box<Key>> = current.keys.to_vec();
[INFO] [stderr]     |                 ^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `new_vec`
[INFO] [stderr] 
[INFO] [stderr] warning: static variable `meta_config` should have an upper case name
[INFO] [stderr]   --> src/TableMetaHandler.rs:14:12
[INFO] [stderr]    |
[INFO] [stderr] 14 | pub static meta_config: Mutex<Option<TableMetaHandler>> = Mutex::new(None);
[INFO] [stderr]    |            ^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(non_upper_case_globals)]` on by default
[INFO] [stderr] help: convert the identifier to upper case
[INFO] [stderr]    |
[INFO] [stderr] 14 - pub static meta_config: Mutex<Option<TableMetaHandler>> = Mutex::new(None);
[INFO] [stderr] 14 + pub static META_CONFIG: Mutex<Option<TableMetaHandler>> = Mutex::new(None);
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: `OxideDB` (bin "OxideDB" test) generated 103 warnings (run `cargo fix --bin "OxideDB" --tests` to apply 32 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.04s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/OxideDB-025793cc09bcf697)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "bf743dbaf46b52b9f6dfc4042158a96ac21493564eb3c445fc1dc03c2ac42385", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "bf743dbaf46b52b9f6dfc4042158a96ac21493564eb3c445fc1dc03c2ac42385", kill_on_drop: false }`
[INFO] [stdout] bf743dbaf46b52b9f6dfc4042158a96ac21493564eb3c445fc1dc03c2ac42385
