[INFO] cloning repository https://github.com/PavelZaytsev/sstable [INFO] running `"git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/PavelZaytsev/sstable" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FPavelZaytsev%2Fsstable"` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FPavelZaytsev%2Fsstable'... [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 56de279906d0a0178ec923cbc49002560b52ae75 [INFO] checking PavelZaytsev/sstable against try#ea663bba38739867a4b75ac820991b4f5d093c3b for pr-62262-1 [INFO] running `"git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FPavelZaytsev%2Fsstable" "/workspace/builds/worker-3/source"` [INFO] [stderr] Cloning into '/workspace/builds/worker-3/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/PavelZaytsev/sstable on toolchain ea663bba38739867a4b75ac820991b4f5d093c3b [INFO] running `"/workspace/cargo-home/bin/cargo" "+ea663bba38739867a4b75ac820991b4f5d093c3b" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started tweaking git repo https://github.com/PavelZaytsev/sstable [INFO] finished tweaking git repo https://github.com/PavelZaytsev/sstable [INFO] tweaked toml for git repo https://github.com/PavelZaytsev/sstable written to /workspace/builds/worker-3/source/Cargo.toml [INFO] crate git repo https://github.com/PavelZaytsev/sstable already has a lockfile, it will not be regenerated [INFO] running `"/workspace/cargo-home/bin/cargo" "+ea663bba38739867a4b75ac820991b4f5d093c3b" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3/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" "MAP_USER_ID=0" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--network" "none" "rustops/crates-build-env" "/opt/rustwide/cargo-home/bin/cargo" "+ea663bba38739867a4b75ac820991b4f5d093c3b" "check" "--frozen" "--all" "--all-targets"` [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] [stdout] 11b8cb858aebb7c783a08326d68734550fd68c4b84718405cfdfd76db06afb76 [INFO] running `"docker" "start" "-a" "11b8cb858aebb7c783a08326d68734550fd68c4b84718405cfdfd76db06afb76"` [INFO] [stderr] Compiling rand v0.6.5 [INFO] [stderr] Compiling num-traits v0.2.7 [INFO] [stderr] Compiling rand_chacha v0.2.0 [INFO] [stderr] Checking wait-timeout v0.2.0 [INFO] [stderr] Compiling serde_derive v1.0.91 [INFO] [stderr] Compiling derivative v1.0.2 [INFO] [stderr] Checking rand v0.7.0 [INFO] [stderr] Checking tempfile v3.0.8 [INFO] [stderr] Checking rusty-fork v0.2.2 [INFO] [stderr] Checking proptest v0.9.4 [INFO] [stderr] Checking serde v1.0.91 [INFO] [stderr] Checking bincode v1.1.3 [INFO] [stderr] Checking sstable v0.1.0 (/opt/rustwide/workdir) [INFO] [stderr] warning: unused doc comment [INFO] [stderr] --> src/sstable.rs:546:5 [INFO] [stderr] | [INFO] [stderr] 546 | / /// - take a vector of arbitrary size [INFO] [stderr] 547 | | /// - generate random string tuples for the vector [INFO] [stderr] 548 | | /// - sort the vector by key [INFO] [stderr] 549 | | /// - create meta info vector from it [INFO] [stderr] 550 | | /// - search should find all the keys [INFO] [stderr] | |_________________________________________^ [INFO] [stderr] 551 | / proptest! { [INFO] [stderr] 552 | | // takes a long time even for small inputs: https://github.com/AltSysrq/proptest/issues/162 [INFO] [stderr] 553 | | #[test] [INFO] [stderr] 554 | | fn search_in_random_string_vector(kv_vector in vec(("\\PC*", "\\PC*"), 1..100)) { [INFO] [stderr] ... | [INFO] [stderr] 583 | | } [INFO] [stderr] 584 | | } [INFO] [stderr] | |_____- rustdoc does not generate documentation for macro expansions [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stderr] = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion [INFO] [stderr] [INFO] [stderr] warning: unused doc comment [INFO] [stderr] --> src/sstable.rs:546:5 [INFO] [stderr] | [INFO] [stderr] 546 | / /// - take a vector of arbitrary size [INFO] [stderr] 547 | | /// - generate random string tuples for the vector [INFO] [stderr] 548 | | /// - sort the vector by key [INFO] [stderr] 549 | | /// - create meta info vector from it [INFO] [stderr] 550 | | /// - search should find all the keys [INFO] [stderr] | |_________________________________________^ [INFO] [stderr] 551 | / proptest! { [INFO] [stderr] 552 | | // takes a long time even for small inputs: https://github.com/AltSysrq/proptest/issues/162 [INFO] [stderr] 553 | | #[test] [INFO] [stderr] 554 | | fn search_in_random_string_vector(kv_vector in vec(("\\PC*", "\\PC*"), 1..100)) { [INFO] [stderr] ... | [INFO] [stderr] 583 | | } [INFO] [stderr] 584 | | } [INFO] [stderr] | |_____- rustdoc does not generate documentation for macro expansions [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stderr] = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::collections::HashMap` [INFO] [stderr] --> src/sstable.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use std::collections::HashMap; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::fs::File` [INFO] [stderr] --> src/sstable.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use std::fs::File; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::hash::Hash` [INFO] [stderr] --> src/sstable.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | use std::hash::Hash; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::cmp::Eq` [INFO] [stderr] --> src/sstable.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | use std::cmp::Eq; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::fs` [INFO] [stderr] --> src/sstable.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | use std::fs; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::io::BufReader` [INFO] [stderr] --> src/sstable.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 10 | use std::io::BufReader; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::io::BufWriter` [INFO] [stderr] --> src/sstable.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | use std::io::BufWriter; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Deserialize`, `de` [INFO] [stderr] --> src/sstable.rs:15:13 [INFO] [stderr] | [INFO] [stderr] 15 | use serde::{de, Serialize, Deserialize}; [INFO] [stderr] | ^^ ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `deserialize`, `serialize` [INFO] [stderr] --> src/sstable.rs:17:15 [INFO] [stderr] | [INFO] [stderr] 17 | use bincode::{serialize, deserialize, ErrorKind}; [INFO] [stderr] | ^^^^^^^^^ ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::mem` [INFO] [stderr] --> src/sstable.rs:24:5 [INFO] [stderr] | [INFO] [stderr] 24 | use std::mem; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::mem::size_of_val` [INFO] [stderr] --> src/sstable.rs:25:5 [INFO] [stderr] | [INFO] [stderr] 25 | use std::mem::size_of_val; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::convert::TryInto` [INFO] [stderr] --> src/sstable.rs:28:5 [INFO] [stderr] | [INFO] [stderr] 28 | use std::convert::TryInto; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::marker::Copy` [INFO] [stderr] --> src/sstable.rs:29:5 [INFO] [stderr] | [INFO] [stderr] 29 | use std::marker::Copy; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around function argument [INFO] [stderr] --> src/sstable.rs:398:12 [INFO] [stderr] | [INFO] [stderr] 398 | Ok((dest_buffer.len())) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_parens)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `sstable::FileSegment` [INFO] [stderr] --> src/main.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use sstable::FileSegment; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `ErrorKind`, `deserialize`, `serialize` [INFO] [stderr] --> src/main.rs:4:15 [INFO] [stderr] | [INFO] [stderr] 4 | use bincode::{serialize, deserialize, ErrorKind}; [INFO] [stderr] | ^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Deserialize`, `Serialize`, `Serializer` [INFO] [stderr] --> src/main.rs:5:13 [INFO] [stderr] | [INFO] [stderr] 5 | use serde::{Serialize, Deserialize, Serializer}; [INFO] [stderr] | ^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `serde::ser` [INFO] [stderr] --> src/main.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | use serde::ser; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::io::BufWriter` [INFO] [stderr] --> src/main.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | use std::io::BufWriter; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Empty`, `Node` [INFO] [stderr] --> src/main.rs:8:37 [INFO] [stderr] | [INFO] [stderr] 8 | use rbt::red_black_tree::NodeType::{Node, Empty}; [INFO] [stderr] | ^^^^ ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `rbt::red_black_tree::RBT` [INFO] [stderr] --> src/main.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | use rbt::red_black_tree::RBT; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `sstable::SSTableObject` [INFO] [stderr] --> src/main.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 10 | use sstable::SSTableObject; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::ops::Deref` [INFO] [stderr] --> src/main.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | use std::ops::Deref; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::rc::Rc` [INFO] [stderr] --> src/rbt.rs:8:9 [INFO] [stderr] | [INFO] [stderr] 8 | use std::rc::Rc; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `size_of` [INFO] [stderr] --> src/rbt.rs:10:33 [INFO] [stderr] | [INFO] [stderr] 10 | use std::mem::{size_of_val, size_of}; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `super::red_black_tree::RBT` [INFO] [stderr] --> src/rbt.rs:456:9 [INFO] [stderr] | [INFO] [stderr] 456 | use super::red_black_tree::RBT; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::rc::Rc` [INFO] [stderr] --> src/rbt.rs:458:9 [INFO] [stderr] | [INFO] [stderr] 458 | use std::rc::Rc; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::sync::Arc` [INFO] [stderr] --> src/rbt.rs:459:9 [INFO] [stderr] | [INFO] [stderr] 459 | use std::sync::Arc; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::ops::Range` [INFO] [stderr] --> src/rbt.rs:461:9 [INFO] [stderr] | [INFO] [stderr] 461 | use std::ops::Range; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `rand::prelude::SliceRandom` [INFO] [stderr] --> src/rbt.rs:464:9 [INFO] [stderr] | [INFO] [stderr] 464 | use rand::prelude::SliceRandom; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around assigned value [INFO] [stderr] --> src/rbt.rs:490:28 [INFO] [stderr] | [INFO] [stderr] 490 | let mut e: usize = (v.len() - 1); [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unused import: `SparseIndexEntry` [INFO] [stderr] --> src/api.rs:1:56 [INFO] [stderr] | [INFO] [stderr] 1 | use crate::sstable::{SSTableObject, AppendOnlySegment, SparseIndexEntry}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `IndexConstructionError` [INFO] [stderr] --> src/api.rs:2:82 [INFO] [stderr] | [INFO] [stderr] 2 | use crate::sstable::errors::{SearchError, SearchResult, IndexConstructionResult, IndexConstructionError}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::rbt::red_black_tree::RBT` [INFO] [stderr] --> src/api.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use crate::rbt::red_black_tree::RBT; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::rc::Rc` [INFO] [stderr] --> src/api.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | use std::rc::Rc; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `TryRecvError::Disconnected`, `TryRecvError::Empty` [INFO] [stderr] --> src/api.rs:12:50 [INFO] [stderr] | [INFO] [stderr] 12 | use std::sync::mpsc::{Sender, Receiver, channel, TryRecvError::Empty, TryRecvError::Disconnected}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::ptr::replace` [INFO] [stderr] --> src/api.rs:16:5 [INFO] [stderr] | [INFO] [stderr] 16 | use std::ptr::replace; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/api.rs:69:19 [INFO] [stderr] | [INFO] [stderr] 69 | if(*order == data_order){ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unused import: `rbt::red_black_tree::NodeType` [INFO] [stderr] --> src/main.rs:17:5 [INFO] [stderr] | [INFO] [stderr] 17 | use rbt::red_black_tree::NodeType; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::slice::Iter` [INFO] [stderr] --> src/main.rs:18:5 [INFO] [stderr] | [INFO] [stderr] 18 | use std::slice::Iter; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::ops::Range` [INFO] [stderr] --> src/main.rs:19:5 [INFO] [stderr] | [INFO] [stderr] 19 | use std::ops::Range; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `serde::export::fmt::Debug` [INFO] [stderr] --> src/main.rs:20:5 [INFO] [stderr] | [INFO] [stderr] 20 | use serde::export::fmt::Debug; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `rbt::tests` [INFO] [stderr] --> src/main.rs:21:5 [INFO] [stderr] | [INFO] [stderr] 21 | use rbt::tests; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::cmp::max` [INFO] [stderr] --> src/main.rs:22:5 [INFO] [stderr] | [INFO] [stderr] 22 | use std::cmp::max; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `balanced`, `next_smallest` [INFO] [stderr] --> src/main.rs:23:25 [INFO] [stderr] | [INFO] [stderr] 23 | use crate::rbt::tests::{balanced, next_smallest}; [INFO] [stderr] | ^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::io` [INFO] [stderr] --> src/main.rs:24:5 [INFO] [stderr] | [INFO] [stderr] 24 | use std::io; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::io::prelude::*` [INFO] [stderr] --> src/main.rs:25:5 [INFO] [stderr] | [INFO] [stderr] 25 | use std::io::prelude::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::num::ParseIntError` [INFO] [stderr] --> src/main.rs:26:5 [INFO] [stderr] | [INFO] [stderr] 26 | use std::num::ParseIntError; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::fmt` [INFO] [stderr] --> src/main.rs:27:5 [INFO] [stderr] | [INFO] [stderr] 27 | use std::fmt; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::error` [INFO] [stderr] --> src/main.rs:28:5 [INFO] [stderr] | [INFO] [stderr] 28 | use std::error; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `AppendOnlySegment`, `StringSegment` [INFO] [stderr] --> src/main.rs:29:22 [INFO] [stderr] | [INFO] [stderr] 29 | use crate::sstable::{StringSegment, AppendOnlySegment}; [INFO] [stderr] | ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `serde::de::DeserializeOwned` [INFO] [stderr] --> src/main.rs:30:5 [INFO] [stderr] | [INFO] [stderr] 30 | use serde::de::DeserializeOwned; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::collections::HashSet` [INFO] [stderr] --> src/main.rs:31:5 [INFO] [stderr] | [INFO] [stderr] 31 | use std::collections::HashSet; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `File`, `OpenOptions` [INFO] [stderr] --> src/main.rs:32:15 [INFO] [stderr] | [INFO] [stderr] 32 | use std::fs::{OpenOptions, File}; [INFO] [stderr] | ^^^^^^^^^^^ ^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::thread` [INFO] [stderr] --> src/main.rs:33:5 [INFO] [stderr] | [INFO] [stderr] 33 | use std::thread; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::time::Duration` [INFO] [stderr] --> src/main.rs:34:5 [INFO] [stderr] | [INFO] [stderr] 34 | use std::time::Duration; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Receiver`, `Sender`, `channel` [INFO] [stderr] --> src/main.rs:35:23 [INFO] [stderr] | [INFO] [stderr] 35 | use std::sync::mpsc::{Sender, Receiver, channel}; [INFO] [stderr] | ^^^^^^ ^^^^^^^^ ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `IndexConstructionResult`, `SearchError`, `SearchResult` [INFO] [stderr] --> src/main.rs:36:30 [INFO] [stderr] | [INFO] [stderr] 36 | use crate::sstable::errors::{SearchError, SearchResult, IndexConstructionResult}; [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `threadpool::ThreadPool` [INFO] [stderr] --> src/main.rs:41:5 [INFO] [stderr] | [INFO] [stderr] 41 | use threadpool::ThreadPool; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::collections::HashMap` [INFO] [stderr] --> src/sstable.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use std::collections::HashMap; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::fs::File` [INFO] [stderr] --> src/sstable.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use std::fs::File; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::hash::Hash` [INFO] [stderr] --> src/sstable.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | use std::hash::Hash; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::cmp::Eq` [INFO] [stderr] --> src/sstable.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | use std::cmp::Eq; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::fs` [INFO] [stderr] --> src/sstable.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | use std::fs; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::io::BufReader` [INFO] [stderr] --> src/sstable.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 10 | use std::io::BufReader; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::io::BufWriter` [INFO] [stderr] --> src/sstable.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | use std::io::BufWriter; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `de` [INFO] [stderr] --> src/sstable.rs:15:13 [INFO] [stderr] | [INFO] [stderr] 15 | use serde::{de, Serialize, Deserialize}; [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::mem` [INFO] [stderr] --> src/sstable.rs:24:5 [INFO] [stderr] | [INFO] [stderr] 24 | use std::mem; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::mem::size_of_val` [INFO] [stderr] --> src/sstable.rs:25:5 [INFO] [stderr] | [INFO] [stderr] 25 | use std::mem::size_of_val; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::convert::TryInto` [INFO] [stderr] --> src/sstable.rs:28:5 [INFO] [stderr] | [INFO] [stderr] 28 | use std::convert::TryInto; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::marker::Copy` [INFO] [stderr] --> src/sstable.rs:29:5 [INFO] [stderr] | [INFO] [stderr] 29 | use std::marker::Copy; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around function argument [INFO] [stderr] --> src/sstable.rs:398:12 [INFO] [stderr] | [INFO] [stderr] 398 | Ok((dest_buffer.len())) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_parens)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::fs` [INFO] [stderr] --> src/sstable.rs:422:9 [INFO] [stderr] | [INFO] [stderr] 422 | use std::fs; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::path::Path` [INFO] [stderr] --> src/sstable.rs:423:9 [INFO] [stderr] | [INFO] [stderr] 423 | use std::path::Path; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `rand::prelude::SliceRandom` [INFO] [stderr] --> src/sstable.rs:426:9 [INFO] [stderr] | [INFO] [stderr] 426 | use rand::prelude::SliceRandom; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::iter::FromIterator` [INFO] [stderr] --> src/sstable.rs:428:9 [INFO] [stderr] | [INFO] [stderr] 428 | use std::iter::FromIterator; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `sstable::FileSegment` [INFO] [stderr] --> src/main.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use sstable::FileSegment; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `ErrorKind`, `deserialize`, `serialize` [INFO] [stderr] --> src/main.rs:4:15 [INFO] [stderr] | [INFO] [stderr] 4 | use bincode::{serialize, deserialize, ErrorKind}; [INFO] [stderr] | ^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Deserialize`, `Serialize`, `Serializer` [INFO] [stderr] --> src/main.rs:5:13 [INFO] [stderr] | [INFO] [stderr] 5 | use serde::{Serialize, Deserialize, Serializer}; [INFO] [stderr] | ^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `serde::ser` [INFO] [stderr] --> src/main.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | use serde::ser; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::io::BufWriter` [INFO] [stderr] --> src/main.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | use std::io::BufWriter; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Empty`, `Node` [INFO] [stderr] --> src/main.rs:8:37 [INFO] [stderr] | [INFO] [stderr] 8 | use rbt::red_black_tree::NodeType::{Node, Empty}; [INFO] [stderr] | ^^^^ ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `rbt::red_black_tree::RBT` [INFO] [stderr] --> src/main.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | use rbt::red_black_tree::RBT; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `sstable::SSTableObject` [INFO] [stderr] --> src/main.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 10 | use sstable::SSTableObject; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::ops::Deref` [INFO] [stderr] --> src/main.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | use std::ops::Deref; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::rc::Rc` [INFO] [stderr] --> src/rbt.rs:8:9 [INFO] [stderr] | [INFO] [stderr] 8 | use std::rc::Rc; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `size_of` [INFO] [stderr] --> src/rbt.rs:10:33 [INFO] [stderr] | [INFO] [stderr] 10 | use std::mem::{size_of_val, size_of}; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::rc::Rc` [INFO] [stderr] --> src/rbt.rs:458:9 [INFO] [stderr] | [INFO] [stderr] 458 | use std::rc::Rc; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::ops::Range` [INFO] [stderr] --> src/rbt.rs:461:9 [INFO] [stderr] | [INFO] [stderr] 461 | use std::ops::Range; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around assigned value [INFO] [stderr] --> src/rbt.rs:490:28 [INFO] [stderr] | [INFO] [stderr] 490 | let mut e: usize = (v.len() - 1); [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unused import: `SparseIndexEntry` [INFO] [stderr] --> src/api.rs:1:56 [INFO] [stderr] | [INFO] [stderr] 1 | use crate::sstable::{SSTableObject, AppendOnlySegment, SparseIndexEntry}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `IndexConstructionError` [INFO] [stderr] --> src/api.rs:2:82 [INFO] [stderr] | [INFO] [stderr] 2 | use crate::sstable::errors::{SearchError, SearchResult, IndexConstructionResult, IndexConstructionError}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::rbt::red_black_tree::RBT` [INFO] [stderr] --> src/api.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use crate::rbt::red_black_tree::RBT; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::rc::Rc` [INFO] [stderr] --> src/api.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | use std::rc::Rc; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `TryRecvError::Disconnected`, `TryRecvError::Empty` [INFO] [stderr] --> src/api.rs:12:50 [INFO] [stderr] | [INFO] [stderr] 12 | use std::sync::mpsc::{Sender, Receiver, channel, TryRecvError::Empty, TryRecvError::Disconnected}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::ptr::replace` [INFO] [stderr] --> src/api.rs:16:5 [INFO] [stderr] | [INFO] [stderr] 16 | use std::ptr::replace; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/api.rs:69:19 [INFO] [stderr] | [INFO] [stderr] 69 | if(*order == data_order){ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unused import: `rbt::red_black_tree::NodeType` [INFO] [stderr] --> src/main.rs:17:5 [INFO] [stderr] | [INFO] [stderr] 17 | use rbt::red_black_tree::NodeType; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::slice::Iter` [INFO] [stderr] --> src/main.rs:18:5 [INFO] [stderr] | [INFO] [stderr] 18 | use std::slice::Iter; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::ops::Range` [INFO] [stderr] --> src/main.rs:19:5 [INFO] [stderr] | [INFO] [stderr] 19 | use std::ops::Range; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `serde::export::fmt::Debug` [INFO] [stderr] --> src/main.rs:20:5 [INFO] [stderr] | [INFO] [stderr] 20 | use serde::export::fmt::Debug; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `rbt::tests` [INFO] [stderr] --> src/main.rs:21:5 [INFO] [stderr] | [INFO] [stderr] 21 | use rbt::tests; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::cmp::max` [INFO] [stderr] --> src/main.rs:22:5 [INFO] [stderr] | [INFO] [stderr] 22 | use std::cmp::max; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `balanced`, `next_smallest` [INFO] [stderr] --> src/main.rs:23:25 [INFO] [stderr] | [INFO] [stderr] 23 | use crate::rbt::tests::{balanced, next_smallest}; [INFO] [stderr] | ^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::io` [INFO] [stderr] --> src/main.rs:24:5 [INFO] [stderr] | [INFO] [stderr] 24 | use std::io; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::io::prelude::*` [INFO] [stderr] --> src/main.rs:25:5 [INFO] [stderr] | [INFO] [stderr] 25 | use std::io::prelude::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::num::ParseIntError` [INFO] [stderr] --> src/main.rs:26:5 [INFO] [stderr] | [INFO] [stderr] 26 | use std::num::ParseIntError; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::fmt` [INFO] [stderr] --> src/main.rs:27:5 [INFO] [stderr] | [INFO] [stderr] 27 | use std::fmt; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::error` [INFO] [stderr] --> src/main.rs:28:5 [INFO] [stderr] | [INFO] [stderr] 28 | use std::error; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `AppendOnlySegment`, `StringSegment` [INFO] [stderr] --> src/main.rs:29:22 [INFO] [stderr] | [INFO] [stderr] 29 | use crate::sstable::{StringSegment, AppendOnlySegment}; [INFO] [stderr] | ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `serde::de::DeserializeOwned` [INFO] [stderr] --> src/main.rs:30:5 [INFO] [stderr] | [INFO] [stderr] 30 | use serde::de::DeserializeOwned; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::collections::HashSet` [INFO] [stderr] --> src/main.rs:31:5 [INFO] [stderr] | [INFO] [stderr] 31 | use std::collections::HashSet; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `File`, `OpenOptions` [INFO] [stderr] --> src/main.rs:32:15 [INFO] [stderr] | [INFO] [stderr] 32 | use std::fs::{OpenOptions, File}; [INFO] [stderr] | ^^^^^^^^^^^ ^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::thread` [INFO] [stderr] --> src/main.rs:33:5 [INFO] [stderr] | [INFO] [stderr] 33 | use std::thread; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::time::Duration` [INFO] [stderr] --> src/main.rs:34:5 [INFO] [stderr] | [INFO] [stderr] 34 | use std::time::Duration; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Receiver`, `Sender`, `channel` [INFO] [stderr] --> src/main.rs:35:23 [INFO] [stderr] | [INFO] [stderr] 35 | use std::sync::mpsc::{Sender, Receiver, channel}; [INFO] [stderr] | ^^^^^^ ^^^^^^^^ ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `IndexConstructionResult`, `SearchError`, `SearchResult` [INFO] [stderr] --> src/main.rs:36:30 [INFO] [stderr] | [INFO] [stderr] 36 | use crate::sstable::errors::{SearchError, SearchResult, IndexConstructionResult}; [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `threadpool::ThreadPool` [INFO] [stderr] --> src/main.rs:41:5 [INFO] [stderr] | [INFO] [stderr] 41 | use threadpool::ThreadPool; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `core::borrow::Borrow` [INFO] [stderr] --> src/sstable.rs:244:5 [INFO] [stderr] | [INFO] [stderr] 244 | use core::borrow::Borrow; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `core::borrow::Borrow` [INFO] [stderr] --> src/rbt.rs:7:9 [INFO] [stderr] | [INFO] [stderr] 7 | use core::borrow::Borrow; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: irrefutable if-let pattern [INFO] [stderr] --> src/api.rs:123:25 [INFO] [stderr] | [INFO] [stderr] 123 | / if let e = SearchError::KeyNotFoundError { [INFO] [stderr] 124 | | SSTable::read_h(key, tail) [INFO] [stderr] 125 | | } else { [INFO] [stderr] 126 | | Err(e) [INFO] [stderr] 127 | | } [INFO] [stderr] | |_________________________^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(irrefutable_let_patterns)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `color` [INFO] [stderr] --> src/sstable.rs:227:41 [INFO] [stderr] | [INFO] [stderr] 227 | Node { key, value, left, right, color } => { [INFO] [stderr] | ^^^^^ help: try ignoring the field: `color: _` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `tree` [INFO] [stderr] --> src/sstable.rs:274:26 [INFO] [stderr] | [INFO] [stderr] 274 | SparseIndex {tree, ..} => [INFO] [stderr] | ^^^^ help: try ignoring the field: `tree: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `tree` [INFO] [stderr] --> src/sstable.rs:295:27 [INFO] [stderr] | [INFO] [stderr] 295 | SparseIndex { tree, segment: our_segment, limit, index_size_ratio } => { [INFO] [stderr] | ^^^^ help: try ignoring the field: `tree: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `our_segment` [INFO] [stderr] --> src/sstable.rs:295:42 [INFO] [stderr] | [INFO] [stderr] 295 | SparseIndex { tree, segment: our_segment, limit, index_size_ratio } => { [INFO] [stderr] | ^^^^^^^^^^^ help: consider prefixing with an underscore: `_our_segment` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `limit` [INFO] [stderr] --> src/sstable.rs:295:55 [INFO] [stderr] | [INFO] [stderr] 295 | SparseIndex { tree, segment: our_segment, limit, index_size_ratio } => { [INFO] [stderr] | ^^^^^ help: try ignoring the field: `limit: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `index_size_ratio` [INFO] [stderr] --> src/sstable.rs:295:62 [INFO] [stderr] | [INFO] [stderr] 295 | SparseIndex { tree, segment: our_segment, limit, index_size_ratio } => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try ignoring the field: `index_size_ratio: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `tree` [INFO] [stderr] --> src/sstable.rs:306:27 [INFO] [stderr] | [INFO] [stderr] 306 | SparseIndex { tree, segment, limit, index_size_ratio } => { [INFO] [stderr] | ^^^^ help: try ignoring the field: `tree: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `segment` [INFO] [stderr] --> src/sstable.rs:306:33 [INFO] [stderr] | [INFO] [stderr] 306 | SparseIndex { tree, segment, limit, index_size_ratio } => { [INFO] [stderr] | ^^^^^^^ help: try ignoring the field: `segment: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `limit` [INFO] [stderr] --> src/sstable.rs:306:42 [INFO] [stderr] | [INFO] [stderr] 306 | SparseIndex { tree, segment, limit, index_size_ratio } => { [INFO] [stderr] | ^^^^^ help: try ignoring the field: `limit: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `index_size_ratio` [INFO] [stderr] --> src/sstable.rs:306:49 [INFO] [stderr] | [INFO] [stderr] 306 | SparseIndex { tree, segment, limit, index_size_ratio } => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try ignoring the field: `index_size_ratio: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `limit` [INFO] [stderr] --> src/sstable.rs:320:42 [INFO] [stderr] | [INFO] [stderr] 320 | SparseIndex { tree, segment, limit, index_size_ratio } => { [INFO] [stderr] | ^^^^^ help: try ignoring the field: `limit: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `index_size_ratio` [INFO] [stderr] --> src/sstable.rs:320:49 [INFO] [stderr] | [INFO] [stderr] 320 | SparseIndex { tree, segment, limit, index_size_ratio } => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try ignoring the field: `index_size_ratio: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `entry_key` [INFO] [stderr] --> src/sstable.rs:324:27 [INFO] [stderr] | [INFO] [stderr] 324 | Some((entry_key, entry)) => { [INFO] [stderr] | ^^^^^^^^^ help: consider prefixing with an underscore: `_entry_key` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `from_offset` [INFO] [stderr] --> src/sstable.rs:407:33 [INFO] [stderr] | [INFO] [stderr] 407 | fn append_to_segment(&self, from_offset: usize, source_buffer: &[u8]) -> Result { [INFO] [stderr] | ^^^^^^^^^^^ help: consider prefixing with an underscore: `_from_offset` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `source_buffer` [INFO] [stderr] --> src/sstable.rs:407:53 [INFO] [stderr] | [INFO] [stderr] 407 | fn append_to_segment(&self, from_offset: usize, source_buffer: &[u8]) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider prefixing with an underscore: `_source_buffer` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `from_offset` [INFO] [stderr] --> src/sstable.rs:412:33 [INFO] [stderr] | [INFO] [stderr] 412 | fn read_from_segment(&self, from_offset: usize, dest_buffer: &mut [u8]) -> Result { [INFO] [stderr] | ^^^^^^^^^^^ help: consider prefixing with an underscore: `_from_offset` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `dest_buffer` [INFO] [stderr] --> src/sstable.rs:412:53 [INFO] [stderr] | [INFO] [stderr] 412 | fn read_from_segment(&self, from_offset: usize, dest_buffer: &mut [u8]) -> Result { [INFO] [stderr] | ^^^^^^^^^^^ help: consider prefixing with an underscore: `_dest_buffer` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `value1` [INFO] [stderr] --> src/rbt.rs:41:32 [INFO] [stderr] | [INFO] [stderr] 41 | value: value1, [INFO] [stderr] | ^^^^^^ help: consider prefixing with an underscore: `_value1` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `color1` [INFO] [stderr] --> src/rbt.rs:44:32 [INFO] [stderr] | [INFO] [stderr] 44 | color: color1 [INFO] [stderr] | ^^^^^^ help: consider prefixing with an underscore: `_color1` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `value2` [INFO] [stderr] --> src/rbt.rs:48:36 [INFO] [stderr] | [INFO] [stderr] 48 | ... value: value2, [INFO] [stderr] | ^^^^^^ help: consider prefixing with an underscore: `_value2` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `color2` [INFO] [stderr] --> src/rbt.rs:51:36 [INFO] [stderr] | [INFO] [stderr] 51 | ... color: color2 [INFO] [stderr] | ^^^^^^ help: consider prefixing with an underscore: `_color2` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `color` [INFO] [stderr] --> src/rbt.rs:170:49 [INFO] [stderr] | [INFO] [stderr] 170 | Node { key, value, left, right, color } => [INFO] [stderr] | ^^^^^ help: try ignoring the field: `color: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `key_left` [INFO] [stderr] --> src/rbt.rs:182:38 [INFO] [stderr] | [INFO] [stderr] 182 | (Node { key: key_left, value: value_left, left: lefts_left, right: lefts_right, color: lefts_color }, [INFO] [stderr] | ^^^^^^^^ help: consider prefixing with an underscore: `_key_left` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `value_left` [INFO] [stderr] --> src/rbt.rs:182:55 [INFO] [stderr] | [INFO] [stderr] 182 | (Node { key: key_left, value: value_left, left: lefts_left, right: lefts_right, color: lefts_color }, [INFO] [stderr] | ^^^^^^^^^^ help: consider prefixing with an underscore: `_value_left` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `lefts_right` [INFO] [stderr] --> src/rbt.rs:182:92 [INFO] [stderr] | [INFO] [stderr] 182 | (Node { key: key_left, value: value_left, left: lefts_left, right: lefts_right, color: lefts_color }, [INFO] [stderr] | ^^^^^^^^^^^ help: consider prefixing with an underscore: `_lefts_right` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `key_right` [INFO] [stderr] --> src/rbt.rs:183:41 [INFO] [stderr] | [INFO] [stderr] 183 | ... Node { key: key_right, value: value_right, left: rights_left, right: rights_right, color: rights_color }) => { [INFO] [stderr] | ^^^^^^^^^ help: consider prefixing with an underscore: `_key_right` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `value_right` [INFO] [stderr] --> src/rbt.rs:183:59 [INFO] [stderr] | [INFO] [stderr] 183 | ... Node { key: key_right, value: value_right, left: rights_left, right: rights_right, color: rights_color }) => { [INFO] [stderr] | ^^^^^^^^^^^ help: consider prefixing with an underscore: `_value_right` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `rights_left` [INFO] [stderr] --> src/rbt.rs:183:78 [INFO] [stderr] | [INFO] [stderr] 183 | ... Node { key: key_right, value: value_right, left: rights_left, right: rights_right, color: rights_color }) => { [INFO] [stderr] | ^^^^^^^^^^^ help: consider prefixing with an underscore: `_rights_left` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `rights_right` [INFO] [stderr] --> src/rbt.rs:183:98 [INFO] [stderr] | [INFO] [stderr] 183 | ... Node { key: key_right, value: value_right, left: rights_left, right: rights_right, color: rights_color }) => { [INFO] [stderr] | ^^^^^^^^^^^^ help: consider prefixing with an underscore: `_rights_right` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `key_left` [INFO] [stderr] --> src/rbt.rs:198:38 [INFO] [stderr] | [INFO] [stderr] 198 | (Node { key: key_left, value: value_left, left: lefts_left, right: lefts_right, color: lefts_color }, Empty) => { [INFO] [stderr] | ^^^^^^^^ help: consider prefixing with an underscore: `_key_left` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `value_left` [INFO] [stderr] --> src/rbt.rs:198:55 [INFO] [stderr] | [INFO] [stderr] 198 | (Node { key: key_left, value: value_left, left: lefts_left, right: lefts_right, color: lefts_color }, Empty) => { [INFO] [stderr] | ^^^^^^^^^^ help: consider prefixing with an underscore: `_value_left` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `lefts_right` [INFO] [stderr] --> src/rbt.rs:198:92 [INFO] [stderr] | [INFO] [stderr] 198 | (Node { key: key_left, value: value_left, left: lefts_left, right: lefts_right, color: lefts_color }, Empty) => { [INFO] [stderr] | ^^^^^^^^^^^ help: consider prefixing with an underscore: `_lefts_right` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `key_right` [INFO] [stderr] --> src/rbt.rs:210:45 [INFO] [stderr] | [INFO] [stderr] 210 | (Empty, Node { key: key_right, value: value_right, left: rights_left, right: rights_right, color: rights_color }) => { [INFO] [stderr] | ^^^^^^^^^ help: consider prefixing with an underscore: `_key_right` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `value_right` [INFO] [stderr] --> src/rbt.rs:210:63 [INFO] [stderr] | [INFO] [stderr] 210 | (Empty, Node { key: key_right, value: value_right, left: rights_left, right: rights_right, color: rights_color }) => { [INFO] [stderr] | ^^^^^^^^^^^ help: consider prefixing with an underscore: `_value_right` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `rights_left` [INFO] [stderr] --> src/rbt.rs:210:82 [INFO] [stderr] | [INFO] [stderr] 210 | (Empty, Node { key: key_right, value: value_right, left: rights_left, right: rights_right, color: rights_color }) => { [INFO] [stderr] | ^^^^^^^^^^^ help: consider prefixing with an underscore: `_rights_left` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `rights_right` [INFO] [stderr] --> src/rbt.rs:210:102 [INFO] [stderr] | [INFO] [stderr] 210 | (Empty, Node { key: key_right, value: value_right, left: rights_left, right: rights_right, color: rights_color }) => { [INFO] [stderr] | ^^^^^^^^^^^^ help: consider prefixing with an underscore: `_rights_right` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `left2` [INFO] [stderr] --> src/rbt.rs:253:60 [INFO] [stderr] | [INFO] [stderr] 253 | Node { key: key2, value: value2, left: left2, right: right2, color: color2 }) => { [INFO] [stderr] | ^^^^^ help: consider prefixing with an underscore: `_left2` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `right2` [INFO] [stderr] --> src/rbt.rs:253:74 [INFO] [stderr] | [INFO] [stderr] 253 | Node { key: key2, value: value2, left: left2, right: right2, color: color2 }) => { [INFO] [stderr] | ^^^^^^ help: consider prefixing with an underscore: `_right2` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `color2` [INFO] [stderr] --> src/rbt.rs:253:89 [INFO] [stderr] | [INFO] [stderr] 253 | Node { key: key2, value: value2, left: left2, right: right2, color: color2 }) => { [INFO] [stderr] | ^^^^^^ help: consider prefixing with an underscore: `_color2` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `key` [INFO] [stderr] --> src/rbt.rs:270:22 [INFO] [stderr] | [INFO] [stderr] 270 | Node{key, value, left, right, color} => { [INFO] [stderr] | ^^^ help: try ignoring the field: `key: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `value` [INFO] [stderr] --> src/rbt.rs:270:27 [INFO] [stderr] | [INFO] [stderr] 270 | Node{key, value, left, right, color} => { [INFO] [stderr] | ^^^^^ help: try ignoring the field: `value: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `color` [INFO] [stderr] --> src/rbt.rs:270:47 [INFO] [stderr] | [INFO] [stderr] 270 | Node{key, value, left, right, color} => { [INFO] [stderr] | ^^^^^ help: try ignoring the field: `color: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `right` [INFO] [stderr] --> src/rbt.rs:329:42 [INFO] [stderr] | [INFO] [stderr] 329 | Node { key, value, left, right, color } => { [INFO] [stderr] | ^^^^^ help: try ignoring the field: `right: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `left` [INFO] [stderr] --> src/rbt.rs:338:36 [INFO] [stderr] | [INFO] [stderr] 338 | Node { key, value, left, right, color } => { [INFO] [stderr] | ^^^^ help: try ignoring the field: `left: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `key` [INFO] [stderr] --> src/rbt.rs:370:24 [INFO] [stderr] | [INFO] [stderr] 370 | Node { key, value, left, right, color } => { [INFO] [stderr] | ^^^ help: try ignoring the field: `key: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `value` [INFO] [stderr] --> src/rbt.rs:370:29 [INFO] [stderr] | [INFO] [stderr] 370 | Node { key, value, left, right, color } => { [INFO] [stderr] | ^^^^^ help: try ignoring the field: `value: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `color` [INFO] [stderr] --> src/rbt.rs:370:49 [INFO] [stderr] | [INFO] [stderr] 370 | Node { key, value, left, right, color } => { [INFO] [stderr] | ^^^^^ help: try ignoring the field: `color: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `key` [INFO] [stderr] --> src/rbt.rs:470:20 [INFO] [stderr] | [INFO] [stderr] 470 | Node { key, value, left, right, color } => { [INFO] [stderr] | ^^^ help: try ignoring the field: `key: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `value` [INFO] [stderr] --> src/rbt.rs:470:25 [INFO] [stderr] | [INFO] [stderr] 470 | Node { key, value, left, right, color } => { [INFO] [stderr] | ^^^^^ help: try ignoring the field: `value: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `color` [INFO] [stderr] --> src/rbt.rs:470:45 [INFO] [stderr] | [INFO] [stderr] 470 | Node { key, value, left, right, color } => { [INFO] [stderr] | ^^^^^ help: try ignoring the field: `color: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `value` [INFO] [stderr] --> src/rbt.rs:494:23 [INFO] [stderr] | [INFO] [stderr] 494 | let (key, value) = &v[m]; [INFO] [stderr] | ^^^^^ help: consider prefixing with an underscore: `_value` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `order` [INFO] [stderr] --> src/api.rs:119:32 [INFO] [stderr] | [INFO] [stderr] 119 | Cons { head, tail, order } => { [INFO] [stderr] | ^^^^^ help: try ignoring the field: `order: _` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `e` [INFO] [stderr] --> src/api.rs:123:32 [INFO] [stderr] | [INFO] [stderr] 123 | if let e = SearchError::KeyNotFoundError { [INFO] [stderr] | ^ help: consider prefixing with an underscore: `_e` [INFO] [stderr] [INFO] [stderr] error[E0277]: `std::cell::RefCell>` cannot be shared between threads safely [INFO] [stderr] --> src/sstable.rs:432:22 [INFO] [stderr] | [INFO] [stderr] 61 | / pub enum SSTableObject { [INFO] [stderr] 64 | | Memtable { tree: RBT }, [INFO] [stderr] 65 | | SparseIndex { tree: RBT, segment: S, limit: u8, index_size_ratio: f32 }, [INFO] [stderr] 66 | | } [INFO] [stderr] | |_- required by `sstable::SSTableObject` [INFO] [stderr] ... [INFO] [stderr] 432 | let sstable: SSTableObject = SSTableObject::new(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `std::cell::RefCell>` cannot be shared between threads safely [INFO] [stderr] | [INFO] [stderr] = help: within `sstable::StringSegment`, the trait `std::marker::Sync` is not implemented for `std::cell::RefCell>` [INFO] [stderr] = note: required because it appears within the type `sstable::StringSegment` [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `SparseIndex` [INFO] [stderr] --> src/sstable.rs:65:5 [INFO] [stderr] | [INFO] [stderr] 65 | SparseIndex { tree: RBT, segment: S, limit: u8, index_size_ratio: f32 }, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: type alias is never used: `SearchResult` [INFO] [stderr] --> src/sstable.rs:72:5 [INFO] [stderr] | [INFO] [stderr] 72 | pub type SearchResult = std::result::Result; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: type alias is never used: `IndexConstructionResult` [INFO] [stderr] --> src/sstable.rs:73:5 [INFO] [stderr] | [INFO] [stderr] 73 | pub type IndexConstructionResult = std::result::Result; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `KeyNotFoundError` [INFO] [stderr] --> src/sstable.rs:78:9 [INFO] [stderr] | [INFO] [stderr] 78 | KeyNotFoundError, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `SegmentError` [INFO] [stderr] --> src/sstable.rs:79:9 [INFO] [stderr] | [INFO] [stderr] 79 | SegmentError(io::Error), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `SerializationError` [INFO] [stderr] --> src/sstable.rs:112:9 [INFO] [stderr] | [INFO] [stderr] 112 | SerializationError(ErrorKind), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `SegmentError` [INFO] [stderr] --> src/sstable.rs:113:9 [INFO] [stderr] | [INFO] [stderr] 113 | SegmentError(io::Error), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `search` [INFO] [stderr] --> src/sstable.rs:118:1 [INFO] [stderr] | [INFO] [stderr] 118 | / pub fn search(s: i32, e: i32, k: K, meta_vector: &Vec, segment: &S) -> SearchResult { [INFO] [stderr] 121 | | let read_to_buffer_then_map_error = |offset: usize, extra_offset: usize, buf: &mut [u8]| -> SearchResult<()> { [INFO] [stderr] ... | [INFO] [stderr] 156 | | } [INFO] [stderr] 157 | | } [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `walk_and_populate` [INFO] [stderr] --> src/sstable.rs:161:1 [INFO] [stderr] | [INFO] [stderr] 161 | / fn walk_and_populate(node: &NodeType, tree: RBT, segment: S, index_size: u32, current_index_size: &RefCell, current_offset: &RefCell) -> IndexConstructionResult<(RBT, S)> { [INFO] [stderr] 164 | | let write_to_segment = |k: &K, v: &V, segment: S| -> IndexConstructionResult<(Vec, Vec, S)> { [INFO] [stderr] ... | [INFO] [stderr] 240 | | } [INFO] [stderr] 241 | | } [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new` [INFO] [stderr] --> src/sstable.rs:258:5 [INFO] [stderr] | [INFO] [stderr] 258 | pub fn new() -> SSTableObject { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `get_size` [INFO] [stderr] --> src/sstable.rs:279:5 [INFO] [stderr] | [INFO] [stderr] 279 | pub fn get_size(&self) -> usize { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `convert_to_sparse_index` [INFO] [stderr] --> src/sstable.rs:286:5 [INFO] [stderr] | [INFO] [stderr] 286 | pub fn convert_to_sparse_index(&self, segment: S, limit: u8, index_size_ratio: f32) -> IndexConstructionResult> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `write` [INFO] [stderr] --> src/sstable.rs:301:5 [INFO] [stderr] | [INFO] [stderr] 301 | pub fn write(self, key: K, value: V) -> SSTableObject { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `read` [INFO] [stderr] --> src/sstable.rs:312:5 [INFO] [stderr] | [INFO] [stderr] 312 | pub fn read(&self, key: K) -> SearchResult { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `name` [INFO] [stderr] --> src/sstable.rs:351:5 [INFO] [stderr] | [INFO] [stderr] 351 | name: String [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Node` [INFO] [stderr] --> src/rbt.rs:25:9 [INFO] [stderr] | [INFO] [stderr] 25 | Node { key: K, value: V, left: Arc>, right: Arc>, color: bool }, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Empty` [INFO] [stderr] --> src/rbt.rs:26:9 [INFO] [stderr] | [INFO] [stderr] 26 | Empty, [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new` [INFO] [stderr] --> src/rbt.rs:87:9 [INFO] [stderr] | [INFO] [stderr] 87 | pub fn new(key: K, value: V) -> NodeType { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `empty` [INFO] [stderr] --> src/rbt.rs:91:9 [INFO] [stderr] | [INFO] [stderr] 91 | pub fn empty() -> NodeType { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `path_copy` [INFO] [stderr] --> src/rbt.rs:96:9 [INFO] [stderr] | [INFO] [stderr] 96 | pub fn path_copy(key: &K, value: &V, left: &Arc>, right: &Arc>, color: &bool) -> NodeType { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `path_copy_node` [INFO] [stderr] --> src/rbt.rs:100:9 [INFO] [stderr] | [INFO] [stderr] 100 | pub fn path_copy_node(node: &Arc>) -> NodeType { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `rotate_left` [INFO] [stderr] --> src/rbt.rs:109:9 [INFO] [stderr] | [INFO] [stderr] 109 | pub fn rotate_left(&self) -> NodeType { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `rotate_right` [INFO] [stderr] --> src/rbt.rs:126:9 [INFO] [stderr] | [INFO] [stderr] 126 | pub fn rotate_right(&self) -> NodeType { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `flip_colors` [INFO] [stderr] --> src/rbt.rs:142:9 [INFO] [stderr] | [INFO] [stderr] 142 | pub fn flip_colors(&self) -> NodeType { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `add` [INFO] [stderr] --> src/rbt.rs:167:9 [INFO] [stderr] | [INFO] [stderr] 167 | pub fn add(&self, my_key: &K, my_value: &V) -> NodeType { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `local_transform` [INFO] [stderr] --> src/rbt.rs:176:9 [INFO] [stderr] | [INFO] [stderr] 176 | fn local_transform(&self) -> NodeType { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `add_h` [INFO] [stderr] --> src/rbt.rs:227:9 [INFO] [stderr] | [INFO] [stderr] 227 | fn add_h(&self, my_key: &K, my_value: &V) -> (NodeType, bool) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `add_node` [INFO] [stderr] --> src/rbt.rs:247:9 [INFO] [stderr] | [INFO] [stderr] 247 | fn add_node(&self, my_node: &NodeType) -> (NodeType, bool) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `node_exists` [INFO] [stderr] --> src/rbt.rs:260:9 [INFO] [stderr] | [INFO] [stderr] 260 | pub fn node_exists(&self, my_key: &K) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `inorder` [INFO] [stderr] --> src/rbt.rs:267:9 [INFO] [stderr] | [INFO] [stderr] 267 | pub fn inorder(&self, count: &RefCell) -> () { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `find_max` [INFO] [stderr] --> src/rbt.rs:280:9 [INFO] [stderr] | [INFO] [stderr] 280 | fn find_max(&self) -> NodeType { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `find_lower_bound_h` [INFO] [stderr] --> src/rbt.rs:292:9 [INFO] [stderr] | [INFO] [stderr] 292 | fn find_lower_bound_h(&self, my_key: &K, acc: NodeType) -> NodeType { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `find_lower_bound_value` [INFO] [stderr] --> src/rbt.rs:313:9 [INFO] [stderr] | [INFO] [stderr] 313 | pub fn find_lower_bound_value(&self, my_key: &K) -> NodeType { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `inverse_color` [INFO] [stderr] --> src/rbt.rs:317:9 [INFO] [stderr] | [INFO] [stderr] 317 | pub fn inverse_color(node: NodeType) -> NodeType { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `add_right_child` [INFO] [stderr] --> src/rbt.rs:326:9 [INFO] [stderr] | [INFO] [stderr] 326 | pub fn add_right_child(&self, rc: &Arc>) -> NodeType { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `add_left_child` [INFO] [stderr] --> src/rbt.rs:335:9 [INFO] [stderr] | [INFO] [stderr] 335 | pub fn add_left_child(&self, lc: &Arc>) -> NodeType { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `add_children` [INFO] [stderr] --> src/rbt.rs:344:9 [INFO] [stderr] | [INFO] [stderr] 344 | pub fn add_children(&self, lc: &Arc>, rc: &Arc>) -> NodeType { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `find` [INFO] [stderr] --> src/rbt.rs:348:9 [INFO] [stderr] | [INFO] [stderr] 348 | pub fn find(&self, my_key: &K) -> NodeType { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new` [INFO] [stderr] --> src/rbt.rs:402:9 [INFO] [stderr] | [INFO] [stderr] 402 | pub fn new() -> RBT { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new_from` [INFO] [stderr] --> src/rbt.rs:410:9 [INFO] [stderr] | [INFO] [stderr] 410 | pub fn new_from(tree: &RBT) -> RBT { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `add` [INFO] [stderr] --> src/rbt.rs:419:9 [INFO] [stderr] | [INFO] [stderr] 419 | pub fn add(&self, key: K, value: V) -> RBT { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `get_smaller_value` [INFO] [stderr] --> src/rbt.rs:430:9 [INFO] [stderr] | [INFO] [stderr] 430 | pub fn get_smaller_value(&self, my_key: &K) -> Option<(K, V)> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `find` [INFO] [stderr] --> src/rbt.rs:440:9 [INFO] [stderr] | [INFO] [stderr] 440 | pub fn find(&self, my_key: K) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `red_black_balanced` [INFO] [stderr] --> src/rbt.rs:467:5 [INFO] [stderr] | [INFO] [stderr] 467 | fn red_black_balanced(root: &NodeType) -> (bool, i8, i8) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `balanced` [INFO] [stderr] --> src/rbt.rs:480:5 [INFO] [stderr] | [INFO] [stderr] 480 | pub fn balanced(root: &NodeType) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `next_smallest` [INFO] [stderr] --> src/rbt.rs:485:5 [INFO] [stderr] | [INFO] [stderr] 485 | pub fn next_smallest(v: &Vec<(K, V)>, my_key: &K) -> Option<(K, V)> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `produce_vec_from_zip` [INFO] [stderr] --> src/rbt.rs:640:5 [INFO] [stderr] | [INFO] [stderr] 640 | fn produce_vec_from_zip(a: &Vec, b: &Vec) -> Vec<(u32, u32)> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Cons` [INFO] [stderr] --> src/api.rs:21:5 [INFO] [stderr] | [INFO] [stderr] 21 | Cons { head: T, tail: Arc>, order: usize }, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Nil` [INFO] [stderr] --> src/api.rs:22:5 [INFO] [stderr] | [INFO] [stderr] 22 | Nil, [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `prepend` [INFO] [stderr] --> src/api.rs:27:5 [INFO] [stderr] | [INFO] [stderr] 27 | pub fn prepend(self, new_head: T) -> ConsList { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `append` [INFO] [stderr] --> src/api.rs:37:5 [INFO] [stderr] | [INFO] [stderr] 37 | pub fn append(self, new_head: T, new_order: usize) -> ConsList { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `copy_from` [INFO] [stderr] --> src/api.rs:46:5 [INFO] [stderr] | [INFO] [stderr] 46 | pub fn copy_from(&self) -> ConsList { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `merge_two` [INFO] [stderr] --> src/api.rs:55:5 [INFO] [stderr] | [INFO] [stderr] 55 | pub fn merge_two(first: &ConsList, other: ConsList) -> ConsList { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `replace_nth_node` [INFO] [stderr] --> src/api.rs:65:5 [INFO] [stderr] | [INFO] [stderr] 65 | pub fn replace_nth_node(first: &ConsList, data: T, data_order: usize, new_list: ConsList) -> ConsList { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: type alias is never used: `OrderedIndexConstructionResult` [INFO] [stderr] --> src/api.rs:80:1 [INFO] [stderr] | [INFO] [stderr] 80 | type OrderedIndexConstructionResult = (IndexConstructionResult>, usize); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: type alias is never used: `SenderIndexResult` [INFO] [stderr] --> src/api.rs:81:1 [INFO] [stderr] | [INFO] [stderr] 81 | type SenderIndexResult = Sender>; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: type alias is never used: `ReceiverIndexResult` [INFO] [stderr] --> src/api.rs:82:1 [INFO] [stderr] | [INFO] [stderr] 82 | type ReceiverIndexResult = Receiver>; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `EmptyChannel` [INFO] [stderr] --> src/api.rs:89:9 [INFO] [stderr] | [INFO] [stderr] 89 | EmptyChannel, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `DisconnectedSender` [INFO] [stderr] --> src/api.rs:90:9 [INFO] [stderr] | [INFO] [stderr] 90 | DisconnectedSender, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `IndexCon` [INFO] [stderr] --> src/api.rs:91:9 [INFO] [stderr] | [INFO] [stderr] 91 | IndexCon [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `SSTable` [INFO] [stderr] --> src/api.rs:94:1 [INFO] [stderr] | [INFO] [stderr] 94 | / struct SSTable { [INFO] [stderr] 96 | | sstable_list: ConsList>, [INFO] [stderr] 97 | | comm_channel: (SenderIndexResult, ReceiverIndexResult), [INFO] [stderr] ... | [INFO] [stderr] 103 | | segment_creator: fn(usize) -> S, [INFO] [stderr] 104 | | } [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new` [INFO] [stderr] --> src/api.rs:108:5 [INFO] [stderr] | [INFO] [stderr] 108 | pub fn new(size_limit: usize, num_workers: usize, sparse_index_limit: u8, index_size_ratio_limit: f32, segment_creator: fn(usize) -> S) -> SSTable { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `read_h` [INFO] [stderr] --> src/api.rs:116:5 [INFO] [stderr] | [INFO] [stderr] 116 | fn read_h(key: K, list: &Arc>>) -> SearchResult { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `read` [INFO] [stderr] --> src/api.rs:134:5 [INFO] [stderr] | [INFO] [stderr] 134 | pub fn read(self, key: K) -> SearchResult { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `write` [INFO] [stderr] --> src/api.rs:162:5 [INFO] [stderr] | [INFO] [stderr] 162 | pub fn write(mut self, key: K, value: V) -> ConsList> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/api.rs:187:25 [INFO] [stderr] | [INFO] [stderr] 187 | sender_channel.send(ordered_sparse_index_result); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_must_use)]` on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] error[E0599]: no method named `write` found for type `sstable::SSTableObject` in the current scope [INFO] [stderr] --> src/sstable.rs:433:31 [INFO] [stderr] | [INFO] [stderr] 61 | / pub enum SSTableObject { [INFO] [stderr] 64 | | Memtable { tree: RBT }, [INFO] [stderr] 65 | | SparseIndex { tree: RBT, segment: S, limit: u8, index_size_ratio: f32 }, [INFO] [stderr] 66 | | } [INFO] [stderr] | |_- method `write` not found for this [INFO] [stderr] ... [INFO] [stderr] 433 | let sstable = sstable.write(2, 3); [INFO] [stderr] | ^^^^^ method not found in `sstable::SSTableObject` [INFO] [stderr] | [INFO] [stderr] = note: the method `write` exists but the following trait bounds were not satisfied: [INFO] [stderr] `sstable::StringSegment : std::marker::Sync` [INFO] [stderr] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stderr] = note: the following traits define an item `write`, perhaps you need to implement one of them: [INFO] [stderr] candidate #1: `std::io::Write` [INFO] [stderr] candidate #2: `std::hash::Hasher` [INFO] [stderr] [INFO] [stderr] error[E0277]: `std::cell::RefCell>` cannot be shared between threads safely [INFO] [stderr] --> src/sstable.rs:432:63 [INFO] [stderr] | [INFO] [stderr] 258 | pub fn new() -> SSTableObject { [INFO] [stderr] | -------------------------------------- required by `sstable::SSTableObject::::new` [INFO] [stderr] ... [INFO] [stderr] 432 | let sstable: SSTableObject = SSTableObject::new(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ `std::cell::RefCell>` cannot be shared between threads safely [INFO] [stderr] | [INFO] [stderr] = help: within `sstable::StringSegment`, the trait `std::marker::Sync` is not implemented for `std::cell::RefCell>` [INFO] [stderr] = note: required because it appears within the type `sstable::StringSegment` [INFO] [stderr] [INFO] [stderr] error[E0277]: `std::cell::RefCell>` cannot be shared between threads safely [INFO] [stderr] --> src/sstable.rs:446:27 [INFO] [stderr] | [INFO] [stderr] 61 | / pub enum SSTableObject { [INFO] [stderr] 64 | | Memtable { tree: RBT }, [INFO] [stderr] 65 | | SparseIndex { tree: RBT, segment: S, limit: u8, index_size_ratio: f32 }, [INFO] [stderr] 66 | | } [INFO] [stderr] | |_- required by `sstable::SSTableObject` [INFO] [stderr] ... [INFO] [stderr] 446 | let mut memtable: SSTableObject = SSTableObject::new_from_root(&tree); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `std::cell::RefCell>` cannot be shared between threads safely [INFO] [stderr] | [INFO] [stderr] = help: within `sstable::StringSegment`, the trait `std::marker::Sync` is not implemented for `std::cell::RefCell>` [INFO] [stderr] = note: required because it appears within the type `sstable::StringSegment` [INFO] [stderr] [INFO] [stderr] error[E0277]: `std::cell::RefCell>` cannot be shared between threads safely [INFO] [stderr] --> src/sstable.rs:446:68 [INFO] [stderr] | [INFO] [stderr] 263 | pub fn new_from_root(root: &NodeType) -> SSTableObject { [INFO] [stderr] | --------------------------------------------------------------------- required by `sstable::SSTableObject::::new_from_root` [INFO] [stderr] ... [INFO] [stderr] 446 | let mut memtable: SSTableObject = SSTableObject::new_from_root(&tree); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `std::cell::RefCell>` cannot be shared between threads safely [INFO] [stderr] | [INFO] [stderr] = help: within `sstable::StringSegment`, the trait `std::marker::Sync` is not implemented for `std::cell::RefCell>` [INFO] [stderr] = note: required because it appears within the type `sstable::StringSegment` [INFO] [stderr] [INFO] [stderr] error[E0599]: no method named `read` found for type `sstable::SSTableObject` in the current scope [INFO] [stderr] --> src/sstable.rs:449:34 [INFO] [stderr] | [INFO] [stderr] 61 | / pub enum SSTableObject { [INFO] [stderr] 64 | | Memtable { tree: RBT }, [INFO] [stderr] 65 | | SparseIndex { tree: RBT, segment: S, limit: u8, index_size_ratio: f32 }, [INFO] [stderr] 66 | | } [INFO] [stderr] | |_- method `read` not found for this [INFO] [stderr] ... [INFO] [stderr] 449 | let found = memtable.read(elem.0); [INFO] [stderr] | ^^^^ method not found in `sstable::SSTableObject` [INFO] [stderr] | [INFO] [stderr] = note: the method `read` exists but the following trait bounds were not satisfied: [INFO] [stderr] `sstable::StringSegment : std::marker::Sync` [INFO] [stderr] = help: items from traits can only be used if the trait is implemented and in scope [INFO] [stderr] = note: the following trait defines an item `read`, perhaps you need to implement it: [INFO] [stderr] candidate #1: `std::io::Read` [INFO] [stderr] [INFO] [stderr] error[E0277]: `std::cell::RefCell>` cannot be shared between threads safely [INFO] [stderr] --> src/sstable.rs:508:36 [INFO] [stderr] | [INFO] [stderr] 118 | pub fn search(s: i32, e: i32, k: K, meta_vector: &Vec, segment: &S) -> SearchResult { [INFO] [stderr] | ---- required by this bound in `sstable::search` [INFO] [stderr] ... [INFO] [stderr] 508 | let k: SearchResult = search::(0, (meta_info_vec.len() - 1) as i32, 10, &meta_info_vec, &segment); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `std::cell::RefCell>` cannot be shared between threads safely [INFO] [stderr] | [INFO] [stderr] = help: within `sstable::StringSegment`, the trait `std::marker::Sync` is not implemented for `std::cell::RefCell>` [INFO] [stderr] = note: required because it appears within the type `sstable::StringSegment` [INFO] [stderr] [INFO] [stderr] error[E0277]: `std::cell::RefCell>` cannot be shared between threads safely [INFO] [stderr] --> src/sstable.rs:524:39 [INFO] [stderr] | [INFO] [stderr] 118 | pub fn search(s: i32, e: i32, k: K, meta_vector: &Vec, segment: &S) -> SearchResult { [INFO] [stderr] | ---- required by this bound in `sstable::search` [INFO] [stderr] ... [INFO] [stderr] 524 | let k: SearchResult = search::(0, (meta_info_vec.len() - 1) as i32, 1, &meta_info_vec, &mut segment); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `std::cell::RefCell>` cannot be shared between threads safely [INFO] [stderr] | [INFO] [stderr] = help: within `sstable::StringSegment`, the trait `std::marker::Sync` is not implemented for `std::cell::RefCell>` [INFO] [stderr] = note: required because it appears within the type `sstable::StringSegment` [INFO] [stderr] [INFO] [stderr] error[E0277]: `std::cell::RefCell>` cannot be shared between threads safely [INFO] [stderr] --> src/sstable.rs:576:38 [INFO] [stderr] | [INFO] [stderr] 118 | pub fn search(s: i32, e: i32, k: K, meta_vector: &Vec, segment: &S) -> SearchResult { [INFO] [stderr] | ---- required by this bound in `sstable::search` [INFO] [stderr] ... [INFO] [stderr] 576 | if let Ok(found_value) = search:: (0, (meta_info_vec.len() - 1) as i32, key.to_string(), & meta_info_vec, & mut segment){ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `std::cell::RefCell>` cannot be shared between threads safely [INFO] [stderr] | [INFO] [stderr] = help: within `sstable::StringSegment`, the trait `std::marker::Sync` is not implemented for `std::cell::RefCell>` [INFO] [stderr] = note: required because it appears within the type `sstable::StringSegment` [INFO] [stderr] [INFO] [stderr] error[E0277]: `std::cell::RefCell>` cannot be shared between threads safely [INFO] [stderr] --> src/sstable.rs:616:22 [INFO] [stderr] | [INFO] [stderr] 161 | fn walk_and_populate(node: &NodeType, tree: RBT, segment: S, index_size: u32, current_index_size: &RefCell, current_offset: &RefCell) -> IndexConstructionResult<(RBT, S)> { [INFO] [stderr] | ---- required by this bound in `sstable::walk_and_populate` [INFO] [stderr] ... [INFO] [stderr] 616 | let result = walk_and_populate(&tree, new_tree, segment, 10, &RefCell::new(0), &RefCell::new(0)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ `std::cell::RefCell>` cannot be shared between threads safely [INFO] [stderr] | [INFO] [stderr] = help: within `sstable::StringSegment`, the trait `std::marker::Sync` is not implemented for `std::cell::RefCell>` [INFO] [stderr] = note: required because it appears within the type `sstable::StringSegment` [INFO] [stderr] [INFO] [stderr] error[E0277]: `std::cell::RefCell>` cannot be shared between threads safely [INFO] [stderr] --> src/sstable.rs:645:22 [INFO] [stderr] | [INFO] [stderr] 161 | fn walk_and_populate(node: &NodeType, tree: RBT, segment: S, index_size: u32, current_index_size: &RefCell, current_offset: &RefCell) -> IndexConstructionResult<(RBT, S)> { [INFO] [stderr] | ---- required by this bound in `sstable::walk_and_populate` [INFO] [stderr] ... [INFO] [stderr] 645 | let result = walk_and_populate(&tree, new_tree, segment, 10, &RefCell::new(0), &RefCell::new(0)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ `std::cell::RefCell>` cannot be shared between threads safely [INFO] [stderr] | [INFO] [stderr] = help: within `sstable::StringSegment`, the trait `std::marker::Sync` is not implemented for `std::cell::RefCell>` [INFO] [stderr] = note: required because it appears within the type `sstable::StringSegment` [INFO] [stderr] [INFO] [stderr] error[E0277]: `std::cell::RefCell>` cannot be shared between threads safely [INFO] [stderr] --> src/sstable.rs:672:22 [INFO] [stderr] | [INFO] [stderr] 161 | fn walk_and_populate(node: &NodeType, tree: RBT, segment: S, index_size: u32, current_index_size: &RefCell, current_offset: &RefCell) -> IndexConstructionResult<(RBT, S)> { [INFO] [stderr] | ---- required by this bound in `sstable::walk_and_populate` [INFO] [stderr] ... [INFO] [stderr] 672 | let result = walk_and_populate(&tree, new_tree, segment, index_size, &RefCell::new(0), &RefCell::new(0)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ `std::cell::RefCell>` cannot be shared between threads safely [INFO] [stderr] | [INFO] [stderr] = help: within `sstable::StringSegment`, the trait `std::marker::Sync` is not implemented for `std::cell::RefCell>` [INFO] [stderr] = note: required because it appears within the type `sstable::StringSegment` [INFO] [stderr] [INFO] [stderr] error[E0277]: `std::cell::RefCell>` cannot be shared between threads safely [INFO] [stderr] --> src/sstable.rs:722:22 [INFO] [stderr] | [INFO] [stderr] 161 | fn walk_and_populate(node: &NodeType, tree: RBT, segment: S, index_size: u32, current_index_size: &RefCell, current_offset: &RefCell) -> IndexConstructionResult<(RBT, S)> { [INFO] [stderr] | ---- required by this bound in `sstable::walk_and_populate` [INFO] [stderr] ... [INFO] [stderr] 722 | let result = walk_and_populate(&tree, new_tree, segment, index_size, &RefCell::new(0), &RefCell::new(0)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ `std::cell::RefCell>` cannot be shared between threads safely [INFO] [stderr] | [INFO] [stderr] = help: within `sstable::StringSegment`, the trait `std::marker::Sync` is not implemented for `std::cell::RefCell>` [INFO] [stderr] = note: required because it appears within the type `sstable::StringSegment` [INFO] [stderr] [INFO] [stderr] warning: unused import: `core::borrow::Borrow` [INFO] [stderr] --> src/sstable.rs:244:5 [INFO] [stderr] | [INFO] [stderr] 244 | use core::borrow::Borrow; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `core::borrow::Borrow` [INFO] [stderr] --> src/rbt.rs:7:9 [INFO] [stderr] | [INFO] [stderr] 7 | use core::borrow::Borrow; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: aborting due to 13 previous errors [INFO] [stderr] [INFO] [stderr] Some errors have detailed explanations: E0277, E0599. [INFO] [stderr] For more information about an error, try `rustc --explain E0277`. [INFO] [stderr] error: could not compile `sstable`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "11b8cb858aebb7c783a08326d68734550fd68c4b84718405cfdfd76db06afb76"` [INFO] running `"docker" "rm" "-f" "11b8cb858aebb7c783a08326d68734550fd68c4b84718405cfdfd76db06afb76"` [INFO] [stdout] 11b8cb858aebb7c783a08326d68734550fd68c4b84718405cfdfd76db06afb76