[INFO] cloning repository https://github.com/sawlow81wt/mydb [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/sawlow81wt/mydb" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsawlow81wt%2Fmydb", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsawlow81wt%2Fmydb'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 441c85e44023875315189446e1cb0763ae518f69 [INFO] checking sawlow81wt/mydb against master#1f12b9b0fdbe735968ac002792a720f0ba4faca6 for crater-rollup-uwu [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsawlow81wt%2Fmydb" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/sawlow81wt/mydb on toolchain 1f12b9b0fdbe735968ac002792a720f0ba4faca6 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1f12b9b0fdbe735968ac002792a720f0ba4faca6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/sawlow81wt/mydb [INFO] finished tweaking git repo https://github.com/sawlow81wt/mydb [INFO] tweaked toml for git repo https://github.com/sawlow81wt/mydb written to /workspace/builds/worker-5-tc1/source/Cargo.toml [INFO] crate git repo https://github.com/sawlow81wt/mydb 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" "+1f12b9b0fdbe735968ac002792a720f0ba4faca6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:923055f121b5182466d55868a8b05e67af8ba4a3a3f6bad814e953ca3cd3ac2a" "/opt/rustwide/cargo-home/bin/cargo" "+1f12b9b0fdbe735968ac002792a720f0ba4faca6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 720bbc24ce5e51b800a1d847acd529af18b0e5038266ff34ceab3389670222b3 [INFO] running `Command { std: "docker" "start" "-a" "720bbc24ce5e51b800a1d847acd529af18b0e5038266ff34ceab3389670222b3", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "720bbc24ce5e51b800a1d847acd529af18b0e5038266ff34ceab3389670222b3", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "720bbc24ce5e51b800a1d847acd529af18b0e5038266ff34ceab3389670222b3", kill_on_drop: false }` [INFO] [stdout] 720bbc24ce5e51b800a1d847acd529af18b0e5038266ff34ceab3389670222b3 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:923055f121b5182466d55868a8b05e67af8ba4a3a3f6bad814e953ca3cd3ac2a" "/opt/rustwide/cargo-home/bin/cargo" "+1f12b9b0fdbe735968ac002792a720f0ba4faca6" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 2a6fa2f1c885a1fe8e6741560fad12481b7f0d35b5aef5267f75860fe32a1cd7 [INFO] running `Command { std: "docker" "start" "-a" "2a6fa2f1c885a1fe8e6741560fad12481b7f0d35b5aef5267f75860fe32a1cd7", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.43 [INFO] [stderr] Compiling unicode-ident v1.0.3 [INFO] [stderr] Compiling quote v1.0.21 [INFO] [stderr] Compiling syn v1.0.99 [INFO] [stderr] Compiling libc v0.2.126 [INFO] [stderr] Compiling anyhow v1.0.68 [INFO] [stderr] Checking cfg-if v1.0.0 [INFO] [stderr] Checking fastrand v1.7.0 [INFO] [stderr] Checking remove_dir_all v0.5.3 [INFO] [stderr] Checking tempfile v3.3.0 [INFO] [stderr] Compiling thiserror-impl v1.0.32 [INFO] [stderr] Checking thiserror v1.0.32 [INFO] [stderr] Checking mydb v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `RwLock` [INFO] [stdout] --> src/transaction/lock_table.rs:2:29 [INFO] [stdout] | [INFO] [stdout] 2 | use std::sync::{Arc, Mutex, RwLock}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Arc` and `Mutex` [INFO] [stdout] --> src/transaction/log_record.rs:1:17 [INFO] [stdout] | [INFO] [stdout] 1 | use std::sync::{Arc, Mutex}; [INFO] [stdout] | ^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `log_manager::LogManager` [INFO] [stdout] --> src/transaction/log_record.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | log_manager::LogManager, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `super::transaction::Transaction` [INFO] [stdout] --> src/transaction/log_record.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use super::transaction::Transaction; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `LogRecordTrait` and `transaction::Transaction` [INFO] [stdout] --> src/transaction/recovery_manager.rs:10:29 [INFO] [stdout] | [INFO] [stdout] 10 | log_record::{LogRecord, LogRecordTrait}, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 11 | transaction::Transaction, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `RwLock` [INFO] [stdout] --> src/transaction/lock_table.rs:2:29 [INFO] [stdout] | [INFO] [stdout] 2 | use std::sync::{Arc, Mutex, RwLock}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Arc` and `Mutex` [INFO] [stdout] --> src/transaction/log_record.rs:1:17 [INFO] [stdout] | [INFO] [stdout] 1 | use std::sync::{Arc, Mutex}; [INFO] [stdout] | ^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `log_manager::LogManager` [INFO] [stdout] --> src/transaction/log_record.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | log_manager::LogManager, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `super::transaction::Transaction` [INFO] [stdout] --> src/transaction/log_record.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use super::transaction::Transaction; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `LogRecordTrait` and `transaction::Transaction` [INFO] [stdout] --> src/transaction/recovery_manager.rs:10:29 [INFO] [stdout] | [INFO] [stdout] 10 | log_record::{LogRecord, LogRecordTrait}, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 11 | transaction::Transaction, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/transaction/log_record.rs:222:13 [INFO] [stdout] | [INFO] [stdout] 222 | _ => { [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> src/transaction/log_record.rs:222:13 [INFO] [stdout] | [INFO] [stdout] 146 | LogRecordType::CheckPoint => { [INFO] [stdout] | ------------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 152 | LogRecordType::Start => { [INFO] [stdout] | -------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 158 | LogRecordType::Commit => { [INFO] [stdout] | --------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 164 | LogRecordType::Rollback => { [INFO] [stdout] | ----------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 222 | _ => { [INFO] [stdout] | ^ ...and 2 other patterns collectively make this unreachable [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/transaction/log_record.rs:283:13 [INFO] [stdout] | [INFO] [stdout] 283 | _ => todo!(), [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> src/transaction/log_record.rs:283:13 [INFO] [stdout] | [INFO] [stdout] 232 | / LogRecord::CheckPoint(record) [INFO] [stdout] 233 | | | LogRecord::Commit(record) [INFO] [stdout] 234 | | | LogRecord::Start(record) [INFO] [stdout] 235 | | | LogRecord::Rollback(record) => { [INFO] [stdout] | |_________________________________________- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 246 | LogRecord::SetInt(record) => { [INFO] [stdout] | ------------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 264 | LogRecord::SetString(record) => { [INFO] [stdout] | ---------------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 283 | _ => todo!(), [INFO] [stdout] | ^ collectively making this unreachable [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/transaction/log_record.rs:222:13 [INFO] [stdout] | [INFO] [stdout] 222 | _ => { [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> src/transaction/log_record.rs:222:13 [INFO] [stdout] | [INFO] [stdout] 146 | LogRecordType::CheckPoint => { [INFO] [stdout] | ------------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 152 | LogRecordType::Start => { [INFO] [stdout] | -------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 158 | LogRecordType::Commit => { [INFO] [stdout] | --------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 164 | LogRecordType::Rollback => { [INFO] [stdout] | ----------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 222 | _ => { [INFO] [stdout] | ^ ...and 2 other patterns collectively make this unreachable [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `record` [INFO] [stdout] --> src/transaction/transaction.rs:188:35 [INFO] [stdout] | [INFO] [stdout] 188 | LogRecord::CheckPoint(record) [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 189 | | LogRecord::Commit(record) [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 190 | | LogRecord::Start(record) [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 191 | | LogRecord::Rollback(record) => { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 188 ~ LogRecord::CheckPoint(_record) [INFO] [stdout] 189 ~ | LogRecord::Commit(_record) [INFO] [stdout] 190 ~ | LogRecord::Start(_record) [INFO] [stdout] 191 ~ | LogRecord::Rollback(_record) => { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/transaction/log_record.rs:283:13 [INFO] [stdout] | [INFO] [stdout] 283 | _ => todo!(), [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> src/transaction/log_record.rs:283:13 [INFO] [stdout] | [INFO] [stdout] 232 | / LogRecord::CheckPoint(record) [INFO] [stdout] 233 | | | LogRecord::Commit(record) [INFO] [stdout] 234 | | | LogRecord::Start(record) [INFO] [stdout] 235 | | | LogRecord::Rollback(record) => { [INFO] [stdout] | |_________________________________________- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 246 | LogRecord::SetInt(record) => { [INFO] [stdout] | ------------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 264 | LogRecord::SetString(record) => { [INFO] [stdout] | ---------------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 283 | _ => todo!(), [INFO] [stdout] | ^ collectively making this unreachable [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MAX_TIME` is never used [INFO] [stdout] --> src/buffer_manager.rs:12:11 [INFO] [stdout] | [INFO] [stdout] 12 | pub const MAX_TIME: i32 = 10000; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `BufferAbortError` is never constructed [INFO] [stdout] --> src/buffer_manager.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 15 | pub enum BufferAbortError { [INFO] [stdout] | ---------------- variant in this enum [INFO] [stdout] 16 | #[error("Buffer Abort Error")] [INFO] [stdout] 17 | BufferAbortError, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `BufferAbortError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `block_id`, `pins`, `txnum`, and `last_save_numbder` are never read [INFO] [stdout] --> src/buffer_manager.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 20 | pub struct Buffer { [INFO] [stdout] | ------ fields in this struct [INFO] [stdout] 21 | contents: Page, [INFO] [stdout] 22 | block_id: Option, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 23 | pins: i32, [INFO] [stdout] | ^^^^ [INFO] [stdout] 24 | txnum: i32, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 25 | last_save_numbder: i32, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/buffer_manager.rs:42:8 [INFO] [stdout] | [INFO] [stdout] 41 | impl Buffer { [INFO] [stdout] | ----------- associated items in this implementation [INFO] [stdout] 42 | fn new(block_size: usize) -> Buffer { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 53 | pub fn block_id(&self) -> Option<&BlockId> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 60 | pub fn set_modified(&mut self, txnum: i32, last_save_number: i32) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 67 | pub fn is_pinned(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 71 | pub fn modifying_tx(&self) -> i32 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 75 | fn assign_to_back(&mut self, block_id: BlockId) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 81 | fn flush(&mut self) {} [INFO] [stdout] | ^^^^^ [INFO] [stdout] 82 | [INFO] [stdout] 83 | fn pin(&mut self) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 87 | fn unpin(&mut self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `BufferManager` is never constructed [INFO] [stdout] --> src/buffer_manager.rs:92:12 [INFO] [stdout] | [INFO] [stdout] 92 | pub struct BufferManager { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/buffer_manager.rs:100:12 [INFO] [stdout] | [INFO] [stdout] 99 | impl BufferManager { [INFO] [stdout] | ------------------ associated items in this implementation [INFO] [stdout] 100 | pub fn new( [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 116 | pub fn available(&self) -> i32 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 120 | pub fn flush_all(&mut self, txnum: i32) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 141 | pub fn unpin(&mut self, buffer: Arc>) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 148 | pub fn pin(&mut self, block_id: &BlockId) -> Result>, BufferAbortError> { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 155 | fn try_to_pin(&mut self, block_id: &BlockId) -> Option>> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 167 | fn find_assignable_block(&self, block_id: &BlockId) -> Option>> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 183 | fn find_existing_buffer(&self, target_block_id: &BlockId) -> Option>> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 196 | fn choose_unpinned_buffer(&self) -> Option>> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `PAGE_SIZE` is never used [INFO] [stdout] --> src/file_manager.rs:9:11 [INFO] [stdout] | [INFO] [stdout] 9 | pub const PAGE_SIZE: usize = 4096; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/file_manager.rs:19:8 [INFO] [stdout] | [INFO] [stdout] 18 | impl BlockId { [INFO] [stdout] | ------------ associated function in this implementation [INFO] [stdout] 19 | fn new(filename: &str, block_number: i32) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `write`, `length`, `append_new_block`, and `last_block_num` are never used [INFO] [stdout] --> src/file_manager.rs:101:12 [INFO] [stdout] | [INFO] [stdout] 100 | impl FileManager { [INFO] [stdout] | ---------------- associated items in this implementation [INFO] [stdout] 101 | pub fn new(directory: String) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 109 | pub fn write(&mut self, block_id: &BlockId, page: &mut Page) -> io::Result<()> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 140 | pub fn length(&mut self, filename: &String) -> anyhow::Result { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 146 | pub fn append_new_block(&mut self, filename: &String) -> io::Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 162 | pub fn last_block_num(&mut self, filename: &String) -> io::Result { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `LogManager` is never constructed [INFO] [stdout] --> src/log_manager.rs:8:12 [INFO] [stdout] | [INFO] [stdout] 8 | pub struct LogManager { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/log_manager.rs:18:12 [INFO] [stdout] | [INFO] [stdout] 17 | impl LogManager { [INFO] [stdout] | --------------- associated items in this implementation [INFO] [stdout] 18 | pub fn new(mut file_manager: FileManager, log_file: String) -> io::Result { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 43 | pub fn flush_with(&mut self, lsn: i32) -> io::Result<()> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 50 | pub fn iterator(&mut self) -> io::Result { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 55 | pub fn append_record(&mut self, log_record: &[u8]) -> io::Result { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 75 | fn append_new_block(&mut self) -> io::Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 91 | fn get_boundary(&mut self) -> i32 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 95 | fn set_boundary(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 101 | fn flush(&mut self) -> io::Result<()> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/log_manager.rs:120:12 [INFO] [stdout] | [INFO] [stdout] 119 | impl LogIterator { [INFO] [stdout] | ---------------- associated function in this implementation [INFO] [stdout] 120 | pub fn new(file_manager: Arc>, block_id: BlockId) -> io::Result { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `BufferList` is never constructed [INFO] [stdout] --> src/transaction/buffer_list.rs:6:12 [INFO] [stdout] | [INFO] [stdout] 6 | pub struct BufferList { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `get_buffer`, `pin`, `unpin`, and `unpin_all` are never used [INFO] [stdout] --> src/transaction/buffer_list.rs:13:12 [INFO] [stdout] | [INFO] [stdout] 12 | impl BufferList { [INFO] [stdout] | --------------- associated items in this implementation [INFO] [stdout] 13 | pub fn new(buffer_manager: Arc>) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 23 | pub fn get_buffer(&self, block_id: &BlockId) -> Option<&Arc>> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 27 | pub fn pin(&mut self, block_id: &BlockId) -> anyhow::Result<()> { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 39 | pub fn unpin(&mut self, block_id: &BlockId) -> anyhow::Result<()> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 60 | pub fn unpin_all(&mut self) -> anyhow::Result<()> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MAX_TIME` is never used [INFO] [stdout] --> src/transaction/lock_table.rs:7:7 [INFO] [stdout] | [INFO] [stdout] 7 | const MAX_TIME: Duration = Duration::from_secs(10); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `table` is never read [INFO] [stdout] --> src/transaction/lock_table.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 9 | pub struct LockTable { [INFO] [stdout] | --------- field in this struct [INFO] [stdout] 10 | table: HashMap, [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/transaction/lock_table.rs:22:12 [INFO] [stdout] | [INFO] [stdout] 21 | impl LockTable { [INFO] [stdout] | -------------- associated items in this implementation [INFO] [stdout] 22 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 26 | fn slock(&mut self, block_id: &BlockId) -> Result<(), LockAbortError> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 40 | fn xlock(&mut self, block_id: &BlockId) -> Result<(), LockAbortError> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 52 | fn unlock(&mut self, block_id: &BlockId) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 61 | fn has_xlock(&self, block_id: &BlockId) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 65 | fn has_other_slocks(&self, block_id: &BlockId) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 69 | fn get_lock_val(&self, block_id: &BlockId) -> i32 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ConcurrentManager` is never constructed [INFO] [stdout] --> src/transaction/lock_table.rs:77:12 [INFO] [stdout] | [INFO] [stdout] 77 | pub struct ConcurrentManager { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `slock`, `xlock`, `release`, and `has_lock` are never used [INFO] [stdout] --> src/transaction/lock_table.rs:83:12 [INFO] [stdout] | [INFO] [stdout] 82 | impl ConcurrentManager { [INFO] [stdout] | ---------------------- associated items in this implementation [INFO] [stdout] 83 | pub fn new(lock_table: Arc>) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 88 | pub fn slock(&mut self, block_id: &BlockId) -> anyhow::Result<()> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 96 | pub fn xlock(&mut self, block_id: &BlockId) -> anyhow::Result<()> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 106 | pub fn release(&mut self) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 113 | fn has_lock(&self, block_id: &BlockId) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `get_txnum` is never used [INFO] [stdout] --> src/transaction/log_record.rs:125:8 [INFO] [stdout] | [INFO] [stdout] 124 | pub trait LogRecordTrait { [INFO] [stdout] | -------------- method in this trait [INFO] [stdout] 125 | fn get_txnum(&self) -> i32; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `record_type` is never read [INFO] [stdout] --> src/transaction/log_record.rs:134:5 [INFO] [stdout] | [INFO] [stdout] 133 | pub struct UpdateRecord { [INFO] [stdout] | ------------ field in this struct [INFO] [stdout] 134 | record_type: LogRecordType, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `RecoveryManager` is never constructed [INFO] [stdout] --> src/transaction/recovery_manager.rs:14:12 [INFO] [stdout] | [INFO] [stdout] 14 | pub struct RecoveryManager { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `commit`, `rollback`, `recover`, `set_int`, and `set_string` are never used [INFO] [stdout] --> src/transaction/recovery_manager.rs:22:12 [INFO] [stdout] | [INFO] [stdout] 21 | impl RecoveryManager { [INFO] [stdout] | -------------------- associated items in this implementation [INFO] [stdout] 22 | pub fn new( [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 43 | pub fn commit(&self) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 56 | pub fn rollback(&self) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 69 | pub fn recover(&self) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 82 | pub fn set_int(&self, buf: Arc>, offset: i32) -> i32 { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 99 | pub fn set_string(&self, buf: Arc>, offset: i32) -> i32 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `TXMUN` is never used [INFO] [stdout] --> src/transaction/transaction.rs:15:8 [INFO] [stdout] | [INFO] [stdout] 15 | static TXMUN: AtomicUsize = AtomicUsize::new(0); [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Transaction` is never constructed [INFO] [stdout] --> src/transaction/transaction.rs:17:12 [INFO] [stdout] | [INFO] [stdout] 17 | pub struct Transaction { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/transaction/transaction.rs:28:12 [INFO] [stdout] | [INFO] [stdout] 27 | impl Transaction { [INFO] [stdout] | ---------------- associated items in this implementation [INFO] [stdout] 28 | pub fn new( [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 52 | pub fn commit(&mut self) -> anyhow::Result<()> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 59 | pub fn rollback(&mut self) -> anyhow::Result<()> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 79 | pub fn recover(&mut self) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 102 | pub fn pin(&mut self, block_id: &BlockId) -> anyhow::Result<()> { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 106 | pub fn unpin(&mut self, block_id: &BlockId) -> anyhow::Result<()> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 110 | pub fn get_int(&mut self, block_id: &BlockId, offset: i32) -> anyhow::Result { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 120 | pub fn get_string(&mut self, block_id: &BlockId, offset: i32) -> anyhow::Result { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 132 | pub fn set_int( [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 154 | pub fn set_string( [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 176 | pub fn size(&mut self, filename: String) -> anyhow::Result { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 186 | pub fn undo(&mut self, log_record: LogRecord) { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/transaction/transaction.rs:195:17 [INFO] [stdout] | [INFO] [stdout] 195 | self.pin(&record.block_id); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 195 | let _ = self.pin(&record.block_id); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/transaction/transaction.rs:196:17 [INFO] [stdout] | [INFO] [stdout] 196 | self.set_int(&record.block_id, record.offset, record.value, false); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 196 | let _ = self.set_int(&record.block_id, record.offset, record.value, false); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/transaction/transaction.rs:197:17 [INFO] [stdout] | [INFO] [stdout] 197 | self.unpin(&record.block_id); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 197 | let _ = self.unpin(&record.block_id); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/transaction/transaction.rs:200:17 [INFO] [stdout] | [INFO] [stdout] 200 | self.pin(&record.block_id); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 200 | let _ = self.pin(&record.block_id); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/transaction/transaction.rs:201:17 [INFO] [stdout] | [INFO] [stdout] 201 | self.set_string(&record.block_id, record.offset, record.value, false); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 201 | let _ = self.set_string(&record.block_id, record.offset, record.value, false); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/transaction/transaction.rs:202:17 [INFO] [stdout] | [INFO] [stdout] 202 | self.unpin(&record.block_id); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 202 | let _ = self.unpin(&record.block_id); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `record` [INFO] [stdout] --> src/transaction/transaction.rs:188:35 [INFO] [stdout] | [INFO] [stdout] 188 | LogRecord::CheckPoint(record) [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 189 | | LogRecord::Commit(record) [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 190 | | LogRecord::Start(record) [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 191 | | LogRecord::Rollback(record) => { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] help: if this is intentional, prefix it with an underscore [INFO] [stdout] | [INFO] [stdout] 188 ~ LogRecord::CheckPoint(_record) [INFO] [stdout] 189 ~ | LogRecord::Commit(_record) [INFO] [stdout] 190 ~ | LogRecord::Start(_record) [INFO] [stdout] 191 ~ | LogRecord::Rollback(_record) => { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 40 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `rval` [INFO] [stdout] --> src/transaction/transaction.rs:286:13 [INFO] [stdout] | [INFO] [stdout] 286 | let rval = tx4.get_int(&block, 80); [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_rval` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MAX_TIME` is never used [INFO] [stdout] --> src/buffer_manager.rs:12:11 [INFO] [stdout] | [INFO] [stdout] 12 | pub const MAX_TIME: i32 = 10000; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/file_manager.rs:19:8 [INFO] [stdout] | [INFO] [stdout] 18 | impl BlockId { [INFO] [stdout] | ------------ associated function in this implementation [INFO] [stdout] 19 | fn new(filename: &str, block_number: i32) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `length` is never used [INFO] [stdout] --> src/file_manager.rs:140:12 [INFO] [stdout] | [INFO] [stdout] 100 | impl FileManager { [INFO] [stdout] | ---------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 140 | pub fn length(&mut self, filename: &String) -> anyhow::Result { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `record_type` is never read [INFO] [stdout] --> src/transaction/log_record.rs:134:5 [INFO] [stdout] | [INFO] [stdout] 133 | pub struct UpdateRecord { [INFO] [stdout] | ------------ field in this struct [INFO] [stdout] 134 | record_type: LogRecordType, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `test_set_int` is never used [INFO] [stdout] --> src/transaction/log_record.rs:313:8 [INFO] [stdout] | [INFO] [stdout] 313 | fn test_set_int() { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `recover` is never used [INFO] [stdout] --> src/transaction/recovery_manager.rs:69:12 [INFO] [stdout] | [INFO] [stdout] 21 | impl RecoveryManager { [INFO] [stdout] | -------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 69 | pub fn recover(&self) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `file_manager` and `buffer_manager` are never read [INFO] [stdout] --> src/transaction/transaction.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 17 | pub struct Transaction { [INFO] [stdout] | ----------- fields in this struct [INFO] [stdout] 18 | file_manager: Arc>, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 19 | log_manager: Arc>, [INFO] [stdout] 20 | buffer_manager: Arc>, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `recover` and `size` are never used [INFO] [stdout] --> src/transaction/transaction.rs:79:12 [INFO] [stdout] | [INFO] [stdout] 27 | impl Transaction { [INFO] [stdout] | ---------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 79 | pub fn recover(&mut self) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 176 | pub fn size(&mut self, filename: String) -> anyhow::Result { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/transaction/transaction.rs:195:17 [INFO] [stdout] | [INFO] [stdout] 195 | self.pin(&record.block_id); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 195 | let _ = self.pin(&record.block_id); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/transaction/transaction.rs:196:17 [INFO] [stdout] | [INFO] [stdout] 196 | self.set_int(&record.block_id, record.offset, record.value, false); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 196 | let _ = self.set_int(&record.block_id, record.offset, record.value, false); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/transaction/transaction.rs:197:17 [INFO] [stdout] | [INFO] [stdout] 197 | self.unpin(&record.block_id); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 197 | let _ = self.unpin(&record.block_id); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/transaction/transaction.rs:200:17 [INFO] [stdout] | [INFO] [stdout] 200 | self.pin(&record.block_id); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 200 | let _ = self.pin(&record.block_id); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/transaction/transaction.rs:201:17 [INFO] [stdout] | [INFO] [stdout] 201 | self.set_string(&record.block_id, record.offset, record.value, false); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 201 | let _ = self.set_string(&record.block_id, record.offset, record.value, false); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/transaction/transaction.rs:202:17 [INFO] [stdout] | [INFO] [stdout] 202 | self.unpin(&record.block_id); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 202 | let _ = self.unpin(&record.block_id); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing [INFO] [stdout] --> src/transaction/transaction.rs:244:31 [INFO] [stdout] | [INFO] [stdout] 244 | filename: filename.clone().to_string(), [INFO] [stdout] | ^^^^^^^^ help: remove this redundant call [INFO] [stdout] | [INFO] [stdout] = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed [INFO] [stdout] = note: `#[warn(noop_method_call)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/transaction/transaction.rs:248:9 [INFO] [stdout] | [INFO] [stdout] 248 | tx1.pin(&block); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 248 | let _ = tx1.pin(&block); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/transaction/transaction.rs:249:9 [INFO] [stdout] | [INFO] [stdout] 249 | tx1.set_int(&block, 80, 1, false); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 249 | let _ = tx1.set_int(&block, 80, 1, false); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/transaction/transaction.rs:250:9 [INFO] [stdout] | [INFO] [stdout] 250 | tx1.set_string(&block, 40, "one".to_string(), false); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 250 | let _ = tx1.set_string(&block, 40, "one".to_string(), false); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/transaction/transaction.rs:251:9 [INFO] [stdout] | [INFO] [stdout] 251 | tx1.commit(); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 251 | let _ = tx1.commit(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/transaction/transaction.rs:259:9 [INFO] [stdout] | [INFO] [stdout] 259 | tx2.pin(&block); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 259 | let _ = tx2.pin(&block); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/transaction/transaction.rs:265:9 [INFO] [stdout] | [INFO] [stdout] 265 | tx2.set_int(&block, 80, new_ival, false); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 265 | let _ = tx2.set_int(&block, 80, new_ival, false); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/transaction/transaction.rs:266:9 [INFO] [stdout] | [INFO] [stdout] 266 | tx2.set_string(&block, 40, new_sval.to_string(), false); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 266 | let _ = tx2.set_string(&block, 40, new_sval.to_string(), false); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/transaction/transaction.rs:267:9 [INFO] [stdout] | [INFO] [stdout] 267 | tx2.commit(); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 267 | let _ = tx2.commit(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/transaction/transaction.rs:275:9 [INFO] [stdout] | [INFO] [stdout] 275 | tx3.pin(&block); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 275 | let _ = tx3.pin(&block); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/transaction/transaction.rs:276:9 [INFO] [stdout] | [INFO] [stdout] 276 | tx3.set_int(&block, 80, 9999, false); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 276 | let _ = tx3.set_int(&block, 80, 9999, false); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/transaction/transaction.rs:277:9 [INFO] [stdout] | [INFO] [stdout] 277 | tx3.rollback(); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 277 | let _ = tx3.rollback(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/transaction/transaction.rs:285:9 [INFO] [stdout] | [INFO] [stdout] 285 | tx4.pin(&block); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 285 | let _ = tx4.pin(&block); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/transaction/transaction.rs:287:9 [INFO] [stdout] | [INFO] [stdout] 287 | tx4.commit(); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 287 | let _ = tx4.commit(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 37 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MAX_TIME` is never used [INFO] [stdout] --> src/buffer_manager.rs:12:11 [INFO] [stdout] | [INFO] [stdout] 12 | pub const MAX_TIME: i32 = 10000; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `BufferAbortError` is never constructed [INFO] [stdout] --> src/buffer_manager.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 15 | pub enum BufferAbortError { [INFO] [stdout] | ---------------- variant in this enum [INFO] [stdout] 16 | #[error("Buffer Abort Error")] [INFO] [stdout] 17 | BufferAbortError, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `BufferAbortError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `block_id`, `pins`, `txnum`, and `last_save_numbder` are never read [INFO] [stdout] --> src/buffer_manager.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 20 | pub struct Buffer { [INFO] [stdout] | ------ fields in this struct [INFO] [stdout] 21 | contents: Page, [INFO] [stdout] 22 | block_id: Option, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 23 | pins: i32, [INFO] [stdout] | ^^^^ [INFO] [stdout] 24 | txnum: i32, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 25 | last_save_numbder: i32, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/buffer_manager.rs:42:8 [INFO] [stdout] | [INFO] [stdout] 41 | impl Buffer { [INFO] [stdout] | ----------- associated items in this implementation [INFO] [stdout] 42 | fn new(block_size: usize) -> Buffer { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 53 | pub fn block_id(&self) -> Option<&BlockId> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 60 | pub fn set_modified(&mut self, txnum: i32, last_save_number: i32) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 67 | pub fn is_pinned(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 71 | pub fn modifying_tx(&self) -> i32 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 75 | fn assign_to_back(&mut self, block_id: BlockId) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 81 | fn flush(&mut self) {} [INFO] [stdout] | ^^^^^ [INFO] [stdout] 82 | [INFO] [stdout] 83 | fn pin(&mut self) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 87 | fn unpin(&mut self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `BufferManager` is never constructed [INFO] [stdout] --> src/buffer_manager.rs:92:12 [INFO] [stdout] | [INFO] [stdout] 92 | pub struct BufferManager { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/buffer_manager.rs:100:12 [INFO] [stdout] | [INFO] [stdout] 99 | impl BufferManager { [INFO] [stdout] | ------------------ associated items in this implementation [INFO] [stdout] 100 | pub fn new( [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 116 | pub fn available(&self) -> i32 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 120 | pub fn flush_all(&mut self, txnum: i32) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 141 | pub fn unpin(&mut self, buffer: Arc>) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 148 | pub fn pin(&mut self, block_id: &BlockId) -> Result>, BufferAbortError> { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 155 | fn try_to_pin(&mut self, block_id: &BlockId) -> Option>> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 167 | fn find_assignable_block(&self, block_id: &BlockId) -> Option>> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 183 | fn find_existing_buffer(&self, target_block_id: &BlockId) -> Option>> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 196 | fn choose_unpinned_buffer(&self) -> Option>> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `PAGE_SIZE` is never used [INFO] [stdout] --> src/file_manager.rs:9:11 [INFO] [stdout] | [INFO] [stdout] 9 | pub const PAGE_SIZE: usize = 4096; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/file_manager.rs:19:8 [INFO] [stdout] | [INFO] [stdout] 18 | impl BlockId { [INFO] [stdout] | ------------ associated function in this implementation [INFO] [stdout] 19 | fn new(filename: &str, block_number: i32) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `set_int`, `set_bytes`, `get_string`, `set_string`, and `max_length` are never used [INFO] [stdout] --> src/file_manager.rs:46:12 [INFO] [stdout] | [INFO] [stdout] 32 | impl Page { [INFO] [stdout] | --------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 46 | pub fn set_int(&mut self, offset: usize, value: i32) -> io::Result<()> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 60 | pub fn set_bytes(&mut self, offset: usize, value: &[u8]) -> io::Result<()> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 67 | pub fn get_string(&mut self, offset: usize) -> io::Result { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 72 | pub fn set_string(&mut self, offset: usize, value: String) -> io::Result<()> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 77 | pub fn max_length(strlen: usize) -> usize { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `write`, `length`, `append_new_block`, and `last_block_num` are never used [INFO] [stdout] --> src/file_manager.rs:101:12 [INFO] [stdout] | [INFO] [stdout] 100 | impl FileManager { [INFO] [stdout] | ---------------- associated items in this implementation [INFO] [stdout] 101 | pub fn new(directory: String) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 109 | pub fn write(&mut self, block_id: &BlockId, page: &mut Page) -> io::Result<()> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 140 | pub fn length(&mut self, filename: &String) -> anyhow::Result { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 146 | pub fn append_new_block(&mut self, filename: &String) -> io::Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 162 | pub fn last_block_num(&mut self, filename: &String) -> io::Result { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `LogManager` is never constructed [INFO] [stdout] --> src/log_manager.rs:8:12 [INFO] [stdout] | [INFO] [stdout] 8 | pub struct LogManager { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/log_manager.rs:18:12 [INFO] [stdout] | [INFO] [stdout] 17 | impl LogManager { [INFO] [stdout] | --------------- associated items in this implementation [INFO] [stdout] 18 | pub fn new(mut file_manager: FileManager, log_file: String) -> io::Result { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 43 | pub fn flush_with(&mut self, lsn: i32) -> io::Result<()> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 50 | pub fn iterator(&mut self) -> io::Result { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 55 | pub fn append_record(&mut self, log_record: &[u8]) -> io::Result { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 75 | fn append_new_block(&mut self) -> io::Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 91 | fn get_boundary(&mut self) -> i32 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 95 | fn set_boundary(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 101 | fn flush(&mut self) -> io::Result<()> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/log_manager.rs:120:12 [INFO] [stdout] | [INFO] [stdout] 119 | impl LogIterator { [INFO] [stdout] | ---------------- associated function in this implementation [INFO] [stdout] 120 | pub fn new(file_manager: Arc>, block_id: BlockId) -> io::Result { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 13 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MAX_TIME` is never used [INFO] [stdout] --> src/buffer_manager.rs:12:11 [INFO] [stdout] | [INFO] [stdout] 12 | pub const MAX_TIME: i32 = 10000; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `txnum` and `last_save_numbder` are never read [INFO] [stdout] --> src/buffer_manager.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 20 | pub struct Buffer { [INFO] [stdout] | ------ fields in this struct [INFO] [stdout] ... [INFO] [stdout] 24 | txnum: i32, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 25 | last_save_numbder: i32, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `block_id`, `set_modified`, and `modifying_tx` are never used [INFO] [stdout] --> src/buffer_manager.rs:53:12 [INFO] [stdout] | [INFO] [stdout] 41 | impl Buffer { [INFO] [stdout] | ----------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 53 | pub fn block_id(&self) -> Option<&BlockId> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 60 | pub fn set_modified(&mut self, txnum: i32, last_save_number: i32) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 71 | pub fn modifying_tx(&self) -> i32 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `log_manager` is never read [INFO] [stdout] --> src/buffer_manager.rs:94:5 [INFO] [stdout] | [INFO] [stdout] 92 | pub struct BufferManager { [INFO] [stdout] | ------------- field in this struct [INFO] [stdout] 93 | file_manager: Arc>, [INFO] [stdout] 94 | log_manager: Arc>, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `flush_all` is never used [INFO] [stdout] --> src/buffer_manager.rs:120:12 [INFO] [stdout] | [INFO] [stdout] 99 | impl BufferManager { [INFO] [stdout] | ------------------ method in this implementation [INFO] [stdout] ... [INFO] [stdout] 120 | pub fn flush_all(&mut self, txnum: i32) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/file_manager.rs:19:8 [INFO] [stdout] | [INFO] [stdout] 18 | impl BlockId { [INFO] [stdout] | ------------ associated function in this implementation [INFO] [stdout] 19 | fn new(filename: &str, block_number: i32) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `length` is never used [INFO] [stdout] --> src/file_manager.rs:140:12 [INFO] [stdout] | [INFO] [stdout] 100 | impl FileManager { [INFO] [stdout] | ---------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 140 | pub fn length(&mut self, filename: &String) -> anyhow::Result { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `flush_with` is never used [INFO] [stdout] --> src/log_manager.rs:43:12 [INFO] [stdout] | [INFO] [stdout] 17 | impl LogManager { [INFO] [stdout] | --------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 43 | pub fn flush_with(&mut self, lsn: i32) -> io::Result<()> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 8 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 2.22s [INFO] running `Command { std: "docker" "inspect" "2a6fa2f1c885a1fe8e6741560fad12481b7f0d35b5aef5267f75860fe32a1cd7", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "2a6fa2f1c885a1fe8e6741560fad12481b7f0d35b5aef5267f75860fe32a1cd7", kill_on_drop: false }` [INFO] [stdout] 2a6fa2f1c885a1fe8e6741560fad12481b7f0d35b5aef5267f75860fe32a1cd7